From 938ad9d309635790cf99b499f7ebba085ce31439 Mon Sep 17 00:00:00 2001 From: Tutur33 Date: Fri, 24 Nov 2023 23:58:26 +0100 Subject: [PATCH] modified --- .gitignore | 1 - build/.adonisrc.json | 57 - build/.env.example | 1 - build/ace | 16 - build/ace-manifest.json | 575 - build/app/Exceptions/Handler.js | 19 - build/app/Exceptions/Handler.js.map | 1 - build/app/Middleware/Auth.js | 26 - build/app/Middleware/Auth.js.map | 1 - build/app/Middleware/SilentAuth.js | 10 - build/app/Middleware/SilentAuth.js.map | 1 - build/app/Models/User.js | 60 - build/app/Models/User.js.map | 1 - build/app/Validators/CreateUserValidator.js | 21 - .../app/Validators/CreateUserValidator.js.map | 1 - build/commands/index.js | 9 - build/commands/index.js.map | 1 - build/config/app.js | 51 - build/config/app.js.map | 1 - build/config/auth.js | 41 - build/config/auth.js.map | 1 - build/config/bodyparser.js | 40 - build/config/bodyparser.js.map | 1 - build/config/cors.js | 20 - build/config/cors.js.map | 1 - build/config/database.js | 31 - build/config/database.js.map | 1 - build/config/drive.js | 21 - build/config/drive.js.map | 1 - build/config/hash.js | 34 - build/config/hash.js.map | 1 - build/config/session.js | 25 - build/config/session.js.map | 1 - build/config/session.ts | 116 - build/config/shield.js | 32 - build/config/shield.js.map | 1 - build/config/static.js | 12 - build/config/static.js.map | 1 - build/contracts/auth.js | 3 - build/contracts/auth.js.map | 1 - build/contracts/drive.js | 3 - build/contracts/drive.js.map | 1 - build/contracts/env.js | 1 - build/contracts/env.js.map | 1 - build/contracts/events.js | 1 - build/contracts/events.js.map | 1 - build/contracts/hash.js | 3 - build/contracts/hash.js.map | 1 - build/contracts/tests.js | 4 - build/contracts/tests.js.map | 1 - build/database/factories/index.js | 1 - build/database/factories/index.js.map | 1 - .../migrations/1698786769334_users.js | 28 - .../migrations/1698786769334_users.js.map | 1 - build/env.js | 17 - build/env.js.map | 1 - build/node_modules/.bin/acorn | 12 - build/node_modules/.bin/acorn.cmd | 17 - build/node_modules/.bin/acorn.ps1 | 28 - build/node_modules/.bin/ansi-html | 12 - build/node_modules/.bin/ansi-html.cmd | 17 - build/node_modules/.bin/ansi-html.ps1 | 28 - build/node_modules/.bin/astring | 12 - build/node_modules/.bin/astring.cmd | 17 - build/node_modules/.bin/astring.ps1 | 28 - build/node_modules/.bin/atob | 12 - build/node_modules/.bin/atob.cmd | 17 - build/node_modules/.bin/atob.ps1 | 28 - build/node_modules/.bin/browserslist | 12 - build/node_modules/.bin/browserslist.cmd | 17 - build/node_modules/.bin/browserslist.ps1 | 28 - build/node_modules/.bin/cdl | 12 - build/node_modules/.bin/cdl.cmd | 17 - build/node_modules/.bin/cdl.ps1 | 28 - build/node_modules/.bin/color-support | 12 - build/node_modules/.bin/color-support.cmd | 17 - build/node_modules/.bin/color-support.ps1 | 28 - build/node_modules/.bin/cssesc | 12 - build/node_modules/.bin/cssesc.cmd | 17 - build/node_modules/.bin/cssesc.ps1 | 28 - build/node_modules/.bin/editorconfig | 12 - build/node_modules/.bin/editorconfig.cmd | 17 - build/node_modules/.bin/editorconfig.ps1 | 28 - build/node_modules/.bin/encore | 12 - build/node_modules/.bin/encore.cmd | 17 - build/node_modules/.bin/encore.ps1 | 28 - build/node_modules/.bin/envinfo | 12 - build/node_modules/.bin/envinfo.cmd | 17 - build/node_modules/.bin/envinfo.ps1 | 28 - build/node_modules/.bin/eslint | 12 - .../node_modules/.bin/eslint-config-prettier | 12 - .../.bin/eslint-config-prettier.cmd | 17 - .../.bin/eslint-config-prettier.ps1 | 28 - build/node_modules/.bin/eslint.cmd | 17 - build/node_modules/.bin/eslint.ps1 | 28 - build/node_modules/.bin/esparse | 12 - build/node_modules/.bin/esparse.cmd | 17 - build/node_modules/.bin/esparse.ps1 | 28 - build/node_modules/.bin/esvalidate | 12 - build/node_modules/.bin/esvalidate.cmd | 17 - build/node_modules/.bin/esvalidate.ps1 | 28 - build/node_modules/.bin/flat | 12 - build/node_modules/.bin/flat.cmd | 17 - build/node_modules/.bin/flat.ps1 | 28 - build/node_modules/.bin/he | 12 - build/node_modules/.bin/he.cmd | 17 - build/node_modules/.bin/he.ps1 | 28 - build/node_modules/.bin/import-local-fixture | 12 - .../.bin/import-local-fixture.cmd | 17 - .../.bin/import-local-fixture.ps1 | 28 - build/node_modules/.bin/is-docker | 12 - build/node_modules/.bin/is-docker.cmd | 17 - build/node_modules/.bin/is-docker.ps1 | 28 - build/node_modules/.bin/is-inside-container | 12 - .../node_modules/.bin/is-inside-container.cmd | 17 - .../node_modules/.bin/is-inside-container.ps1 | 28 - build/node_modules/.bin/js-yaml | 12 - build/node_modules/.bin/js-yaml.cmd | 17 - build/node_modules/.bin/js-yaml.ps1 | 28 - build/node_modules/.bin/jsesc | 12 - build/node_modules/.bin/jsesc.cmd | 17 - build/node_modules/.bin/jsesc.ps1 | 28 - build/node_modules/.bin/json5 | 12 - build/node_modules/.bin/json5.cmd | 17 - build/node_modules/.bin/json5.ps1 | 28 - build/node_modules/.bin/knex | 12 - build/node_modules/.bin/knex.cmd | 17 - build/node_modules/.bin/knex.ps1 | 28 - build/node_modules/.bin/marked | 12 - build/node_modules/.bin/marked.cmd | 17 - build/node_modules/.bin/marked.ps1 | 28 - build/node_modules/.bin/mime | 12 - build/node_modules/.bin/mime.cmd | 17 - build/node_modules/.bin/mime.ps1 | 28 - build/node_modules/.bin/mkdirp | 12 - build/node_modules/.bin/mkdirp.cmd | 17 - build/node_modules/.bin/mkdirp.ps1 | 28 - build/node_modules/.bin/multicast-dns | 12 - build/node_modules/.bin/multicast-dns.cmd | 17 - build/node_modules/.bin/multicast-dns.ps1 | 28 - build/node_modules/.bin/mustache | 12 - build/node_modules/.bin/mustache.cmd | 17 - build/node_modules/.bin/mustache.ps1 | 28 - build/node_modules/.bin/nanoid | 12 - build/node_modules/.bin/nanoid.cmd | 17 - build/node_modules/.bin/nanoid.ps1 | 28 - build/node_modules/.bin/node-gyp | 12 - build/node_modules/.bin/node-gyp.cmd | 17 - build/node_modules/.bin/node-gyp.ps1 | 28 - build/node_modules/.bin/node-pre-gyp | 12 - build/node_modules/.bin/node-pre-gyp.cmd | 17 - build/node_modules/.bin/node-pre-gyp.ps1 | 28 - build/node_modules/.bin/node-which | 12 - build/node_modules/.bin/node-which.cmd | 17 - build/node_modules/.bin/node-which.ps1 | 28 - build/node_modules/.bin/nopt | 12 - build/node_modules/.bin/nopt.cmd | 17 - build/node_modules/.bin/nopt.ps1 | 28 - build/node_modules/.bin/parser | 12 - build/node_modules/.bin/parser.cmd | 17 - build/node_modules/.bin/parser.ps1 | 28 - build/node_modules/.bin/pino | 12 - build/node_modules/.bin/pino-pretty | 12 - build/node_modules/.bin/pino-pretty.cmd | 17 - build/node_modules/.bin/pino-pretty.ps1 | 28 - build/node_modules/.bin/pino.cmd | 17 - build/node_modules/.bin/pino.ps1 | 28 - build/node_modules/.bin/prettier | 12 - build/node_modules/.bin/prettier.cmd | 17 - build/node_modules/.bin/prettier.ps1 | 28 - build/node_modules/.bin/rc | 12 - build/node_modules/.bin/rc.cmd | 17 - build/node_modules/.bin/rc.ps1 | 28 - build/node_modules/.bin/regjsparser | 12 - build/node_modules/.bin/regjsparser.cmd | 17 - build/node_modules/.bin/regjsparser.ps1 | 28 - build/node_modules/.bin/resolve | 12 - build/node_modules/.bin/resolve.cmd | 17 - build/node_modules/.bin/resolve.ps1 | 28 - build/node_modules/.bin/rimraf | 12 - build/node_modules/.bin/rimraf.cmd | 17 - build/node_modules/.bin/rimraf.ps1 | 28 - build/node_modules/.bin/semver | 12 - build/node_modules/.bin/semver.cmd | 17 - build/node_modules/.bin/semver.ps1 | 28 - build/node_modules/.bin/svgo | 12 - build/node_modules/.bin/svgo.cmd | 17 - build/node_modules/.bin/svgo.ps1 | 28 - build/node_modules/.bin/terser | 12 - build/node_modules/.bin/terser.cmd | 17 - build/node_modules/.bin/terser.ps1 | 28 - build/node_modules/.bin/tsc | 12 - build/node_modules/.bin/tsc.cmd | 17 - build/node_modules/.bin/tsc.ps1 | 28 - build/node_modules/.bin/tsserver | 12 - build/node_modules/.bin/tsserver.cmd | 17 - build/node_modules/.bin/tsserver.ps1 | 28 - .../node_modules/.bin/update-browserslist-db | 12 - .../.bin/update-browserslist-db.cmd | 17 - .../.bin/update-browserslist-db.ps1 | 28 - build/node_modules/.bin/uuid | 12 - build/node_modules/.bin/uuid.cmd | 17 - build/node_modules/.bin/uuid.ps1 | 28 - build/node_modules/.bin/webpack | 12 - build/node_modules/.bin/webpack-cli | 12 - build/node_modules/.bin/webpack-cli.cmd | 17 - build/node_modules/.bin/webpack-cli.ps1 | 28 - build/node_modules/.bin/webpack-dev-server | 12 - .../node_modules/.bin/webpack-dev-server.cmd | 17 - .../node_modules/.bin/webpack-dev-server.ps1 | 28 - build/node_modules/.bin/webpack.cmd | 17 - build/node_modules/.bin/webpack.ps1 | 28 - build/node_modules/.bin/z-schema | 12 - build/node_modules/.bin/z-schema.cmd | 17 - build/node_modules/.bin/z-schema.ps1 | 28 - build/node_modules/.package-lock.json | 16075 ------------ build/node_modules/abbrev/LICENSE | 46 - build/node_modules/abbrev/README.md | 23 - build/node_modules/abbrev/abbrev.js | 61 - build/node_modules/abbrev/package.json | 21 - build/node_modules/abort-controller/LICENSE | 21 - build/node_modules/abort-controller/README.md | 98 - .../node_modules/abort-controller/browser.js | 13 - .../node_modules/abort-controller/browser.mjs | 11 - .../abort-controller/package.json | 97 - .../node_modules/abort-controller/polyfill.js | 21 - .../abort-controller/polyfill.mjs | 19 - build/node_modules/abstract-logging/Readme.md | 47 - build/node_modules/abstract-logging/index.js | 18 - .../abstract-logging/package.json | 25 - build/node_modules/abstract-logging/test.js | 17 - build/node_modules/accepts/HISTORY.md | 243 - build/node_modules/accepts/LICENSE | 23 - build/node_modules/accepts/README.md | 140 - build/node_modules/accepts/index.js | 238 - build/node_modules/accepts/package.json | 47 - .../acorn-class-fields/.eslintrc.json | 294 - .../acorn-class-fields/CHANGELOG.md | 63 - build/node_modules/acorn-class-fields/LICENSE | 19 - .../node_modules/acorn-class-fields/README.md | 21 - .../node_modules/acorn-class-fields/index.js | 68 - .../acorn-class-fields/package.json | 36 - .../acorn-class-fields/run_test262.js | 23 - .../acorn-import-assertions/README.md | 15 - .../acorn-import-assertions/package.json | 49 - build/node_modules/acorn-jsx/LICENSE | 19 - build/node_modules/acorn-jsx/README.md | 40 - build/node_modules/acorn-jsx/index.d.ts | 12 - build/node_modules/acorn-jsx/index.js | 488 - build/node_modules/acorn-jsx/package.json | 27 - build/node_modules/acorn-jsx/xhtml.js | 255 - .../.eslintrc.json | 296 - .../acorn-private-class-elements/CHANGELOG.md | 38 - .../acorn-private-class-elements/LICENSE | 19 - .../acorn-private-class-elements/README.md | 11 - .../acorn-private-class-elements/index.js | 165 - .../acorn-private-class-elements/package.json | 30 - .../acorn-private-methods/.eslintignore | 1 - .../acorn-private-methods/.eslintrc.json | 298 - .../acorn-private-methods/CHANGELOG.md | 50 - .../acorn-private-methods/LICENSE | 19 - .../acorn-private-methods/README.md | 29 - .../acorn-private-methods/index.js | 25 - .../acorn-private-methods/package.json | 40 - .../acorn-private-methods/rollup.config.js | 16 - .../acorn-private-methods/run_test262.js | 28 - .../.eslintrc.json | 294 - .../acorn-static-class-features/CHANGELOG.md | 36 - .../acorn-static-class-features/LICENSE | 19 - .../acorn-static-class-features/README.md | 21 - .../acorn-static-class-features/index.js | 85 - .../acorn-static-class-features/package.json | 36 - .../run_test262.js | 27 - build/node_modules/acorn-walk/CHANGELOG.md | 173 - build/node_modules/acorn-walk/LICENSE | 21 - build/node_modules/acorn-walk/README.md | 124 - build/node_modules/acorn-walk/package.json | 47 - build/node_modules/acorn/CHANGELOG.md | 870 - build/node_modules/acorn/LICENSE | 21 - build/node_modules/acorn/README.md | 283 - build/node_modules/acorn/package.json | 50 - .../adjust-sourcemap-loader/.jshintrc | 28 - .../adjust-sourcemap-loader/.nvmrc | 1 - .../adjust-sourcemap-loader/LICENSE | 21 - .../adjust-sourcemap-loader/index.js | 10 - .../adjust-sourcemap-loader/package.json | 38 - .../adjust-sourcemap-loader/readme.md | 143 - build/node_modules/adonis-preset-ts/README.md | 39 - .../adonis-preset-ts/package.json | 31 - .../adonis-preset-ts/tsconfig.json | 31 - build/node_modules/agent-base/README.md | 145 - build/node_modules/agent-base/package.json | 64 - build/node_modules/agentkeepalive/History.md | 268 - build/node_modules/agentkeepalive/LICENSE | 23 - build/node_modules/agentkeepalive/README.md | 256 - build/node_modules/agentkeepalive/browser.js | 5 - build/node_modules/agentkeepalive/index.d.ts | 65 - build/node_modules/agentkeepalive/index.js | 5 - .../node_modules/agentkeepalive/package.json | 56 - build/node_modules/aggregate-error/index.d.ts | 51 - build/node_modules/aggregate-error/index.js | 47 - build/node_modules/aggregate-error/license | 9 - .../node_modules/aggregate-error/package.json | 41 - build/node_modules/aggregate-error/readme.md | 61 - build/node_modules/ajv-formats/LICENSE | 21 - build/node_modules/ajv-formats/README.md | 123 - build/node_modules/ajv-formats/package.json | 74 - build/node_modules/ajv-keywords/LICENSE | 21 - build/node_modules/ajv-keywords/README.md | 836 - .../ajv-keywords/ajv-keywords.d.ts | 7 - build/node_modules/ajv-keywords/index.js | 35 - build/node_modules/ajv-keywords/package.json | 53 - build/node_modules/ajv/.tonic_example.js | 20 - build/node_modules/ajv/LICENSE | 22 - build/node_modules/ajv/README.md | 1497 -- build/node_modules/ajv/package.json | 106 - build/node_modules/ansi-colors/LICENSE | 21 - build/node_modules/ansi-colors/README.md | 315 - build/node_modules/ansi-colors/index.js | 184 - build/node_modules/ansi-colors/package.json | 129 - build/node_modules/ansi-colors/symbols.js | 69 - build/node_modules/ansi-escapes/index.d.ts | 248 - build/node_modules/ansi-escapes/index.js | 157 - build/node_modules/ansi-escapes/license | 9 - build/node_modules/ansi-escapes/package.json | 57 - build/node_modules/ansi-escapes/readme.md | 245 - .../node_modules/ansi-html-community/LICENSE | 202 - .../ansi-html-community/README.md | 62 - .../node_modules/ansi-html-community/index.js | 176 - .../ansi-html-community/package.json | 50 - build/node_modules/ansi-regex/index.d.ts | 37 - build/node_modules/ansi-regex/index.js | 10 - build/node_modules/ansi-regex/license | 9 - build/node_modules/ansi-regex/package.json | 55 - build/node_modules/ansi-regex/readme.md | 78 - build/node_modules/ansi-styles/index.d.ts | 345 - build/node_modules/ansi-styles/index.js | 163 - build/node_modules/ansi-styles/license | 9 - build/node_modules/ansi-styles/package.json | 56 - build/node_modules/ansi-styles/readme.md | 152 - build/node_modules/ansicolors/LICENSE | 23 - build/node_modules/ansicolors/README.md | 62 - build/node_modules/ansicolors/ansicolors.js | 65 - build/node_modules/ansicolors/package.json | 23 - build/node_modules/anymatch/LICENSE | 15 - build/node_modules/anymatch/README.md | 87 - build/node_modules/anymatch/index.d.ts | 20 - build/node_modules/anymatch/index.js | 104 - build/node_modules/anymatch/package.json | 48 - .../api-contract-validator/CHANGELOG.md | 37 - .../api-contract-validator/LICENSE | 201 - .../api-contract-validator/README.md | 174 - .../api-contract-validator/package.json | 113 - .../api-schema-builder/CHANGELOG.md | 41 - build/node_modules/api-schema-builder/LICENSE | 201 - .../node_modules/api-schema-builder/README.md | 175 - .../api-schema-builder/package.json | 83 - build/node_modules/aproba/CHANGELOG.md | 4 - build/node_modules/aproba/LICENSE | 14 - build/node_modules/aproba/README.md | 94 - build/node_modules/aproba/index.js | 105 - build/node_modules/aproba/package.json | 35 - .../node_modules/are-we-there-yet/LICENSE.md | 18 - build/node_modules/are-we-there-yet/README.md | 208 - .../are-we-there-yet/package.json | 53 - build/node_modules/argon2/LICENSE | 22 - build/node_modules/argon2/README.md | 218 - build/node_modules/argon2/argon2.cpp | 127 - build/node_modules/argon2/argon2.d.ts | 50 - build/node_modules/argon2/argon2.js | 121 - build/node_modules/argon2/binding.gyp | 81 - build/node_modules/argon2/package.json | 84 - build/node_modules/argparse/CHANGELOG.md | 216 - build/node_modules/argparse/LICENSE | 254 - build/node_modules/argparse/README.md | 84 - build/node_modules/argparse/argparse.js | 3707 --- build/node_modules/argparse/package.json | 31 - build/node_modules/arr-diff/LICENSE | 21 - build/node_modules/arr-diff/README.md | 130 - build/node_modules/arr-diff/index.js | 47 - build/node_modules/arr-diff/package.json | 69 - build/node_modules/arr-flatten/LICENSE | 21 - build/node_modules/arr-flatten/README.md | 86 - build/node_modules/arr-flatten/index.js | 22 - build/node_modules/arr-flatten/package.json | 76 - build/node_modules/arr-union/LICENSE | 21 - build/node_modules/arr-union/README.md | 99 - build/node_modules/arr-union/index.js | 29 - build/node_modules/arr-union/package.json | 76 - build/node_modules/array-flatten/LICENSE | 21 - build/node_modules/array-flatten/README.md | 50 - .../array-flatten/array-flatten.d.ts | 16 - .../array-flatten/array-flatten.js | 108 - build/node_modules/array-flatten/package.json | 47 - build/node_modules/array-union/index.js | 6 - build/node_modules/array-union/license | 21 - build/node_modules/array-union/package.json | 40 - build/node_modules/array-union/readme.md | 28 - build/node_modules/array-uniq/index.js | 62 - build/node_modules/array-uniq/license | 21 - build/node_modules/array-uniq/package.json | 37 - build/node_modules/array-uniq/readme.md | 30 - build/node_modules/array-unique/LICENSE | 21 - build/node_modules/array-unique/README.md | 77 - build/node_modules/array-unique/index.js | 43 - build/node_modules/array-unique/package.json | 62 - build/node_modules/arrify/index.d.ts | 38 - build/node_modules/arrify/index.js | 23 - build/node_modules/arrify/license | 9 - build/node_modules/arrify/package.json | 35 - build/node_modules/arrify/readme.md | 39 - build/node_modules/as-table/.babelrc | 3 - build/node_modules/as-table/.eslintrc | 6 - build/node_modules/as-table/.travis.yml | 24 - build/node_modules/as-table/CHANGELOG.md | 3 - build/node_modules/as-table/LICENSE | 21 - build/node_modules/as-table/README.md | 113 - build/node_modules/as-table/as-table.d.ts | 32 - build/node_modules/as-table/as-table.js | 89 - build/node_modules/as-table/package.json | 67 - build/node_modules/as-table/test.js | 223 - build/node_modules/asap/CHANGES.md | 70 - build/node_modules/asap/LICENSE.md | 21 - build/node_modules/asap/README.md | 237 - build/node_modules/asap/asap.js | 65 - build/node_modules/asap/browser-asap.js | 66 - build/node_modules/asap/browser-raw.js | 223 - build/node_modules/asap/package.json | 58 - build/node_modules/asap/raw.js | 101 - build/node_modules/assertion-error/History.md | 24 - build/node_modules/assertion-error/README.md | 41 - build/node_modules/assertion-error/index.d.ts | 11 - build/node_modules/assertion-error/index.js | 116 - .../node_modules/assertion-error/package.json | 29 - .../assets-webpack-plugin/changelog.md | 239 - .../assets-webpack-plugin/index.js | 216 - .../assets-webpack-plugin/license.md | 21 - .../assets-webpack-plugin/package.json | 58 - .../assets-webpack-plugin/readme.md | 443 - build/node_modules/assign-symbols/LICENSE | 21 - build/node_modules/assign-symbols/README.md | 73 - build/node_modules/assign-symbols/index.js | 40 - .../node_modules/assign-symbols/package.json | 40 - build/node_modules/astral-regex/index.d.ts | 28 - build/node_modules/astral-regex/index.js | 6 - build/node_modules/astral-regex/license | 9 - build/node_modules/astral-regex/package.json | 33 - build/node_modules/astral-regex/readme.md | 46 - build/node_modules/astring/.eslintrc.json | 49 - build/node_modules/astring/LICENSE | 19 - build/node_modules/astring/README.md | 322 - build/node_modules/astring/astring.d.ts | 89 - build/node_modules/astring/package.json | 97 - build/node_modules/async-retry/LICENSE.md | 21 - build/node_modules/async-retry/README.md | 53 - build/node_modules/async-retry/package.json | 55 - build/node_modules/asynckit/LICENSE | 21 - build/node_modules/asynckit/README.md | 233 - build/node_modules/asynckit/bench.js | 76 - build/node_modules/asynckit/index.js | 6 - build/node_modules/asynckit/package.json | 63 - build/node_modules/asynckit/parallel.js | 43 - build/node_modules/asynckit/serial.js | 17 - build/node_modules/asynckit/serialOrdered.js | 75 - build/node_modules/asynckit/stream.js | 21 - build/node_modules/atob/LICENSE | 230 - build/node_modules/atob/LICENSE.DOCS | 319 - build/node_modules/atob/README.md | 49 - build/node_modules/atob/bower.json | 24 - build/node_modules/atob/browser-atob.js | 44 - build/node_modules/atob/node-atob.js | 7 - build/node_modules/atob/package.json | 24 - build/node_modules/atob/test.js | 18 - build/node_modules/atomic-sleep/.travis.yml | 11 - build/node_modules/atomic-sleep/LICENSE | 22 - build/node_modules/atomic-sleep/index.js | 38 - build/node_modules/atomic-sleep/package.json | 37 - build/node_modules/atomic-sleep/readme.md | 58 - build/node_modules/atomic-sleep/test.js | 47 - .../node_modules/babel-code-frame/.npmignore | 3 - build/node_modules/babel-code-frame/README.md | 60 - .../babel-code-frame/package-lock.json | 66 - .../babel-code-frame/package.json | 15 - build/node_modules/babel-loader/CHANGELOG.md | 169 - build/node_modules/babel-loader/LICENSE | 22 - build/node_modules/babel-loader/README.md | 400 - build/node_modules/babel-loader/package.json | 127 - .../babel-plugin-polyfill-corejs2/LICENSE | 22 - .../babel-plugin-polyfill-corejs2/README.md | 28 - .../package.json | 43 - .../babel-plugin-polyfill-corejs3/LICENSE | 22 - .../babel-plugin-polyfill-corejs3/README.md | 78 - .../package.json | 49 - .../babel-plugin-polyfill-regenerator/LICENSE | 22 - .../README.md | 28 - .../package.json | 40 - build/node_modules/balanced-match/LICENSE.md | 21 - build/node_modules/balanced-match/README.md | 97 - build/node_modules/balanced-match/index.js | 62 - .../node_modules/balanced-match/package.json | 48 - build/node_modules/base/LICENSE | 21 - build/node_modules/base/README.md | 491 - build/node_modules/base/index.js | 435 - build/node_modules/base/package.json | 111 - build/node_modules/base64-js/LICENSE | 21 - build/node_modules/base64-js/README.md | 34 - build/node_modules/base64-js/base64js.min.js | 1 - build/node_modules/base64-js/index.d.ts | 3 - build/node_modules/base64-js/index.js | 150 - build/node_modules/base64-js/package.json | 47 - build/node_modules/batch/.npmignore | 4 - build/node_modules/batch/History.md | 93 - build/node_modules/batch/LICENSE | 22 - build/node_modules/batch/Makefile | 6 - build/node_modules/batch/Readme.md | 53 - build/node_modules/batch/component.json | 14 - build/node_modules/batch/index.js | 173 - build/node_modules/batch/package.json | 19 - .../node_modules/big-integer/BigInteger.d.ts | 2393 -- build/node_modules/big-integer/BigInteger.js | 1453 -- .../big-integer/BigInteger.min.js | 1 - build/node_modules/big-integer/LICENSE | 24 - build/node_modules/big-integer/README.md | 589 - build/node_modules/big-integer/bower.json | 29 - build/node_modules/big-integer/package.json | 48 - build/node_modules/big-integer/tsconfig.json | 26 - build/node_modules/big.js/CHANGELOG.md | 146 - build/node_modules/big.js/LICENCE | 23 - build/node_modules/big.js/README.md | 201 - build/node_modules/big.js/big.js | 941 - build/node_modules/big.js/big.min.js | 2 - build/node_modules/big.js/big.mjs | 924 - build/node_modules/big.js/package.json | 50 - .../binary-extensions/binary-extensions.json | 260 - .../binary-extensions.json.d.ts | 3 - .../node_modules/binary-extensions/index.d.ts | 14 - build/node_modules/binary-extensions/index.js | 1 - build/node_modules/binary-extensions/license | 9 - .../binary-extensions/package.json | 38 - .../node_modules/binary-extensions/readme.md | 41 - build/node_modules/body-parser/HISTORY.md | 657 - build/node_modules/body-parser/LICENSE | 23 - build/node_modules/body-parser/README.md | 464 - build/node_modules/body-parser/SECURITY.md | 25 - build/node_modules/body-parser/index.js | 156 - build/node_modules/body-parser/package.json | 56 - build/node_modules/bonjour-service/LICENSE | 23 - build/node_modules/bonjour-service/README.md | 195 - .../node_modules/bonjour-service/package.json | 53 - build/node_modules/boolbase/README.md | 10 - build/node_modules/boolbase/index.js | 8 - build/node_modules/boolbase/package.json | 23 - build/node_modules/bootstrap/LICENSE | 21 - build/node_modules/bootstrap/README.md | 246 - build/node_modules/bootstrap/package.json | 184 - build/node_modules/bplist-parser/README.md | 48 - .../bplist-parser/bplistParser.js | 363 - build/node_modules/bplist-parser/package.json | 34 - build/node_modules/brace-expansion/LICENSE | 21 - build/node_modules/brace-expansion/README.md | 129 - build/node_modules/brace-expansion/index.js | 201 - .../node_modules/brace-expansion/package.json | 47 - build/node_modules/braces/CHANGELOG.md | 184 - build/node_modules/braces/LICENSE | 21 - build/node_modules/braces/README.md | 593 - build/node_modules/braces/index.js | 170 - build/node_modules/braces/package.json | 77 - build/node_modules/browserslist/LICENSE | 20 - build/node_modules/browserslist/README.md | 73 - build/node_modules/browserslist/browser.js | 52 - build/node_modules/browserslist/cli.js | 156 - build/node_modules/browserslist/error.d.ts | 7 - build/node_modules/browserslist/error.js | 12 - build/node_modules/browserslist/index.d.ts | 200 - build/node_modules/browserslist/index.js | 1197 - build/node_modules/browserslist/node.js | 410 - build/node_modules/browserslist/package.json | 44 - build/node_modules/browserslist/parse.js | 78 - .../node_modules/buffer-alloc-unsafe/index.js | 17 - .../buffer-alloc-unsafe/package.json | 24 - .../buffer-alloc-unsafe/readme.md | 46 - build/node_modules/buffer-alloc/index.js | 32 - build/node_modules/buffer-alloc/package.json | 26 - build/node_modules/buffer-alloc/readme.md | 43 - build/node_modules/buffer-fill/index.js | 113 - build/node_modules/buffer-fill/package.json | 16 - build/node_modules/buffer-fill/readme.md | 54 - build/node_modules/buffer-from/LICENSE | 21 - build/node_modules/buffer-from/index.js | 72 - build/node_modules/buffer-from/package.json | 19 - build/node_modules/buffer-from/readme.md | 69 - build/node_modules/buffer/AUTHORS.md | 73 - build/node_modules/buffer/LICENSE | 21 - build/node_modules/buffer/README.md | 410 - build/node_modules/buffer/index.d.ts | 194 - build/node_modules/buffer/index.js | 2106 -- build/node_modules/buffer/package.json | 93 - .../builtin-modules/builtin-modules.json | 43 - build/node_modules/builtin-modules/index.d.ts | 14 - build/node_modules/builtin-modules/index.js | 11 - build/node_modules/builtin-modules/license | 9 - .../node_modules/builtin-modules/package.json | 44 - build/node_modules/builtin-modules/readme.md | 44 - .../node_modules/builtin-modules/static.d.ts | 14 - build/node_modules/builtin-modules/static.js | 2 - build/node_modules/builtins/.travis.yml | 4 - build/node_modules/builtins/History.md | 39 - build/node_modules/builtins/License | 20 - build/node_modules/builtins/Readme.md | 18 - build/node_modules/builtins/builtins.json | 35 - build/node_modules/builtins/package.json | 14 - build/node_modules/builtins/test.js | 5 - build/node_modules/bundle-name/index.js | 5 - build/node_modules/bundle-name/license | 9 - build/node_modules/bundle-name/package.json | 44 - build/node_modules/bundle-name/readme.md | 23 - build/node_modules/bytes/History.md | 97 - build/node_modules/bytes/LICENSE | 23 - build/node_modules/bytes/Readme.md | 152 - build/node_modules/bytes/index.js | 170 - build/node_modules/bytes/package.json | 42 - build/node_modules/cacache/LICENSE.md | 16 - build/node_modules/cacache/README.md | 703 - build/node_modules/cacache/get.js | 237 - build/node_modules/cacache/index.js | 46 - build/node_modules/cacache/ls.js | 6 - build/node_modules/cacache/package.json | 80 - build/node_modules/cacache/put.js | 83 - build/node_modules/cacache/rm.js | 31 - build/node_modules/cacache/verify.js | 3 - build/node_modules/cache-base/LICENSE | 21 - build/node_modules/cache-base/README.md | 291 - build/node_modules/cache-base/index.js | 261 - build/node_modules/cache-base/package.json | 82 - build/node_modules/call-bind/.eslintignore | 1 - build/node_modules/call-bind/.eslintrc | 16 - build/node_modules/call-bind/.nycrc | 9 - build/node_modules/call-bind/CHANGELOG.md | 77 - build/node_modules/call-bind/LICENSE | 21 - build/node_modules/call-bind/README.md | 64 - build/node_modules/call-bind/callBound.js | 15 - build/node_modules/call-bind/index.js | 44 - build/node_modules/call-bind/package.json | 90 - build/node_modules/call-me-maybe/LICENSE | 22 - build/node_modules/call-me-maybe/README.md | 26 - build/node_modules/call-me-maybe/package.json | 45 - build/node_modules/callsites/index.d.ts | 96 - build/node_modules/callsites/index.js | 13 - build/node_modules/callsites/license | 9 - build/node_modules/callsites/package.json | 39 - build/node_modules/callsites/readme.md | 48 - build/node_modules/camel-case/LICENSE | 21 - build/node_modules/camel-case/README.md | 47 - build/node_modules/camel-case/package.json | 89 - build/node_modules/camelcase/index.d.ts | 103 - build/node_modules/camelcase/index.js | 113 - build/node_modules/camelcase/license | 9 - build/node_modules/camelcase/package.json | 44 - build/node_modules/camelcase/readme.md | 144 - build/node_modules/caniuse-api/CHANGELOG.md | 92 - build/node_modules/caniuse-api/LICENSE | 21 - build/node_modules/caniuse-api/README.md | 157 - build/node_modules/caniuse-api/package.json | 47 - build/node_modules/caniuse-lite/LICENSE | 395 - build/node_modules/caniuse-lite/README.md | 6 - build/node_modules/caniuse-lite/package.json | 34 - build/node_modules/capital-case/LICENSE | 21 - build/node_modules/capital-case/README.md | 37 - build/node_modules/capital-case/package.json | 90 - build/node_modules/cardinal/.npmignore | 1 - build/node_modules/cardinal/.travis.yml | 6 - build/node_modules/cardinal/LICENSE | 23 - build/node_modules/cardinal/README.md | 131 - build/node_modules/cardinal/cardinal.js | 7 - build/node_modules/cardinal/package.json | 47 - build/node_modules/cardinal/settings.js | 53 - build/node_modules/cardinal/utl.js | 12 - build/node_modules/chai/CODEOWNERS | 1 - build/node_modules/chai/CODE_OF_CONDUCT.md | 58 - build/node_modules/chai/CONTRIBUTING.md | 212 - build/node_modules/chai/History.md | 1059 - build/node_modules/chai/LICENSE | 21 - build/node_modules/chai/README.md | 212 - build/node_modules/chai/ReleaseNotes.md | 737 - build/node_modules/chai/bower.json | 26 - build/node_modules/chai/chai.js | 11523 --------- build/node_modules/chai/index.js | 1 - build/node_modules/chai/index.mjs | 14 - build/node_modules/chai/karma.conf.js | 34 - build/node_modules/chai/karma.sauce.js | 41 - build/node_modules/chai/package.json | 63 - build/node_modules/chai/register-assert.js | 1 - build/node_modules/chai/register-expect.js | 1 - build/node_modules/chai/register-should.js | 1 - build/node_modules/chai/sauce.browsers.js | 106 - build/node_modules/chalk/index.d.ts | 415 - build/node_modules/chalk/license | 9 - build/node_modules/chalk/package.json | 68 - build/node_modules/chalk/readme.md | 341 - build/node_modules/change-case/LICENSE | 21 - build/node_modules/change-case/README.md | 44 - build/node_modules/change-case/package.json | 101 - build/node_modules/charenc/LICENSE.mkd | 27 - build/node_modules/charenc/README.js | 1 - build/node_modules/charenc/charenc.js | 33 - build/node_modules/charenc/package.json | 24 - build/node_modules/check-error/LICENSE | 19 - build/node_modules/check-error/README.md | 207 - build/node_modules/check-error/check-error.js | 1 - build/node_modules/check-error/index.js | 148 - build/node_modules/check-error/package.json | 87 - build/node_modules/chokidar/LICENSE | 21 - build/node_modules/chokidar/README.md | 308 - build/node_modules/chokidar/index.js | 973 - build/node_modules/chokidar/package.json | 85 - build/node_modules/chownr/LICENSE | 15 - build/node_modules/chownr/README.md | 3 - build/node_modules/chownr/chownr.js | 167 - build/node_modules/chownr/package.json | 32 - .../chrome-trace-event/CHANGES.md | 26 - .../chrome-trace-event/LICENSE.txt | 23 - .../node_modules/chrome-trace-event/README.md | 31 - .../chrome-trace-event/package.json | 38 - build/node_modules/ci-info/CHANGELOG.md | 178 - build/node_modules/ci-info/LICENSE | 21 - build/node_modules/ci-info/README.md | 135 - build/node_modules/ci-info/index.d.ts | 75 - build/node_modules/ci-info/index.js | 90 - build/node_modules/ci-info/package.json | 45 - build/node_modules/ci-info/vendors.json | 321 - build/node_modules/class-utils/LICENSE | 21 - build/node_modules/class-utils/README.md | 300 - build/node_modules/class-utils/index.js | 370 - build/node_modules/class-utils/package.json | 90 - build/node_modules/clean-stack/index.d.ts | 47 - build/node_modules/clean-stack/index.js | 40 - build/node_modules/clean-stack/license | 9 - build/node_modules/clean-stack/package.json | 39 - build/node_modules/clean-stack/readme.md | 76 - .../node_modules/clean-webpack-plugin/LICENSE | 22 - .../clean-webpack-plugin/README.md | 161 - .../clean-webpack-plugin/package.json | 82 - build/node_modules/cli-boxes/boxes.json | 82 - build/node_modules/cli-boxes/index.d.ts | 127 - build/node_modules/cli-boxes/index.js | 6 - build/node_modules/cli-boxes/license | 9 - build/node_modules/cli-boxes/package.json | 42 - build/node_modules/cli-boxes/readme.md | 115 - build/node_modules/cli-cursor/index.d.ts | 45 - build/node_modules/cli-cursor/index.js | 35 - build/node_modules/cli-cursor/license | 9 - build/node_modules/cli-cursor/package.json | 46 - build/node_modules/cli-cursor/readme.md | 55 - build/node_modules/cli-table3/CHANGELOG.md | 104 - build/node_modules/cli-table3/LICENSE | 21 - build/node_modules/cli-table3/README.md | 236 - build/node_modules/cli-table3/index.d.ts | 93 - build/node_modules/cli-table3/index.js | 1 - build/node_modules/cli-table3/package.json | 100 - build/node_modules/clone-deep/LICENSE | 21 - build/node_modules/clone-deep/README.md | 106 - build/node_modules/clone-deep/index.js | 49 - build/node_modules/clone-deep/package.json | 81 - build/node_modules/clone/.npmignore | 4 - build/node_modules/clone/LICENSE | 18 - build/node_modules/clone/README.md | 194 - build/node_modules/clone/clone.iml | 10 - build/node_modules/clone/clone.js | 257 - build/node_modules/clone/package.json | 56 - build/node_modules/co-compose/LICENSE.md | 9 - build/node_modules/co-compose/README.md | 164 - build/node_modules/co-compose/package.json | 123 - build/node_modules/collection-visit/LICENSE | 21 - build/node_modules/collection-visit/README.md | 89 - build/node_modules/collection-visit/index.js | 30 - .../collection-visit/package.json | 76 - build/node_modules/color-convert/CHANGELOG.md | 54 - build/node_modules/color-convert/LICENSE | 21 - build/node_modules/color-convert/README.md | 68 - .../node_modules/color-convert/conversions.js | 839 - build/node_modules/color-convert/index.js | 81 - build/node_modules/color-convert/package.json | 48 - build/node_modules/color-convert/route.js | 97 - build/node_modules/color-name/LICENSE | 8 - build/node_modules/color-name/README.md | 11 - build/node_modules/color-name/index.js | 152 - build/node_modules/color-name/package.json | 28 - build/node_modules/color-support/LICENSE | 15 - build/node_modules/color-support/README.md | 129 - build/node_modules/color-support/bin.js | 3 - build/node_modules/color-support/browser.js | 14 - build/node_modules/color-support/index.js | 134 - build/node_modules/color-support/package.json | 36 - build/node_modules/colord/CHANGELOG.md | 188 - build/node_modules/colord/LICENSE.md | 21 - build/node_modules/colord/README.md | 1053 - build/node_modules/colord/colord.d.ts | 103 - build/node_modules/colord/constants.d.ts | 10 - build/node_modules/colord/extend.d.ts | 4 - build/node_modules/colord/helpers.d.ts | 20 - build/node_modules/colord/index.d.ts | 5 - build/node_modules/colord/index.js | 1 - build/node_modules/colord/index.mjs | 1 - build/node_modules/colord/package.json | 210 - build/node_modules/colord/parse.d.ts | 8 - build/node_modules/colord/random.d.ts | 2 - build/node_modules/colord/types.d.ts | 67 - build/node_modules/colorette/LICENSE.md | 7 - build/node_modules/colorette/README.md | 134 - build/node_modules/colorette/index.cjs | 218 - build/node_modules/colorette/index.d.ts | 93 - build/node_modules/colorette/index.js | 150 - build/node_modules/colorette/package.json | 40 - build/node_modules/columnify/LICENSE | 21 - build/node_modules/columnify/Makefile | 9 - build/node_modules/columnify/Readme.md | 475 - build/node_modules/columnify/columnify.js | 306 - build/node_modules/columnify/index.js | 297 - build/node_modules/columnify/package.json | 53 - build/node_modules/columnify/utils.js | 193 - build/node_modules/columnify/width.js | 6 - build/node_modules/combined-stream/License | 19 - build/node_modules/combined-stream/Readme.md | 138 - .../node_modules/combined-stream/package.json | 25 - build/node_modules/combined-stream/yarn.lock | 17 - build/node_modules/commander/CHANGELOG.md | 419 - build/node_modules/commander/LICENSE | 22 - build/node_modules/commander/Readme.md | 428 - build/node_modules/commander/index.js | 1224 - build/node_modules/commander/package.json | 38 - build/node_modules/comment-json/HISTORY.md | 1 - build/node_modules/comment-json/LICENSE | 21 - build/node_modules/comment-json/README.md | 456 - build/node_modules/comment-json/index.d.ts | 85 - build/node_modules/comment-json/package.json | 68 - build/node_modules/commondir/LICENSE | 24 - build/node_modules/commondir/index.js | 29 - build/node_modules/commondir/package.json | 34 - build/node_modules/commondir/readme.markdown | 48 - .../node_modules/component-emitter/History.md | 75 - build/node_modules/component-emitter/LICENSE | 24 - .../node_modules/component-emitter/Readme.md | 74 - build/node_modules/component-emitter/index.js | 175 - .../component-emitter/package.json | 27 - build/node_modules/compressible/HISTORY.md | 111 - build/node_modules/compressible/LICENSE | 24 - build/node_modules/compressible/README.md | 61 - build/node_modules/compressible/index.js | 58 - build/node_modules/compressible/package.json | 48 - build/node_modules/compression/HISTORY.md | 307 - build/node_modules/compression/LICENSE | 23 - build/node_modules/compression/README.md | 240 - build/node_modules/compression/index.js | 288 - build/node_modules/compression/package.json | 47 - build/node_modules/concat-map/.travis.yml | 4 - build/node_modules/concat-map/LICENSE | 18 - build/node_modules/concat-map/README.markdown | 62 - build/node_modules/concat-map/index.js | 13 - build/node_modules/concat-map/package.json | 43 - .../connect-history-api-fallback/LICENSE | 21 - .../connect-history-api-fallback/README.md | 160 - .../connect-history-api-fallback/package.json | 40 - build/node_modules/consola/CHANGELOG.md | 706 - build/node_modules/consola/README.md | 288 - build/node_modules/consola/package.json | 80 - .../console-control-strings/LICENSE | 13 - .../console-control-strings/README.md | 145 - .../console-control-strings/README.md~ | 140 - .../console-control-strings/index.js | 125 - .../console-control-strings/package.json | 27 - build/node_modules/constant-case/LICENSE | 21 - build/node_modules/constant-case/README.md | 37 - build/node_modules/constant-case/package.json | 90 - .../content-disposition/HISTORY.md | 60 - .../node_modules/content-disposition/LICENSE | 22 - .../content-disposition/README.md | 142 - .../node_modules/content-disposition/index.js | 458 - .../content-disposition/package.json | 44 - build/node_modules/content-type/HISTORY.md | 29 - build/node_modules/content-type/LICENSE | 22 - build/node_modules/content-type/README.md | 94 - build/node_modules/content-type/index.js | 225 - build/node_modules/content-type/package.json | 42 - build/node_modules/convert-hrtime/index.d.ts | 22 - build/node_modules/convert-hrtime/index.js | 13 - build/node_modules/convert-hrtime/license | 9 - .../node_modules/convert-hrtime/package.json | 42 - build/node_modules/convert-hrtime/readme.md | 25 - build/node_modules/convert-source-map/LICENSE | 23 - .../node_modules/convert-source-map/README.md | 206 - .../node_modules/convert-source-map/index.js | 233 - .../convert-source-map/package.json | 38 - .../node_modules/cookie-signature/.npmignore | 4 - .../node_modules/cookie-signature/History.md | 38 - build/node_modules/cookie-signature/Readme.md | 42 - build/node_modules/cookie-signature/index.js | 51 - .../cookie-signature/package.json | 18 - build/node_modules/cookie/HISTORY.md | 142 - build/node_modules/cookie/LICENSE | 24 - build/node_modules/cookie/README.md | 302 - build/node_modules/cookie/SECURITY.md | 25 - build/node_modules/cookie/index.js | 270 - build/node_modules/cookie/package.json | 44 - build/node_modules/cookiejar/LICENSE | 9 - build/node_modules/cookiejar/cookiejar.js | 281 - build/node_modules/cookiejar/package.json | 26 - build/node_modules/cookiejar/readme.md | 60 - build/node_modules/copy-descriptor/LICENSE | 21 - build/node_modules/copy-descriptor/index.js | 81 - .../node_modules/copy-descriptor/package.json | 56 - build/node_modules/core-js-compat/LICENSE | 19 - build/node_modules/core-js-compat/README.md | 135 - build/node_modules/core-js-compat/compat.d.ts | 48 - build/node_modules/core-js-compat/compat.js | 89 - build/node_modules/core-js-compat/data.json | 6440 ----- .../node_modules/core-js-compat/entries.json | 18819 -------------- .../node_modules/core-js-compat/external.json | 21 - .../get-modules-list-for-target-version.d.ts | 5 - .../get-modules-list-for-target-version.js | 18 - build/node_modules/core-js-compat/helpers.js | 61 - build/node_modules/core-js-compat/index.d.ts | 27 - build/node_modules/core-js-compat/index.js | 14 - .../core-js-compat/modules-by-versions.json | 518 - .../node_modules/core-js-compat/modules.json | 460 - .../node_modules/core-js-compat/package.json | 27 - build/node_modules/core-js-compat/shared.d.ts | 32 - .../core-js-compat/targets-parser.js | 92 - build/node_modules/core-util-is/LICENSE | 19 - build/node_modules/core-util-is/README.md | 3 - build/node_modules/core-util-is/package.json | 38 - build/node_modules/cp-file/cp-file-error.js | 12 - build/node_modules/cp-file/fs.js | 78 - build/node_modules/cp-file/index.d.ts | 91 - build/node_modules/cp-file/index.js | 111 - build/node_modules/cp-file/license | 9 - build/node_modules/cp-file/package.json | 64 - .../node_modules/cp-file/progress-emitter.js | 35 - build/node_modules/cp-file/readme.md | 116 - build/node_modules/cpy/cpy-error.js | 12 - build/node_modules/cpy/index.d.ts | 161 - build/node_modules/cpy/index.js | 159 - build/node_modules/cpy/license | 9 - build/node_modules/cpy/package.json | 64 - build/node_modules/cpy/readme.md | 203 - build/node_modules/cross-spawn/CHANGELOG.md | 130 - build/node_modules/cross-spawn/LICENSE | 21 - build/node_modules/cross-spawn/README.md | 96 - build/node_modules/cross-spawn/index.js | 39 - build/node_modules/cross-spawn/package.json | 73 - build/node_modules/crypt/LICENSE.mkd | 27 - build/node_modules/crypt/README.mkd | 1 - build/node_modules/crypt/crypt.js | 96 - build/node_modules/crypt/package.json | 22 - build/node_modules/csrf/HISTORY.md | 113 - build/node_modules/csrf/LICENSE | 22 - build/node_modules/csrf/README.md | 143 - build/node_modules/csrf/index.d.ts | 48 - build/node_modules/csrf/index.js | 159 - build/node_modules/csrf/package.json | 51 - .../css-declaration-sorter/license.md | 15 - .../css-declaration-sorter/package.json | 59 - .../css-declaration-sorter/readme.md | 126 - build/node_modules/css-loader/LICENSE | 20 - build/node_modules/css-loader/README.md | 2042 -- build/node_modules/css-loader/package.json | 104 - .../css-minimizer-webpack-plugin/LICENSE | 20 - .../css-minimizer-webpack-plugin/README.md | 624 - .../css-minimizer-webpack-plugin/package.json | 130 - build/node_modules/css-select/LICENSE | 11 - build/node_modules/css-select/README.md | 255 - build/node_modules/css-select/package.json | 70 - build/node_modules/css-tree/CHANGELOG.md | 590 - build/node_modules/css-tree/LICENSE | 19 - build/node_modules/css-tree/README.md | 130 - build/node_modules/css-tree/package.json | 60 - build/node_modules/css-what/LICENSE | 11 - build/node_modules/css-what/package.json | 59 - build/node_modules/css-what/readme.md | 69 - build/node_modules/cssesc/LICENSE-MIT.txt | 20 - build/node_modules/cssesc/README.md | 201 - build/node_modules/cssesc/cssesc.js | 110 - build/node_modules/cssesc/package.json | 51 - .../cssnano-preset-default/LICENSE-MIT | 22 - .../cssnano-preset-default/README.md | 295 - .../cssnano-preset-default/package.json | 63 - build/node_modules/cssnano-utils/LICENSE | 22 - build/node_modules/cssnano-utils/README.md | 15 - build/node_modules/cssnano-utils/package.json | 28 - build/node_modules/cssnano/LICENSE-MIT | 22 - build/node_modules/cssnano/README.md | 6 - build/node_modules/cssnano/package.json | 53 - build/node_modules/csso/CHANGELOG.md | 421 - build/node_modules/csso/LICENSE | 20 - build/node_modules/csso/README.md | 372 - build/node_modules/csso/package.json | 65 - build/node_modules/cuid/LICENSE | 9 - build/node_modules/cuid/README.md | 205 - build/node_modules/cuid/index.d.ts | 24 - build/node_modules/cuid/index.js | 84 - build/node_modules/cuid/package.json | 66 - build/node_modules/dag-map/LICENSE | 20 - build/node_modules/dag-map/README.md | 48 - build/node_modules/dag-map/package.json | 28 - .../data-uri-to-buffer/.travis.yml | 25 - .../data-uri-to-buffer/History.md | 55 - .../node_modules/data-uri-to-buffer/README.md | 88 - .../data-uri-to-buffer/index.d.ts | 10 - .../node_modules/data-uri-to-buffer/index.js | 70 - .../data-uri-to-buffer/package.json | 34 - build/node_modules/dateformat/LICENSE | 20 - build/node_modules/dateformat/Readme.md | 204 - build/node_modules/dateformat/package.json | 38 - build/node_modules/debug/LICENSE | 20 - build/node_modules/debug/README.md | 481 - build/node_modules/debug/package.json | 59 - build/node_modules/decimal.js/LICENCE.md | 23 - build/node_modules/decimal.js/README.md | 246 - build/node_modules/decimal.js/decimal.d.ts | 299 - build/node_modules/decimal.js/decimal.js | 4934 ---- build/node_modules/decimal.js/decimal.mjs | 4898 ---- build/node_modules/decimal.js/package.json | 55 - .../decode-uri-component/index.js | 94 - .../node_modules/decode-uri-component/license | 9 - .../decode-uri-component/package.json | 37 - .../decode-uri-component/readme.md | 83 - build/node_modules/deep-eql/LICENSE | 19 - build/node_modules/deep-eql/README.md | 93 - build/node_modules/deep-eql/deep-eql.js | 1 - build/node_modules/deep-eql/index.js | 493 - build/node_modules/deep-eql/package.json | 79 - build/node_modules/deep-extend/CHANGELOG.md | 46 - build/node_modules/deep-extend/LICENSE | 20 - build/node_modules/deep-extend/README.md | 91 - build/node_modules/deep-extend/index.js | 1 - build/node_modules/deep-extend/package.json | 62 - build/node_modules/deep-is/.travis.yml | 5 - build/node_modules/deep-is/LICENSE | 22 - build/node_modules/deep-is/README.markdown | 70 - build/node_modules/deep-is/index.js | 102 - build/node_modules/deep-is/package.json | 58 - .../node_modules/default-browser-id/index.js | 42 - build/node_modules/default-browser-id/license | 9 - .../default-browser-id/package.json | 44 - .../node_modules/default-browser-id/readme.md | 19 - build/node_modules/default-browser/index.d.ts | 28 - build/node_modules/default-browser/index.js | 30 - build/node_modules/default-browser/license | 9 - .../node_modules/default-browser/package.json | 52 - build/node_modules/default-browser/readme.md | 24 - build/node_modules/default-browser/windows.js | 37 - build/node_modules/default-gateway/LICENSE | 22 - build/node_modules/default-gateway/README.md | 51 - build/node_modules/default-gateway/android.js | 43 - build/node_modules/default-gateway/darwin.js | 52 - build/node_modules/default-gateway/freebsd.js | 44 - build/node_modules/default-gateway/ibmi.js | 36 - build/node_modules/default-gateway/index.js | 35 - build/node_modules/default-gateway/linux.js | 57 - build/node_modules/default-gateway/openbsd.js | 47 - .../node_modules/default-gateway/package.json | 41 - build/node_modules/default-gateway/sunos.js | 47 - build/node_modules/default-gateway/win32.js | 99 - build/node_modules/defaults/LICENSE | 22 - build/node_modules/defaults/README.md | 39 - build/node_modules/defaults/index.js | 13 - build/node_modules/defaults/package.json | 33 - build/node_modules/defaults/test.js | 34 - .../define-data-property/.eslintrc | 24 - .../node_modules/define-data-property/.nycrc | 13 - .../define-data-property/CHANGELOG.md | 41 - .../node_modules/define-data-property/LICENSE | 21 - .../define-data-property/README.md | 67 - .../define-data-property/index.d.ts | 3 - .../define-data-property/index.d.ts.map | 1 - .../define-data-property/index.js | 68 - .../define-data-property/package.json | 113 - .../define-data-property/tsconfig.json | 59 - .../node_modules/define-lazy-prop/index.d.ts | 33 - build/node_modules/define-lazy-prop/index.js | 19 - build/node_modules/define-lazy-prop/license | 9 - .../define-lazy-prop/package.json | 48 - build/node_modules/define-lazy-prop/readme.md | 64 - .../node_modules/define-property/CHANGELOG.md | 82 - build/node_modules/define-property/LICENSE | 21 - build/node_modules/define-property/README.md | 117 - build/node_modules/define-property/index.js | 38 - .../node_modules/define-property/package.json | 67 - build/node_modules/del/index.d.ts | 83 - build/node_modules/del/index.js | 70 - build/node_modules/del/license | 9 - build/node_modules/del/package.json | 64 - build/node_modules/del/readme.md | 125 - build/node_modules/delayed-stream/.npmignore | 1 - build/node_modules/delayed-stream/License | 19 - build/node_modules/delayed-stream/Makefile | 7 - build/node_modules/delayed-stream/Readme.md | 141 - .../node_modules/delayed-stream/package.json | 27 - build/node_modules/delegates/.npmignore | 1 - build/node_modules/delegates/History.md | 22 - build/node_modules/delegates/License | 20 - build/node_modules/delegates/Makefile | 8 - build/node_modules/delegates/Readme.md | 94 - build/node_modules/delegates/index.js | 121 - build/node_modules/delegates/package.json | 13 - build/node_modules/depd/History.md | 103 - build/node_modules/depd/LICENSE | 22 - build/node_modules/depd/Readme.md | 280 - build/node_modules/depd/index.js | 538 - build/node_modules/depd/package.json | 45 - build/node_modules/destroy/LICENSE | 23 - build/node_modules/destroy/README.md | 63 - build/node_modules/destroy/index.js | 209 - build/node_modules/destroy/package.json | 48 - build/node_modules/detect-indent/index.d.ts | 50 - build/node_modules/detect-indent/index.js | 160 - build/node_modules/detect-indent/license | 9 - build/node_modules/detect-indent/package.json | 45 - build/node_modules/detect-indent/readme.md | 120 - build/node_modules/detect-libc/LICENSE | 201 - build/node_modules/detect-libc/README.md | 163 - build/node_modules/detect-libc/index.d.ts | 14 - build/node_modules/detect-libc/package.json | 40 - build/node_modules/detect-node/LICENSE | 21 - build/node_modules/detect-node/Readme.md | 30 - build/node_modules/detect-node/browser.js | 2 - build/node_modules/detect-node/index.esm.js | 2 - build/node_modules/detect-node/index.js | 2 - build/node_modules/detect-node/package.json | 25 - build/node_modules/dezalgo/LICENSE | 15 - build/node_modules/dezalgo/README.md | 29 - build/node_modules/dezalgo/dezalgo.js | 22 - build/node_modules/dezalgo/package.json | 46 - build/node_modules/diff-sequences/LICENSE | 21 - build/node_modules/diff-sequences/README.md | 404 - .../node_modules/diff-sequences/package.json | 39 - build/node_modules/dir-glob/index.js | 65 - build/node_modules/dir-glob/license | 9 - build/node_modules/dir-glob/package.json | 38 - build/node_modules/dir-glob/readme.md | 87 - build/node_modules/dns-equal/.npmignore | 1 - build/node_modules/dns-equal/.travis.yml | 6 - build/node_modules/dns-equal/LICENSE | 21 - build/node_modules/dns-equal/README.md | 30 - build/node_modules/dns-equal/index.js | 13 - build/node_modules/dns-equal/package.json | 38 - build/node_modules/dns-equal/test.js | 11 - build/node_modules/dns-packet/LICENSE | 21 - build/node_modules/dns-packet/README.md | 402 - build/node_modules/dns-packet/classes.js | 23 - build/node_modules/dns-packet/index.js | 1761 -- build/node_modules/dns-packet/opcodes.js | 50 - build/node_modules/dns-packet/optioncodes.js | 59 - build/node_modules/dns-packet/package.json | 47 - build/node_modules/dns-packet/rcodes.js | 50 - build/node_modules/dns-packet/types.js | 103 - build/node_modules/doctrine/CHANGELOG.md | 101 - build/node_modules/doctrine/LICENSE | 177 - .../doctrine/LICENSE.closure-compiler | 202 - build/node_modules/doctrine/LICENSE.esprima | 19 - build/node_modules/doctrine/README.md | 165 - build/node_modules/doctrine/package.json | 58 - build/node_modules/dom-converter/LICENSE | 20 - build/node_modules/dom-converter/README.md | 3 - build/node_modules/dom-converter/package.json | 38 - build/node_modules/dom-serializer/LICENSE | 11 - build/node_modules/dom-serializer/README.md | 97 - .../node_modules/dom-serializer/package.json | 55 - build/node_modules/domelementtype/LICENSE | 11 - .../node_modules/domelementtype/package.json | 54 - build/node_modules/domelementtype/readme.md | 1 - build/node_modules/domhandler/LICENSE | 11 - build/node_modules/domhandler/package.json | 58 - build/node_modules/domhandler/readme.md | 163 - build/node_modules/domutils/LICENSE | 11 - build/node_modules/domutils/package.json | 65 - build/node_modules/domutils/readme.md | 31 - build/node_modules/dot-case/LICENSE | 21 - build/node_modules/dot-case/README.md | 37 - build/node_modules/dot-case/package.json | 89 - build/node_modules/dotenv/CHANGELOG.md | 431 - build/node_modules/dotenv/LICENSE | 23 - build/node_modules/dotenv/README-es.md | 442 - build/node_modules/dotenv/README.md | 633 - build/node_modules/dotenv/config.d.ts | 1 - build/node_modules/dotenv/config.js | 9 - build/node_modules/dotenv/package.json | 64 - build/node_modules/edge-error/LICENSE.md | 9 - build/node_modules/edge-error/README.md | 45 - build/node_modules/edge-error/package.json | 129 - build/node_modules/edge-lexer/LICENSE.md | 9 - build/node_modules/edge-lexer/README.md | 509 - build/node_modules/edge-lexer/package.json | 111 - build/node_modules/edge-parser/LICENSE.md | 9 - build/node_modules/edge-parser/README.md | 428 - build/node_modules/edge-parser/package.json | 141 - .../node_modules/edge-supercharged/LICENSE.md | 9 - .../node_modules/edge-supercharged/README.md | 78 - .../edge-supercharged/package.json | 90 - build/node_modules/edge.js/LICENSE.md | 9 - build/node_modules/edge.js/README.md | 78 - build/node_modules/edge.js/package.json | 150 - build/node_modules/editorconfig/CHANGELOG.md | 14 - build/node_modules/editorconfig/LICENSE | 19 - build/node_modules/editorconfig/README.md | 206 - build/node_modules/editorconfig/package.json | 59 - build/node_modules/ee-first/LICENSE | 22 - build/node_modules/ee-first/README.md | 80 - build/node_modules/ee-first/index.js | 95 - build/node_modules/ee-first/package.json | 29 - .../electron-to-chromium/CHANGELOG.md | 14 - .../node_modules/electron-to-chromium/LICENSE | 5 - .../electron-to-chromium/README.md | 186 - .../electron-to-chromium/chromium-versions.js | 59 - .../chromium-versions.json | 1 - .../full-chromium-versions.js | 2895 --- .../full-chromium-versions.json | 1 - .../electron-to-chromium/full-versions.js | 2113 -- .../electron-to-chromium/full-versions.json | 1 - .../electron-to-chromium/index.js | 36 - .../electron-to-chromium/package.json | 44 - .../electron-to-chromium/versions.js | 141 - .../electron-to-chromium/versions.json | 1 - build/node_modules/emittery/index.d.ts | 606 - build/node_modules/emittery/index.js | 531 - build/node_modules/emittery/license | 9 - build/node_modules/emittery/maps.js | 9 - build/node_modules/emittery/package.json | 67 - build/node_modules/emittery/readme.md | 569 - .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 - build/node_modules/emoji-regex/README.md | 73 - build/node_modules/emoji-regex/index.d.ts | 23 - build/node_modules/emoji-regex/index.js | 6 - build/node_modules/emoji-regex/package.json | 50 - build/node_modules/emoji-regex/text.js | 6 - build/node_modules/emojis-list/CHANGELOG.md | 85 - build/node_modules/emojis-list/LICENSE.md | 9 - build/node_modules/emojis-list/README.md | 36 - build/node_modules/emojis-list/index.js | 3077 --- build/node_modules/emojis-list/package.json | 45 - build/node_modules/encodeurl/HISTORY.md | 14 - build/node_modules/encodeurl/LICENSE | 22 - build/node_modules/encodeurl/README.md | 128 - build/node_modules/encodeurl/index.js | 60 - build/node_modules/encodeurl/package.json | 40 - build/node_modules/encoding/.prettierrc.js | 8 - build/node_modules/encoding/.travis.yml | 25 - build/node_modules/encoding/LICENSE | 16 - build/node_modules/encoding/README.md | 41 - build/node_modules/encoding/package.json | 18 - build/node_modules/end-of-stream/LICENSE | 21 - build/node_modules/end-of-stream/README.md | 54 - build/node_modules/end-of-stream/index.js | 94 - build/node_modules/end-of-stream/package.json | 37 - build/node_modules/enhanced-resolve/LICENSE | 20 - build/node_modules/enhanced-resolve/README.md | 183 - .../enhanced-resolve/package.json | 72 - .../node_modules/enhanced-resolve/types.d.ts | 712 - build/node_modules/enquirer/LICENSE | 21 - build/node_modules/enquirer/README.md | 1839 -- build/node_modules/enquirer/index.d.ts | 156 - build/node_modules/enquirer/index.js | 254 - build/node_modules/enquirer/package.json | 112 - build/node_modules/entities/LICENSE | 11 - build/node_modules/entities/package.json | 64 - build/node_modules/entities/readme.md | 57 - build/node_modules/env-paths/index.d.ts | 101 - build/node_modules/env-paths/index.js | 74 - build/node_modules/env-paths/license | 9 - build/node_modules/env-paths/package.json | 45 - build/node_modules/env-paths/readme.md | 115 - build/node_modules/envinfo/LICENSE | 21 - build/node_modules/envinfo/README.md | 285 - build/node_modules/envinfo/package.json | 96 - build/node_modules/err-code/.editorconfig | 12 - build/node_modules/err-code/.eslintrc.json | 7 - build/node_modules/err-code/.travis.yml | 4 - build/node_modules/err-code/README.md | 70 - build/node_modules/err-code/bower.json | 30 - build/node_modules/err-code/index.js | 47 - build/node_modules/err-code/index.umd.js | 51 - build/node_modules/err-code/package.json | 34 - build/node_modules/error-stack-parser/LICENSE | 19 - .../node_modules/error-stack-parser/README.md | 44 - .../error-stack-parser.d.ts | 19 - .../error-stack-parser/error-stack-parser.js | 202 - .../error-stack-parser/package.json | 63 - .../node_modules/es-module-lexer/CHANGELOG.md | 52 - build/node_modules/es-module-lexer/LICENSE | 10 - build/node_modules/es-module-lexer/README.md | 187 - .../node_modules/es-module-lexer/package.json | 37 - build/node_modules/escalade/index.d.ts | 3 - build/node_modules/escalade/license | 9 - build/node_modules/escalade/package.json | 61 - build/node_modules/escalade/readme.md | 211 - build/node_modules/escape-goat/index.d.ts | 62 - build/node_modules/escape-goat/index.js | 33 - build/node_modules/escape-goat/license | 9 - build/node_modules/escape-goat/package.json | 45 - build/node_modules/escape-goat/readme.md | 76 - build/node_modules/escape-html/LICENSE | 24 - build/node_modules/escape-html/Readme.md | 43 - build/node_modules/escape-html/index.js | 78 - build/node_modules/escape-html/package.json | 24 - .../@typescript-eslint.js | 3 - .../eslint-config-prettier/LICENSE | 21 - .../eslint-config-prettier/README.md | 11 - .../eslint-config-prettier/babel.js | 3 - .../eslint-config-prettier/flowtype.js | 3 - .../eslint-config-prettier/index.js | 225 - .../eslint-config-prettier/package.json | 13 - .../eslint-config-prettier/prettier.js | 12 - .../eslint-config-prettier/react.js | 3 - .../eslint-config-prettier/standard.js | 3 - .../eslint-config-prettier/unicorn.js | 3 - .../eslint-config-prettier/vue.js | 3 - .../eslint-plugin-adonis/LICENSE.md | 9 - .../eslint-plugin-adonis/README.md | 75 - .../eslint-plugin-adonis/package.json | 46 - .../eslint-plugin-prettier/CHANGELOG.md | 318 - .../eslint-plugin-prettier/LICENSE.md | 24 - .../eslint-plugin-prettier/README.md | 186 - .../eslint-plugin-prettier.d.ts | 5 - .../eslint-plugin-prettier.js | 227 - .../eslint-plugin-prettier/package.json | 89 - .../eslint-plugin-prettier/worker.js | 163 - build/node_modules/eslint-scope/LICENSE | 22 - build/node_modules/eslint-scope/README.md | 70 - build/node_modules/eslint-scope/package.json | 63 - .../node_modules/eslint-visitor-keys/LICENSE | 201 - .../eslint-visitor-keys/README.md | 105 - .../eslint-visitor-keys/package.json | 74 - build/node_modules/eslint/LICENSE | 19 - build/node_modules/eslint/README.md | 304 - build/node_modules/eslint/package.json | 175 - build/node_modules/esm/LICENSE | 23 - build/node_modules/esm/README.md | 137 - build/node_modules/esm/esm.js | 1 - build/node_modules/esm/index.js | 1 - build/node_modules/esm/package.json | 27 - build/node_modules/espree/LICENSE | 25 - build/node_modules/espree/README.md | 244 - build/node_modules/espree/espree.js | 177 - build/node_modules/espree/package.json | 88 - build/node_modules/esprima/ChangeLog | 235 - build/node_modules/esprima/LICENSE.BSD | 21 - build/node_modules/esprima/README.md | 46 - build/node_modules/esprima/package.json | 112 - build/node_modules/esquery/README.md | 27 - build/node_modules/esquery/license.txt | 24 - build/node_modules/esquery/package.json | 78 - build/node_modules/esquery/parser.js | 2550 -- build/node_modules/esrecurse/.babelrc | 3 - build/node_modules/esrecurse/README.md | 171 - build/node_modules/esrecurse/esrecurse.js | 117 - .../node_modules/esrecurse/gulpfile.babel.js | 92 - build/node_modules/esrecurse/package.json | 52 - build/node_modules/estraverse/.jshintrc | 16 - build/node_modules/estraverse/LICENSE.BSD | 19 - build/node_modules/estraverse/README.md | 153 - build/node_modules/estraverse/estraverse.js | 805 - build/node_modules/estraverse/gulpfile.js | 70 - build/node_modules/estraverse/package.json | 40 - build/node_modules/esutils/LICENSE.BSD | 19 - build/node_modules/esutils/README.md | 174 - build/node_modules/esutils/package.json | 44 - build/node_modules/etag/HISTORY.md | 83 - build/node_modules/etag/LICENSE | 22 - build/node_modules/etag/README.md | 159 - build/node_modules/etag/index.js | 131 - build/node_modules/etag/package.json | 47 - build/node_modules/event-target-shim/LICENSE | 22 - .../node_modules/event-target-shim/README.md | 293 - .../node_modules/event-target-shim/index.d.ts | 399 - .../event-target-shim/package.json | 82 - build/node_modules/eventemitter3/LICENSE | 21 - build/node_modules/eventemitter3/README.md | 94 - build/node_modules/eventemitter3/index.d.ts | 134 - build/node_modules/eventemitter3/index.js | 336 - build/node_modules/eventemitter3/package.json | 56 - build/node_modules/events/.airtap.yml | 15 - build/node_modules/events/.travis.yml | 18 - build/node_modules/events/History.md | 118 - build/node_modules/events/LICENSE | 22 - build/node_modules/events/Readme.md | 50 - build/node_modules/events/events.js | 497 - build/node_modules/events/package.json | 37 - build/node_modules/events/security.md | 10 - build/node_modules/execa/index.d.ts | 564 - build/node_modules/execa/index.js | 268 - build/node_modules/execa/license | 9 - build/node_modules/execa/package.json | 74 - build/node_modules/execa/readme.md | 663 - build/node_modules/expand-brackets/LICENSE | 21 - build/node_modules/expand-brackets/README.md | 302 - .../node_modules/expand-brackets/changelog.md | 35 - build/node_modules/expand-brackets/index.js | 211 - .../node_modules/expand-brackets/package.json | 85 - build/node_modules/express/History.md | 3588 --- build/node_modules/express/LICENSE | 24 - build/node_modules/express/Readme.md | 166 - build/node_modules/express/index.js | 11 - build/node_modules/express/package.json | 99 - build/node_modules/extend-shallow/LICENSE | 21 - build/node_modules/extend-shallow/README.md | 97 - build/node_modules/extend-shallow/index.js | 60 - .../node_modules/extend-shallow/package.json | 83 - build/node_modules/extend/.editorconfig | 20 - build/node_modules/extend/.eslintrc | 17 - build/node_modules/extend/.jscs.json | 175 - build/node_modules/extend/.travis.yml | 230 - build/node_modules/extend/CHANGELOG.md | 83 - build/node_modules/extend/LICENSE | 23 - build/node_modules/extend/README.md | 81 - build/node_modules/extend/component.json | 32 - build/node_modules/extend/index.js | 117 - build/node_modules/extend/package.json | 42 - build/node_modules/extglob/LICENSE | 21 - build/node_modules/extglob/README.md | 362 - build/node_modules/extglob/changelog.md | 25 - build/node_modules/extglob/index.js | 331 - build/node_modules/extglob/package.json | 108 - .../fast-copy/.release-it.beta.json | 9 - build/node_modules/fast-copy/.release-it.json | 6 - build/node_modules/fast-copy/CHANGELOG.md | 135 - build/node_modules/fast-copy/LICENSE | 21 - build/node_modules/fast-copy/README.md | 395 - build/node_modules/fast-copy/index.d.ts | 55 - build/node_modules/fast-copy/package.json | 103 - build/node_modules/fast-deep-equal/LICENSE | 21 - build/node_modules/fast-deep-equal/README.md | 96 - build/node_modules/fast-deep-equal/index.d.ts | 4 - build/node_modules/fast-deep-equal/index.js | 46 - .../node_modules/fast-deep-equal/package.json | 61 - build/node_modules/fast-deep-equal/react.d.ts | 2 - build/node_modules/fast-deep-equal/react.js | 53 - build/node_modules/fast-diff/LICENSE | 201 - build/node_modules/fast-diff/README.md | 24 - build/node_modules/fast-diff/diff.d.ts | 21 - build/node_modules/fast-diff/diff.js | 1138 - build/node_modules/fast-diff/package.json | 30 - build/node_modules/fast-glob/LICENSE | 21 - build/node_modules/fast-glob/README.md | 408 - build/node_modules/fast-glob/index.d.ts | 24 - build/node_modules/fast-glob/index.js | 10 - build/node_modules/fast-glob/package.json | 84 - .../fast-json-stable-stringify/.eslintrc.yml | 26 - .../fast-json-stable-stringify/.travis.yml | 8 - .../fast-json-stable-stringify/LICENSE | 21 - .../fast-json-stable-stringify/README.md | 131 - .../fast-json-stable-stringify/index.d.ts | 4 - .../fast-json-stable-stringify/index.js | 59 - .../fast-json-stable-stringify/package.json | 52 - .../node_modules/fast-levenshtein/LICENSE.md | 25 - build/node_modules/fast-levenshtein/README.md | 104 - .../fast-levenshtein/levenshtein.js | 136 - .../fast-levenshtein/package.json | 39 - build/node_modules/fast-redact/LICENSE | 21 - build/node_modules/fast-redact/index.js | 56 - build/node_modules/fast-redact/package.json | 50 - build/node_modules/fast-redact/readme.md | 282 - .../fast-safe-stringify/.travis.yml | 8 - .../fast-safe-stringify/CHANGELOG.md | 17 - .../node_modules/fast-safe-stringify/LICENSE | 23 - .../fast-safe-stringify/benchmark.js | 137 - .../fast-safe-stringify/index.d.ts | 23 - .../node_modules/fast-safe-stringify/index.js | 229 - .../fast-safe-stringify/package.json | 46 - .../fast-safe-stringify/readme.md | 170 - .../fast-safe-stringify/test-stable.js | 404 - .../node_modules/fast-safe-stringify/test.js | 397 - .../fastest-levenshtein/.eslintrc.json | 30 - .../fastest-levenshtein/.prettierrc | 4 - .../fastest-levenshtein/.travis.yml | 21 - .../fastest-levenshtein/LICENSE.md | 21 - .../fastest-levenshtein/README.md | 57 - .../node_modules/fastest-levenshtein/bench.js | 96 - .../node_modules/fastest-levenshtein/mod.d.ts | 3 - build/node_modules/fastest-levenshtein/mod.js | 142 - .../fastest-levenshtein/package.json | 72 - .../node_modules/fastest-levenshtein/test.js | 55 - .../node_modules/fastest-levenshtein/test.ts | 67 - build/node_modules/fastq/LICENSE | 13 - build/node_modules/fastq/README.md | 309 - build/node_modules/fastq/bench.js | 66 - build/node_modules/fastq/example.js | 14 - build/node_modules/fastq/example.mjs | 11 - build/node_modules/fastq/index.d.ts | 37 - build/node_modules/fastq/package.json | 52 - build/node_modules/fastq/queue.js | 289 - .../node_modules/faye-websocket/CHANGELOG.md | 139 - build/node_modules/faye-websocket/LICENSE.md | 12 - build/node_modules/faye-websocket/README.md | 311 - .../node_modules/faye-websocket/package.json | 35 - build/node_modules/file-entry-cache/LICENSE | 22 - build/node_modules/file-entry-cache/README.md | 112 - build/node_modules/file-entry-cache/cache.js | 291 - .../file-entry-cache/changelog.md | 163 - .../file-entry-cache/package.json | 80 - build/node_modules/file-type/browser.d.ts | 50 - build/node_modules/file-type/browser.js | 49 - build/node_modules/file-type/core.d.ts | 386 - build/node_modules/file-type/core.js | 1465 -- build/node_modules/file-type/index.d.ts | 27 - build/node_modules/file-type/index.js | 32 - build/node_modules/file-type/license | 9 - build/node_modules/file-type/package.json | 215 - build/node_modules/file-type/readme.md | 470 - build/node_modules/file-type/supported.js | 279 - build/node_modules/file-type/util.js | 40 - build/node_modules/fill-range/LICENSE | 21 - build/node_modules/fill-range/README.md | 237 - build/node_modules/fill-range/index.js | 249 - build/node_modules/fill-range/package.json | 69 - build/node_modules/finalhandler/HISTORY.md | 195 - build/node_modules/finalhandler/LICENSE | 22 - build/node_modules/finalhandler/README.md | 147 - build/node_modules/finalhandler/SECURITY.md | 25 - build/node_modules/finalhandler/index.js | 336 - build/node_modules/finalhandler/package.json | 46 - build/node_modules/find-cache-dir/index.js | 67 - build/node_modules/find-cache-dir/license | 9 - .../node_modules/find-cache-dir/package.json | 44 - build/node_modules/find-cache-dir/readme.md | 123 - build/node_modules/find-up/index.d.ts | 138 - build/node_modules/find-up/index.js | 89 - build/node_modules/find-up/license | 9 - build/node_modules/find-up/package.json | 54 - build/node_modules/find-up/readme.md | 151 - build/node_modules/flat-cache/LICENSE | 22 - build/node_modules/flat-cache/README.md | 75 - build/node_modules/flat-cache/changelog.md | 328 - build/node_modules/flat-cache/package.json | 61 - build/node_modules/flat/.travis.yml | 8 - build/node_modules/flat/LICENSE | 12 - build/node_modules/flat/README.md | 236 - build/node_modules/flat/cli.js | 42 - build/node_modules/flat/index.js | 158 - build/node_modules/flat/package.json | 37 - build/node_modules/flatstr/LICENSE | 21 - build/node_modules/flatstr/alt-benchmark.js | 234 - build/node_modules/flatstr/benchmark.js | 61 - build/node_modules/flatstr/index.js | 15 - build/node_modules/flatstr/package.json | 30 - build/node_modules/flatstr/readme.md | 82 - build/node_modules/flatstr/test.js | 26 - build/node_modules/flatted/LICENSE | 15 - build/node_modules/flatted/README.md | 115 - build/node_modules/flatted/es.js | 2 - build/node_modules/flatted/esm.js | 2 - build/node_modules/flatted/index.js | 135 - build/node_modules/flatted/min.js | 2 - build/node_modules/flatted/package.json | 64 - build/node_modules/flatted/types.d.ts | 62 - build/node_modules/flattie/index.d.ts | 1 - build/node_modules/flattie/license | 21 - build/node_modules/flattie/package.json | 47 - build/node_modules/flattie/readme.md | 143 - build/node_modules/follow-redirects/LICENSE | 18 - build/node_modules/follow-redirects/README.md | 155 - build/node_modules/follow-redirects/debug.js | 15 - build/node_modules/follow-redirects/http.js | 1 - build/node_modules/follow-redirects/https.js | 1 - build/node_modules/follow-redirects/index.js | 633 - .../follow-redirects/package.json | 58 - build/node_modules/for-in/LICENSE | 21 - build/node_modules/for-in/README.md | 85 - build/node_modules/for-in/index.js | 16 - build/node_modules/for-in/package.json | 68 - build/node_modules/form-data/License | 19 - build/node_modules/form-data/README.md.bak | 358 - build/node_modules/form-data/Readme.md | 358 - build/node_modules/form-data/index.d.ts | 62 - build/node_modules/form-data/package.json | 68 - build/node_modules/formidable/CHANGELOG.md | 92 - build/node_modules/formidable/LICENSE | 21 - build/node_modules/formidable/README.md | 826 - build/node_modules/formidable/package.json | 98 - build/node_modules/forwarded/HISTORY.md | 21 - build/node_modules/forwarded/LICENSE | 22 - build/node_modules/forwarded/README.md | 57 - build/node_modules/forwarded/index.js | 90 - build/node_modules/forwarded/package.json | 45 - build/node_modules/fragment-cache/LICENSE | 21 - build/node_modules/fragment-cache/README.md | 156 - build/node_modules/fragment-cache/index.js | 128 - .../node_modules/fragment-cache/package.json | 60 - build/node_modules/fresh/HISTORY.md | 70 - build/node_modules/fresh/LICENSE | 23 - build/node_modules/fresh/README.md | 119 - build/node_modules/fresh/index.js | 137 - build/node_modules/fresh/package.json | 46 - build/node_modules/fs-extra/LICENSE | 15 - build/node_modules/fs-extra/README.md | 262 - build/node_modules/fs-extra/package.json | 67 - build/node_modules/fs-minipass/LICENSE | 15 - build/node_modules/fs-minipass/README.md | 70 - build/node_modules/fs-minipass/index.js | 422 - build/node_modules/fs-minipass/package.json | 39 - build/node_modules/fs-monkey/LICENSE | 24 - build/node_modules/fs-monkey/README.md | 45 - build/node_modules/fs-monkey/package.json | 69 - .../node_modules/fs-readdir-recursive/LICENSE | 22 - .../fs-readdir-recursive/README.md | 61 - .../fs-readdir-recursive/index.js | 29 - .../fs-readdir-recursive/package.json | 26 - build/node_modules/fs.realpath/LICENSE | 43 - build/node_modules/fs.realpath/README.md | 33 - build/node_modules/fs.realpath/index.js | 66 - build/node_modules/fs.realpath/old.js | 303 - build/node_modules/fs.realpath/package.json | 26 - build/node_modules/function-bind/.eslintrc | 21 - build/node_modules/function-bind/.nycrc | 13 - build/node_modules/function-bind/CHANGELOG.md | 136 - build/node_modules/function-bind/LICENSE | 20 - build/node_modules/function-bind/README.md | 46 - .../function-bind/implementation.js | 84 - build/node_modules/function-bind/index.js | 5 - build/node_modules/function-bind/package.json | 87 - build/node_modules/gauge/CHANGELOG.md | 163 - build/node_modules/gauge/LICENSE | 13 - build/node_modules/gauge/README.md | 402 - build/node_modules/gauge/base-theme.js | 14 - build/node_modules/gauge/error.js | 24 - build/node_modules/gauge/has-color.js | 4 - build/node_modules/gauge/index.js | 233 - build/node_modules/gauge/package.json | 66 - build/node_modules/gauge/plumbing.js | 48 - build/node_modules/gauge/process.js | 3 - build/node_modules/gauge/progress-bar.js | 35 - build/node_modules/gauge/render-template.js | 178 - build/node_modules/gauge/set-immediate.js | 7 - build/node_modules/gauge/set-interval.js | 3 - build/node_modules/gauge/spin.js | 5 - build/node_modules/gauge/template-item.js | 72 - build/node_modules/gauge/theme-set.js | 114 - build/node_modules/gauge/themes.js | 56 - build/node_modules/gauge/wide-truncate.js | 25 - build/node_modules/gensync/LICENSE | 7 - build/node_modules/gensync/README.md | 196 - build/node_modules/gensync/index.js | 373 - build/node_modules/gensync/index.js.flow | 32 - build/node_modules/gensync/package.json | 37 - build/node_modules/get-func-name/LICENSE | 19 - build/node_modules/get-func-name/README.md | 123 - .../get-func-name/get-func-name.js | 1 - build/node_modules/get-func-name/index.js | 52 - build/node_modules/get-func-name/package.json | 85 - build/node_modules/get-intrinsic/.eslintrc | 38 - build/node_modules/get-intrinsic/.nycrc | 9 - build/node_modules/get-intrinsic/CHANGELOG.md | 125 - build/node_modules/get-intrinsic/LICENSE | 21 - build/node_modules/get-intrinsic/README.md | 71 - build/node_modules/get-intrinsic/index.js | 351 - build/node_modules/get-intrinsic/package.json | 93 - .../get-package-type/CHANGELOG.md | 10 - build/node_modules/get-package-type/LICENSE | 21 - build/node_modules/get-package-type/README.md | 32 - build/node_modules/get-package-type/async.cjs | 52 - build/node_modules/get-package-type/cache.cjs | 3 - build/node_modules/get-package-type/index.cjs | 7 - .../get-package-type/is-node-modules.cjs | 15 - .../get-package-type/package.json | 35 - build/node_modules/get-package-type/sync.cjs | 42 - build/node_modules/get-port/index.d.ts | 64 - build/node_modules/get-port/index.js | 109 - build/node_modules/get-port/license | 9 - build/node_modules/get-port/package.json | 46 - build/node_modules/get-port/readme.md | 109 - build/node_modules/get-source/.eslintrc | 6 - build/node_modules/get-source/.travis.yml | 24 - build/node_modules/get-source/LICENSE | 21 - build/node_modules/get-source/README.md | 112 - build/node_modules/get-source/get-source.d.ts | 48 - build/node_modules/get-source/get-source.js | 176 - build/node_modules/get-source/package.json | 43 - .../node_modules/get-stream/buffer-stream.js | 52 - build/node_modules/get-stream/index.d.ts | 105 - build/node_modules/get-stream/index.js | 61 - build/node_modules/get-stream/license | 9 - build/node_modules/get-stream/package.json | 47 - build/node_modules/get-stream/readme.md | 124 - build/node_modules/get-value/LICENSE | 21 - build/node_modules/get-value/index.js | 50 - build/node_modules/get-value/package.json | 79 - build/node_modules/getopts/LICENSE.md | 7 - build/node_modules/getopts/README.md | 264 - build/node_modules/getopts/index.cjs | 193 - build/node_modules/getopts/index.d.ts | 27 - build/node_modules/getopts/index.js | 193 - build/node_modules/getopts/package.json | 41 - build/node_modules/glob-parent/LICENSE | 15 - build/node_modules/glob-parent/README.md | 134 - build/node_modules/glob-parent/index.js | 75 - build/node_modules/glob-parent/package.json | 54 - build/node_modules/glob-to-regexp/.travis.yml | 4 - build/node_modules/glob-to-regexp/README.md | 75 - build/node_modules/glob-to-regexp/index.js | 131 - .../node_modules/glob-to-regexp/package.json | 23 - build/node_modules/glob-to-regexp/test.js | 227 - build/node_modules/glob/LICENSE | 21 - build/node_modules/glob/README.md | 378 - build/node_modules/glob/common.js | 238 - build/node_modules/glob/glob.js | 790 - build/node_modules/glob/package.json | 55 - build/node_modules/glob/sync.js | 486 - build/node_modules/globals/globals.json | 1974 -- build/node_modules/globals/index.d.ts | 6 - build/node_modules/globals/index.js | 2 - build/node_modules/globals/license | 9 - build/node_modules/globals/package.json | 55 - build/node_modules/globals/readme.md | 56 - build/node_modules/globby/gitignore.js | 101 - build/node_modules/globby/index.d.ts | 146 - build/node_modules/globby/index.js | 148 - build/node_modules/globby/license | 9 - build/node_modules/globby/package.json | 82 - build/node_modules/globby/readme.md | 156 - build/node_modules/gopd/.eslintrc | 16 - build/node_modules/gopd/CHANGELOG.md | 25 - build/node_modules/gopd/LICENSE | 21 - build/node_modules/gopd/README.md | 40 - build/node_modules/gopd/index.js | 16 - build/node_modules/gopd/package.json | 71 - build/node_modules/graceful-fs/LICENSE | 15 - build/node_modules/graceful-fs/README.md | 143 - build/node_modules/graceful-fs/clone.js | 23 - build/node_modules/graceful-fs/graceful-fs.js | 448 - .../graceful-fs/legacy-streams.js | 118 - build/node_modules/graceful-fs/package.json | 53 - build/node_modules/graceful-fs/polyfills.js | 355 - build/node_modules/graphemer/CHANGELOG.md | 30 - build/node_modules/graphemer/LICENSE | 18 - build/node_modules/graphemer/README.md | 132 - build/node_modules/graphemer/package.json | 54 - build/node_modules/handle-thing/.travis.yml | 15 - build/node_modules/handle-thing/README.md | 44 - build/node_modules/handle-thing/package.json | 38 - build/node_modules/has-ansi/index.js | 4 - build/node_modules/has-ansi/license | 21 - build/node_modules/has-ansi/package.json | 55 - build/node_modules/has-ansi/readme.md | 36 - build/node_modules/has-flag/index.d.ts | 39 - build/node_modules/has-flag/index.js | 8 - build/node_modules/has-flag/license | 9 - build/node_modules/has-flag/package.json | 46 - build/node_modules/has-flag/readme.md | 89 - build/node_modules/has-glob/LICENSE | 21 - build/node_modules/has-glob/README.md | 133 - build/node_modules/has-glob/index.js | 26 - build/node_modules/has-glob/package.json | 74 - build/node_modules/has-own-prop/index.d.ts | 17 - build/node_modules/has-own-prop/index.js | 4 - build/node_modules/has-own-prop/license | 9 - build/node_modules/has-own-prop/package.json | 33 - build/node_modules/has-own-prop/readme.md | 30 - .../has-property-descriptors/.eslintrc | 13 - .../has-property-descriptors/.nycrc | 9 - .../has-property-descriptors/CHANGELOG.md | 27 - .../has-property-descriptors/LICENSE | 21 - .../has-property-descriptors/README.md | 43 - .../has-property-descriptors/index.js | 33 - .../has-property-descriptors/package.json | 77 - build/node_modules/has-proto/.eslintrc | 5 - build/node_modules/has-proto/CHANGELOG.md | 23 - build/node_modules/has-proto/LICENSE | 21 - build/node_modules/has-proto/README.md | 38 - build/node_modules/has-proto/index.js | 11 - build/node_modules/has-proto/package.json | 74 - build/node_modules/has-symbols/.eslintrc | 11 - build/node_modules/has-symbols/.nycrc | 9 - build/node_modules/has-symbols/CHANGELOG.md | 75 - build/node_modules/has-symbols/LICENSE | 21 - build/node_modules/has-symbols/README.md | 46 - build/node_modules/has-symbols/index.js | 13 - build/node_modules/has-symbols/package.json | 101 - build/node_modules/has-symbols/shams.js | 42 - build/node_modules/has-unicode/LICENSE | 14 - build/node_modules/has-unicode/README.md | 43 - build/node_modules/has-unicode/index.js | 16 - build/node_modules/has-unicode/package.json | 30 - build/node_modules/has-value/LICENSE | 21 - build/node_modules/has-value/README.md | 149 - build/node_modules/has-value/index.js | 16 - build/node_modules/has-value/package.json | 83 - build/node_modules/has-values/LICENSE | 21 - build/node_modules/has-values/README.md | 129 - build/node_modules/has-values/index.js | 60 - build/node_modules/has-values/package.json | 82 - build/node_modules/has-yarn/index.d.ts | 16 - build/node_modules/has-yarn/index.js | 9 - build/node_modules/has-yarn/license | 9 - build/node_modules/has-yarn/package.json | 39 - build/node_modules/has-yarn/readme.md | 60 - build/node_modules/hasown/.eslintrc | 5 - build/node_modules/hasown/.nycrc | 13 - build/node_modules/hasown/CHANGELOG.md | 20 - build/node_modules/hasown/LICENSE | 21 - build/node_modules/hasown/README.md | 40 - build/node_modules/hasown/index.d.ts | 3 - build/node_modules/hasown/index.d.ts.map | 1 - build/node_modules/hasown/index.js | 8 - build/node_modules/hasown/package.json | 91 - build/node_modules/hasown/tsconfig.json | 49 - build/node_modules/haye/CHANGELOG.md | 35 - build/node_modules/haye/README.md | 174 - build/node_modules/haye/package.json | 56 - build/node_modules/he/LICENSE-MIT.txt | 20 - build/node_modules/he/README.md | 379 - build/node_modules/he/he.js | 345 - build/node_modules/he/package.json | 58 - build/node_modules/header-case/LICENSE | 21 - build/node_modules/header-case/README.md | 37 - build/node_modules/header-case/package.json | 89 - build/node_modules/helmet-csp/CHANGELOG.md | 122 - build/node_modules/helmet-csp/LICENSE | 22 - build/node_modules/helmet-csp/README.md | 83 - build/node_modules/helmet-csp/index.d.ts | 23 - build/node_modules/helmet-csp/index.js | 131 - build/node_modules/helmet-csp/package.json | 1 - build/node_modules/help-me/LICENSE | 22 - build/node_modules/help-me/README.md | 66 - build/node_modules/help-me/example.js | 18 - build/node_modules/help-me/help-me.js | 130 - build/node_modules/help-me/package.json | 38 - build/node_modules/help-me/test.js | 348 - build/node_modules/hexoid/hexoid.d.ts | 1 - build/node_modules/hexoid/license | 9 - build/node_modules/hexoid/package.json | 41 - build/node_modules/hexoid/readme.md | 119 - build/node_modules/hpack.js/.npmignore | 2 - build/node_modules/hpack.js/.travis.yml | 6 - build/node_modules/hpack.js/README.md | 52 - build/node_modules/hpack.js/package.json | 35 - build/node_modules/html-entities/LICENSE | 19 - build/node_modules/html-entities/README.md | 217 - build/node_modules/html-entities/package.json | 83 - build/node_modules/htmlparser2/LICENSE | 18 - build/node_modules/htmlparser2/README.md | 164 - build/node_modules/htmlparser2/package.json | 74 - .../node_modules/http-cache-semantics/LICENSE | 9 - .../http-cache-semantics/README.md | 203 - .../http-cache-semantics/index.js | 674 - .../http-cache-semantics/package.json | 18 - build/node_modules/http-deceiver/.npmignore | 2 - build/node_modules/http-deceiver/.travis.yml | 5 - build/node_modules/http-deceiver/README.md | 31 - build/node_modules/http-deceiver/package.json | 30 - build/node_modules/http-errors/HISTORY.md | 180 - build/node_modules/http-errors/LICENSE | 23 - build/node_modules/http-errors/README.md | 169 - build/node_modules/http-errors/index.js | 289 - build/node_modules/http-errors/package.json | 50 - build/node_modules/http-parser-js/LICENSE.md | 110 - build/node_modules/http-parser-js/README.md | 43 - .../http-parser-js/http-parser.d.ts | 175 - .../http-parser-js/http-parser.js | 463 - .../node_modules/http-parser-js/package.json | 30 - build/node_modules/http-proxy-agent/README.md | 74 - .../http-proxy-agent/package.json | 57 - .../http-proxy-middleware/LICENSE | 22 - .../http-proxy-middleware/README.md | 598 - .../http-proxy-middleware/package.json | 109 - build/node_modules/http-proxy/.auto-changelog | 6 - build/node_modules/http-proxy/.gitattributes | 1 - build/node_modules/http-proxy/CHANGELOG.md | 1872 -- .../http-proxy/CODE_OF_CONDUCT.md | 74 - build/node_modules/http-proxy/LICENSE | 23 - build/node_modules/http-proxy/README.md | 568 - build/node_modules/http-proxy/codecov.yml | 10 - build/node_modules/http-proxy/index.js | 13 - build/node_modules/http-proxy/package.json | 41 - build/node_modules/http-proxy/renovate.json | 19 - .../node_modules/https-proxy-agent/README.md | 137 - .../https-proxy-agent/package.json | 56 - build/node_modules/human-signals/CHANGELOG.md | 11 - build/node_modules/human-signals/LICENSE | 201 - build/node_modules/human-signals/README.md | 165 - build/node_modules/human-signals/package.json | 64 - build/node_modules/humanize-ms/History.md | 25 - build/node_modules/humanize-ms/LICENSE | 17 - build/node_modules/humanize-ms/README.md | 40 - build/node_modules/humanize-ms/index.js | 24 - build/node_modules/humanize-ms/package.json | 37 - build/node_modules/iconv-lite/Changelog.md | 162 - build/node_modules/iconv-lite/LICENSE | 21 - build/node_modules/iconv-lite/README.md | 156 - build/node_modules/iconv-lite/package.json | 46 - build/node_modules/icss-utils/CHANGELOG.md | 30 - build/node_modules/icss-utils/LICENSE.md | 6 - build/node_modules/icss-utils/README.md | 94 - build/node_modules/icss-utils/package.json | 52 - build/node_modules/ieee754/LICENSE | 11 - build/node_modules/ieee754/README.md | 51 - build/node_modules/ieee754/index.d.ts | 10 - build/node_modules/ieee754/index.js | 85 - build/node_modules/ieee754/package.json | 52 - build/node_modules/igniculus/.npmignore | 24 - build/node_modules/igniculus/CHANGELOG.md | 59 - build/node_modules/igniculus/LICENSE | 19 - build/node_modules/igniculus/README.md | 355 - build/node_modules/igniculus/index.js | 461 - build/node_modules/igniculus/package.json | 46 - build/node_modules/ignore/LICENSE-MIT | 21 - build/node_modules/ignore/README.md | 412 - build/node_modules/ignore/index.d.ts | 61 - build/node_modules/ignore/index.js | 618 - build/node_modules/ignore/legacy.js | 539 - build/node_modules/ignore/package.json | 73 - build/node_modules/import-fresh/index.d.ts | 30 - build/node_modules/import-fresh/index.js | 33 - build/node_modules/import-fresh/license | 9 - build/node_modules/import-fresh/package.json | 43 - build/node_modules/import-fresh/readme.md | 48 - build/node_modules/import-local/index.js | 24 - build/node_modules/import-local/license | 9 - build/node_modules/import-local/package.json | 52 - build/node_modules/import-local/readme.md | 37 - build/node_modules/imurmurhash/README.md | 122 - build/node_modules/imurmurhash/imurmurhash.js | 138 - .../imurmurhash/imurmurhash.min.js | 12 - build/node_modules/imurmurhash/package.json | 40 - build/node_modules/inclusion/LICENSE | 15 - build/node_modules/inclusion/index.js | 13 - build/node_modules/inclusion/package.json | 34 - build/node_modules/inclusion/readme.md | 50 - build/node_modules/inclusion/test.js | 25 - build/node_modules/indent-string/index.d.ts | 42 - build/node_modules/indent-string/index.js | 35 - build/node_modules/indent-string/license | 9 - build/node_modules/indent-string/package.json | 37 - build/node_modules/indent-string/readme.md | 70 - build/node_modules/infer-owner/LICENSE | 15 - build/node_modules/infer-owner/README.md | 41 - build/node_modules/infer-owner/index.js | 71 - build/node_modules/infer-owner/package.json | 26 - build/node_modules/inflation/LICENSE | 22 - build/node_modules/inflation/README.md | 47 - build/node_modules/inflation/index.js | 41 - build/node_modules/inflation/package.json | 34 - build/node_modules/inflight/LICENSE | 15 - build/node_modules/inflight/README.md | 37 - build/node_modules/inflight/inflight.js | 54 - build/node_modules/inflight/package.json | 29 - build/node_modules/inherits/LICENSE | 16 - build/node_modules/inherits/README.md | 42 - build/node_modules/inherits/inherits.js | 9 - .../node_modules/inherits/inherits_browser.js | 27 - build/node_modules/inherits/package.json | 29 - build/node_modules/ini/LICENSE | 15 - build/node_modules/ini/README.md | 102 - build/node_modules/ini/ini.js | 206 - build/node_modules/ini/package.json | 33 - build/node_modules/interpret/CHANGELOG | 115 - build/node_modules/interpret/LICENSE | 22 - build/node_modules/interpret/README.md | 229 - build/node_modules/interpret/index.js | 211 - build/node_modules/interpret/mjs-stub.js | 1 - build/node_modules/interpret/package.json | 75 - build/node_modules/ip/README.md | 90 - build/node_modules/ip/package.json | 25 - build/node_modules/ipaddr.js/LICENSE | 19 - build/node_modules/ipaddr.js/README.md | 233 - build/node_modules/ipaddr.js/ipaddr.min.js | 1 - build/node_modules/ipaddr.js/package.json | 35 - .../is-accessor-descriptor/.editorconfig | 14 - .../is-accessor-descriptor/.eslintrc | 23 - .../is-accessor-descriptor/.nycrc | 9 - .../is-accessor-descriptor/CHANGELOG.md | 125 - .../is-accessor-descriptor/LICENSE | 21 - .../is-accessor-descriptor/README.md | 98 - .../is-accessor-descriptor/index.js | 50 - .../is-accessor-descriptor/package.json | 79 - build/node_modules/is-binary-path/index.d.ts | 17 - build/node_modules/is-binary-path/index.js | 7 - build/node_modules/is-binary-path/license | 9 - .../node_modules/is-binary-path/package.json | 40 - build/node_modules/is-binary-path/readme.md | 34 - build/node_modules/is-buffer/LICENSE | 21 - build/node_modules/is-buffer/README.md | 53 - build/node_modules/is-buffer/index.js | 21 - build/node_modules/is-buffer/package.json | 51 - build/node_modules/is-core-module/.eslintrc | 18 - build/node_modules/is-core-module/.nycrc | 9 - .../node_modules/is-core-module/CHANGELOG.md | 180 - build/node_modules/is-core-module/LICENSE | 20 - build/node_modules/is-core-module/README.md | 40 - build/node_modules/is-core-module/core.json | 158 - build/node_modules/is-core-module/index.js | 69 - .../node_modules/is-core-module/package.json | 73 - .../is-data-descriptor/.editorconfig | 14 - .../node_modules/is-data-descriptor/.eslintrc | 15 - build/node_modules/is-data-descriptor/.nycrc | 9 - .../is-data-descriptor/CHANGELOG.md | 109 - build/node_modules/is-data-descriptor/LICENSE | 21 - .../node_modules/is-data-descriptor/README.md | 112 - .../node_modules/is-data-descriptor/index.js | 43 - .../is-data-descriptor/package.json | 87 - .../node_modules/is-descriptor/.editorconfig | 14 - build/node_modules/is-descriptor/.eslintrc | 16 - .../node_modules/is-descriptor/.gitattributes | 10 - build/node_modules/is-descriptor/.nycrc | 9 - build/node_modules/is-descriptor/CHANGELOG.md | 121 - build/node_modules/is-descriptor/LICENSE | 21 - build/node_modules/is-descriptor/README.md | 134 - build/node_modules/is-descriptor/index.js | 16 - build/node_modules/is-descriptor/package.json | 88 - build/node_modules/is-docker/cli.js | 5 - build/node_modules/is-docker/index.d.ts | 15 - build/node_modules/is-docker/index.js | 29 - build/node_modules/is-docker/license | 9 - build/node_modules/is-docker/package.json | 42 - build/node_modules/is-docker/readme.md | 27 - build/node_modules/is-extendable/LICENSE | 21 - build/node_modules/is-extendable/README.md | 88 - build/node_modules/is-extendable/index.d.ts | 5 - build/node_modules/is-extendable/index.js | 14 - build/node_modules/is-extendable/package.json | 67 - build/node_modules/is-extglob/LICENSE | 21 - build/node_modules/is-extglob/README.md | 107 - build/node_modules/is-extglob/index.js | 20 - build/node_modules/is-extglob/package.json | 69 - .../is-fullwidth-code-point/index.d.ts | 17 - .../is-fullwidth-code-point/index.js | 50 - .../is-fullwidth-code-point/license | 9 - .../is-fullwidth-code-point/package.json | 42 - .../is-fullwidth-code-point/readme.md | 39 - build/node_modules/is-glob/LICENSE | 21 - build/node_modules/is-glob/README.md | 206 - build/node_modules/is-glob/index.js | 150 - build/node_modules/is-glob/package.json | 81 - build/node_modules/is-inside-container/cli.js | 5 - .../is-inside-container/index.d.ts | 13 - .../node_modules/is-inside-container/index.js | 23 - .../node_modules/is-inside-container/license | 9 - .../is-inside-container/package.json | 51 - .../is-inside-container/readme.md | 36 - build/node_modules/is-invalid-path/LICENSE | 21 - build/node_modules/is-invalid-path/README.md | 82 - build/node_modules/is-invalid-path/index.js | 15 - .../node_modules/is-invalid-path/package.json | 64 - build/node_modules/is-lambda/.npmignore | 1 - build/node_modules/is-lambda/.travis.yml | 8 - build/node_modules/is-lambda/LICENSE | 21 - build/node_modules/is-lambda/README.md | 27 - build/node_modules/is-lambda/index.js | 6 - build/node_modules/is-lambda/package.json | 35 - build/node_modules/is-lambda/test.js | 16 - build/node_modules/is-number/LICENSE | 21 - build/node_modules/is-number/README.md | 115 - build/node_modules/is-number/index.js | 22 - build/node_modules/is-number/package.json | 83 - build/node_modules/is-path-cwd/index.d.ts | 17 - build/node_modules/is-path-cwd/index.js | 15 - build/node_modules/is-path-cwd/license | 9 - build/node_modules/is-path-cwd/package.json | 36 - build/node_modules/is-path-cwd/readme.md | 28 - build/node_modules/is-path-in-cwd/index.d.ts | 20 - build/node_modules/is-path-in-cwd/index.js | 4 - build/node_modules/is-path-in-cwd/license | 9 - .../node_modules/is-path-in-cwd/package.json | 41 - build/node_modules/is-path-in-cwd/readme.md | 31 - build/node_modules/is-path-inside/index.d.ts | 27 - build/node_modules/is-path-inside/index.js | 12 - build/node_modules/is-path-inside/license | 9 - .../node_modules/is-path-inside/package.json | 36 - build/node_modules/is-path-inside/readme.md | 63 - build/node_modules/is-plain-obj/index.d.ts | 29 - build/node_modules/is-plain-obj/index.js | 10 - build/node_modules/is-plain-obj/license | 9 - build/node_modules/is-plain-obj/package.json | 39 - build/node_modules/is-plain-obj/readme.md | 51 - build/node_modules/is-plain-object/LICENSE | 21 - build/node_modules/is-plain-object/README.md | 104 - build/node_modules/is-plain-object/index.d.ts | 5 - build/node_modules/is-plain-object/index.js | 37 - .../node_modules/is-plain-object/package.json | 79 - build/node_modules/is-stream/index.d.ts | 79 - build/node_modules/is-stream/index.js | 28 - build/node_modules/is-stream/license | 9 - build/node_modules/is-stream/package.json | 42 - build/node_modules/is-stream/readme.md | 60 - .../node_modules/is-valid-path/.editorconfig | 17 - .../node_modules/is-valid-path/.gitattributes | 14 - build/node_modules/is-valid-path/.jshintrc | 18 - build/node_modules/is-valid-path/.npmignore | 11 - build/node_modules/is-valid-path/.verb.md | 68 - build/node_modules/is-valid-path/LICENSE | 21 - build/node_modules/is-valid-path/README.md | 87 - build/node_modules/is-valid-path/index.js | 14 - build/node_modules/is-valid-path/package.json | 61 - build/node_modules/is-valid-path/test.js | 71 - build/node_modules/is-windows/LICENSE | 21 - build/node_modules/is-windows/README.md | 95 - build/node_modules/is-windows/index.js | 27 - build/node_modules/is-windows/package.json | 71 - build/node_modules/is-wsl/index.d.ts | 15 - build/node_modules/is-wsl/index.js | 31 - build/node_modules/is-wsl/license | 9 - build/node_modules/is-wsl/package.json | 45 - build/node_modules/is-wsl/readme.md | 36 - build/node_modules/isarray/.npmignore | 1 - build/node_modules/isarray/.travis.yml | 4 - build/node_modules/isarray/Makefile | 6 - build/node_modules/isarray/README.md | 60 - build/node_modules/isarray/component.json | 19 - build/node_modules/isarray/index.js | 5 - build/node_modules/isarray/package.json | 45 - build/node_modules/isarray/test.js | 20 - build/node_modules/isexe/.npmignore | 2 - build/node_modules/isexe/LICENSE | 15 - build/node_modules/isexe/README.md | 51 - build/node_modules/isexe/index.js | 57 - build/node_modules/isexe/mode.js | 41 - build/node_modules/isexe/package.json | 31 - build/node_modules/isexe/windows.js | 42 - build/node_modules/isobject/LICENSE | 21 - build/node_modules/isobject/README.md | 122 - build/node_modules/isobject/index.d.ts | 5 - build/node_modules/isobject/index.js | 12 - build/node_modules/isobject/package.json | 74 - build/node_modules/jest-diff/LICENSE | 21 - build/node_modules/jest-diff/README.md | 671 - build/node_modules/jest-diff/package.json | 36 - build/node_modules/jest-get-type/LICENSE | 21 - build/node_modules/jest-get-type/package.json | 27 - build/node_modules/jest-matcher-utils/LICENSE | 21 - .../jest-matcher-utils/package.json | 37 - build/node_modules/jest-util/LICENSE | 21 - build/node_modules/jest-util/Readme.md | 87 - build/node_modules/jest-util/package.json | 38 - build/node_modules/jest-worker/LICENSE | 21 - build/node_modules/jest-worker/README.md | 247 - build/node_modules/jest-worker/package.json | 38 - build/node_modules/joycon/LICENSE | 21 - build/node_modules/joycon/README.md | 133 - build/node_modules/joycon/package.json | 39 - build/node_modules/js-stringify/.npmignore | 13 - build/node_modules/js-stringify/.travis.yml | 3 - build/node_modules/js-stringify/LICENSE | 19 - build/node_modules/js-stringify/README.md | 34 - build/node_modules/js-stringify/index.js | 17 - build/node_modules/js-stringify/package.json | 17 - build/node_modules/js-tokens/CHANGELOG.md | 134 - build/node_modules/js-tokens/LICENSE | 21 - build/node_modules/js-tokens/README.md | 222 - build/node_modules/js-tokens/index.js | 23 - build/node_modules/js-tokens/package.json | 30 - build/node_modules/js-yaml/CHANGELOG.md | 616 - build/node_modules/js-yaml/LICENSE | 21 - build/node_modules/js-yaml/README.md | 246 - build/node_modules/js-yaml/index.js | 47 - build/node_modules/js-yaml/package.json | 66 - build/node_modules/jsesc/LICENSE-MIT.txt | 20 - build/node_modules/jsesc/README.md | 421 - build/node_modules/jsesc/jsesc.js | 329 - build/node_modules/jsesc/package.json | 54 - build/node_modules/json-buffer/.travis.yml | 3 - build/node_modules/json-buffer/LICENSE | 22 - build/node_modules/json-buffer/README.md | 24 - build/node_modules/json-buffer/index.js | 58 - build/node_modules/json-buffer/package.json | 34 - .../CHANGELOG.md | 50 - .../json-parse-even-better-errors/LICENSE.md | 25 - .../json-parse-even-better-errors/README.md | 96 - .../json-parse-even-better-errors/index.js | 121 - .../package.json | 33 - .../json-schema-deref-sync/.travis.yml | 5 - .../json-schema-deref-sync/ISSUE_TEMPLATE.md | 7 - .../json-schema-deref-sync/LICENSE | 21 - .../json-schema-deref-sync/LICENSE.txt | 22 - .../json-schema-deref-sync/README.md | 102 - .../json-schema-deref-sync/package.json | 53 - .../json-schema-deref-sync/readme.hbs | 93 - .../json-schema-traverse/.eslintrc.yml | 27 - .../json-schema-traverse/.travis.yml | 8 - .../node_modules/json-schema-traverse/LICENSE | 21 - .../json-schema-traverse/README.md | 83 - .../json-schema-traverse/index.js | 89 - .../json-schema-traverse/package.json | 43 - .../.npmignore | 1 - .../.travis.yml | 4 - .../LICENSE | 18 - .../index.js | 82 - .../package.json | 43 - .../readme.markdown | 132 - build/node_modules/json5/LICENSE.md | 23 - build/node_modules/json5/README.md | 282 - build/node_modules/json5/package.json | 72 - build/node_modules/jsonfile/CHANGELOG.md | 171 - build/node_modules/jsonfile/LICENSE | 15 - build/node_modules/jsonfile/README.md | 230 - build/node_modules/jsonfile/index.js | 88 - build/node_modules/jsonfile/package.json | 40 - build/node_modules/jsonfile/utils.js | 14 - build/node_modules/junk/index.d.ts | 40 - build/node_modules/junk/index.js | 39 - build/node_modules/junk/license | 9 - build/node_modules/junk/package.json | 42 - build/node_modules/junk/readme.md | 51 - build/node_modules/keyv/README.md | 429 - build/node_modules/keyv/package.json | 57 - build/node_modules/kind-of/CHANGELOG.md | 160 - build/node_modules/kind-of/LICENSE | 21 - build/node_modules/kind-of/README.md | 367 - build/node_modules/kind-of/index.js | 129 - build/node_modules/kind-of/package.json | 88 - build/node_modules/kleur/colors.d.ts | 38 - build/node_modules/kleur/colors.js | 53 - build/node_modules/kleur/colors.mjs | 53 - build/node_modules/kleur/index.d.ts | 45 - build/node_modules/kleur/index.js | 110 - build/node_modules/kleur/index.mjs | 110 - build/node_modules/kleur/license | 21 - build/node_modules/kleur/package.json | 51 - build/node_modules/kleur/readme.md | 232 - .../knex-dynamic-connection/LICENSE.md | 9 - .../knex-dynamic-connection/README.md | 114 - .../knex-dynamic-connection/package.json | 95 - build/node_modules/knex/CHANGELOG.md | 2341 -- build/node_modules/knex/CONTRIBUTING.md | 194 - build/node_modules/knex/LICENSE | 22 - build/node_modules/knex/README.md | 149 - build/node_modules/knex/UPGRADING.md | 245 - build/node_modules/knex/knex.js | 23 - build/node_modules/knex/knex.mjs | 11 - build/node_modules/knex/package.json | 268 - build/node_modules/launch-editor/LICENSE | 21 - build/node_modules/launch-editor/get-args.js | 72 - build/node_modules/launch-editor/guess.js | 105 - build/node_modules/launch-editor/index.js | 138 - build/node_modules/launch-editor/package.json | 24 - build/node_modules/leven/index.d.ts | 21 - build/node_modules/leven/index.js | 77 - build/node_modules/leven/license | 9 - build/node_modules/leven/package.json | 57 - build/node_modules/leven/readme.md | 50 - build/node_modules/levn/LICENSE | 22 - build/node_modules/levn/README.md | 196 - build/node_modules/levn/package.json | 46 - build/node_modules/lilconfig/LICENSE | 21 - build/node_modules/lilconfig/package.json | 48 - build/node_modules/lilconfig/readme.md | 118 - build/node_modules/loader-runner/LICENSE | 21 - build/node_modules/loader-runner/README.md | 53 - build/node_modules/loader-runner/package.json | 45 - build/node_modules/loader-utils/LICENSE | 20 - build/node_modules/loader-utils/README.md | 275 - build/node_modules/loader-utils/package.json | 39 - build/node_modules/locate-path/index.d.ts | 83 - build/node_modules/locate-path/index.js | 68 - build/node_modules/locate-path/license | 9 - build/node_modules/locate-path/package.json | 46 - build/node_modules/locate-path/readme.md | 125 - build/node_modules/lodash.debounce/LICENSE | 47 - build/node_modules/lodash.debounce/README.md | 18 - build/node_modules/lodash.debounce/index.js | 377 - .../node_modules/lodash.debounce/package.json | 17 - build/node_modules/lodash.flatten/LICENSE | 47 - build/node_modules/lodash.flatten/README.md | 18 - build/node_modules/lodash.flatten/index.js | 349 - .../node_modules/lodash.flatten/package.json | 17 - build/node_modules/lodash.get/LICENSE | 47 - build/node_modules/lodash.get/README.md | 18 - build/node_modules/lodash.get/index.js | 931 - build/node_modules/lodash.get/package.json | 17 - build/node_modules/lodash.isequal/LICENSE | 47 - build/node_modules/lodash.isequal/README.md | 18 - build/node_modules/lodash.isequal/index.js | 1848 -- .../node_modules/lodash.isequal/package.json | 16 - build/node_modules/lodash.memoize/LICENSE | 47 - build/node_modules/lodash.memoize/README.md | 18 - build/node_modules/lodash.memoize/index.js | 676 - .../node_modules/lodash.memoize/package.json | 17 - build/node_modules/lodash.merge/LICENSE | 47 - build/node_modules/lodash.merge/README.md | 18 - build/node_modules/lodash.merge/index.js | 1977 -- build/node_modules/lodash.merge/package.json | 16 - build/node_modules/lodash.set/LICENSE | 47 - build/node_modules/lodash.set/README.md | 18 - build/node_modules/lodash.set/index.js | 990 - build/node_modules/lodash.set/package.json | 17 - build/node_modules/lodash.uniq/LICENSE | 47 - build/node_modules/lodash.uniq/README.md | 18 - build/node_modules/lodash.uniq/index.js | 896 - build/node_modules/lodash.uniq/package.json | 17 - build/node_modules/lodash/LICENSE | 47 - build/node_modules/lodash/README.md | 39 - build/node_modules/lodash/_DataView.js | 7 - build/node_modules/lodash/_Hash.js | 32 - build/node_modules/lodash/_LazyWrapper.js | 28 - build/node_modules/lodash/_ListCache.js | 32 - build/node_modules/lodash/_LodashWrapper.js | 22 - build/node_modules/lodash/_Map.js | 7 - build/node_modules/lodash/_MapCache.js | 32 - build/node_modules/lodash/_Promise.js | 7 - build/node_modules/lodash/_Set.js | 7 - build/node_modules/lodash/_SetCache.js | 27 - build/node_modules/lodash/_Stack.js | 27 - build/node_modules/lodash/_Symbol.js | 6 - build/node_modules/lodash/_Uint8Array.js | 6 - build/node_modules/lodash/_WeakMap.js | 7 - build/node_modules/lodash/_apply.js | 21 - build/node_modules/lodash/_arrayAggregator.js | 22 - build/node_modules/lodash/_arrayEach.js | 22 - build/node_modules/lodash/_arrayEachRight.js | 21 - build/node_modules/lodash/_arrayEvery.js | 23 - build/node_modules/lodash/_arrayFilter.js | 25 - build/node_modules/lodash/_arrayIncludes.js | 17 - .../node_modules/lodash/_arrayIncludesWith.js | 22 - build/node_modules/lodash/_arrayLikeKeys.js | 49 - build/node_modules/lodash/_arrayMap.js | 21 - build/node_modules/lodash/_arrayPush.js | 20 - build/node_modules/lodash/_arrayReduce.js | 26 - .../node_modules/lodash/_arrayReduceRight.js | 24 - build/node_modules/lodash/_arraySample.js | 15 - build/node_modules/lodash/_arraySampleSize.js | 17 - build/node_modules/lodash/_arrayShuffle.js | 15 - build/node_modules/lodash/_arraySome.js | 23 - build/node_modules/lodash/_asciiSize.js | 12 - build/node_modules/lodash/_asciiToArray.js | 12 - build/node_modules/lodash/_asciiWords.js | 15 - .../node_modules/lodash/_assignMergeValue.js | 20 - build/node_modules/lodash/_assignValue.js | 28 - build/node_modules/lodash/_assocIndexOf.js | 21 - build/node_modules/lodash/_baseAggregator.js | 21 - build/node_modules/lodash/_baseAssign.js | 17 - build/node_modules/lodash/_baseAssignIn.js | 17 - build/node_modules/lodash/_baseAssignValue.js | 25 - build/node_modules/lodash/_baseAt.js | 23 - build/node_modules/lodash/_baseClamp.js | 22 - build/node_modules/lodash/_baseClone.js | 166 - build/node_modules/lodash/_baseConforms.js | 18 - build/node_modules/lodash/_baseConformsTo.js | 27 - build/node_modules/lodash/_baseCreate.js | 30 - build/node_modules/lodash/_baseDelay.js | 21 - build/node_modules/lodash/_baseDifference.js | 67 - build/node_modules/lodash/_baseEach.js | 14 - build/node_modules/lodash/_baseEachRight.js | 14 - build/node_modules/lodash/_baseEvery.js | 21 - build/node_modules/lodash/_baseExtremum.js | 32 - build/node_modules/lodash/_baseFill.js | 32 - build/node_modules/lodash/_baseFilter.js | 21 - build/node_modules/lodash/_baseFindIndex.js | 24 - build/node_modules/lodash/_baseFindKey.js | 23 - build/node_modules/lodash/_baseFlatten.js | 38 - build/node_modules/lodash/_baseFor.js | 16 - build/node_modules/lodash/_baseForOwn.js | 16 - build/node_modules/lodash/_baseForOwnRight.js | 16 - build/node_modules/lodash/_baseForRight.js | 15 - build/node_modules/lodash/_baseFunctions.js | 19 - build/node_modules/lodash/_baseGet.js | 24 - build/node_modules/lodash/_baseGetAllKeys.js | 20 - build/node_modules/lodash/_baseGetTag.js | 28 - build/node_modules/lodash/_baseGt.js | 14 - build/node_modules/lodash/_baseHas.js | 19 - build/node_modules/lodash/_baseHasIn.js | 13 - build/node_modules/lodash/_baseInRange.js | 18 - build/node_modules/lodash/_baseIndexOf.js | 20 - build/node_modules/lodash/_baseIndexOfWith.js | 23 - .../node_modules/lodash/_baseIntersection.js | 74 - build/node_modules/lodash/_baseInverter.js | 21 - build/node_modules/lodash/_baseInvoke.js | 24 - build/node_modules/lodash/_baseIsArguments.js | 18 - .../node_modules/lodash/_baseIsArrayBuffer.js | 17 - build/node_modules/lodash/_baseIsDate.js | 18 - build/node_modules/lodash/_baseIsEqual.js | 28 - build/node_modules/lodash/_baseIsEqualDeep.js | 83 - build/node_modules/lodash/_baseIsMap.js | 18 - build/node_modules/lodash/_baseIsMatch.js | 62 - build/node_modules/lodash/_baseIsNaN.js | 12 - build/node_modules/lodash/_baseIsNative.js | 47 - build/node_modules/lodash/_baseIsRegExp.js | 18 - build/node_modules/lodash/_baseIsSet.js | 18 - .../node_modules/lodash/_baseIsTypedArray.js | 60 - build/node_modules/lodash/_baseIteratee.js | 31 - build/node_modules/lodash/_baseKeys.js | 30 - build/node_modules/lodash/_baseKeysIn.js | 33 - build/node_modules/lodash/_baseLodash.js | 10 - build/node_modules/lodash/_baseLt.js | 14 - build/node_modules/lodash/_baseMap.js | 22 - build/node_modules/lodash/_baseMatches.js | 22 - .../lodash/_baseMatchesProperty.js | 33 - build/node_modules/lodash/_baseMean.js | 20 - build/node_modules/lodash/_baseMerge.js | 42 - build/node_modules/lodash/_baseMergeDeep.js | 94 - build/node_modules/lodash/_baseNth.js | 20 - build/node_modules/lodash/_baseOrderBy.js | 49 - build/node_modules/lodash/_basePick.js | 19 - build/node_modules/lodash/_basePickBy.js | 30 - build/node_modules/lodash/_baseProperty.js | 14 - .../node_modules/lodash/_basePropertyDeep.js | 16 - build/node_modules/lodash/_basePropertyOf.js | 14 - build/node_modules/lodash/_basePullAll.js | 51 - build/node_modules/lodash/_basePullAt.js | 37 - build/node_modules/lodash/_baseRandom.js | 18 - build/node_modules/lodash/_baseRange.js | 28 - build/node_modules/lodash/_baseReduce.js | 23 - build/node_modules/lodash/_baseRepeat.js | 35 - build/node_modules/lodash/_baseRest.js | 17 - build/node_modules/lodash/_baseSample.js | 15 - build/node_modules/lodash/_baseSampleSize.js | 18 - build/node_modules/lodash/_baseSet.js | 51 - build/node_modules/lodash/_baseSetData.js | 17 - build/node_modules/lodash/_baseSetToString.js | 22 - build/node_modules/lodash/_baseShuffle.js | 15 - build/node_modules/lodash/_baseSlice.js | 31 - build/node_modules/lodash/_baseSome.js | 22 - build/node_modules/lodash/_baseSortBy.js | 21 - build/node_modules/lodash/_baseSortedIndex.js | 42 - .../node_modules/lodash/_baseSortedIndexBy.js | 67 - build/node_modules/lodash/_baseSortedUniq.js | 30 - build/node_modules/lodash/_baseSum.js | 24 - build/node_modules/lodash/_baseTimes.js | 20 - build/node_modules/lodash/_baseToNumber.js | 24 - build/node_modules/lodash/_baseToPairs.js | 18 - build/node_modules/lodash/_baseToString.js | 37 - build/node_modules/lodash/_baseTrim.js | 19 - build/node_modules/lodash/_baseUnary.js | 14 - build/node_modules/lodash/_baseUniq.js | 72 - build/node_modules/lodash/_baseUnset.js | 20 - build/node_modules/lodash/_baseUpdate.js | 18 - build/node_modules/lodash/_baseValues.js | 19 - build/node_modules/lodash/_baseWhile.js | 26 - .../node_modules/lodash/_baseWrapperValue.js | 25 - build/node_modules/lodash/_baseXor.js | 36 - build/node_modules/lodash/_baseZipObject.js | 23 - build/node_modules/lodash/_cacheHas.js | 13 - .../lodash/_castArrayLikeObject.js | 14 - build/node_modules/lodash/_castFunction.js | 14 - build/node_modules/lodash/_castPath.js | 21 - build/node_modules/lodash/_castRest.js | 14 - build/node_modules/lodash/_castSlice.js | 18 - build/node_modules/lodash/_charsEndIndex.js | 19 - build/node_modules/lodash/_charsStartIndex.js | 20 - .../node_modules/lodash/_cloneArrayBuffer.js | 16 - build/node_modules/lodash/_cloneBuffer.js | 35 - build/node_modules/lodash/_cloneDataView.js | 16 - build/node_modules/lodash/_cloneRegExp.js | 17 - build/node_modules/lodash/_cloneSymbol.js | 18 - build/node_modules/lodash/_cloneTypedArray.js | 16 - .../node_modules/lodash/_compareAscending.js | 41 - build/node_modules/lodash/_compareMultiple.js | 44 - build/node_modules/lodash/_composeArgs.js | 39 - .../node_modules/lodash/_composeArgsRight.js | 41 - build/node_modules/lodash/_copyArray.js | 20 - build/node_modules/lodash/_copyObject.js | 40 - build/node_modules/lodash/_copySymbols.js | 16 - build/node_modules/lodash/_copySymbolsIn.js | 16 - build/node_modules/lodash/_coreJsData.js | 6 - build/node_modules/lodash/_countHolders.js | 21 - .../node_modules/lodash/_createAggregator.js | 23 - build/node_modules/lodash/_createAssigner.js | 37 - build/node_modules/lodash/_createBaseEach.js | 32 - build/node_modules/lodash/_createBaseFor.js | 25 - build/node_modules/lodash/_createBind.js | 28 - build/node_modules/lodash/_createCaseFirst.js | 33 - .../node_modules/lodash/_createCompounder.js | 24 - build/node_modules/lodash/_createCtor.js | 37 - build/node_modules/lodash/_createCurry.js | 46 - build/node_modules/lodash/_createFind.js | 25 - build/node_modules/lodash/_createFlow.js | 78 - build/node_modules/lodash/_createHybrid.js | 92 - build/node_modules/lodash/_createInverter.js | 17 - .../lodash/_createMathOperation.js | 38 - build/node_modules/lodash/_createOver.js | 27 - build/node_modules/lodash/_createPadding.js | 33 - build/node_modules/lodash/_createPartial.js | 43 - build/node_modules/lodash/_createRange.js | 30 - build/node_modules/lodash/_createRecurry.js | 56 - .../lodash/_createRelationalOperation.js | 20 - build/node_modules/lodash/_createRound.js | 35 - build/node_modules/lodash/_createSet.js | 19 - build/node_modules/lodash/_createToPairs.js | 30 - build/node_modules/lodash/_createWrap.js | 106 - .../lodash/_customDefaultsAssignIn.js | 29 - .../lodash/_customDefaultsMerge.js | 28 - build/node_modules/lodash/_customOmitClone.js | 16 - build/node_modules/lodash/_deburrLetter.js | 71 - build/node_modules/lodash/_defineProperty.js | 11 - build/node_modules/lodash/_equalArrays.js | 84 - build/node_modules/lodash/_equalByTag.js | 112 - build/node_modules/lodash/_equalObjects.js | 90 - build/node_modules/lodash/_escapeHtmlChar.js | 21 - .../node_modules/lodash/_escapeStringChar.js | 22 - build/node_modules/lodash/_flatRest.js | 16 - build/node_modules/lodash/_freeGlobal.js | 4 - build/node_modules/lodash/_getAllKeys.js | 16 - build/node_modules/lodash/_getAllKeysIn.js | 17 - build/node_modules/lodash/_getData.js | 15 - build/node_modules/lodash/_getFuncName.js | 31 - build/node_modules/lodash/_getHolder.js | 13 - build/node_modules/lodash/_getMapData.js | 18 - build/node_modules/lodash/_getMatchData.js | 24 - build/node_modules/lodash/_getNative.js | 17 - build/node_modules/lodash/_getPrototype.js | 6 - build/node_modules/lodash/_getRawTag.js | 46 - build/node_modules/lodash/_getSymbols.js | 30 - build/node_modules/lodash/_getSymbolsIn.js | 25 - build/node_modules/lodash/_getTag.js | 58 - build/node_modules/lodash/_getValue.js | 13 - build/node_modules/lodash/_getView.js | 33 - build/node_modules/lodash/_getWrapDetails.js | 17 - build/node_modules/lodash/_hasPath.js | 39 - build/node_modules/lodash/_hasUnicode.js | 26 - build/node_modules/lodash/_hasUnicodeWord.js | 15 - build/node_modules/lodash/_hashClear.js | 15 - build/node_modules/lodash/_hashDelete.js | 17 - build/node_modules/lodash/_hashGet.js | 30 - build/node_modules/lodash/_hashHas.js | 23 - build/node_modules/lodash/_hashSet.js | 23 - build/node_modules/lodash/_initCloneArray.js | 26 - build/node_modules/lodash/_initCloneByTag.js | 77 - build/node_modules/lodash/_initCloneObject.js | 18 - .../node_modules/lodash/_insertWrapDetails.js | 23 - build/node_modules/lodash/_isFlattenable.js | 20 - build/node_modules/lodash/_isIndex.js | 25 - build/node_modules/lodash/_isIterateeCall.js | 30 - build/node_modules/lodash/_isKey.js | 29 - build/node_modules/lodash/_isKeyable.js | 15 - build/node_modules/lodash/_isLaziable.js | 28 - build/node_modules/lodash/_isMaskable.js | 14 - build/node_modules/lodash/_isMasked.js | 20 - build/node_modules/lodash/_isPrototype.js | 18 - .../lodash/_isStrictComparable.js | 15 - build/node_modules/lodash/_iteratorToArray.js | 18 - build/node_modules/lodash/_lazyClone.js | 23 - build/node_modules/lodash/_lazyReverse.js | 23 - build/node_modules/lodash/_lazyValue.js | 69 - build/node_modules/lodash/_listCacheClear.js | 13 - build/node_modules/lodash/_listCacheDelete.js | 35 - build/node_modules/lodash/_listCacheGet.js | 19 - build/node_modules/lodash/_listCacheHas.js | 16 - build/node_modules/lodash/_listCacheSet.js | 26 - build/node_modules/lodash/_mapCacheClear.js | 21 - build/node_modules/lodash/_mapCacheDelete.js | 18 - build/node_modules/lodash/_mapCacheGet.js | 16 - build/node_modules/lodash/_mapCacheHas.js | 16 - build/node_modules/lodash/_mapCacheSet.js | 22 - build/node_modules/lodash/_mapToArray.js | 18 - .../lodash/_matchesStrictComparable.js | 20 - build/node_modules/lodash/_memoizeCapped.js | 26 - build/node_modules/lodash/_mergeData.js | 90 - build/node_modules/lodash/_metaMap.js | 6 - build/node_modules/lodash/_nativeCreate.js | 6 - build/node_modules/lodash/_nativeKeys.js | 6 - build/node_modules/lodash/_nativeKeysIn.js | 20 - build/node_modules/lodash/_nodeUtil.js | 30 - build/node_modules/lodash/_objectToString.js | 22 - build/node_modules/lodash/_overArg.js | 15 - build/node_modules/lodash/_overRest.js | 36 - build/node_modules/lodash/_parent.js | 16 - build/node_modules/lodash/_reEscape.js | 4 - build/node_modules/lodash/_reEvaluate.js | 4 - build/node_modules/lodash/_reInterpolate.js | 4 - build/node_modules/lodash/_realNames.js | 4 - build/node_modules/lodash/_reorder.js | 29 - build/node_modules/lodash/_replaceHolders.js | 29 - build/node_modules/lodash/_root.js | 9 - build/node_modules/lodash/_safeGet.js | 21 - build/node_modules/lodash/_setCacheAdd.js | 19 - build/node_modules/lodash/_setCacheHas.js | 14 - build/node_modules/lodash/_setData.js | 20 - build/node_modules/lodash/_setToArray.js | 18 - build/node_modules/lodash/_setToPairs.js | 18 - build/node_modules/lodash/_setToString.js | 14 - build/node_modules/lodash/_setWrapToString.js | 21 - build/node_modules/lodash/_shortOut.js | 37 - build/node_modules/lodash/_shuffleSelf.js | 28 - build/node_modules/lodash/_stackClear.js | 15 - build/node_modules/lodash/_stackDelete.js | 18 - build/node_modules/lodash/_stackGet.js | 14 - build/node_modules/lodash/_stackHas.js | 14 - build/node_modules/lodash/_stackSet.js | 34 - build/node_modules/lodash/_strictIndexOf.js | 23 - .../node_modules/lodash/_strictLastIndexOf.js | 21 - build/node_modules/lodash/_stringSize.js | 18 - build/node_modules/lodash/_stringToArray.js | 18 - build/node_modules/lodash/_stringToPath.js | 27 - build/node_modules/lodash/_toKey.js | 21 - build/node_modules/lodash/_toSource.js | 26 - build/node_modules/lodash/_trimmedEndIndex.js | 19 - .../node_modules/lodash/_unescapeHtmlChar.js | 21 - build/node_modules/lodash/_unicodeSize.js | 44 - build/node_modules/lodash/_unicodeToArray.js | 40 - build/node_modules/lodash/_unicodeWords.js | 69 - .../node_modules/lodash/_updateWrapDetails.js | 46 - build/node_modules/lodash/_wrapperClone.js | 23 - build/node_modules/lodash/add.js | 22 - build/node_modules/lodash/after.js | 42 - build/node_modules/lodash/array.js | 67 - build/node_modules/lodash/ary.js | 29 - build/node_modules/lodash/assign.js | 58 - build/node_modules/lodash/assignIn.js | 40 - build/node_modules/lodash/assignInWith.js | 38 - build/node_modules/lodash/assignWith.js | 37 - build/node_modules/lodash/at.js | 23 - build/node_modules/lodash/attempt.js | 35 - build/node_modules/lodash/before.js | 40 - build/node_modules/lodash/bind.js | 57 - build/node_modules/lodash/bindAll.js | 41 - build/node_modules/lodash/bindKey.js | 68 - build/node_modules/lodash/camelCase.js | 29 - build/node_modules/lodash/capitalize.js | 23 - build/node_modules/lodash/castArray.js | 44 - build/node_modules/lodash/ceil.js | 26 - build/node_modules/lodash/chain.js | 38 - build/node_modules/lodash/chunk.js | 50 - build/node_modules/lodash/clamp.js | 39 - build/node_modules/lodash/clone.js | 36 - build/node_modules/lodash/cloneDeep.js | 29 - build/node_modules/lodash/cloneDeepWith.js | 40 - build/node_modules/lodash/cloneWith.js | 42 - build/node_modules/lodash/collection.js | 30 - build/node_modules/lodash/commit.js | 33 - build/node_modules/lodash/compact.js | 31 - build/node_modules/lodash/concat.js | 43 - build/node_modules/lodash/cond.js | 60 - build/node_modules/lodash/conforms.js | 35 - build/node_modules/lodash/conformsTo.js | 32 - build/node_modules/lodash/constant.js | 26 - build/node_modules/lodash/core.js | 3877 --- build/node_modules/lodash/core.min.js | 29 - build/node_modules/lodash/countBy.js | 40 - build/node_modules/lodash/create.js | 43 - build/node_modules/lodash/curry.js | 57 - build/node_modules/lodash/curryRight.js | 54 - build/node_modules/lodash/date.js | 3 - build/node_modules/lodash/debounce.js | 191 - build/node_modules/lodash/deburr.js | 45 - build/node_modules/lodash/defaultTo.js | 25 - build/node_modules/lodash/defaults.js | 64 - build/node_modules/lodash/defaultsDeep.js | 30 - build/node_modules/lodash/defer.js | 26 - build/node_modules/lodash/delay.js | 28 - build/node_modules/lodash/difference.js | 33 - build/node_modules/lodash/differenceBy.js | 44 - build/node_modules/lodash/differenceWith.js | 40 - build/node_modules/lodash/divide.js | 22 - build/node_modules/lodash/drop.js | 38 - build/node_modules/lodash/dropRight.js | 39 - build/node_modules/lodash/dropRightWhile.js | 45 - build/node_modules/lodash/dropWhile.js | 45 - build/node_modules/lodash/each.js | 1 - build/node_modules/lodash/eachRight.js | 1 - build/node_modules/lodash/endsWith.js | 43 - build/node_modules/lodash/entries.js | 1 - build/node_modules/lodash/entriesIn.js | 1 - build/node_modules/lodash/eq.js | 37 - build/node_modules/lodash/escape.js | 43 - build/node_modules/lodash/escapeRegExp.js | 32 - build/node_modules/lodash/every.js | 56 - build/node_modules/lodash/extend.js | 1 - build/node_modules/lodash/extendWith.js | 1 - build/node_modules/lodash/fill.js | 45 - build/node_modules/lodash/filter.js | 52 - build/node_modules/lodash/find.js | 42 - build/node_modules/lodash/findIndex.js | 55 - build/node_modules/lodash/findKey.js | 44 - build/node_modules/lodash/findLast.js | 25 - build/node_modules/lodash/findLastIndex.js | 59 - build/node_modules/lodash/findLastKey.js | 44 - build/node_modules/lodash/first.js | 1 - build/node_modules/lodash/flake.lock | 40 - build/node_modules/lodash/flake.nix | 20 - build/node_modules/lodash/flatMap.js | 29 - build/node_modules/lodash/flatMapDeep.js | 31 - build/node_modules/lodash/flatMapDepth.js | 31 - build/node_modules/lodash/flatten.js | 22 - build/node_modules/lodash/flattenDeep.js | 25 - build/node_modules/lodash/flattenDepth.js | 33 - build/node_modules/lodash/flip.js | 28 - build/node_modules/lodash/floor.js | 26 - build/node_modules/lodash/flow.js | 27 - build/node_modules/lodash/flowRight.js | 26 - build/node_modules/lodash/forEach.js | 41 - build/node_modules/lodash/forEachRight.js | 31 - build/node_modules/lodash/forIn.js | 39 - build/node_modules/lodash/forInRight.js | 37 - build/node_modules/lodash/forOwn.js | 36 - build/node_modules/lodash/forOwnRight.js | 34 - build/node_modules/lodash/fp.js | 2 - build/node_modules/lodash/fromPairs.js | 28 - build/node_modules/lodash/function.js | 25 - build/node_modules/lodash/functions.js | 31 - build/node_modules/lodash/functionsIn.js | 31 - build/node_modules/lodash/get.js | 33 - build/node_modules/lodash/groupBy.js | 41 - build/node_modules/lodash/gt.js | 29 - build/node_modules/lodash/gte.js | 30 - build/node_modules/lodash/has.js | 35 - build/node_modules/lodash/hasIn.js | 34 - build/node_modules/lodash/head.js | 23 - build/node_modules/lodash/identity.js | 21 - build/node_modules/lodash/inRange.js | 55 - build/node_modules/lodash/includes.js | 53 - build/node_modules/lodash/index.js | 1 - build/node_modules/lodash/indexOf.js | 42 - build/node_modules/lodash/initial.js | 22 - build/node_modules/lodash/intersection.js | 30 - build/node_modules/lodash/intersectionBy.js | 45 - build/node_modules/lodash/intersectionWith.js | 41 - build/node_modules/lodash/invert.js | 42 - build/node_modules/lodash/invertBy.js | 56 - build/node_modules/lodash/invoke.js | 24 - build/node_modules/lodash/invokeMap.js | 41 - build/node_modules/lodash/isArguments.js | 36 - build/node_modules/lodash/isArray.js | 26 - build/node_modules/lodash/isArrayBuffer.js | 27 - build/node_modules/lodash/isArrayLike.js | 33 - .../node_modules/lodash/isArrayLikeObject.js | 33 - build/node_modules/lodash/isBoolean.js | 29 - build/node_modules/lodash/isBuffer.js | 38 - build/node_modules/lodash/isDate.js | 27 - build/node_modules/lodash/isElement.js | 25 - build/node_modules/lodash/isEmpty.js | 77 - build/node_modules/lodash/isEqual.js | 35 - build/node_modules/lodash/isEqualWith.js | 41 - build/node_modules/lodash/isError.js | 36 - build/node_modules/lodash/isFinite.js | 36 - build/node_modules/lodash/isFunction.js | 37 - build/node_modules/lodash/isInteger.js | 33 - build/node_modules/lodash/isLength.js | 35 - build/node_modules/lodash/isMap.js | 27 - build/node_modules/lodash/isMatch.js | 36 - build/node_modules/lodash/isMatchWith.js | 41 - build/node_modules/lodash/isNaN.js | 38 - build/node_modules/lodash/isNative.js | 40 - build/node_modules/lodash/isNil.js | 25 - build/node_modules/lodash/isNull.js | 22 - build/node_modules/lodash/isNumber.js | 38 - build/node_modules/lodash/isObject.js | 31 - build/node_modules/lodash/isObjectLike.js | 29 - build/node_modules/lodash/isPlainObject.js | 62 - build/node_modules/lodash/isRegExp.js | 27 - build/node_modules/lodash/isSafeInteger.js | 37 - build/node_modules/lodash/isSet.js | 27 - build/node_modules/lodash/isString.js | 30 - build/node_modules/lodash/isSymbol.js | 29 - build/node_modules/lodash/isTypedArray.js | 27 - build/node_modules/lodash/isUndefined.js | 22 - build/node_modules/lodash/isWeakMap.js | 28 - build/node_modules/lodash/isWeakSet.js | 28 - build/node_modules/lodash/iteratee.js | 53 - build/node_modules/lodash/join.js | 26 - build/node_modules/lodash/kebabCase.js | 28 - build/node_modules/lodash/keyBy.js | 36 - build/node_modules/lodash/keys.js | 37 - build/node_modules/lodash/keysIn.js | 32 - build/node_modules/lodash/lang.js | 58 - build/node_modules/lodash/last.js | 20 - build/node_modules/lodash/lastIndexOf.js | 46 - build/node_modules/lodash/lodash.js | 17209 ------------ build/node_modules/lodash/lodash.min.js | 140 - build/node_modules/lodash/lowerCase.js | 27 - build/node_modules/lodash/lowerFirst.js | 22 - build/node_modules/lodash/lt.js | 29 - build/node_modules/lodash/lte.js | 30 - build/node_modules/lodash/map.js | 53 - build/node_modules/lodash/mapKeys.js | 36 - build/node_modules/lodash/mapValues.js | 43 - build/node_modules/lodash/matches.js | 46 - build/node_modules/lodash/matchesProperty.js | 44 - build/node_modules/lodash/math.js | 17 - build/node_modules/lodash/max.js | 29 - build/node_modules/lodash/maxBy.js | 34 - build/node_modules/lodash/mean.js | 22 - build/node_modules/lodash/meanBy.js | 31 - build/node_modules/lodash/memoize.js | 73 - build/node_modules/lodash/merge.js | 39 - build/node_modules/lodash/mergeWith.js | 39 - build/node_modules/lodash/method.js | 34 - build/node_modules/lodash/methodOf.js | 33 - build/node_modules/lodash/min.js | 29 - build/node_modules/lodash/minBy.js | 34 - build/node_modules/lodash/mixin.js | 74 - build/node_modules/lodash/multiply.js | 22 - build/node_modules/lodash/negate.js | 40 - build/node_modules/lodash/next.js | 35 - build/node_modules/lodash/noop.js | 17 - build/node_modules/lodash/now.js | 23 - build/node_modules/lodash/nth.js | 29 - build/node_modules/lodash/nthArg.js | 32 - build/node_modules/lodash/number.js | 5 - build/node_modules/lodash/object.js | 49 - build/node_modules/lodash/omit.js | 57 - build/node_modules/lodash/omitBy.js | 29 - build/node_modules/lodash/once.js | 25 - build/node_modules/lodash/orderBy.js | 47 - build/node_modules/lodash/over.js | 24 - build/node_modules/lodash/overArgs.js | 61 - build/node_modules/lodash/overEvery.js | 34 - build/node_modules/lodash/overSome.js | 37 - build/node_modules/lodash/package.json | 17 - build/node_modules/lodash/pad.js | 49 - build/node_modules/lodash/padEnd.js | 39 - build/node_modules/lodash/padStart.js | 39 - build/node_modules/lodash/parseInt.js | 43 - build/node_modules/lodash/partial.js | 50 - build/node_modules/lodash/partialRight.js | 49 - build/node_modules/lodash/partition.js | 43 - build/node_modules/lodash/pick.js | 25 - build/node_modules/lodash/pickBy.js | 37 - build/node_modules/lodash/plant.js | 48 - build/node_modules/lodash/property.js | 32 - build/node_modules/lodash/propertyOf.js | 30 - build/node_modules/lodash/pull.js | 29 - build/node_modules/lodash/pullAll.js | 29 - build/node_modules/lodash/pullAllBy.js | 33 - build/node_modules/lodash/pullAllWith.js | 32 - build/node_modules/lodash/pullAt.js | 43 - build/node_modules/lodash/random.js | 82 - build/node_modules/lodash/range.js | 46 - build/node_modules/lodash/rangeRight.js | 41 - build/node_modules/lodash/rearg.js | 33 - build/node_modules/lodash/reduce.js | 51 - build/node_modules/lodash/reduceRight.js | 36 - build/node_modules/lodash/reject.js | 46 - build/node_modules/lodash/release.md | 48 - build/node_modules/lodash/remove.js | 53 - build/node_modules/lodash/repeat.js | 37 - build/node_modules/lodash/replace.js | 29 - build/node_modules/lodash/rest.js | 40 - build/node_modules/lodash/result.js | 56 - build/node_modules/lodash/reverse.js | 34 - build/node_modules/lodash/round.js | 26 - build/node_modules/lodash/sample.js | 24 - build/node_modules/lodash/sampleSize.js | 37 - build/node_modules/lodash/seq.js | 16 - build/node_modules/lodash/set.js | 35 - build/node_modules/lodash/setWith.js | 32 - build/node_modules/lodash/shuffle.js | 25 - build/node_modules/lodash/size.js | 46 - build/node_modules/lodash/slice.js | 37 - build/node_modules/lodash/snakeCase.js | 28 - build/node_modules/lodash/some.js | 51 - build/node_modules/lodash/sortBy.js | 48 - build/node_modules/lodash/sortedIndex.js | 24 - build/node_modules/lodash/sortedIndexBy.js | 33 - build/node_modules/lodash/sortedIndexOf.js | 31 - build/node_modules/lodash/sortedLastIndex.js | 25 - .../node_modules/lodash/sortedLastIndexBy.js | 33 - .../node_modules/lodash/sortedLastIndexOf.js | 31 - build/node_modules/lodash/sortedUniq.js | 24 - build/node_modules/lodash/sortedUniqBy.js | 26 - build/node_modules/lodash/split.js | 52 - build/node_modules/lodash/spread.js | 63 - build/node_modules/lodash/startCase.js | 29 - build/node_modules/lodash/startsWith.js | 39 - build/node_modules/lodash/string.js | 33 - build/node_modules/lodash/stubArray.js | 23 - build/node_modules/lodash/stubFalse.js | 18 - build/node_modules/lodash/stubObject.js | 23 - build/node_modules/lodash/stubString.js | 18 - build/node_modules/lodash/stubTrue.js | 18 - build/node_modules/lodash/subtract.js | 22 - build/node_modules/lodash/sum.js | 24 - build/node_modules/lodash/sumBy.js | 33 - build/node_modules/lodash/tail.js | 22 - build/node_modules/lodash/take.js | 37 - build/node_modules/lodash/takeRight.js | 39 - build/node_modules/lodash/takeRightWhile.js | 45 - build/node_modules/lodash/takeWhile.js | 45 - build/node_modules/lodash/tap.js | 29 - build/node_modules/lodash/template.js | 272 - build/node_modules/lodash/templateSettings.js | 67 - build/node_modules/lodash/throttle.js | 69 - build/node_modules/lodash/thru.js | 28 - build/node_modules/lodash/times.js | 51 - build/node_modules/lodash/toArray.js | 58 - build/node_modules/lodash/toFinite.js | 42 - build/node_modules/lodash/toInteger.js | 36 - build/node_modules/lodash/toIterator.js | 23 - build/node_modules/lodash/toJSON.js | 1 - build/node_modules/lodash/toLength.js | 38 - build/node_modules/lodash/toLower.js | 28 - build/node_modules/lodash/toNumber.js | 64 - build/node_modules/lodash/toPairs.js | 30 - build/node_modules/lodash/toPairsIn.js | 30 - build/node_modules/lodash/toPath.js | 33 - build/node_modules/lodash/toPlainObject.js | 32 - build/node_modules/lodash/toSafeInteger.js | 37 - build/node_modules/lodash/toString.js | 28 - build/node_modules/lodash/toUpper.js | 28 - build/node_modules/lodash/transform.js | 65 - build/node_modules/lodash/trim.js | 47 - build/node_modules/lodash/trimEnd.js | 41 - build/node_modules/lodash/trimStart.js | 43 - build/node_modules/lodash/truncate.js | 111 - build/node_modules/lodash/unary.js | 22 - build/node_modules/lodash/unescape.js | 34 - build/node_modules/lodash/union.js | 26 - build/node_modules/lodash/unionBy.js | 39 - build/node_modules/lodash/unionWith.js | 34 - build/node_modules/lodash/uniq.js | 25 - build/node_modules/lodash/uniqBy.js | 31 - build/node_modules/lodash/uniqWith.js | 28 - build/node_modules/lodash/uniqueId.js | 28 - build/node_modules/lodash/unset.js | 34 - build/node_modules/lodash/unzip.js | 45 - build/node_modules/lodash/unzipWith.js | 39 - build/node_modules/lodash/update.js | 35 - build/node_modules/lodash/updateWith.js | 33 - build/node_modules/lodash/upperCase.js | 27 - build/node_modules/lodash/upperFirst.js | 22 - build/node_modules/lodash/util.js | 34 - build/node_modules/lodash/value.js | 1 - build/node_modules/lodash/valueOf.js | 1 - build/node_modules/lodash/values.js | 34 - build/node_modules/lodash/valuesIn.js | 32 - build/node_modules/lodash/without.js | 31 - build/node_modules/lodash/words.js | 35 - build/node_modules/lodash/wrap.js | 30 - build/node_modules/lodash/wrapperAt.js | 48 - build/node_modules/lodash/wrapperChain.js | 34 - build/node_modules/lodash/wrapperLodash.js | 147 - build/node_modules/lodash/wrapperReverse.js | 44 - build/node_modules/lodash/wrapperValue.js | 21 - build/node_modules/lodash/xor.js | 28 - build/node_modules/lodash/xorBy.js | 39 - build/node_modules/lodash/xorWith.js | 34 - build/node_modules/lodash/zip.js | 22 - build/node_modules/lodash/zipObject.js | 24 - build/node_modules/lodash/zipObjectDeep.js | 23 - build/node_modules/lodash/zipWith.js | 32 - build/node_modules/log-update/index.d.ts | 80 - build/node_modules/log-update/index.js | 84 - build/node_modules/log-update/license | 9 - build/node_modules/log-update/package.json | 54 - build/node_modules/log-update/readme.md | 97 - build/node_modules/loupe/CHANGELOG.md | 5 - build/node_modules/loupe/LICENSE | 9 - build/node_modules/loupe/README.md | 63 - build/node_modules/loupe/index.js | 219 - build/node_modules/loupe/loupe.js | 891 - build/node_modules/loupe/package.json | 141 - build/node_modules/lower-case/LICENSE | 21 - build/node_modules/lower-case/README.md | 35 - build/node_modules/lower-case/package.json | 87 - build/node_modules/lru-cache/LICENSE | 15 - build/node_modules/lru-cache/README.md | 158 - build/node_modules/lru-cache/index.js | 468 - build/node_modules/lru-cache/package.json | 36 - build/node_modules/luxon/LICENSE.md | 7 - build/node_modules/luxon/README.md | 55 - build/node_modules/luxon/package.json | 87 - build/node_modules/macroable/LICENSE.md | 9 - build/node_modules/macroable/README.md | 113 - build/node_modules/macroable/package.json | 118 - build/node_modules/make-dir/index.d.ts | 66 - build/node_modules/make-dir/index.js | 156 - build/node_modules/make-dir/license | 9 - build/node_modules/make-dir/package.json | 59 - build/node_modules/make-dir/readme.md | 125 - build/node_modules/make-fetch-happen/LICENSE | 16 - .../node_modules/make-fetch-happen/README.md | 395 - .../make-fetch-happen/package.json | 76 - build/node_modules/map-age-cleaner/license | 9 - .../node_modules/map-age-cleaner/package.json | 59 - build/node_modules/map-age-cleaner/readme.md | 67 - build/node_modules/map-cache/LICENSE | 21 - build/node_modules/map-cache/README.md | 145 - build/node_modules/map-cache/index.js | 100 - build/node_modules/map-cache/package.json | 59 - build/node_modules/map-visit/LICENSE | 21 - build/node_modules/map-visit/README.md | 155 - build/node_modules/map-visit/index.js | 37 - build/node_modules/map-visit/package.json | 74 - build/node_modules/marked-terminal/LICENSE | 21 - build/node_modules/marked-terminal/README.md | 140 - build/node_modules/marked-terminal/index.cjs | 1304 - build/node_modules/marked-terminal/index.js | 514 - .../node_modules/marked-terminal/package.json | 65 - build/node_modules/marked/LICENSE.md | 44 - build/node_modules/marked/README.md | 99 - build/node_modules/marked/marked.min.js | 6 - build/node_modules/marked/package.json | 93 - build/node_modules/md5/.npmignore | 1 - build/node_modules/md5/.travis.yml | 4 - build/node_modules/md5/LICENSE | 27 - build/node_modules/md5/README.md | 108 - build/node_modules/md5/md5.js | 160 - build/node_modules/md5/package.json | 36 - build/node_modules/md5/test.js | 45 - build/node_modules/mdn-data/LICENSE | 116 - build/node_modules/mdn-data/README.md | 56 - build/node_modules/mdn-data/index.js | 5 - build/node_modules/mdn-data/package.json | 39 - build/node_modules/media-typer/HISTORY.md | 50 - build/node_modules/media-typer/LICENSE | 22 - build/node_modules/media-typer/README.md | 93 - build/node_modules/media-typer/index.js | 143 - build/node_modules/media-typer/package.json | 33 - build/node_modules/mem/license | 9 - build/node_modules/mem/package.json | 74 - build/node_modules/mem/readme.md | 287 - build/node_modules/memfs/LICENSE | 24 - build/node_modules/memfs/README.md | 124 - build/node_modules/memfs/package.json | 102 - build/node_modules/memory-cache/.jsbeautifyrc | 18 - build/node_modules/memory-cache/.jshintrc | 10 - build/node_modules/memory-cache/.npmignore | 3 - build/node_modules/memory-cache/.travis.yml | 1 - build/node_modules/memory-cache/LICENSE.md | 23 - build/node_modules/memory-cache/README.md | 125 - build/node_modules/memory-cache/gulpfile.js | 65 - build/node_modules/memory-cache/index.js | 190 - build/node_modules/memory-cache/package.json | 42 - build/node_modules/memory-cache/test.js | 839 - .../node_modules/merge-descriptors/HISTORY.md | 21 - build/node_modules/merge-descriptors/LICENSE | 23 - .../node_modules/merge-descriptors/README.md | 48 - build/node_modules/merge-descriptors/index.js | 60 - .../merge-descriptors/package.json | 32 - build/node_modules/merge-stream/LICENSE | 21 - build/node_modules/merge-stream/README.md | 78 - build/node_modules/merge-stream/index.js | 41 - build/node_modules/merge-stream/package.json | 19 - build/node_modules/merge2/LICENSE | 21 - build/node_modules/merge2/README.md | 144 - build/node_modules/merge2/index.js | 144 - build/node_modules/merge2/package.json | 43 - build/node_modules/methods/HISTORY.md | 29 - build/node_modules/methods/LICENSE | 24 - build/node_modules/methods/README.md | 51 - build/node_modules/methods/index.js | 69 - build/node_modules/methods/package.json | 36 - build/node_modules/micromatch/CHANGELOG.md | 37 - build/node_modules/micromatch/LICENSE | 21 - build/node_modules/micromatch/README.md | 1150 - build/node_modules/micromatch/index.js | 877 - build/node_modules/micromatch/package.json | 147 - build/node_modules/mime-db/HISTORY.md | 507 - build/node_modules/mime-db/LICENSE | 23 - build/node_modules/mime-db/README.md | 100 - build/node_modules/mime-db/db.json | 8519 ------ build/node_modules/mime-db/index.js | 12 - build/node_modules/mime-db/package.json | 60 - build/node_modules/mime-types/HISTORY.md | 397 - build/node_modules/mime-types/LICENSE | 23 - build/node_modules/mime-types/README.md | 113 - build/node_modules/mime-types/index.js | 188 - build/node_modules/mime-types/package.json | 44 - build/node_modules/mime/CHANGELOG.md | 164 - build/node_modules/mime/LICENSE | 21 - build/node_modules/mime/README.md | 90 - build/node_modules/mime/cli.js | 8 - build/node_modules/mime/mime.js | 108 - build/node_modules/mime/package.json | 44 - build/node_modules/mime/types.json | 1 - build/node_modules/mimic-fn/index.d.ts | 56 - build/node_modules/mimic-fn/index.js | 75 - build/node_modules/mimic-fn/license | 9 - build/node_modules/mimic-fn/package.json | 42 - build/node_modules/mimic-fn/readme.md | 95 - .../mini-css-extract-plugin/LICENSE | 20 - .../mini-css-extract-plugin/README.md | 1218 - .../mini-css-extract-plugin/package.json | 100 - .../node_modules/minimalistic-assert/LICENSE | 13 - .../node_modules/minimalistic-assert/index.js | 11 - .../minimalistic-assert/package.json | 19 - .../minimalistic-assert/readme.md | 4 - build/node_modules/minimatch/LICENSE | 15 - build/node_modules/minimatch/README.md | 230 - build/node_modules/minimatch/minimatch.js | 947 - build/node_modules/minimatch/package.json | 33 - build/node_modules/minimist/.eslintrc | 29 - build/node_modules/minimist/.nycrc | 14 - build/node_modules/minimist/CHANGELOG.md | 298 - build/node_modules/minimist/LICENSE | 18 - build/node_modules/minimist/README.md | 121 - build/node_modules/minimist/index.js | 263 - build/node_modules/minimist/package.json | 75 - build/node_modules/minipass-collect/LICENSE | 15 - build/node_modules/minipass-collect/README.md | 48 - build/node_modules/minipass-collect/index.js | 71 - .../minipass-collect/package.json | 29 - build/node_modules/minipass-fetch/LICENSE | 28 - build/node_modules/minipass-fetch/README.md | 29 - build/node_modules/minipass-fetch/index.js | 1 - .../node_modules/minipass-fetch/package.json | 53 - build/node_modules/minipass-flush/LICENSE | 15 - build/node_modules/minipass-flush/README.md | 47 - build/node_modules/minipass-flush/index.js | 39 - .../node_modules/minipass-flush/package.json | 39 - build/node_modules/minipass-pipeline/LICENSE | 15 - .../node_modules/minipass-pipeline/README.md | 69 - build/node_modules/minipass-pipeline/index.js | 128 - .../minipass-pipeline/package.json | 29 - build/node_modules/minipass-sized/.npmignore | 22 - build/node_modules/minipass-sized/LICENSE | 15 - build/node_modules/minipass-sized/README.md | 28 - build/node_modules/minipass-sized/index.js | 67 - .../minipass-sized/package-lock.json | 3464 --- .../node_modules/minipass-sized/package.json | 39 - build/node_modules/minipass/LICENSE | 15 - build/node_modules/minipass/README.md | 728 - build/node_modules/minipass/index.d.ts | 155 - build/node_modules/minipass/index.js | 649 - build/node_modules/minipass/package.json | 56 - build/node_modules/minizlib/LICENSE | 26 - build/node_modules/minizlib/README.md | 60 - build/node_modules/minizlib/constants.js | 115 - build/node_modules/minizlib/index.js | 348 - build/node_modules/minizlib/package.json | 42 - build/node_modules/mixin-deep/LICENSE | 21 - build/node_modules/mixin-deep/README.md | 80 - build/node_modules/mixin-deep/index.js | 64 - build/node_modules/mixin-deep/package.json | 65 - build/node_modules/mkdirp/CHANGELOG.md | 15 - build/node_modules/mkdirp/LICENSE | 21 - build/node_modules/mkdirp/index.js | 31 - build/node_modules/mkdirp/package.json | 44 - build/node_modules/mkdirp/readme.markdown | 266 - build/node_modules/mrm-core/License.md | 9 - build/node_modules/mrm-core/Readme.md | 411 - build/node_modules/mrm-core/package.json | 58 - build/node_modules/ms/index.js | 162 - build/node_modules/ms/license.md | 21 - build/node_modules/ms/package.json | 38 - build/node_modules/ms/readme.md | 59 - build/node_modules/multicast-dns/.travis.yml | 6 - build/node_modules/multicast-dns/LICENSE | 21 - build/node_modules/multicast-dns/README.md | 210 - build/node_modules/multicast-dns/appveyor.yml | 30 - build/node_modules/multicast-dns/cli.js | 64 - build/node_modules/multicast-dns/example.js | 36 - build/node_modules/multicast-dns/index.js | 205 - build/node_modules/multicast-dns/package.json | 43 - build/node_modules/multicast-dns/test.js | 260 - build/node_modules/mustache/CHANGELOG.md | 618 - build/node_modules/mustache/LICENSE | 11 - build/node_modules/mustache/README.md | 621 - build/node_modules/mustache/mustache.js | 772 - build/node_modules/mustache/mustache.min.js | 1 - build/node_modules/mustache/mustache.mjs | 764 - build/node_modules/mustache/package.json | 67 - build/node_modules/nanoid/LICENSE | 20 - build/node_modules/nanoid/README.md | 39 - build/node_modules/nanoid/index.browser.cjs | 34 - build/node_modules/nanoid/index.browser.js | 34 - build/node_modules/nanoid/index.cjs | 45 - build/node_modules/nanoid/index.d.ts | 91 - build/node_modules/nanoid/index.js | 45 - build/node_modules/nanoid/nanoid.js | 1 - build/node_modules/nanoid/package.json | 66 - build/node_modules/nanomatch/CHANGELOG.md | 57 - build/node_modules/nanomatch/LICENSE | 21 - build/node_modules/nanomatch/README.md | 1148 - build/node_modules/nanomatch/index.js | 838 - build/node_modules/nanomatch/package.json | 134 - .../natural-compare-lite/README.md | 126 - .../natural-compare-lite/index.js | 57 - .../natural-compare-lite/package.json | 42 - build/node_modules/natural-compare/README.md | 125 - build/node_modules/natural-compare/index.js | 57 - .../node_modules/natural-compare/package.json | 42 - build/node_modules/negotiator/HISTORY.md | 108 - build/node_modules/negotiator/LICENSE | 24 - build/node_modules/negotiator/README.md | 203 - build/node_modules/negotiator/index.js | 82 - build/node_modules/negotiator/package.json | 42 - build/node_modules/neo-async/LICENSE | 22 - build/node_modules/neo-async/README.md | 273 - build/node_modules/neo-async/all.js | 3 - build/node_modules/neo-async/allLimit.js | 3 - build/node_modules/neo-async/allSeries.js | 3 - build/node_modules/neo-async/angelFall.js | 3 - build/node_modules/neo-async/any.js | 3 - build/node_modules/neo-async/anyLimit.js | 3 - build/node_modules/neo-async/anySeries.js | 3 - build/node_modules/neo-async/apply.js | 3 - build/node_modules/neo-async/applyEach.js | 3 - .../node_modules/neo-async/applyEachSeries.js | 3 - build/node_modules/neo-async/async.js | 9184 ------- build/node_modules/neo-async/async.min.js | 80 - build/node_modules/neo-async/asyncify.js | 3 - build/node_modules/neo-async/auto.js | 3 - build/node_modules/neo-async/autoInject.js | 3 - build/node_modules/neo-async/cargo.js | 3 - build/node_modules/neo-async/compose.js | 3 - build/node_modules/neo-async/concat.js | 3 - build/node_modules/neo-async/concatLimit.js | 3 - build/node_modules/neo-async/concatSeries.js | 3 - build/node_modules/neo-async/constant.js | 3 - build/node_modules/neo-async/createLogger.js | 3 - build/node_modules/neo-async/detect.js | 3 - build/node_modules/neo-async/detectLimit.js | 3 - build/node_modules/neo-async/detectSeries.js | 3 - build/node_modules/neo-async/dir.js | 3 - build/node_modules/neo-async/doDuring.js | 3 - build/node_modules/neo-async/doUntil.js | 3 - build/node_modules/neo-async/doWhilst.js | 3 - build/node_modules/neo-async/during.js | 3 - build/node_modules/neo-async/each.js | 3 - build/node_modules/neo-async/eachLimit.js | 3 - build/node_modules/neo-async/eachOf.js | 3 - build/node_modules/neo-async/eachOfLimit.js | 3 - build/node_modules/neo-async/eachOfSeries.js | 3 - build/node_modules/neo-async/eachSeries.js | 3 - build/node_modules/neo-async/ensureAsync.js | 3 - build/node_modules/neo-async/every.js | 3 - build/node_modules/neo-async/everyLimit.js | 3 - build/node_modules/neo-async/everySeries.js | 3 - build/node_modules/neo-async/fast.js | 3 - build/node_modules/neo-async/filter.js | 3 - build/node_modules/neo-async/filterLimit.js | 3 - build/node_modules/neo-async/filterSeries.js | 3 - build/node_modules/neo-async/find.js | 3 - build/node_modules/neo-async/findLimit.js | 3 - build/node_modules/neo-async/findSeries.js | 3 - build/node_modules/neo-async/foldl.js | 3 - build/node_modules/neo-async/foldr.js | 3 - build/node_modules/neo-async/forEach.js | 3 - build/node_modules/neo-async/forEachLimit.js | 3 - build/node_modules/neo-async/forEachOf.js | 3 - .../node_modules/neo-async/forEachOfLimit.js | 3 - .../node_modules/neo-async/forEachOfSeries.js | 3 - build/node_modules/neo-async/forEachSeries.js | 3 - build/node_modules/neo-async/forever.js | 3 - build/node_modules/neo-async/groupBy.js | 3 - build/node_modules/neo-async/groupByLimit.js | 3 - build/node_modules/neo-async/groupBySeries.js | 3 - build/node_modules/neo-async/inject.js | 3 - build/node_modules/neo-async/iterator.js | 3 - build/node_modules/neo-async/log.js | 3 - build/node_modules/neo-async/map.js | 3 - build/node_modules/neo-async/mapLimit.js | 3 - build/node_modules/neo-async/mapSeries.js | 3 - build/node_modules/neo-async/mapValues.js | 3 - .../node_modules/neo-async/mapValuesLimit.js | 3 - .../node_modules/neo-async/mapValuesSeries.js | 3 - build/node_modules/neo-async/memoize.js | 3 - build/node_modules/neo-async/nextTick.js | 3 - build/node_modules/neo-async/omit.js | 3 - build/node_modules/neo-async/omitLimit.js | 3 - build/node_modules/neo-async/omitSeries.js | 3 - build/node_modules/neo-async/package.json | 57 - build/node_modules/neo-async/parallel.js | 3 - build/node_modules/neo-async/parallelLimit.js | 3 - build/node_modules/neo-async/pick.js | 3 - build/node_modules/neo-async/pickLimit.js | 3 - build/node_modules/neo-async/pickSeries.js | 3 - build/node_modules/neo-async/priorityQueue.js | 3 - build/node_modules/neo-async/queue.js | 3 - build/node_modules/neo-async/race.js | 3 - build/node_modules/neo-async/reduce.js | 3 - build/node_modules/neo-async/reduceRight.js | 3 - build/node_modules/neo-async/reflect.js | 3 - build/node_modules/neo-async/reflectAll.js | 3 - build/node_modules/neo-async/reject.js | 3 - build/node_modules/neo-async/rejectLimit.js | 3 - build/node_modules/neo-async/rejectSeries.js | 3 - build/node_modules/neo-async/retry.js | 3 - build/node_modules/neo-async/retryable.js | 3 - build/node_modules/neo-async/safe.js | 3 - build/node_modules/neo-async/select.js | 3 - build/node_modules/neo-async/selectLimit.js | 3 - build/node_modules/neo-async/selectSeries.js | 3 - build/node_modules/neo-async/seq.js | 3 - build/node_modules/neo-async/series.js | 3 - build/node_modules/neo-async/setImmediate.js | 3 - build/node_modules/neo-async/some.js | 3 - build/node_modules/neo-async/someLimit.js | 3 - build/node_modules/neo-async/someSeries.js | 3 - build/node_modules/neo-async/sortBy.js | 3 - build/node_modules/neo-async/sortByLimit.js | 3 - build/node_modules/neo-async/sortBySeries.js | 3 - build/node_modules/neo-async/timeout.js | 3 - build/node_modules/neo-async/times.js | 3 - build/node_modules/neo-async/timesLimit.js | 3 - build/node_modules/neo-async/timesSeries.js | 3 - build/node_modules/neo-async/transform.js | 3 - .../node_modules/neo-async/transformLimit.js | 3 - .../node_modules/neo-async/transformSeries.js | 3 - build/node_modules/neo-async/tryEach.js | 3 - build/node_modules/neo-async/unmemoize.js | 3 - build/node_modules/neo-async/until.js | 3 - build/node_modules/neo-async/waterfall.js | 3 - build/node_modules/neo-async/whilst.js | 3 - build/node_modules/neo-async/wrapSync.js | 3 - .../nested-error-stacks/CHANGELOG.md | 4 - .../node_modules/nested-error-stacks/LICENSE | 22 - .../nested-error-stacks/README.md | 59 - .../node_modules/nested-error-stacks/index.js | 50 - .../nested-error-stacks/package.json | 33 - build/node_modules/no-case/LICENSE | 21 - build/node_modules/no-case/README.md | 37 - build/node_modules/no-case/package.json | 85 - build/node_modules/node-addon-api/LICENSE.md | 13 - build/node_modules/node-addon-api/README.md | 293 - build/node_modules/node-addon-api/common.gypi | 21 - build/node_modules/node-addon-api/except.gypi | 25 - build/node_modules/node-addon-api/index.js | 11 - .../node-addon-api/napi-inl.deprecated.h | 192 - build/node_modules/node-addon-api/napi-inl.h | 6209 ----- build/node_modules/node-addon-api/napi.h | 2983 --- .../node_modules/node-addon-api/node_api.gyp | 9 - .../node_modules/node-addon-api/noexcept.gypi | 26 - .../node-addon-api/package-support.json | 21 - .../node_modules/node-addon-api/package.json | 399 - build/node_modules/node-emoji/.travis.yml | 3 - build/node_modules/node-emoji/LICENSE | 21 - build/node_modules/node-emoji/README.md | 86 - build/node_modules/node-emoji/index.js | 1 - build/node_modules/node-emoji/package.json | 42 - build/node_modules/node-fetch/LICENSE.md | 22 - build/node_modules/node-fetch/README.md | 634 - build/node_modules/node-fetch/browser.js | 25 - build/node_modules/node-fetch/package.json | 89 - build/node_modules/node-forge/CHANGELOG.md | 412 - build/node_modules/node-forge/LICENSE | 331 - build/node_modules/node-forge/README.md | 2071 -- build/node_modules/node-forge/package.json | 123 - build/node_modules/node-gyp/CHANGELOG.md | 687 - build/node_modules/node-gyp/CONTRIBUTING.md | 34 - build/node_modules/node-gyp/LICENSE | 24 - build/node_modules/node-gyp/README.md | 256 - build/node_modules/node-gyp/addon.gypi | 185 - build/node_modules/node-gyp/macOS_Catalina.md | 104 - .../node-gyp/macOS_Catalina_acid_test.sh | 21 - build/node_modules/node-gyp/package.json | 50 - build/node_modules/node-gyp/update-gyp.py | 46 - build/node_modules/node-releases/LICENSE | 21 - build/node_modules/node-releases/README.md | 12 - build/node_modules/node-releases/package.json | 19 - build/node_modules/node-repl-await/LICENSE | 21 - build/node_modules/node-repl-await/README.md | 62 - build/node_modules/node-repl-await/index.d.ts | 1 - build/node_modules/node-repl-await/index.js | 143 - .../node_modules/node-repl-await/package.json | 38 - build/node_modules/node-repl-await/test.js | 21 - build/node_modules/nopt/CHANGELOG.md | 58 - build/node_modules/nopt/LICENSE | 15 - build/node_modules/nopt/README.md | 213 - build/node_modules/nopt/package.json | 34 - build/node_modules/normalize-path/LICENSE | 21 - build/node_modules/normalize-path/README.md | 127 - build/node_modules/normalize-path/index.js | 35 - .../node_modules/normalize-path/package.json | 77 - build/node_modules/normalize-url/index.d.ts | 267 - build/node_modules/normalize-url/index.js | 216 - build/node_modules/normalize-url/license | 9 - build/node_modules/normalize-url/package.json | 50 - build/node_modules/normalize-url/readme.md | 286 - build/node_modules/npm-run-path/index.d.ts | 89 - build/node_modules/npm-run-path/index.js | 47 - build/node_modules/npm-run-path/license | 9 - build/node_modules/npm-run-path/package.json | 44 - build/node_modules/npm-run-path/readme.md | 115 - build/node_modules/npmlog/LICENSE | 15 - build/node_modules/npmlog/README.md | 216 - build/node_modules/npmlog/log.js | 403 - build/node_modules/npmlog/package.json | 33 - build/node_modules/nth-check/LICENSE | 11 - build/node_modules/nth-check/README.md | 136 - build/node_modules/nth-check/package.json | 78 - build/node_modules/object-assign/index.js | 90 - build/node_modules/object-assign/license | 21 - build/node_modules/object-assign/package.json | 42 - build/node_modules/object-assign/readme.md | 61 - build/node_modules/object-copy/LICENSE | 21 - build/node_modules/object-copy/index.js | 174 - build/node_modules/object-copy/package.json | 47 - build/node_modules/object-inspect/.eslintrc | 53 - build/node_modules/object-inspect/.nycrc | 13 - .../node_modules/object-inspect/CHANGELOG.md | 389 - build/node_modules/object-inspect/LICENSE | 21 - build/node_modules/object-inspect/index.js | 524 - .../object-inspect/package-support.json | 20 - .../node_modules/object-inspect/package.json | 99 - .../object-inspect/readme.markdown | 86 - .../object-inspect/test-core-js.js | 26 - .../object-inspect/util.inspect.js | 1 - build/node_modules/object-visit/LICENSE | 21 - build/node_modules/object-visit/README.md | 83 - build/node_modules/object-visit/index.js | 33 - build/node_modules/object-visit/package.json | 65 - build/node_modules/object.pick/LICENSE | 21 - build/node_modules/object.pick/README.md | 76 - build/node_modules/object.pick/index.js | 35 - build/node_modules/object.pick/package.json | 60 - build/node_modules/obuf/LICENSE | 20 - build/node_modules/obuf/README.md | 12 - build/node_modules/obuf/index.js | 396 - build/node_modules/obuf/package.json | 27 - build/node_modules/on-exit-leak-free/LICENSE | 21 - .../node_modules/on-exit-leak-free/README.md | 54 - build/node_modules/on-exit-leak-free/index.js | 108 - .../on-exit-leak-free/package.json | 37 - build/node_modules/on-finished/HISTORY.md | 98 - build/node_modules/on-finished/LICENSE | 23 - build/node_modules/on-finished/README.md | 162 - build/node_modules/on-finished/index.js | 234 - build/node_modules/on-finished/package.json | 39 - build/node_modules/on-headers/HISTORY.md | 21 - build/node_modules/on-headers/LICENSE | 22 - build/node_modules/on-headers/README.md | 81 - build/node_modules/on-headers/index.js | 132 - build/node_modules/on-headers/package.json | 42 - build/node_modules/once/LICENSE | 15 - build/node_modules/once/README.md | 79 - build/node_modules/once/once.js | 42 - build/node_modules/once/package.json | 33 - build/node_modules/onetime/index.d.ts | 64 - build/node_modules/onetime/index.js | 44 - build/node_modules/onetime/license | 9 - build/node_modules/onetime/package.json | 43 - build/node_modules/onetime/readme.md | 94 - build/node_modules/open/index.d.ts | 153 - build/node_modules/open/index.js | 334 - build/node_modules/open/license | 9 - build/node_modules/open/package.json | 61 - build/node_modules/open/readme.md | 171 - build/node_modules/open/xdg-open | 1066 - .../openapi-schema-validator/CHANGELOG.md | 26 - .../openapi-schema-validator/LICENSE | 21 - .../openapi-schema-validator/README.md | 92 - .../openapi-schema-validator/package.json | 35 - build/node_modules/openapi-types/CHANGELOG.md | 30 - build/node_modules/openapi-types/README.md | 50 - build/node_modules/openapi-types/package.json | 25 - build/node_modules/optionator/CHANGELOG.md | 59 - build/node_modules/optionator/LICENSE | 22 - build/node_modules/optionator/README.md | 238 - build/node_modules/optionator/package.json | 43 - build/node_modules/p-all/index.d.ts | 195 - build/node_modules/p-all/index.js | 6 - build/node_modules/p-all/license | 9 - build/node_modules/p-all/package.json | 54 - build/node_modules/p-all/readme.md | 75 - build/node_modules/p-defer/index.js | 11 - build/node_modules/p-defer/license | 21 - build/node_modules/p-defer/package.json | 41 - build/node_modules/p-defer/readme.md | 47 - build/node_modules/p-event/index.d.ts | 265 - build/node_modules/p-event/index.js | 291 - build/node_modules/p-event/license | 9 - build/node_modules/p-event/package.json | 56 - build/node_modules/p-event/readme.md | 324 - build/node_modules/p-filter/index.d.ts | 61 - build/node_modules/p-filter/index.js | 15 - build/node_modules/p-filter/license | 9 - build/node_modules/p-filter/package.json | 45 - build/node_modules/p-filter/readme.md | 83 - build/node_modules/p-finally/index.js | 15 - build/node_modules/p-finally/license | 21 - build/node_modules/p-finally/package.json | 42 - build/node_modules/p-finally/readme.md | 47 - build/node_modules/p-limit/index.d.ts | 42 - build/node_modules/p-limit/index.js | 71 - build/node_modules/p-limit/license | 9 - build/node_modules/p-limit/package.json | 52 - build/node_modules/p-limit/readme.md | 101 - build/node_modules/p-locate/index.d.ts | 53 - build/node_modules/p-locate/index.js | 50 - build/node_modules/p-locate/license | 9 - build/node_modules/p-locate/package.json | 54 - build/node_modules/p-locate/readme.md | 93 - build/node_modules/p-map/index.d.ts | 65 - build/node_modules/p-map/index.js | 81 - build/node_modules/p-map/license | 9 - build/node_modules/p-map/package.json | 52 - build/node_modules/p-map/readme.md | 99 - build/node_modules/p-retry/index.d.ts | 106 - build/node_modules/p-retry/index.js | 85 - build/node_modules/p-retry/license | 9 - build/node_modules/p-retry/package.json | 51 - build/node_modules/p-retry/readme.md | 148 - build/node_modules/p-timeout/index.d.ts | 72 - build/node_modules/p-timeout/index.js | 57 - build/node_modules/p-timeout/license | 9 - build/node_modules/p-timeout/package.json | 45 - build/node_modules/p-timeout/readme.md | 87 - build/node_modules/p-try/index.d.ts | 39 - build/node_modules/p-try/index.js | 9 - build/node_modules/p-try/license | 9 - build/node_modules/p-try/package.json | 42 - build/node_modules/p-try/readme.md | 58 - build/node_modules/param-case/LICENSE | 21 - build/node_modules/param-case/README.md | 37 - build/node_modules/param-case/package.json | 91 - build/node_modules/parent-module/index.js | 37 - build/node_modules/parent-module/license | 9 - build/node_modules/parent-module/package.json | 46 - build/node_modules/parent-module/readme.md | 67 - build/node_modules/parse-imports/license | 201 - build/node_modules/parse-imports/package.json | 105 - build/node_modules/parse-imports/readme.md | 237 - build/node_modules/parseurl/HISTORY.md | 58 - build/node_modules/parseurl/LICENSE | 24 - build/node_modules/parseurl/README.md | 133 - build/node_modules/parseurl/index.js | 158 - build/node_modules/parseurl/package.json | 40 - build/node_modules/pascal-case/LICENSE | 21 - build/node_modules/pascal-case/README.md | 47 - build/node_modules/pascal-case/package.json | 90 - build/node_modules/pascalcase/LICENSE | 21 - build/node_modules/pascalcase/README.md | 80 - build/node_modules/pascalcase/index.js | 21 - build/node_modules/pascalcase/package.json | 46 - build/node_modules/path-case/LICENSE | 21 - build/node_modules/path-case/README.md | 37 - build/node_modules/path-case/package.json | 88 - build/node_modules/path-dirname/index.js | 143 - build/node_modules/path-dirname/license | 22 - build/node_modules/path-dirname/package.json | 29 - build/node_modules/path-dirname/readme.md | 53 - build/node_modules/path-exists/index.d.ts | 28 - build/node_modules/path-exists/index.js | 23 - build/node_modules/path-exists/license | 9 - build/node_modules/path-exists/package.json | 39 - build/node_modules/path-exists/readme.md | 52 - build/node_modules/path-is-absolute/index.js | 20 - build/node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 43 - build/node_modules/path-is-absolute/readme.md | 59 - build/node_modules/path-is-inside/LICENSE.txt | 47 - .../node_modules/path-is-inside/package.json | 21 - build/node_modules/path-key/index.d.ts | 40 - build/node_modules/path-key/index.js | 16 - build/node_modules/path-key/license | 9 - build/node_modules/path-key/package.json | 39 - build/node_modules/path-key/readme.md | 61 - build/node_modules/path-parse/LICENSE | 21 - build/node_modules/path-parse/README.md | 42 - build/node_modules/path-parse/index.js | 75 - build/node_modules/path-parse/package.json | 33 - build/node_modules/path-to-regexp/History.md | 36 - build/node_modules/path-to-regexp/LICENSE | 21 - build/node_modules/path-to-regexp/Readme.md | 35 - build/node_modules/path-to-regexp/index.js | 129 - .../node_modules/path-to-regexp/package.json | 30 - build/node_modules/path-type/index.js | 42 - build/node_modules/path-type/license | 9 - build/node_modules/path-type/package.json | 45 - build/node_modules/path-type/readme.md | 42 - build/node_modules/pathval/CHANGELOG.md | 18 - build/node_modules/pathval/LICENSE | 16 - build/node_modules/pathval/README.md | 147 - build/node_modules/pathval/index.js | 301 - build/node_modules/pathval/package.json | 80 - build/node_modules/pathval/pathval.js | 1 - build/node_modules/peek-readable/LICENSE | 21 - build/node_modules/peek-readable/README.md | 93 - build/node_modules/peek-readable/package.json | 87 - .../node_modules/pg-connection-string/LICENSE | 21 - .../pg-connection-string/README.md | 77 - .../pg-connection-string/index.d.ts | 15 - .../pg-connection-string/index.js | 109 - .../pg-connection-string/package.json | 40 - build/node_modules/phc-argon2/index.js | 344 - build/node_modules/phc-argon2/license | 21 - build/node_modules/phc-argon2/package.json | 92 - build/node_modules/phc-argon2/readme.md | 542 - build/node_modules/picocolors/LICENSE | 15 - build/node_modules/picocolors/README.md | 21 - build/node_modules/picocolors/package.json | 25 - .../picocolors/picocolors.browser.js | 4 - build/node_modules/picocolors/picocolors.d.ts | 5 - build/node_modules/picocolors/picocolors.js | 58 - build/node_modules/picocolors/types.ts | 30 - build/node_modules/picomatch/CHANGELOG.md | 136 - build/node_modules/picomatch/LICENSE | 21 - build/node_modules/picomatch/README.md | 708 - build/node_modules/picomatch/index.js | 3 - build/node_modules/picomatch/package.json | 81 - build/node_modules/pify/index.js | 68 - build/node_modules/pify/license | 9 - build/node_modules/pify/package.json | 51 - build/node_modules/pify/readme.md | 145 - build/node_modules/pinkie-promise/index.js | 3 - build/node_modules/pinkie-promise/license | 21 - .../node_modules/pinkie-promise/package.json | 35 - build/node_modules/pinkie-promise/readme.md | 28 - build/node_modules/pinkie/index.js | 292 - build/node_modules/pinkie/license | 21 - build/node_modules/pinkie/package.json | 36 - build/node_modules/pinkie/readme.md | 83 - .../pino-abstract-transport/LICENSE | 21 - .../pino-abstract-transport/README.md | 147 - .../pino-abstract-transport/index.d.ts | 92 - .../pino-abstract-transport/index.js | 78 - .../pino-abstract-transport/package.json | 40 - build/node_modules/pino-pretty/.editorconfig | 13 - build/node_modules/pino-pretty/.eslintrc | 8 - build/node_modules/pino-pretty/.taprc.yaml | 8 - build/node_modules/pino-pretty/LICENSE | 23 - build/node_modules/pino-pretty/Readme.md | 381 - build/node_modules/pino-pretty/benchmark.js | 105 - build/node_modules/pino-pretty/bin.js | 116 - .../node_modules/pino-pretty/coverage-map.js | 9 - build/node_modules/pino-pretty/demo.png | Bin 14524 -> 0 bytes build/node_modules/pino-pretty/index.d.ts | 214 - build/node_modules/pino-pretty/index.js | 170 - build/node_modules/pino-pretty/package.json | 67 - build/node_modules/pino-pretty/tsconfig.json | 13 - .../pino-std-serializers/.editorconfig | 13 - .../pino-std-serializers/.eslintignore | 2 - .../node_modules/pino-std-serializers/.taprc | 2 - .../node_modules/pino-std-serializers/LICENSE | 7 - .../pino-std-serializers/Readme.md | 181 - .../pino-std-serializers/index.d.ts | 145 - .../pino-std-serializers/index.js | 36 - .../pino-std-serializers/package.json | 46 - .../pino-std-serializers/tsconfig.json | 13 - build/node_modules/pino/LICENSE | 24 - build/node_modules/pino/README.md | 152 - build/node_modules/pino/bin.js | 6 - build/node_modules/pino/browser.js | 358 - build/node_modules/pino/example.js | 36 - build/node_modules/pino/package.json | 101 - build/node_modules/pino/pino.js | 238 - build/node_modules/pirates/LICENSE | 21 - build/node_modules/pirates/README.md | 69 - build/node_modules/pirates/index.d.ts | 82 - build/node_modules/pirates/package.json | 74 - build/node_modules/pkg-dir/index.d.ts | 44 - build/node_modules/pkg-dir/index.js | 17 - build/node_modules/pkg-dir/license | 9 - build/node_modules/pkg-dir/package.json | 56 - build/node_modules/pkg-dir/readme.md | 66 - build/node_modules/pkg-up/index.d.ts | 48 - build/node_modules/pkg-up/index.js | 5 - build/node_modules/pkg-up/license | 9 - build/node_modules/pkg-up/package.json | 52 - build/node_modules/pkg-up/readme.md | 68 - build/node_modules/pluralize/LICENSE | 21 - build/node_modules/pluralize/Readme.md | 100 - build/node_modules/pluralize/package.json | 40 - build/node_modules/pluralize/pluralize.js | 503 - .../posix-character-classes/LICENSE | 21 - .../posix-character-classes/README.md | 103 - .../posix-character-classes/index.js | 22 - .../posix-character-classes/package.json | 54 - build/node_modules/postcss-calc/LICENSE | 20 - build/node_modules/postcss-calc/README.md | 153 - build/node_modules/postcss-calc/package.json | 62 - .../node_modules/postcss-colormin/LICENSE-MIT | 22 - build/node_modules/postcss-colormin/README.md | 45 - .../postcss-colormin/package.json | 48 - .../postcss-convert-values/LICENSE-MIT | 22 - .../postcss-convert-values/README.md | 98 - .../postcss-convert-values/package.json | 42 - .../postcss-discard-comments/LICENSE-MIT | 22 - .../postcss-discard-comments/README.md | 114 - .../postcss-discard-comments/package.json | 38 - .../postcss-discard-duplicates/LICENSE-MIT | 22 - .../postcss-discard-duplicates/README.md | 70 - .../postcss-discard-duplicates/package.json | 40 - .../postcss-discard-empty/LICENSE-MIT | 22 - .../postcss-discard-empty/README.md | 49 - .../postcss-discard-empty/package.json | 42 - .../postcss-discard-overridden/LICENSE | 20 - .../postcss-discard-overridden/README.md | 158 - .../postcss-discard-overridden/package.json | 36 - .../postcss-merge-longhand/LICENSE-MIT | 22 - .../postcss-merge-longhand/README.md | 50 - .../postcss-merge-longhand/package.json | 43 - .../postcss-merge-rules/LICENSE-MIT | 22 - .../postcss-merge-rules/README.md | 105 - .../postcss-merge-rules/package.json | 46 - .../postcss-minify-font-values/LICENSE | 22 - .../postcss-minify-font-values/README.md | 81 - .../postcss-minify-font-values/package.json | 40 - .../postcss-minify-gradients/LICENSE-MIT | 22 - .../postcss-minify-gradients/README.md | 53 - .../postcss-minify-gradients/package.json | 43 - .../postcss-minify-params/LICENSE | 20 - .../postcss-minify-params/README.md | 39 - .../postcss-minify-params/package.json | 41 - .../postcss-minify-selectors/LICENSE-MIT | 22 - .../postcss-minify-selectors/README.md | 42 - .../postcss-minify-selectors/package.json | 43 - .../CHANGELOG.md | 42 - .../postcss-modules-extract-imports/LICENSE | 5 - .../postcss-modules-extract-imports/README.md | 76 - .../package.json | 51 - .../postcss-modules-local-by-default/LICENSE | 20 - .../README.md | 68 - .../package.json | 52 - .../postcss-modules-scope/CHANGELOG.md | 57 - .../postcss-modules-scope/LICENSE | 7 - .../postcss-modules-scope/README.md | 100 - .../postcss-modules-scope/package.json | 54 - .../postcss-modules-values/CHANGELOG.md | 55 - .../postcss-modules-values/LICENSE | 7 - .../postcss-modules-values/README.md | 80 - .../postcss-modules-values/package.json | 54 - .../postcss-normalize-charset/LICENSE | 20 - .../postcss-normalize-charset/README.md | 43 - .../postcss-normalize-charset/package.json | 35 - .../LICENSE-MIT | 22 - .../README.md | 44 - .../package.json | 36 - .../postcss-normalize-positions/LICENSE-MIT | 22 - .../postcss-normalize-positions/README.md | 44 - .../postcss-normalize-positions/package.json | 40 - .../LICENSE-MIT | 22 - .../postcss-normalize-repeat-style/README.md | 44 - .../package.json | 35 - .../postcss-normalize-string/LICENSE-MIT | 22 - .../postcss-normalize-string/README.md | 59 - .../postcss-normalize-string/package.json | 41 - .../LICENSE-MIT | 22 - .../README.md | 44 - .../package.json | 36 - .../postcss-normalize-unicode/LICENSE-MIT | 22 - .../postcss-normalize-unicode/README.md | 46 - .../postcss-normalize-unicode/package.json | 41 - .../postcss-normalize-url/LICENSE-MIT | 22 - .../postcss-normalize-url/README.md | 55 - .../postcss-normalize-url/package.json | 46 - .../postcss-normalize-whitespace/LICENSE-MIT | 22 - .../postcss-normalize-whitespace/README.md | 44 - .../postcss-normalize-whitespace/package.json | 41 - .../postcss-ordered-values/LICENSE-MIT | 22 - .../postcss-ordered-values/README.md | 72 - .../postcss-ordered-values/package.json | 42 - .../postcss-reduce-initial/LICENSE-MIT | 22 - .../postcss-reduce-initial/README.md | 92 - .../postcss-reduce-initial/package.json | 46 - .../postcss-reduce-transforms/LICENSE-MIT | 22 - .../postcss-reduce-transforms/README.md | 47 - .../postcss-reduce-transforms/package.json | 36 - .../postcss-selector-parser/API.md | 872 - .../postcss-selector-parser/CHANGELOG.md | 525 - .../postcss-selector-parser/LICENSE-MIT | 22 - .../postcss-selector-parser/README.md | 49 - .../postcss-selector-parser/package.json | 79 - .../postcss-selector-parser.d.ts | 555 - build/node_modules/postcss-svgo/LICENSE-MIT | 22 - build/node_modules/postcss-svgo/README.md | 110 - build/node_modules/postcss-svgo/package.json | 47 - .../postcss-unique-selectors/LICENSE-MIT | 22 - .../postcss-unique-selectors/README.md | 46 - .../postcss-unique-selectors/package.json | 41 - .../node_modules/postcss-value-parser/LICENSE | 22 - .../postcss-value-parser/README.md | 263 - .../postcss-value-parser/package.json | 58 - build/node_modules/postcss/LICENSE | 20 - build/node_modules/postcss/README.md | 28 - build/node_modules/postcss/package.json | 88 - build/node_modules/prelude-ls/CHANGELOG.md | 108 - build/node_modules/prelude-ls/LICENSE | 22 - build/node_modules/prelude-ls/README.md | 15 - build/node_modules/prelude-ls/package.json | 46 - .../prettier-linter-helpers/.editorconfig | 15 - .../prettier-linter-helpers/.eslintignore | 2 - .../prettier-linter-helpers/.eslintrc.js | 6 - .../prettier-linter-helpers/.prettierignore | 1 - .../prettier-linter-helpers/.prettierrc | 6 - .../prettier-linter-helpers/LICENSE.md | 24 - .../prettier-linter-helpers/README.md | 14 - .../prettier-linter-helpers/index.js | 145 - .../prettier-linter-helpers/package.json | 38 - build/node_modules/prettier/LICENSE | 5195 ---- build/node_modules/prettier/README.md | 109 - build/node_modules/prettier/doc.d.ts | 243 - build/node_modules/prettier/doc.js | 1340 - build/node_modules/prettier/doc.mjs | 1312 - build/node_modules/prettier/index.cjs | 655 - build/node_modules/prettier/index.d.ts | 930 - build/node_modules/prettier/index.mjs | 21563 ---------------- build/node_modules/prettier/package.json | 195 - build/node_modules/prettier/standalone.d.ts | 33 - build/node_modules/prettier/standalone.js | 37 - build/node_modules/prettier/standalone.mjs | 37 - build/node_modules/pretty-error/.mocharc.yaml | 5 - build/node_modules/pretty-error/.travis.yml | 6 - build/node_modules/pretty-error/CHANGELOG.md | 5 - build/node_modules/pretty-error/LICENSE | 20 - build/node_modules/pretty-error/README.md | 322 - build/node_modules/pretty-error/index.d.ts | 66 - build/node_modules/pretty-error/package.json | 48 - build/node_modules/pretty-error/start.js | 1 - build/node_modules/pretty-format/LICENSE | 21 - build/node_modules/pretty-format/README.md | 463 - build/node_modules/pretty-format/package.json | 43 - .../node_modules/pretty-hrtime/.jshintignore | 1 - build/node_modules/pretty-hrtime/.npmignore | 10 - build/node_modules/pretty-hrtime/LICENSE | 20 - build/node_modules/pretty-hrtime/README.md | 57 - build/node_modules/pretty-hrtime/index.js | 80 - build/node_modules/pretty-hrtime/package.json | 25 - .../printable-characters/.babelrc | 3 - .../printable-characters/.eslintrc | 6 - .../printable-characters/.gitattributes | 2 - .../printable-characters/.npmignore | 8 - .../printable-characters/.travis.yml | 24 - .../printable-characters/CHANGELOG.md | 1 - .../node_modules/printable-characters/LICENSE | 24 - .../printable-characters/README.md | 88 - .../printable-characters/package-lock.json | 5498 ---- .../printable-characters/package.json | 72 - .../printable-characters.js | 44 - .../node_modules/printable-characters/test.js | 77 - .../process-nextick-args/index.js | 45 - .../process-nextick-args/license.md | 19 - .../process-nextick-args/package.json | 25 - .../process-nextick-args/readme.md | 18 - build/node_modules/process/.eslintrc | 21 - build/node_modules/process/LICENSE | 22 - build/node_modules/process/README.md | 26 - build/node_modules/process/browser.js | 184 - build/node_modules/process/index.js | 2 - build/node_modules/process/package.json | 27 - build/node_modules/process/test.js | 199 - build/node_modules/promise-inflight/LICENSE | 14 - build/node_modules/promise-inflight/README.md | 34 - .../node_modules/promise-inflight/inflight.js | 36 - .../promise-inflight/package.json | 24 - .../node_modules/promise-retry/.editorconfig | 15 - build/node_modules/promise-retry/.jshintrc | 64 - build/node_modules/promise-retry/.travis.yml | 4 - build/node_modules/promise-retry/LICENSE | 19 - build/node_modules/promise-retry/README.md | 94 - build/node_modules/promise-retry/index.js | 52 - build/node_modules/promise-retry/package.json | 37 - build/node_modules/prop-ini/LICENSE | 22 - build/node_modules/prop-ini/README.md | 103 - build/node_modules/prop-ini/package.json | 30 - build/node_modules/prop-ini/prop-ini.js | 603 - build/node_modules/proxy-addr/HISTORY.md | 161 - build/node_modules/proxy-addr/LICENSE | 22 - build/node_modules/proxy-addr/README.md | 139 - build/node_modules/proxy-addr/index.js | 327 - build/node_modules/proxy-addr/package.json | 47 - build/node_modules/pseudomap/LICENSE | 15 - build/node_modules/pseudomap/README.md | 60 - build/node_modules/pseudomap/map.js | 9 - build/node_modules/pseudomap/package.json | 25 - build/node_modules/pseudomap/pseudomap.js | 113 - build/node_modules/pump/.travis.yml | 5 - build/node_modules/pump/LICENSE | 21 - build/node_modules/pump/README.md | 65 - build/node_modules/pump/index.js | 82 - build/node_modules/pump/package.json | 24 - build/node_modules/pump/test-browser.js | 66 - build/node_modules/pump/test-node.js | 53 - build/node_modules/punycode/LICENSE-MIT.txt | 20 - build/node_modules/punycode/README.md | 126 - build/node_modules/punycode/package.json | 58 - build/node_modules/punycode/punycode.es6.js | 444 - build/node_modules/punycode/punycode.js | 443 - build/node_modules/qs/.editorconfig | 43 - build/node_modules/qs/.eslintrc | 38 - build/node_modules/qs/.nycrc | 13 - build/node_modules/qs/CHANGELOG.md | 559 - build/node_modules/qs/LICENSE.md | 29 - build/node_modules/qs/README.md | 663 - build/node_modules/qs/package.json | 80 - build/node_modules/queue-microtask/LICENSE | 20 - build/node_modules/queue-microtask/README.md | 90 - build/node_modules/queue-microtask/index.d.ts | 2 - build/node_modules/queue-microtask/index.js | 9 - .../node_modules/queue-microtask/package.json | 55 - .../quick-format-unescaped/LICENSE | 21 - .../quick-format-unescaped/benchmark.js | 24 - .../quick-format-unescaped/index.js | 109 - .../quick-format-unescaped/package.json | 29 - .../quick-format-unescaped/readme.md | 66 - build/node_modules/random-bytes/HISTORY.md | 4 - build/node_modules/random-bytes/LICENSE | 21 - build/node_modules/random-bytes/README.md | 77 - build/node_modules/random-bytes/index.js | 101 - build/node_modules/random-bytes/package.json | 36 - build/node_modules/randombytes/.travis.yml | 15 - build/node_modules/randombytes/.zuul.yml | 1 - build/node_modules/randombytes/LICENSE | 21 - build/node_modules/randombytes/README.md | 14 - build/node_modules/randombytes/browser.js | 50 - build/node_modules/randombytes/index.js | 1 - build/node_modules/randombytes/package.json | 36 - build/node_modules/randombytes/test.js | 81 - build/node_modules/range-parser/HISTORY.md | 56 - build/node_modules/range-parser/LICENSE | 23 - build/node_modules/range-parser/README.md | 84 - build/node_modules/range-parser/index.js | 162 - build/node_modules/range-parser/package.json | 44 - build/node_modules/raw-body/HISTORY.md | 308 - build/node_modules/raw-body/LICENSE | 22 - build/node_modules/raw-body/README.md | 223 - build/node_modules/raw-body/SECURITY.md | 24 - build/node_modules/raw-body/index.d.ts | 87 - build/node_modules/raw-body/index.js | 336 - build/node_modules/raw-body/package.json | 49 - build/node_modules/react-is/LICENSE | 21 - build/node_modules/react-is/README.md | 104 - build/node_modules/react-is/index.js | 7 - build/node_modules/react-is/package.json | 26 - build/node_modules/readable-stream/LICENSE | 47 - build/node_modules/readable-stream/README.md | 116 - .../node_modules/readable-stream/package.json | 86 - .../readable-web-to-node-stream/README.md | 71 - .../readable-web-to-node-stream/package.json | 84 - build/node_modules/readdirp/LICENSE | 21 - build/node_modules/readdirp/README.md | 122 - build/node_modules/readdirp/index.d.ts | 43 - build/node_modules/readdirp/index.js | 287 - build/node_modules/readdirp/package.json | 122 - build/node_modules/readme-badger/.travis.yml | 4 - build/node_modules/readme-badger/README.md | 82 - build/node_modules/readme-badger/index.js | 4 - build/node_modules/readme-badger/package.json | 34 - build/node_modules/rechoir/LICENSE | 24 - build/node_modules/rechoir/README.md | 83 - build/node_modules/rechoir/index.js | 67 - build/node_modules/rechoir/package.json | 46 - build/node_modules/redeyed/.npmignore | 15 - build/node_modules/redeyed/.travis.yml | 8 - build/node_modules/redeyed/LICENSE | 23 - build/node_modules/redeyed/README.md | 206 - build/node_modules/redeyed/config-es5.js | 140 - build/node_modules/redeyed/config.js | 195 - build/node_modules/redeyed/package.json | 36 - build/node_modules/redeyed/redeyed.js | 313 - .../node_modules/reflect-metadata/AUTHORS.md | 5 - .../reflect-metadata/CopyrightNotice.txt | 15 - build/node_modules/reflect-metadata/LICENSE | 55 - build/node_modules/reflect-metadata/README.md | 178 - .../reflect-metadata/Reflect.d.ts | 494 - .../node_modules/reflect-metadata/Reflect.js | 1131 - .../node_modules/reflect-metadata/index.d.ts | 491 - .../reflect-metadata/package.json | 54 - .../reflect-metadata/reflect-metadata.d.ts | 20 - .../reflect-metadata/standalone.d.ts | 485 - .../reflect-metadata/typings.d.ts | 20 - .../LICENSE-MIT.txt | 20 - .../regenerate-unicode-properties/README.md | 70 - .../regenerate-unicode-properties/index.js | 436 - .../package.json | 49 - .../unicode-version.js | 1 - build/node_modules/regenerate/LICENSE-MIT.txt | 20 - build/node_modules/regenerate/README.md | 338 - build/node_modules/regenerate/package.json | 38 - build/node_modules/regenerate/regenerate.js | 1209 - .../node_modules/regenerator-runtime/LICENSE | 21 - .../regenerator-runtime/README.md | 31 - .../regenerator-runtime/package.json | 19 - .../node_modules/regenerator-runtime/path.js | 11 - .../regenerator-runtime/runtime.js | 760 - .../regenerator-transform/LICENSE | 21 - .../regenerator-transform/README.md | 46 - .../regenerator-transform/package.json | 43 - build/node_modules/regex-not/LICENSE | 21 - build/node_modules/regex-not/README.md | 133 - build/node_modules/regex-not/index.js | 72 - build/node_modules/regex-not/package.json | 63 - build/node_modules/regex-parser/LICENSE | 21 - build/node_modules/regex-parser/README.md | 235 - build/node_modules/regex-parser/package.json | 48 - .../node_modules/regexpu-core/LICENSE-MIT.txt | 20 - build/node_modules/regexpu-core/README.md | 226 - build/node_modules/regexpu-core/package.json | 67 - .../regexpu-core/rewrite-pattern.js | 904 - build/node_modules/regjsparser/LICENSE.BSD | 21 - build/node_modules/regjsparser/README.md | 47 - build/node_modules/regjsparser/package.json | 37 - build/node_modules/regjsparser/parser.d.ts | 183 - build/node_modules/regjsparser/parser.js | 1634 -- build/node_modules/renderkid/CHANGELOG.md | 5 - build/node_modules/renderkid/LICENSE | 20 - build/node_modules/renderkid/README.md | 189 - build/node_modules/renderkid/SECURITY.md | 11 - build/node_modules/renderkid/package.json | 41 - build/node_modules/repeat-element/LICENSE | 21 - build/node_modules/repeat-element/README.md | 99 - build/node_modules/repeat-element/index.js | 22 - .../node_modules/repeat-element/package.json | 49 - build/node_modules/repeat-string/LICENSE | 21 - build/node_modules/repeat-string/README.md | 136 - build/node_modules/repeat-string/index.js | 70 - build/node_modules/repeat-string/package.json | 77 - build/node_modules/require-all/Changes.md | 46 - build/node_modules/require-all/LICENSE | 22 - build/node_modules/require-all/Readme.md | 109 - build/node_modules/require-all/index.js | 65 - build/node_modules/require-all/package.json | 25 - .../node_modules/require-from-string/index.js | 34 - .../node_modules/require-from-string/license | 21 - .../require-from-string/package.json | 28 - .../require-from-string/readme.md | 56 - build/node_modules/requires-port/.npmignore | 2 - build/node_modules/requires-port/.travis.yml | 19 - build/node_modules/requires-port/LICENSE | 22 - build/node_modules/requires-port/README.md | 47 - build/node_modules/requires-port/index.js | 38 - build/node_modules/requires-port/package.json | 47 - build/node_modules/requires-port/test.js | 98 - build/node_modules/resolve-cwd/index.d.ts | 48 - build/node_modules/resolve-cwd/index.js | 5 - build/node_modules/resolve-cwd/license | 9 - build/node_modules/resolve-cwd/package.json | 43 - build/node_modules/resolve-cwd/readme.md | 58 - build/node_modules/resolve-from/index.d.ts | 31 - build/node_modules/resolve-from/index.js | 47 - build/node_modules/resolve-from/license | 9 - build/node_modules/resolve-from/package.json | 36 - build/node_modules/resolve-from/readme.md | 72 - .../resolve-url-loader/CHANGELOG.md | 69 - build/node_modules/resolve-url-loader/LICENSE | 21 - .../node_modules/resolve-url-loader/README.md | 136 - .../node_modules/resolve-url-loader/index.js | 292 - .../resolve-url-loader/package.json | 44 - build/node_modules/resolve-url/.jshintrc | 44 - build/node_modules/resolve-url/LICENSE | 21 - build/node_modules/resolve-url/bower.json | 15 - build/node_modules/resolve-url/changelog.md | 15 - build/node_modules/resolve-url/component.json | 15 - build/node_modules/resolve-url/package.json | 34 - build/node_modules/resolve-url/readme.md | 83 - build/node_modules/resolve-url/resolve-url.js | 47 - build/node_modules/resolve/.editorconfig | 37 - build/node_modules/resolve/.eslintrc | 65 - build/node_modules/resolve/LICENSE | 21 - build/node_modules/resolve/SECURITY.md | 3 - build/node_modules/resolve/async.js | 3 - build/node_modules/resolve/index.js | 6 - build/node_modules/resolve/package.json | 72 - build/node_modules/resolve/readme.markdown | 301 - build/node_modules/resolve/sync.js | 3 - build/node_modules/restore-cursor/index.d.ts | 13 - build/node_modules/restore-cursor/index.js | 9 - build/node_modules/restore-cursor/license | 9 - .../node_modules/restore-cursor/package.json | 52 - build/node_modules/restore-cursor/readme.md | 26 - build/node_modules/ret/LICENSE | 19 - build/node_modules/ret/README.md | 183 - build/node_modules/ret/package.json | 35 - build/node_modules/retry/License | 21 - build/node_modules/retry/README.md | 227 - build/node_modules/retry/index.js | 1 - build/node_modules/retry/package.json | 36 - build/node_modules/reusify/.coveralls.yml | 1 - build/node_modules/reusify/.travis.yml | 28 - build/node_modules/reusify/LICENSE | 22 - build/node_modules/reusify/README.md | 145 - build/node_modules/reusify/package.json | 45 - build/node_modules/reusify/reusify.js | 33 - build/node_modules/reusify/test.js | 66 - build/node_modules/rev-hash/index.d.ts | 22 - build/node_modules/rev-hash/index.js | 10 - build/node_modules/rev-hash/license | 9 - build/node_modules/rev-hash/package.json | 41 - build/node_modules/rev-hash/readme.md | 44 - build/node_modules/rimraf/CHANGELOG.md | 65 - build/node_modules/rimraf/LICENSE | 15 - build/node_modules/rimraf/README.md | 101 - build/node_modules/rimraf/bin.js | 68 - build/node_modules/rimraf/package.json | 32 - build/node_modules/rimraf/rimraf.js | 360 - build/node_modules/rndm/LICENSE | 22 - build/node_modules/rndm/README.md | 27 - build/node_modules/rndm/index.js | 25 - build/node_modules/rndm/package.json | 32 - build/node_modules/run-parallel/LICENSE | 20 - build/node_modules/run-parallel/README.md | 85 - build/node_modules/run-parallel/index.js | 51 - build/node_modules/run-parallel/package.json | 58 - build/node_modules/safe-buffer/LICENSE | 21 - build/node_modules/safe-buffer/README.md | 584 - build/node_modules/safe-buffer/index.d.ts | 187 - build/node_modules/safe-buffer/index.js | 65 - build/node_modules/safe-buffer/package.json | 51 - build/node_modules/safe-regex/.travis.yml | 4 - build/node_modules/safe-regex/LICENSE | 18 - build/node_modules/safe-regex/index.js | 43 - build/node_modules/safe-regex/package.json | 43 - build/node_modules/safe-regex/readme.markdown | 65 - build/node_modules/safer-buffer/LICENSE | 21 - .../safer-buffer/Porting-Buffer.md | 268 - build/node_modules/safer-buffer/Readme.md | 156 - build/node_modules/safer-buffer/dangerous.js | 58 - build/node_modules/safer-buffer/package.json | 34 - build/node_modules/safer-buffer/safer.js | 77 - build/node_modules/safer-buffer/tests.js | 406 - build/node_modules/schema-utils/CHANGELOG.md | 286 - build/node_modules/schema-utils/LICENSE | 20 - build/node_modules/schema-utils/README.md | 276 - build/node_modules/schema-utils/package.json | 76 - .../secure-json-parse/.airtap.yml | 7 - .../node_modules/secure-json-parse/LICENSE.md | 17 - build/node_modules/secure-json-parse/index.js | 126 - .../secure-json-parse/package.json | 41 - build/node_modules/select-hose/.jscsrc | 46 - build/node_modules/select-hose/.jshintrc | 89 - build/node_modules/select-hose/.npmignore | 2 - build/node_modules/select-hose/.travis.yml | 5 - build/node_modules/select-hose/README.md | 31 - build/node_modules/select-hose/package.json | 31 - build/node_modules/selfsigned/.jshintrc | 39 - build/node_modules/selfsigned/LICENSE | 22 - build/node_modules/selfsigned/README.md | 84 - build/node_modules/selfsigned/index.d.ts | 69 - build/node_modules/selfsigned/index.js | 207 - build/node_modules/selfsigned/package.json | 45 - build/node_modules/semver/LICENSE | 15 - build/node_modules/semver/README.md | 637 - build/node_modules/semver/index.js | 89 - build/node_modules/semver/package.json | 87 - build/node_modules/semver/preload.js | 2 - build/node_modules/semver/range.bnf | 16 - build/node_modules/send/HISTORY.md | 521 - build/node_modules/send/LICENSE | 23 - build/node_modules/send/README.md | 327 - build/node_modules/send/SECURITY.md | 24 - build/node_modules/send/index.js | 1143 - build/node_modules/send/package.json | 62 - build/node_modules/sentence-case/LICENSE | 21 - build/node_modules/sentence-case/README.md | 37 - build/node_modules/sentence-case/package.json | 89 - .../node_modules/serialize-javascript/LICENSE | 27 - .../serialize-javascript/README.md | 142 - .../serialize-javascript/index.js | 268 - .../serialize-javascript/package.json | 36 - build/node_modules/serve-index/HISTORY.md | 305 - build/node_modules/serve-index/LICENSE | 25 - build/node_modules/serve-index/README.md | 154 - build/node_modules/serve-index/index.js | 646 - build/node_modules/serve-index/package.json | 37 - build/node_modules/set-blocking/CHANGELOG.md | 26 - build/node_modules/set-blocking/LICENSE.txt | 14 - build/node_modules/set-blocking/README.md | 31 - build/node_modules/set-blocking/index.js | 7 - build/node_modules/set-blocking/package.json | 42 - build/node_modules/set-cookie-parser/LICENSE | 21 - .../set-cookie-parser/package.json | 43 - .../set-function-length/.eslintrc | 27 - build/node_modules/set-function-length/.nycrc | 13 - .../set-function-length/CHANGELOG.md | 41 - .../node_modules/set-function-length/LICENSE | 21 - .../set-function-length/README.md | 56 - build/node_modules/set-function-length/env.js | 19 - .../node_modules/set-function-length/index.js | 41 - .../set-function-length/package.json | 84 - build/node_modules/setprototypeof/LICENSE | 13 - build/node_modules/setprototypeof/README.md | 31 - build/node_modules/setprototypeof/index.d.ts | 2 - build/node_modules/setprototypeof/index.js | 17 - .../node_modules/setprototypeof/package.json | 38 - build/node_modules/shallow-clone/LICENSE | 21 - build/node_modules/shallow-clone/README.md | 153 - build/node_modules/shallow-clone/index.js | 83 - build/node_modules/shebang-command/index.js | 19 - .../node_modules/shebang-command/package.json | 34 - build/node_modules/shebang-command/readme.md | 34 - build/package-lock.json | 16131 ------------ build/package.json | 78 - build/providers/AppProvider.js | 17 - build/providers/AppProvider.js.map | 1 - build/public/Logo Discord.png | Bin 45453 -> 0 bytes build/public/assets/entrypoints.json | 20 - build/public/assets/index.7668700c.css | 1 - build/public/assets/manifest.json | 6 - build/public/favicon.ico | Bin 9662 -> 0 bytes build/public/logo github.png | Bin 50629 -> 0 bytes build/public/logo insta.png | Bin 189485 -> 0 bytes build/public/logo.png | Bin 23040 -> 0 bytes build/public/other.png | Bin 10843 -> 0 bytes build/public/pp.jpg | Bin 317821 -> 0 bytes build/server.js | 11 - build/server.js.map | 1 - build/start/kernel.js | 37 - build/start/kernel.js.map | 1 - build/start/routes.js | 12 - build/start/routes.js.map | 1 - build/test.js | 54 - build/test.js.map | 1 - build/tests/bootstrap.js | 21 - build/tests/bootstrap.js.map | 1 - build/tsconfig.json | 7 - build/tsconfig.tsbuildinfo | 1 - .../assets/compte.31d6cfe0.js | 0 public/assets/compte.753baa5d.css | 1 + public/assets/entrypoints.json | 32 +- .../public => public}/assets/form.31d6cfe0.js | 0 .../assets/form.d255c0c6.css | 0 public/assets/images/landing.6d6841c3.jpg | Bin 0 -> 10545577 bytes public/assets/index.426cec9e.js | 1 + public/assets/index.c6bb0e40.css | 1 + .../assets/journal.31d6cfe0.js | 0 public/assets/journal.f506c653.css | 1 + public/assets/manifest.json | 34 +- .../assets/my-network-project.31d6cfe0.js | 0 public/assets/my-network-project.75c72c57.css | 1 + public/assets/nups.1cfcc6cb.css | 1 + public/assets/nups.31d6cfe0.js | 0 public/assets/project-nups.31d6cfe0.js | 0 public/assets/project-nups.bc10365c.css | 1 + public/assets/terms.31d6cfe0.js | 0 public/assets/terms.81e389a9.css | 1 + 4191 files changed, 41 insertions(+), 518781 deletions(-) delete mode 100644 build/.adonisrc.json delete mode 100644 build/.env.example delete mode 100644 build/ace delete mode 100644 build/ace-manifest.json delete mode 100644 build/app/Exceptions/Handler.js delete mode 100644 build/app/Exceptions/Handler.js.map delete mode 100644 build/app/Middleware/Auth.js delete mode 100644 build/app/Middleware/Auth.js.map delete mode 100644 build/app/Middleware/SilentAuth.js delete mode 100644 build/app/Middleware/SilentAuth.js.map delete mode 100644 build/app/Models/User.js delete mode 100644 build/app/Models/User.js.map delete mode 100644 build/app/Validators/CreateUserValidator.js delete mode 100644 build/app/Validators/CreateUserValidator.js.map delete mode 100644 build/commands/index.js delete mode 100644 build/commands/index.js.map delete mode 100644 build/config/app.js delete mode 100644 build/config/app.js.map delete mode 100644 build/config/auth.js delete mode 100644 build/config/auth.js.map delete mode 100644 build/config/bodyparser.js delete mode 100644 build/config/bodyparser.js.map delete mode 100644 build/config/cors.js delete mode 100644 build/config/cors.js.map delete mode 100644 build/config/database.js delete mode 100644 build/config/database.js.map delete mode 100644 build/config/drive.js delete mode 100644 build/config/drive.js.map delete mode 100644 build/config/hash.js delete mode 100644 build/config/hash.js.map delete mode 100644 build/config/session.js delete mode 100644 build/config/session.js.map delete mode 100644 build/config/session.ts delete mode 100644 build/config/shield.js delete mode 100644 build/config/shield.js.map delete mode 100644 build/config/static.js delete mode 100644 build/config/static.js.map delete mode 100644 build/contracts/auth.js delete mode 100644 build/contracts/auth.js.map delete mode 100644 build/contracts/drive.js delete mode 100644 build/contracts/drive.js.map delete mode 100644 build/contracts/env.js delete mode 100644 build/contracts/env.js.map delete mode 100644 build/contracts/events.js delete mode 100644 build/contracts/events.js.map delete mode 100644 build/contracts/hash.js delete mode 100644 build/contracts/hash.js.map delete mode 100644 build/contracts/tests.js delete mode 100644 build/contracts/tests.js.map delete mode 100644 build/database/factories/index.js delete mode 100644 build/database/factories/index.js.map delete mode 100644 build/database/migrations/1698786769334_users.js delete mode 100644 build/database/migrations/1698786769334_users.js.map delete mode 100644 build/env.js delete mode 100644 build/env.js.map delete mode 100644 build/node_modules/.bin/acorn delete mode 100644 build/node_modules/.bin/acorn.cmd delete mode 100644 build/node_modules/.bin/acorn.ps1 delete mode 100644 build/node_modules/.bin/ansi-html delete mode 100644 build/node_modules/.bin/ansi-html.cmd delete mode 100644 build/node_modules/.bin/ansi-html.ps1 delete mode 100644 build/node_modules/.bin/astring delete mode 100644 build/node_modules/.bin/astring.cmd delete mode 100644 build/node_modules/.bin/astring.ps1 delete mode 100644 build/node_modules/.bin/atob delete mode 100644 build/node_modules/.bin/atob.cmd delete mode 100644 build/node_modules/.bin/atob.ps1 delete mode 100644 build/node_modules/.bin/browserslist delete mode 100644 build/node_modules/.bin/browserslist.cmd delete mode 100644 build/node_modules/.bin/browserslist.ps1 delete mode 100644 build/node_modules/.bin/cdl delete mode 100644 build/node_modules/.bin/cdl.cmd delete mode 100644 build/node_modules/.bin/cdl.ps1 delete mode 100644 build/node_modules/.bin/color-support delete mode 100644 build/node_modules/.bin/color-support.cmd delete mode 100644 build/node_modules/.bin/color-support.ps1 delete mode 100644 build/node_modules/.bin/cssesc delete mode 100644 build/node_modules/.bin/cssesc.cmd delete mode 100644 build/node_modules/.bin/cssesc.ps1 delete mode 100644 build/node_modules/.bin/editorconfig delete mode 100644 build/node_modules/.bin/editorconfig.cmd delete mode 100644 build/node_modules/.bin/editorconfig.ps1 delete mode 100644 build/node_modules/.bin/encore delete mode 100644 build/node_modules/.bin/encore.cmd delete mode 100644 build/node_modules/.bin/encore.ps1 delete mode 100644 build/node_modules/.bin/envinfo delete mode 100644 build/node_modules/.bin/envinfo.cmd delete mode 100644 build/node_modules/.bin/envinfo.ps1 delete mode 100644 build/node_modules/.bin/eslint delete mode 100644 build/node_modules/.bin/eslint-config-prettier delete mode 100644 build/node_modules/.bin/eslint-config-prettier.cmd delete mode 100644 build/node_modules/.bin/eslint-config-prettier.ps1 delete mode 100644 build/node_modules/.bin/eslint.cmd delete mode 100644 build/node_modules/.bin/eslint.ps1 delete mode 100644 build/node_modules/.bin/esparse delete mode 100644 build/node_modules/.bin/esparse.cmd delete mode 100644 build/node_modules/.bin/esparse.ps1 delete mode 100644 build/node_modules/.bin/esvalidate delete mode 100644 build/node_modules/.bin/esvalidate.cmd delete mode 100644 build/node_modules/.bin/esvalidate.ps1 delete mode 100644 build/node_modules/.bin/flat delete mode 100644 build/node_modules/.bin/flat.cmd delete mode 100644 build/node_modules/.bin/flat.ps1 delete mode 100644 build/node_modules/.bin/he delete mode 100644 build/node_modules/.bin/he.cmd delete mode 100644 build/node_modules/.bin/he.ps1 delete mode 100644 build/node_modules/.bin/import-local-fixture delete mode 100644 build/node_modules/.bin/import-local-fixture.cmd delete mode 100644 build/node_modules/.bin/import-local-fixture.ps1 delete mode 100644 build/node_modules/.bin/is-docker delete mode 100644 build/node_modules/.bin/is-docker.cmd delete mode 100644 build/node_modules/.bin/is-docker.ps1 delete mode 100644 build/node_modules/.bin/is-inside-container delete mode 100644 build/node_modules/.bin/is-inside-container.cmd delete mode 100644 build/node_modules/.bin/is-inside-container.ps1 delete mode 100644 build/node_modules/.bin/js-yaml delete mode 100644 build/node_modules/.bin/js-yaml.cmd delete mode 100644 build/node_modules/.bin/js-yaml.ps1 delete mode 100644 build/node_modules/.bin/jsesc delete mode 100644 build/node_modules/.bin/jsesc.cmd delete mode 100644 build/node_modules/.bin/jsesc.ps1 delete mode 100644 build/node_modules/.bin/json5 delete mode 100644 build/node_modules/.bin/json5.cmd delete mode 100644 build/node_modules/.bin/json5.ps1 delete mode 100644 build/node_modules/.bin/knex delete mode 100644 build/node_modules/.bin/knex.cmd delete mode 100644 build/node_modules/.bin/knex.ps1 delete mode 100644 build/node_modules/.bin/marked delete mode 100644 build/node_modules/.bin/marked.cmd delete mode 100644 build/node_modules/.bin/marked.ps1 delete mode 100644 build/node_modules/.bin/mime delete mode 100644 build/node_modules/.bin/mime.cmd delete mode 100644 build/node_modules/.bin/mime.ps1 delete mode 100644 build/node_modules/.bin/mkdirp delete mode 100644 build/node_modules/.bin/mkdirp.cmd delete mode 100644 build/node_modules/.bin/mkdirp.ps1 delete mode 100644 build/node_modules/.bin/multicast-dns delete mode 100644 build/node_modules/.bin/multicast-dns.cmd delete mode 100644 build/node_modules/.bin/multicast-dns.ps1 delete mode 100644 build/node_modules/.bin/mustache delete mode 100644 build/node_modules/.bin/mustache.cmd delete mode 100644 build/node_modules/.bin/mustache.ps1 delete mode 100644 build/node_modules/.bin/nanoid delete mode 100644 build/node_modules/.bin/nanoid.cmd delete mode 100644 build/node_modules/.bin/nanoid.ps1 delete mode 100644 build/node_modules/.bin/node-gyp delete mode 100644 build/node_modules/.bin/node-gyp.cmd delete mode 100644 build/node_modules/.bin/node-gyp.ps1 delete mode 100644 build/node_modules/.bin/node-pre-gyp delete mode 100644 build/node_modules/.bin/node-pre-gyp.cmd delete mode 100644 build/node_modules/.bin/node-pre-gyp.ps1 delete mode 100644 build/node_modules/.bin/node-which delete mode 100644 build/node_modules/.bin/node-which.cmd delete mode 100644 build/node_modules/.bin/node-which.ps1 delete mode 100644 build/node_modules/.bin/nopt delete mode 100644 build/node_modules/.bin/nopt.cmd delete mode 100644 build/node_modules/.bin/nopt.ps1 delete mode 100644 build/node_modules/.bin/parser delete mode 100644 build/node_modules/.bin/parser.cmd delete mode 100644 build/node_modules/.bin/parser.ps1 delete mode 100644 build/node_modules/.bin/pino delete mode 100644 build/node_modules/.bin/pino-pretty delete mode 100644 build/node_modules/.bin/pino-pretty.cmd delete mode 100644 build/node_modules/.bin/pino-pretty.ps1 delete mode 100644 build/node_modules/.bin/pino.cmd delete mode 100644 build/node_modules/.bin/pino.ps1 delete mode 100644 build/node_modules/.bin/prettier delete mode 100644 build/node_modules/.bin/prettier.cmd delete mode 100644 build/node_modules/.bin/prettier.ps1 delete mode 100644 build/node_modules/.bin/rc delete mode 100644 build/node_modules/.bin/rc.cmd delete mode 100644 build/node_modules/.bin/rc.ps1 delete mode 100644 build/node_modules/.bin/regjsparser delete mode 100644 build/node_modules/.bin/regjsparser.cmd delete mode 100644 build/node_modules/.bin/regjsparser.ps1 delete mode 100644 build/node_modules/.bin/resolve delete mode 100644 build/node_modules/.bin/resolve.cmd delete mode 100644 build/node_modules/.bin/resolve.ps1 delete mode 100644 build/node_modules/.bin/rimraf delete mode 100644 build/node_modules/.bin/rimraf.cmd delete mode 100644 build/node_modules/.bin/rimraf.ps1 delete mode 100644 build/node_modules/.bin/semver delete mode 100644 build/node_modules/.bin/semver.cmd delete mode 100644 build/node_modules/.bin/semver.ps1 delete mode 100644 build/node_modules/.bin/svgo delete mode 100644 build/node_modules/.bin/svgo.cmd delete mode 100644 build/node_modules/.bin/svgo.ps1 delete mode 100644 build/node_modules/.bin/terser delete mode 100644 build/node_modules/.bin/terser.cmd delete mode 100644 build/node_modules/.bin/terser.ps1 delete mode 100644 build/node_modules/.bin/tsc delete mode 100644 build/node_modules/.bin/tsc.cmd delete mode 100644 build/node_modules/.bin/tsc.ps1 delete mode 100644 build/node_modules/.bin/tsserver delete mode 100644 build/node_modules/.bin/tsserver.cmd delete mode 100644 build/node_modules/.bin/tsserver.ps1 delete mode 100644 build/node_modules/.bin/update-browserslist-db delete mode 100644 build/node_modules/.bin/update-browserslist-db.cmd delete mode 100644 build/node_modules/.bin/update-browserslist-db.ps1 delete mode 100644 build/node_modules/.bin/uuid delete mode 100644 build/node_modules/.bin/uuid.cmd delete mode 100644 build/node_modules/.bin/uuid.ps1 delete mode 100644 build/node_modules/.bin/webpack delete mode 100644 build/node_modules/.bin/webpack-cli delete mode 100644 build/node_modules/.bin/webpack-cli.cmd delete mode 100644 build/node_modules/.bin/webpack-cli.ps1 delete mode 100644 build/node_modules/.bin/webpack-dev-server delete mode 100644 build/node_modules/.bin/webpack-dev-server.cmd delete mode 100644 build/node_modules/.bin/webpack-dev-server.ps1 delete mode 100644 build/node_modules/.bin/webpack.cmd delete mode 100644 build/node_modules/.bin/webpack.ps1 delete mode 100644 build/node_modules/.bin/z-schema delete mode 100644 build/node_modules/.bin/z-schema.cmd delete mode 100644 build/node_modules/.bin/z-schema.ps1 delete mode 100644 build/node_modules/.package-lock.json delete mode 100644 build/node_modules/abbrev/LICENSE delete mode 100644 build/node_modules/abbrev/README.md delete mode 100644 build/node_modules/abbrev/abbrev.js delete mode 100644 build/node_modules/abbrev/package.json delete mode 100644 build/node_modules/abort-controller/LICENSE delete mode 100644 build/node_modules/abort-controller/README.md delete mode 100644 build/node_modules/abort-controller/browser.js delete mode 100644 build/node_modules/abort-controller/browser.mjs delete mode 100644 build/node_modules/abort-controller/package.json delete mode 100644 build/node_modules/abort-controller/polyfill.js delete mode 100644 build/node_modules/abort-controller/polyfill.mjs delete mode 100644 build/node_modules/abstract-logging/Readme.md delete mode 100644 build/node_modules/abstract-logging/index.js delete mode 100644 build/node_modules/abstract-logging/package.json delete mode 100644 build/node_modules/abstract-logging/test.js delete mode 100644 build/node_modules/accepts/HISTORY.md delete mode 100644 build/node_modules/accepts/LICENSE delete mode 100644 build/node_modules/accepts/README.md delete mode 100644 build/node_modules/accepts/index.js delete mode 100644 build/node_modules/accepts/package.json delete mode 100644 build/node_modules/acorn-class-fields/.eslintrc.json delete mode 100644 build/node_modules/acorn-class-fields/CHANGELOG.md delete mode 100644 build/node_modules/acorn-class-fields/LICENSE delete mode 100644 build/node_modules/acorn-class-fields/README.md delete mode 100644 build/node_modules/acorn-class-fields/index.js delete mode 100644 build/node_modules/acorn-class-fields/package.json delete mode 100644 build/node_modules/acorn-class-fields/run_test262.js delete mode 100644 build/node_modules/acorn-import-assertions/README.md delete mode 100644 build/node_modules/acorn-import-assertions/package.json delete mode 100644 build/node_modules/acorn-jsx/LICENSE delete mode 100644 build/node_modules/acorn-jsx/README.md delete mode 100644 build/node_modules/acorn-jsx/index.d.ts delete mode 100644 build/node_modules/acorn-jsx/index.js delete mode 100644 build/node_modules/acorn-jsx/package.json delete mode 100644 build/node_modules/acorn-jsx/xhtml.js delete mode 100644 build/node_modules/acorn-private-class-elements/.eslintrc.json delete mode 100644 build/node_modules/acorn-private-class-elements/CHANGELOG.md delete mode 100644 build/node_modules/acorn-private-class-elements/LICENSE delete mode 100644 build/node_modules/acorn-private-class-elements/README.md delete mode 100644 build/node_modules/acorn-private-class-elements/index.js delete mode 100644 build/node_modules/acorn-private-class-elements/package.json delete mode 100644 build/node_modules/acorn-private-methods/.eslintignore delete mode 100644 build/node_modules/acorn-private-methods/.eslintrc.json delete mode 100644 build/node_modules/acorn-private-methods/CHANGELOG.md delete mode 100644 build/node_modules/acorn-private-methods/LICENSE delete mode 100644 build/node_modules/acorn-private-methods/README.md delete mode 100644 build/node_modules/acorn-private-methods/index.js delete mode 100644 build/node_modules/acorn-private-methods/package.json delete mode 100644 build/node_modules/acorn-private-methods/rollup.config.js delete mode 100644 build/node_modules/acorn-private-methods/run_test262.js delete mode 100644 build/node_modules/acorn-static-class-features/.eslintrc.json delete mode 100644 build/node_modules/acorn-static-class-features/CHANGELOG.md delete mode 100644 build/node_modules/acorn-static-class-features/LICENSE delete mode 100644 build/node_modules/acorn-static-class-features/README.md delete mode 100644 build/node_modules/acorn-static-class-features/index.js delete mode 100644 build/node_modules/acorn-static-class-features/package.json delete mode 100644 build/node_modules/acorn-static-class-features/run_test262.js delete mode 100644 build/node_modules/acorn-walk/CHANGELOG.md delete mode 100644 build/node_modules/acorn-walk/LICENSE delete mode 100644 build/node_modules/acorn-walk/README.md delete mode 100644 build/node_modules/acorn-walk/package.json delete mode 100644 build/node_modules/acorn/CHANGELOG.md delete mode 100644 build/node_modules/acorn/LICENSE delete mode 100644 build/node_modules/acorn/README.md delete mode 100644 build/node_modules/acorn/package.json delete mode 100644 build/node_modules/adjust-sourcemap-loader/.jshintrc delete mode 100644 build/node_modules/adjust-sourcemap-loader/.nvmrc delete mode 100644 build/node_modules/adjust-sourcemap-loader/LICENSE delete mode 100644 build/node_modules/adjust-sourcemap-loader/index.js delete mode 100644 build/node_modules/adjust-sourcemap-loader/package.json delete mode 100644 build/node_modules/adjust-sourcemap-loader/readme.md delete mode 100644 build/node_modules/adonis-preset-ts/README.md delete mode 100644 build/node_modules/adonis-preset-ts/package.json delete mode 100644 build/node_modules/adonis-preset-ts/tsconfig.json delete mode 100644 build/node_modules/agent-base/README.md delete mode 100644 build/node_modules/agent-base/package.json delete mode 100644 build/node_modules/agentkeepalive/History.md delete mode 100644 build/node_modules/agentkeepalive/LICENSE delete mode 100644 build/node_modules/agentkeepalive/README.md delete mode 100644 build/node_modules/agentkeepalive/browser.js delete mode 100644 build/node_modules/agentkeepalive/index.d.ts delete mode 100644 build/node_modules/agentkeepalive/index.js delete mode 100644 build/node_modules/agentkeepalive/package.json delete mode 100644 build/node_modules/aggregate-error/index.d.ts delete mode 100644 build/node_modules/aggregate-error/index.js delete mode 100644 build/node_modules/aggregate-error/license delete mode 100644 build/node_modules/aggregate-error/package.json delete mode 100644 build/node_modules/aggregate-error/readme.md delete mode 100644 build/node_modules/ajv-formats/LICENSE delete mode 100644 build/node_modules/ajv-formats/README.md delete mode 100644 build/node_modules/ajv-formats/package.json delete mode 100644 build/node_modules/ajv-keywords/LICENSE delete mode 100644 build/node_modules/ajv-keywords/README.md delete mode 100644 build/node_modules/ajv-keywords/ajv-keywords.d.ts delete mode 100644 build/node_modules/ajv-keywords/index.js delete mode 100644 build/node_modules/ajv-keywords/package.json delete mode 100644 build/node_modules/ajv/.tonic_example.js delete mode 100644 build/node_modules/ajv/LICENSE delete mode 100644 build/node_modules/ajv/README.md delete mode 100644 build/node_modules/ajv/package.json delete mode 100644 build/node_modules/ansi-colors/LICENSE delete mode 100644 build/node_modules/ansi-colors/README.md delete mode 100644 build/node_modules/ansi-colors/index.js delete mode 100644 build/node_modules/ansi-colors/package.json delete mode 100644 build/node_modules/ansi-colors/symbols.js delete mode 100644 build/node_modules/ansi-escapes/index.d.ts delete mode 100644 build/node_modules/ansi-escapes/index.js delete mode 100644 build/node_modules/ansi-escapes/license delete mode 100644 build/node_modules/ansi-escapes/package.json delete mode 100644 build/node_modules/ansi-escapes/readme.md delete mode 100644 build/node_modules/ansi-html-community/LICENSE delete mode 100644 build/node_modules/ansi-html-community/README.md delete mode 100644 build/node_modules/ansi-html-community/index.js delete mode 100644 build/node_modules/ansi-html-community/package.json delete mode 100644 build/node_modules/ansi-regex/index.d.ts delete mode 100644 build/node_modules/ansi-regex/index.js delete mode 100644 build/node_modules/ansi-regex/license delete mode 100644 build/node_modules/ansi-regex/package.json delete mode 100644 build/node_modules/ansi-regex/readme.md delete mode 100644 build/node_modules/ansi-styles/index.d.ts delete mode 100644 build/node_modules/ansi-styles/index.js delete mode 100644 build/node_modules/ansi-styles/license delete mode 100644 build/node_modules/ansi-styles/package.json delete mode 100644 build/node_modules/ansi-styles/readme.md delete mode 100644 build/node_modules/ansicolors/LICENSE delete mode 100644 build/node_modules/ansicolors/README.md delete mode 100644 build/node_modules/ansicolors/ansicolors.js delete mode 100644 build/node_modules/ansicolors/package.json delete mode 100644 build/node_modules/anymatch/LICENSE delete mode 100644 build/node_modules/anymatch/README.md delete mode 100644 build/node_modules/anymatch/index.d.ts delete mode 100644 build/node_modules/anymatch/index.js delete mode 100644 build/node_modules/anymatch/package.json delete mode 100644 build/node_modules/api-contract-validator/CHANGELOG.md delete mode 100644 build/node_modules/api-contract-validator/LICENSE delete mode 100644 build/node_modules/api-contract-validator/README.md delete mode 100644 build/node_modules/api-contract-validator/package.json delete mode 100644 build/node_modules/api-schema-builder/CHANGELOG.md delete mode 100644 build/node_modules/api-schema-builder/LICENSE delete mode 100644 build/node_modules/api-schema-builder/README.md delete mode 100644 build/node_modules/api-schema-builder/package.json delete mode 100644 build/node_modules/aproba/CHANGELOG.md delete mode 100644 build/node_modules/aproba/LICENSE delete mode 100644 build/node_modules/aproba/README.md delete mode 100644 build/node_modules/aproba/index.js delete mode 100644 build/node_modules/aproba/package.json delete mode 100644 build/node_modules/are-we-there-yet/LICENSE.md delete mode 100644 build/node_modules/are-we-there-yet/README.md delete mode 100644 build/node_modules/are-we-there-yet/package.json delete mode 100644 build/node_modules/argon2/LICENSE delete mode 100644 build/node_modules/argon2/README.md delete mode 100644 build/node_modules/argon2/argon2.cpp delete mode 100644 build/node_modules/argon2/argon2.d.ts delete mode 100644 build/node_modules/argon2/argon2.js delete mode 100644 build/node_modules/argon2/binding.gyp delete mode 100644 build/node_modules/argon2/package.json delete mode 100644 build/node_modules/argparse/CHANGELOG.md delete mode 100644 build/node_modules/argparse/LICENSE delete mode 100644 build/node_modules/argparse/README.md delete mode 100644 build/node_modules/argparse/argparse.js delete mode 100644 build/node_modules/argparse/package.json delete mode 100644 build/node_modules/arr-diff/LICENSE delete mode 100644 build/node_modules/arr-diff/README.md delete mode 100644 build/node_modules/arr-diff/index.js delete mode 100644 build/node_modules/arr-diff/package.json delete mode 100644 build/node_modules/arr-flatten/LICENSE delete mode 100644 build/node_modules/arr-flatten/README.md delete mode 100644 build/node_modules/arr-flatten/index.js delete mode 100644 build/node_modules/arr-flatten/package.json delete mode 100644 build/node_modules/arr-union/LICENSE delete mode 100644 build/node_modules/arr-union/README.md delete mode 100644 build/node_modules/arr-union/index.js delete mode 100644 build/node_modules/arr-union/package.json delete mode 100644 build/node_modules/array-flatten/LICENSE delete mode 100644 build/node_modules/array-flatten/README.md delete mode 100644 build/node_modules/array-flatten/array-flatten.d.ts delete mode 100644 build/node_modules/array-flatten/array-flatten.js delete mode 100644 build/node_modules/array-flatten/package.json delete mode 100644 build/node_modules/array-union/index.js delete mode 100644 build/node_modules/array-union/license delete mode 100644 build/node_modules/array-union/package.json delete mode 100644 build/node_modules/array-union/readme.md delete mode 100644 build/node_modules/array-uniq/index.js delete mode 100644 build/node_modules/array-uniq/license delete mode 100644 build/node_modules/array-uniq/package.json delete mode 100644 build/node_modules/array-uniq/readme.md delete mode 100644 build/node_modules/array-unique/LICENSE delete mode 100644 build/node_modules/array-unique/README.md delete mode 100644 build/node_modules/array-unique/index.js delete mode 100644 build/node_modules/array-unique/package.json delete mode 100644 build/node_modules/arrify/index.d.ts delete mode 100644 build/node_modules/arrify/index.js delete mode 100644 build/node_modules/arrify/license delete mode 100644 build/node_modules/arrify/package.json delete mode 100644 build/node_modules/arrify/readme.md delete mode 100644 build/node_modules/as-table/.babelrc delete mode 100644 build/node_modules/as-table/.eslintrc delete mode 100644 build/node_modules/as-table/.travis.yml delete mode 100644 build/node_modules/as-table/CHANGELOG.md delete mode 100644 build/node_modules/as-table/LICENSE delete mode 100644 build/node_modules/as-table/README.md delete mode 100644 build/node_modules/as-table/as-table.d.ts delete mode 100644 build/node_modules/as-table/as-table.js delete mode 100644 build/node_modules/as-table/package.json delete mode 100644 build/node_modules/as-table/test.js delete mode 100644 build/node_modules/asap/CHANGES.md delete mode 100644 build/node_modules/asap/LICENSE.md delete mode 100644 build/node_modules/asap/README.md delete mode 100644 build/node_modules/asap/asap.js delete mode 100644 build/node_modules/asap/browser-asap.js delete mode 100644 build/node_modules/asap/browser-raw.js delete mode 100644 build/node_modules/asap/package.json delete mode 100644 build/node_modules/asap/raw.js delete mode 100644 build/node_modules/assertion-error/History.md delete mode 100644 build/node_modules/assertion-error/README.md delete mode 100644 build/node_modules/assertion-error/index.d.ts delete mode 100644 build/node_modules/assertion-error/index.js delete mode 100644 build/node_modules/assertion-error/package.json delete mode 100644 build/node_modules/assets-webpack-plugin/changelog.md delete mode 100644 build/node_modules/assets-webpack-plugin/index.js delete mode 100644 build/node_modules/assets-webpack-plugin/license.md delete mode 100644 build/node_modules/assets-webpack-plugin/package.json delete mode 100644 build/node_modules/assets-webpack-plugin/readme.md delete mode 100644 build/node_modules/assign-symbols/LICENSE delete mode 100644 build/node_modules/assign-symbols/README.md delete mode 100644 build/node_modules/assign-symbols/index.js delete mode 100644 build/node_modules/assign-symbols/package.json delete mode 100644 build/node_modules/astral-regex/index.d.ts delete mode 100644 build/node_modules/astral-regex/index.js delete mode 100644 build/node_modules/astral-regex/license delete mode 100644 build/node_modules/astral-regex/package.json delete mode 100644 build/node_modules/astral-regex/readme.md delete mode 100644 build/node_modules/astring/.eslintrc.json delete mode 100644 build/node_modules/astring/LICENSE delete mode 100644 build/node_modules/astring/README.md delete mode 100644 build/node_modules/astring/astring.d.ts delete mode 100644 build/node_modules/astring/package.json delete mode 100644 build/node_modules/async-retry/LICENSE.md delete mode 100644 build/node_modules/async-retry/README.md delete mode 100644 build/node_modules/async-retry/package.json delete mode 100644 build/node_modules/asynckit/LICENSE delete mode 100644 build/node_modules/asynckit/README.md delete mode 100644 build/node_modules/asynckit/bench.js delete mode 100644 build/node_modules/asynckit/index.js delete mode 100644 build/node_modules/asynckit/package.json delete mode 100644 build/node_modules/asynckit/parallel.js delete mode 100644 build/node_modules/asynckit/serial.js delete mode 100644 build/node_modules/asynckit/serialOrdered.js delete mode 100644 build/node_modules/asynckit/stream.js delete mode 100644 build/node_modules/atob/LICENSE delete mode 100644 build/node_modules/atob/LICENSE.DOCS delete mode 100644 build/node_modules/atob/README.md delete mode 100644 build/node_modules/atob/bower.json delete mode 100644 build/node_modules/atob/browser-atob.js delete mode 100644 build/node_modules/atob/node-atob.js delete mode 100644 build/node_modules/atob/package.json delete mode 100644 build/node_modules/atob/test.js delete mode 100644 build/node_modules/atomic-sleep/.travis.yml delete mode 100644 build/node_modules/atomic-sleep/LICENSE delete mode 100644 build/node_modules/atomic-sleep/index.js delete mode 100644 build/node_modules/atomic-sleep/package.json delete mode 100644 build/node_modules/atomic-sleep/readme.md delete mode 100644 build/node_modules/atomic-sleep/test.js delete mode 100644 build/node_modules/babel-code-frame/.npmignore delete mode 100644 build/node_modules/babel-code-frame/README.md delete mode 100644 build/node_modules/babel-code-frame/package-lock.json delete mode 100644 build/node_modules/babel-code-frame/package.json delete mode 100644 build/node_modules/babel-loader/CHANGELOG.md delete mode 100644 build/node_modules/babel-loader/LICENSE delete mode 100644 build/node_modules/babel-loader/README.md delete mode 100644 build/node_modules/babel-loader/package.json delete mode 100644 build/node_modules/babel-plugin-polyfill-corejs2/LICENSE delete mode 100644 build/node_modules/babel-plugin-polyfill-corejs2/README.md delete mode 100644 build/node_modules/babel-plugin-polyfill-corejs2/package.json delete mode 100644 build/node_modules/babel-plugin-polyfill-corejs3/LICENSE delete mode 100644 build/node_modules/babel-plugin-polyfill-corejs3/README.md delete mode 100644 build/node_modules/babel-plugin-polyfill-corejs3/package.json delete mode 100644 build/node_modules/babel-plugin-polyfill-regenerator/LICENSE delete mode 100644 build/node_modules/babel-plugin-polyfill-regenerator/README.md delete mode 100644 build/node_modules/babel-plugin-polyfill-regenerator/package.json delete mode 100644 build/node_modules/balanced-match/LICENSE.md delete mode 100644 build/node_modules/balanced-match/README.md delete mode 100644 build/node_modules/balanced-match/index.js delete mode 100644 build/node_modules/balanced-match/package.json delete mode 100644 build/node_modules/base/LICENSE delete mode 100644 build/node_modules/base/README.md delete mode 100644 build/node_modules/base/index.js delete mode 100644 build/node_modules/base/package.json delete mode 100644 build/node_modules/base64-js/LICENSE delete mode 100644 build/node_modules/base64-js/README.md delete mode 100644 build/node_modules/base64-js/base64js.min.js delete mode 100644 build/node_modules/base64-js/index.d.ts delete mode 100644 build/node_modules/base64-js/index.js delete mode 100644 build/node_modules/base64-js/package.json delete mode 100644 build/node_modules/batch/.npmignore delete mode 100644 build/node_modules/batch/History.md delete mode 100644 build/node_modules/batch/LICENSE delete mode 100644 build/node_modules/batch/Makefile delete mode 100644 build/node_modules/batch/Readme.md delete mode 100644 build/node_modules/batch/component.json delete mode 100644 build/node_modules/batch/index.js delete mode 100644 build/node_modules/batch/package.json delete mode 100644 build/node_modules/big-integer/BigInteger.d.ts delete mode 100644 build/node_modules/big-integer/BigInteger.js delete mode 100644 build/node_modules/big-integer/BigInteger.min.js delete mode 100644 build/node_modules/big-integer/LICENSE delete mode 100644 build/node_modules/big-integer/README.md delete mode 100644 build/node_modules/big-integer/bower.json delete mode 100644 build/node_modules/big-integer/package.json delete mode 100644 build/node_modules/big-integer/tsconfig.json delete mode 100644 build/node_modules/big.js/CHANGELOG.md delete mode 100644 build/node_modules/big.js/LICENCE delete mode 100644 build/node_modules/big.js/README.md delete mode 100644 build/node_modules/big.js/big.js delete mode 100644 build/node_modules/big.js/big.min.js delete mode 100644 build/node_modules/big.js/big.mjs delete mode 100644 build/node_modules/big.js/package.json delete mode 100644 build/node_modules/binary-extensions/binary-extensions.json delete mode 100644 build/node_modules/binary-extensions/binary-extensions.json.d.ts delete mode 100644 build/node_modules/binary-extensions/index.d.ts delete mode 100644 build/node_modules/binary-extensions/index.js delete mode 100644 build/node_modules/binary-extensions/license delete mode 100644 build/node_modules/binary-extensions/package.json delete mode 100644 build/node_modules/binary-extensions/readme.md delete mode 100644 build/node_modules/body-parser/HISTORY.md delete mode 100644 build/node_modules/body-parser/LICENSE delete mode 100644 build/node_modules/body-parser/README.md delete mode 100644 build/node_modules/body-parser/SECURITY.md delete mode 100644 build/node_modules/body-parser/index.js delete mode 100644 build/node_modules/body-parser/package.json delete mode 100644 build/node_modules/bonjour-service/LICENSE delete mode 100644 build/node_modules/bonjour-service/README.md delete mode 100644 build/node_modules/bonjour-service/package.json delete mode 100644 build/node_modules/boolbase/README.md delete mode 100644 build/node_modules/boolbase/index.js delete mode 100644 build/node_modules/boolbase/package.json delete mode 100644 build/node_modules/bootstrap/LICENSE delete mode 100644 build/node_modules/bootstrap/README.md delete mode 100644 build/node_modules/bootstrap/package.json delete mode 100644 build/node_modules/bplist-parser/README.md delete mode 100644 build/node_modules/bplist-parser/bplistParser.js delete mode 100644 build/node_modules/bplist-parser/package.json delete mode 100644 build/node_modules/brace-expansion/LICENSE delete mode 100644 build/node_modules/brace-expansion/README.md delete mode 100644 build/node_modules/brace-expansion/index.js delete mode 100644 build/node_modules/brace-expansion/package.json delete mode 100644 build/node_modules/braces/CHANGELOG.md delete mode 100644 build/node_modules/braces/LICENSE delete mode 100644 build/node_modules/braces/README.md delete mode 100644 build/node_modules/braces/index.js delete mode 100644 build/node_modules/braces/package.json delete mode 100644 build/node_modules/browserslist/LICENSE delete mode 100644 build/node_modules/browserslist/README.md delete mode 100644 build/node_modules/browserslist/browser.js delete mode 100644 build/node_modules/browserslist/cli.js delete mode 100644 build/node_modules/browserslist/error.d.ts delete mode 100644 build/node_modules/browserslist/error.js delete mode 100644 build/node_modules/browserslist/index.d.ts delete mode 100644 build/node_modules/browserslist/index.js delete mode 100644 build/node_modules/browserslist/node.js delete mode 100644 build/node_modules/browserslist/package.json delete mode 100644 build/node_modules/browserslist/parse.js delete mode 100644 build/node_modules/buffer-alloc-unsafe/index.js delete mode 100644 build/node_modules/buffer-alloc-unsafe/package.json delete mode 100644 build/node_modules/buffer-alloc-unsafe/readme.md delete mode 100644 build/node_modules/buffer-alloc/index.js delete mode 100644 build/node_modules/buffer-alloc/package.json delete mode 100644 build/node_modules/buffer-alloc/readme.md delete mode 100644 build/node_modules/buffer-fill/index.js delete mode 100644 build/node_modules/buffer-fill/package.json delete mode 100644 build/node_modules/buffer-fill/readme.md delete mode 100644 build/node_modules/buffer-from/LICENSE delete mode 100644 build/node_modules/buffer-from/index.js delete mode 100644 build/node_modules/buffer-from/package.json delete mode 100644 build/node_modules/buffer-from/readme.md delete mode 100644 build/node_modules/buffer/AUTHORS.md delete mode 100644 build/node_modules/buffer/LICENSE delete mode 100644 build/node_modules/buffer/README.md delete mode 100644 build/node_modules/buffer/index.d.ts delete mode 100644 build/node_modules/buffer/index.js delete mode 100644 build/node_modules/buffer/package.json delete mode 100644 build/node_modules/builtin-modules/builtin-modules.json delete mode 100644 build/node_modules/builtin-modules/index.d.ts delete mode 100644 build/node_modules/builtin-modules/index.js delete mode 100644 build/node_modules/builtin-modules/license delete mode 100644 build/node_modules/builtin-modules/package.json delete mode 100644 build/node_modules/builtin-modules/readme.md delete mode 100644 build/node_modules/builtin-modules/static.d.ts delete mode 100644 build/node_modules/builtin-modules/static.js delete mode 100644 build/node_modules/builtins/.travis.yml delete mode 100644 build/node_modules/builtins/History.md delete mode 100644 build/node_modules/builtins/License delete mode 100644 build/node_modules/builtins/Readme.md delete mode 100644 build/node_modules/builtins/builtins.json delete mode 100644 build/node_modules/builtins/package.json delete mode 100644 build/node_modules/builtins/test.js delete mode 100644 build/node_modules/bundle-name/index.js delete mode 100644 build/node_modules/bundle-name/license delete mode 100644 build/node_modules/bundle-name/package.json delete mode 100644 build/node_modules/bundle-name/readme.md delete mode 100644 build/node_modules/bytes/History.md delete mode 100644 build/node_modules/bytes/LICENSE delete mode 100644 build/node_modules/bytes/Readme.md delete mode 100644 build/node_modules/bytes/index.js delete mode 100644 build/node_modules/bytes/package.json delete mode 100644 build/node_modules/cacache/LICENSE.md delete mode 100644 build/node_modules/cacache/README.md delete mode 100644 build/node_modules/cacache/get.js delete mode 100644 build/node_modules/cacache/index.js delete mode 100644 build/node_modules/cacache/ls.js delete mode 100644 build/node_modules/cacache/package.json delete mode 100644 build/node_modules/cacache/put.js delete mode 100644 build/node_modules/cacache/rm.js delete mode 100644 build/node_modules/cacache/verify.js delete mode 100644 build/node_modules/cache-base/LICENSE delete mode 100644 build/node_modules/cache-base/README.md delete mode 100644 build/node_modules/cache-base/index.js delete mode 100644 build/node_modules/cache-base/package.json delete mode 100644 build/node_modules/call-bind/.eslintignore delete mode 100644 build/node_modules/call-bind/.eslintrc delete mode 100644 build/node_modules/call-bind/.nycrc delete mode 100644 build/node_modules/call-bind/CHANGELOG.md delete mode 100644 build/node_modules/call-bind/LICENSE delete mode 100644 build/node_modules/call-bind/README.md delete mode 100644 build/node_modules/call-bind/callBound.js delete mode 100644 build/node_modules/call-bind/index.js delete mode 100644 build/node_modules/call-bind/package.json delete mode 100644 build/node_modules/call-me-maybe/LICENSE delete mode 100644 build/node_modules/call-me-maybe/README.md delete mode 100644 build/node_modules/call-me-maybe/package.json delete mode 100644 build/node_modules/callsites/index.d.ts delete mode 100644 build/node_modules/callsites/index.js delete mode 100644 build/node_modules/callsites/license delete mode 100644 build/node_modules/callsites/package.json delete mode 100644 build/node_modules/callsites/readme.md delete mode 100644 build/node_modules/camel-case/LICENSE delete mode 100644 build/node_modules/camel-case/README.md delete mode 100644 build/node_modules/camel-case/package.json delete mode 100644 build/node_modules/camelcase/index.d.ts delete mode 100644 build/node_modules/camelcase/index.js delete mode 100644 build/node_modules/camelcase/license delete mode 100644 build/node_modules/camelcase/package.json delete mode 100644 build/node_modules/camelcase/readme.md delete mode 100644 build/node_modules/caniuse-api/CHANGELOG.md delete mode 100644 build/node_modules/caniuse-api/LICENSE delete mode 100644 build/node_modules/caniuse-api/README.md delete mode 100644 build/node_modules/caniuse-api/package.json delete mode 100644 build/node_modules/caniuse-lite/LICENSE delete mode 100644 build/node_modules/caniuse-lite/README.md delete mode 100644 build/node_modules/caniuse-lite/package.json delete mode 100644 build/node_modules/capital-case/LICENSE delete mode 100644 build/node_modules/capital-case/README.md delete mode 100644 build/node_modules/capital-case/package.json delete mode 100644 build/node_modules/cardinal/.npmignore delete mode 100644 build/node_modules/cardinal/.travis.yml delete mode 100644 build/node_modules/cardinal/LICENSE delete mode 100644 build/node_modules/cardinal/README.md delete mode 100644 build/node_modules/cardinal/cardinal.js delete mode 100644 build/node_modules/cardinal/package.json delete mode 100644 build/node_modules/cardinal/settings.js delete mode 100644 build/node_modules/cardinal/utl.js delete mode 100644 build/node_modules/chai/CODEOWNERS delete mode 100644 build/node_modules/chai/CODE_OF_CONDUCT.md delete mode 100644 build/node_modules/chai/CONTRIBUTING.md delete mode 100644 build/node_modules/chai/History.md delete mode 100644 build/node_modules/chai/LICENSE delete mode 100644 build/node_modules/chai/README.md delete mode 100644 build/node_modules/chai/ReleaseNotes.md delete mode 100644 build/node_modules/chai/bower.json delete mode 100644 build/node_modules/chai/chai.js delete mode 100644 build/node_modules/chai/index.js delete mode 100644 build/node_modules/chai/index.mjs delete mode 100644 build/node_modules/chai/karma.conf.js delete mode 100644 build/node_modules/chai/karma.sauce.js delete mode 100644 build/node_modules/chai/package.json delete mode 100644 build/node_modules/chai/register-assert.js delete mode 100644 build/node_modules/chai/register-expect.js delete mode 100644 build/node_modules/chai/register-should.js delete mode 100644 build/node_modules/chai/sauce.browsers.js delete mode 100644 build/node_modules/chalk/index.d.ts delete mode 100644 build/node_modules/chalk/license delete mode 100644 build/node_modules/chalk/package.json delete mode 100644 build/node_modules/chalk/readme.md delete mode 100644 build/node_modules/change-case/LICENSE delete mode 100644 build/node_modules/change-case/README.md delete mode 100644 build/node_modules/change-case/package.json delete mode 100644 build/node_modules/charenc/LICENSE.mkd delete mode 100644 build/node_modules/charenc/README.js delete mode 100644 build/node_modules/charenc/charenc.js delete mode 100644 build/node_modules/charenc/package.json delete mode 100644 build/node_modules/check-error/LICENSE delete mode 100644 build/node_modules/check-error/README.md delete mode 100644 build/node_modules/check-error/check-error.js delete mode 100644 build/node_modules/check-error/index.js delete mode 100644 build/node_modules/check-error/package.json delete mode 100644 build/node_modules/chokidar/LICENSE delete mode 100644 build/node_modules/chokidar/README.md delete mode 100644 build/node_modules/chokidar/index.js delete mode 100644 build/node_modules/chokidar/package.json delete mode 100644 build/node_modules/chownr/LICENSE delete mode 100644 build/node_modules/chownr/README.md delete mode 100644 build/node_modules/chownr/chownr.js delete mode 100644 build/node_modules/chownr/package.json delete mode 100644 build/node_modules/chrome-trace-event/CHANGES.md delete mode 100644 build/node_modules/chrome-trace-event/LICENSE.txt delete mode 100644 build/node_modules/chrome-trace-event/README.md delete mode 100644 build/node_modules/chrome-trace-event/package.json delete mode 100644 build/node_modules/ci-info/CHANGELOG.md delete mode 100644 build/node_modules/ci-info/LICENSE delete mode 100644 build/node_modules/ci-info/README.md delete mode 100644 build/node_modules/ci-info/index.d.ts delete mode 100644 build/node_modules/ci-info/index.js delete mode 100644 build/node_modules/ci-info/package.json delete mode 100644 build/node_modules/ci-info/vendors.json delete mode 100644 build/node_modules/class-utils/LICENSE delete mode 100644 build/node_modules/class-utils/README.md delete mode 100644 build/node_modules/class-utils/index.js delete mode 100644 build/node_modules/class-utils/package.json delete mode 100644 build/node_modules/clean-stack/index.d.ts delete mode 100644 build/node_modules/clean-stack/index.js delete mode 100644 build/node_modules/clean-stack/license delete mode 100644 build/node_modules/clean-stack/package.json delete mode 100644 build/node_modules/clean-stack/readme.md delete mode 100644 build/node_modules/clean-webpack-plugin/LICENSE delete mode 100644 build/node_modules/clean-webpack-plugin/README.md delete mode 100644 build/node_modules/clean-webpack-plugin/package.json delete mode 100644 build/node_modules/cli-boxes/boxes.json delete mode 100644 build/node_modules/cli-boxes/index.d.ts delete mode 100644 build/node_modules/cli-boxes/index.js delete mode 100644 build/node_modules/cli-boxes/license delete mode 100644 build/node_modules/cli-boxes/package.json delete mode 100644 build/node_modules/cli-boxes/readme.md delete mode 100644 build/node_modules/cli-cursor/index.d.ts delete mode 100644 build/node_modules/cli-cursor/index.js delete mode 100644 build/node_modules/cli-cursor/license delete mode 100644 build/node_modules/cli-cursor/package.json delete mode 100644 build/node_modules/cli-cursor/readme.md delete mode 100644 build/node_modules/cli-table3/CHANGELOG.md delete mode 100644 build/node_modules/cli-table3/LICENSE delete mode 100644 build/node_modules/cli-table3/README.md delete mode 100644 build/node_modules/cli-table3/index.d.ts delete mode 100644 build/node_modules/cli-table3/index.js delete mode 100644 build/node_modules/cli-table3/package.json delete mode 100644 build/node_modules/clone-deep/LICENSE delete mode 100644 build/node_modules/clone-deep/README.md delete mode 100644 build/node_modules/clone-deep/index.js delete mode 100644 build/node_modules/clone-deep/package.json delete mode 100644 build/node_modules/clone/.npmignore delete mode 100644 build/node_modules/clone/LICENSE delete mode 100644 build/node_modules/clone/README.md delete mode 100644 build/node_modules/clone/clone.iml delete mode 100644 build/node_modules/clone/clone.js delete mode 100644 build/node_modules/clone/package.json delete mode 100644 build/node_modules/co-compose/LICENSE.md delete mode 100644 build/node_modules/co-compose/README.md delete mode 100644 build/node_modules/co-compose/package.json delete mode 100644 build/node_modules/collection-visit/LICENSE delete mode 100644 build/node_modules/collection-visit/README.md delete mode 100644 build/node_modules/collection-visit/index.js delete mode 100644 build/node_modules/collection-visit/package.json delete mode 100644 build/node_modules/color-convert/CHANGELOG.md delete mode 100644 build/node_modules/color-convert/LICENSE delete mode 100644 build/node_modules/color-convert/README.md delete mode 100644 build/node_modules/color-convert/conversions.js delete mode 100644 build/node_modules/color-convert/index.js delete mode 100644 build/node_modules/color-convert/package.json delete mode 100644 build/node_modules/color-convert/route.js delete mode 100644 build/node_modules/color-name/LICENSE delete mode 100644 build/node_modules/color-name/README.md delete mode 100644 build/node_modules/color-name/index.js delete mode 100644 build/node_modules/color-name/package.json delete mode 100644 build/node_modules/color-support/LICENSE delete mode 100644 build/node_modules/color-support/README.md delete mode 100644 build/node_modules/color-support/bin.js delete mode 100644 build/node_modules/color-support/browser.js delete mode 100644 build/node_modules/color-support/index.js delete mode 100644 build/node_modules/color-support/package.json delete mode 100644 build/node_modules/colord/CHANGELOG.md delete mode 100644 build/node_modules/colord/LICENSE.md delete mode 100644 build/node_modules/colord/README.md delete mode 100644 build/node_modules/colord/colord.d.ts delete mode 100644 build/node_modules/colord/constants.d.ts delete mode 100644 build/node_modules/colord/extend.d.ts delete mode 100644 build/node_modules/colord/helpers.d.ts delete mode 100644 build/node_modules/colord/index.d.ts delete mode 100644 build/node_modules/colord/index.js delete mode 100644 build/node_modules/colord/index.mjs delete mode 100644 build/node_modules/colord/package.json delete mode 100644 build/node_modules/colord/parse.d.ts delete mode 100644 build/node_modules/colord/random.d.ts delete mode 100644 build/node_modules/colord/types.d.ts delete mode 100644 build/node_modules/colorette/LICENSE.md delete mode 100644 build/node_modules/colorette/README.md delete mode 100644 build/node_modules/colorette/index.cjs delete mode 100644 build/node_modules/colorette/index.d.ts delete mode 100644 build/node_modules/colorette/index.js delete mode 100644 build/node_modules/colorette/package.json delete mode 100644 build/node_modules/columnify/LICENSE delete mode 100644 build/node_modules/columnify/Makefile delete mode 100644 build/node_modules/columnify/Readme.md delete mode 100644 build/node_modules/columnify/columnify.js delete mode 100644 build/node_modules/columnify/index.js delete mode 100644 build/node_modules/columnify/package.json delete mode 100644 build/node_modules/columnify/utils.js delete mode 100644 build/node_modules/columnify/width.js delete mode 100644 build/node_modules/combined-stream/License delete mode 100644 build/node_modules/combined-stream/Readme.md delete mode 100644 build/node_modules/combined-stream/package.json delete mode 100644 build/node_modules/combined-stream/yarn.lock delete mode 100644 build/node_modules/commander/CHANGELOG.md delete mode 100644 build/node_modules/commander/LICENSE delete mode 100644 build/node_modules/commander/Readme.md delete mode 100644 build/node_modules/commander/index.js delete mode 100644 build/node_modules/commander/package.json delete mode 100644 build/node_modules/comment-json/HISTORY.md delete mode 100644 build/node_modules/comment-json/LICENSE delete mode 100644 build/node_modules/comment-json/README.md delete mode 100644 build/node_modules/comment-json/index.d.ts delete mode 100644 build/node_modules/comment-json/package.json delete mode 100644 build/node_modules/commondir/LICENSE delete mode 100644 build/node_modules/commondir/index.js delete mode 100644 build/node_modules/commondir/package.json delete mode 100644 build/node_modules/commondir/readme.markdown delete mode 100644 build/node_modules/component-emitter/History.md delete mode 100644 build/node_modules/component-emitter/LICENSE delete mode 100644 build/node_modules/component-emitter/Readme.md delete mode 100644 build/node_modules/component-emitter/index.js delete mode 100644 build/node_modules/component-emitter/package.json delete mode 100644 build/node_modules/compressible/HISTORY.md delete mode 100644 build/node_modules/compressible/LICENSE delete mode 100644 build/node_modules/compressible/README.md delete mode 100644 build/node_modules/compressible/index.js delete mode 100644 build/node_modules/compressible/package.json delete mode 100644 build/node_modules/compression/HISTORY.md delete mode 100644 build/node_modules/compression/LICENSE delete mode 100644 build/node_modules/compression/README.md delete mode 100644 build/node_modules/compression/index.js delete mode 100644 build/node_modules/compression/package.json delete mode 100644 build/node_modules/concat-map/.travis.yml delete mode 100644 build/node_modules/concat-map/LICENSE delete mode 100644 build/node_modules/concat-map/README.markdown delete mode 100644 build/node_modules/concat-map/index.js delete mode 100644 build/node_modules/concat-map/package.json delete mode 100644 build/node_modules/connect-history-api-fallback/LICENSE delete mode 100644 build/node_modules/connect-history-api-fallback/README.md delete mode 100644 build/node_modules/connect-history-api-fallback/package.json delete mode 100644 build/node_modules/consola/CHANGELOG.md delete mode 100644 build/node_modules/consola/README.md delete mode 100644 build/node_modules/consola/package.json delete mode 100644 build/node_modules/console-control-strings/LICENSE delete mode 100644 build/node_modules/console-control-strings/README.md delete mode 100644 build/node_modules/console-control-strings/README.md~ delete mode 100644 build/node_modules/console-control-strings/index.js delete mode 100644 build/node_modules/console-control-strings/package.json delete mode 100644 build/node_modules/constant-case/LICENSE delete mode 100644 build/node_modules/constant-case/README.md delete mode 100644 build/node_modules/constant-case/package.json delete mode 100644 build/node_modules/content-disposition/HISTORY.md delete mode 100644 build/node_modules/content-disposition/LICENSE delete mode 100644 build/node_modules/content-disposition/README.md delete mode 100644 build/node_modules/content-disposition/index.js delete mode 100644 build/node_modules/content-disposition/package.json delete mode 100644 build/node_modules/content-type/HISTORY.md delete mode 100644 build/node_modules/content-type/LICENSE delete mode 100644 build/node_modules/content-type/README.md delete mode 100644 build/node_modules/content-type/index.js delete mode 100644 build/node_modules/content-type/package.json delete mode 100644 build/node_modules/convert-hrtime/index.d.ts delete mode 100644 build/node_modules/convert-hrtime/index.js delete mode 100644 build/node_modules/convert-hrtime/license delete mode 100644 build/node_modules/convert-hrtime/package.json delete mode 100644 build/node_modules/convert-hrtime/readme.md delete mode 100644 build/node_modules/convert-source-map/LICENSE delete mode 100644 build/node_modules/convert-source-map/README.md delete mode 100644 build/node_modules/convert-source-map/index.js delete mode 100644 build/node_modules/convert-source-map/package.json delete mode 100644 build/node_modules/cookie-signature/.npmignore delete mode 100644 build/node_modules/cookie-signature/History.md delete mode 100644 build/node_modules/cookie-signature/Readme.md delete mode 100644 build/node_modules/cookie-signature/index.js delete mode 100644 build/node_modules/cookie-signature/package.json delete mode 100644 build/node_modules/cookie/HISTORY.md delete mode 100644 build/node_modules/cookie/LICENSE delete mode 100644 build/node_modules/cookie/README.md delete mode 100644 build/node_modules/cookie/SECURITY.md delete mode 100644 build/node_modules/cookie/index.js delete mode 100644 build/node_modules/cookie/package.json delete mode 100644 build/node_modules/cookiejar/LICENSE delete mode 100644 build/node_modules/cookiejar/cookiejar.js delete mode 100644 build/node_modules/cookiejar/package.json delete mode 100644 build/node_modules/cookiejar/readme.md delete mode 100644 build/node_modules/copy-descriptor/LICENSE delete mode 100644 build/node_modules/copy-descriptor/index.js delete mode 100644 build/node_modules/copy-descriptor/package.json delete mode 100644 build/node_modules/core-js-compat/LICENSE delete mode 100644 build/node_modules/core-js-compat/README.md delete mode 100644 build/node_modules/core-js-compat/compat.d.ts delete mode 100644 build/node_modules/core-js-compat/compat.js delete mode 100644 build/node_modules/core-js-compat/data.json delete mode 100644 build/node_modules/core-js-compat/entries.json delete mode 100644 build/node_modules/core-js-compat/external.json delete mode 100644 build/node_modules/core-js-compat/get-modules-list-for-target-version.d.ts delete mode 100644 build/node_modules/core-js-compat/get-modules-list-for-target-version.js delete mode 100644 build/node_modules/core-js-compat/helpers.js delete mode 100644 build/node_modules/core-js-compat/index.d.ts delete mode 100644 build/node_modules/core-js-compat/index.js delete mode 100644 build/node_modules/core-js-compat/modules-by-versions.json delete mode 100644 build/node_modules/core-js-compat/modules.json delete mode 100644 build/node_modules/core-js-compat/package.json delete mode 100644 build/node_modules/core-js-compat/shared.d.ts delete mode 100644 build/node_modules/core-js-compat/targets-parser.js delete mode 100644 build/node_modules/core-util-is/LICENSE delete mode 100644 build/node_modules/core-util-is/README.md delete mode 100644 build/node_modules/core-util-is/package.json delete mode 100644 build/node_modules/cp-file/cp-file-error.js delete mode 100644 build/node_modules/cp-file/fs.js delete mode 100644 build/node_modules/cp-file/index.d.ts delete mode 100644 build/node_modules/cp-file/index.js delete mode 100644 build/node_modules/cp-file/license delete mode 100644 build/node_modules/cp-file/package.json delete mode 100644 build/node_modules/cp-file/progress-emitter.js delete mode 100644 build/node_modules/cp-file/readme.md delete mode 100644 build/node_modules/cpy/cpy-error.js delete mode 100644 build/node_modules/cpy/index.d.ts delete mode 100644 build/node_modules/cpy/index.js delete mode 100644 build/node_modules/cpy/license delete mode 100644 build/node_modules/cpy/package.json delete mode 100644 build/node_modules/cpy/readme.md delete mode 100644 build/node_modules/cross-spawn/CHANGELOG.md delete mode 100644 build/node_modules/cross-spawn/LICENSE delete mode 100644 build/node_modules/cross-spawn/README.md delete mode 100644 build/node_modules/cross-spawn/index.js delete mode 100644 build/node_modules/cross-spawn/package.json delete mode 100644 build/node_modules/crypt/LICENSE.mkd delete mode 100644 build/node_modules/crypt/README.mkd delete mode 100644 build/node_modules/crypt/crypt.js delete mode 100644 build/node_modules/crypt/package.json delete mode 100644 build/node_modules/csrf/HISTORY.md delete mode 100644 build/node_modules/csrf/LICENSE delete mode 100644 build/node_modules/csrf/README.md delete mode 100644 build/node_modules/csrf/index.d.ts delete mode 100644 build/node_modules/csrf/index.js delete mode 100644 build/node_modules/csrf/package.json delete mode 100644 build/node_modules/css-declaration-sorter/license.md delete mode 100644 build/node_modules/css-declaration-sorter/package.json delete mode 100644 build/node_modules/css-declaration-sorter/readme.md delete mode 100644 build/node_modules/css-loader/LICENSE delete mode 100644 build/node_modules/css-loader/README.md delete mode 100644 build/node_modules/css-loader/package.json delete mode 100644 build/node_modules/css-minimizer-webpack-plugin/LICENSE delete mode 100644 build/node_modules/css-minimizer-webpack-plugin/README.md delete mode 100644 build/node_modules/css-minimizer-webpack-plugin/package.json delete mode 100644 build/node_modules/css-select/LICENSE delete mode 100644 build/node_modules/css-select/README.md delete mode 100644 build/node_modules/css-select/package.json delete mode 100644 build/node_modules/css-tree/CHANGELOG.md delete mode 100644 build/node_modules/css-tree/LICENSE delete mode 100644 build/node_modules/css-tree/README.md delete mode 100644 build/node_modules/css-tree/package.json delete mode 100644 build/node_modules/css-what/LICENSE delete mode 100644 build/node_modules/css-what/package.json delete mode 100644 build/node_modules/css-what/readme.md delete mode 100644 build/node_modules/cssesc/LICENSE-MIT.txt delete mode 100644 build/node_modules/cssesc/README.md delete mode 100644 build/node_modules/cssesc/cssesc.js delete mode 100644 build/node_modules/cssesc/package.json delete mode 100644 build/node_modules/cssnano-preset-default/LICENSE-MIT delete mode 100644 build/node_modules/cssnano-preset-default/README.md delete mode 100644 build/node_modules/cssnano-preset-default/package.json delete mode 100644 build/node_modules/cssnano-utils/LICENSE delete mode 100644 build/node_modules/cssnano-utils/README.md delete mode 100644 build/node_modules/cssnano-utils/package.json delete mode 100644 build/node_modules/cssnano/LICENSE-MIT delete mode 100644 build/node_modules/cssnano/README.md delete mode 100644 build/node_modules/cssnano/package.json delete mode 100644 build/node_modules/csso/CHANGELOG.md delete mode 100644 build/node_modules/csso/LICENSE delete mode 100644 build/node_modules/csso/README.md delete mode 100644 build/node_modules/csso/package.json delete mode 100644 build/node_modules/cuid/LICENSE delete mode 100644 build/node_modules/cuid/README.md delete mode 100644 build/node_modules/cuid/index.d.ts delete mode 100644 build/node_modules/cuid/index.js delete mode 100644 build/node_modules/cuid/package.json delete mode 100644 build/node_modules/dag-map/LICENSE delete mode 100644 build/node_modules/dag-map/README.md delete mode 100644 build/node_modules/dag-map/package.json delete mode 100644 build/node_modules/data-uri-to-buffer/.travis.yml delete mode 100644 build/node_modules/data-uri-to-buffer/History.md delete mode 100644 build/node_modules/data-uri-to-buffer/README.md delete mode 100644 build/node_modules/data-uri-to-buffer/index.d.ts delete mode 100644 build/node_modules/data-uri-to-buffer/index.js delete mode 100644 build/node_modules/data-uri-to-buffer/package.json delete mode 100644 build/node_modules/dateformat/LICENSE delete mode 100644 build/node_modules/dateformat/Readme.md delete mode 100644 build/node_modules/dateformat/package.json delete mode 100644 build/node_modules/debug/LICENSE delete mode 100644 build/node_modules/debug/README.md delete mode 100644 build/node_modules/debug/package.json delete mode 100644 build/node_modules/decimal.js/LICENCE.md delete mode 100644 build/node_modules/decimal.js/README.md delete mode 100644 build/node_modules/decimal.js/decimal.d.ts delete mode 100644 build/node_modules/decimal.js/decimal.js delete mode 100644 build/node_modules/decimal.js/decimal.mjs delete mode 100644 build/node_modules/decimal.js/package.json delete mode 100644 build/node_modules/decode-uri-component/index.js delete mode 100644 build/node_modules/decode-uri-component/license delete mode 100644 build/node_modules/decode-uri-component/package.json delete mode 100644 build/node_modules/decode-uri-component/readme.md delete mode 100644 build/node_modules/deep-eql/LICENSE delete mode 100644 build/node_modules/deep-eql/README.md delete mode 100644 build/node_modules/deep-eql/deep-eql.js delete mode 100644 build/node_modules/deep-eql/index.js delete mode 100644 build/node_modules/deep-eql/package.json delete mode 100644 build/node_modules/deep-extend/CHANGELOG.md delete mode 100644 build/node_modules/deep-extend/LICENSE delete mode 100644 build/node_modules/deep-extend/README.md delete mode 100644 build/node_modules/deep-extend/index.js delete mode 100644 build/node_modules/deep-extend/package.json delete mode 100644 build/node_modules/deep-is/.travis.yml delete mode 100644 build/node_modules/deep-is/LICENSE delete mode 100644 build/node_modules/deep-is/README.markdown delete mode 100644 build/node_modules/deep-is/index.js delete mode 100644 build/node_modules/deep-is/package.json delete mode 100644 build/node_modules/default-browser-id/index.js delete mode 100644 build/node_modules/default-browser-id/license delete mode 100644 build/node_modules/default-browser-id/package.json delete mode 100644 build/node_modules/default-browser-id/readme.md delete mode 100644 build/node_modules/default-browser/index.d.ts delete mode 100644 build/node_modules/default-browser/index.js delete mode 100644 build/node_modules/default-browser/license delete mode 100644 build/node_modules/default-browser/package.json delete mode 100644 build/node_modules/default-browser/readme.md delete mode 100644 build/node_modules/default-browser/windows.js delete mode 100644 build/node_modules/default-gateway/LICENSE delete mode 100644 build/node_modules/default-gateway/README.md delete mode 100644 build/node_modules/default-gateway/android.js delete mode 100644 build/node_modules/default-gateway/darwin.js delete mode 100644 build/node_modules/default-gateway/freebsd.js delete mode 100644 build/node_modules/default-gateway/ibmi.js delete mode 100644 build/node_modules/default-gateway/index.js delete mode 100644 build/node_modules/default-gateway/linux.js delete mode 100644 build/node_modules/default-gateway/openbsd.js delete mode 100644 build/node_modules/default-gateway/package.json delete mode 100644 build/node_modules/default-gateway/sunos.js delete mode 100644 build/node_modules/default-gateway/win32.js delete mode 100644 build/node_modules/defaults/LICENSE delete mode 100644 build/node_modules/defaults/README.md delete mode 100644 build/node_modules/defaults/index.js delete mode 100644 build/node_modules/defaults/package.json delete mode 100644 build/node_modules/defaults/test.js delete mode 100644 build/node_modules/define-data-property/.eslintrc delete mode 100644 build/node_modules/define-data-property/.nycrc delete mode 100644 build/node_modules/define-data-property/CHANGELOG.md delete mode 100644 build/node_modules/define-data-property/LICENSE delete mode 100644 build/node_modules/define-data-property/README.md delete mode 100644 build/node_modules/define-data-property/index.d.ts delete mode 100644 build/node_modules/define-data-property/index.d.ts.map delete mode 100644 build/node_modules/define-data-property/index.js delete mode 100644 build/node_modules/define-data-property/package.json delete mode 100644 build/node_modules/define-data-property/tsconfig.json delete mode 100644 build/node_modules/define-lazy-prop/index.d.ts delete mode 100644 build/node_modules/define-lazy-prop/index.js delete mode 100644 build/node_modules/define-lazy-prop/license delete mode 100644 build/node_modules/define-lazy-prop/package.json delete mode 100644 build/node_modules/define-lazy-prop/readme.md delete mode 100644 build/node_modules/define-property/CHANGELOG.md delete mode 100644 build/node_modules/define-property/LICENSE delete mode 100644 build/node_modules/define-property/README.md delete mode 100644 build/node_modules/define-property/index.js delete mode 100644 build/node_modules/define-property/package.json delete mode 100644 build/node_modules/del/index.d.ts delete mode 100644 build/node_modules/del/index.js delete mode 100644 build/node_modules/del/license delete mode 100644 build/node_modules/del/package.json delete mode 100644 build/node_modules/del/readme.md delete mode 100644 build/node_modules/delayed-stream/.npmignore delete mode 100644 build/node_modules/delayed-stream/License delete mode 100644 build/node_modules/delayed-stream/Makefile delete mode 100644 build/node_modules/delayed-stream/Readme.md delete mode 100644 build/node_modules/delayed-stream/package.json delete mode 100644 build/node_modules/delegates/.npmignore delete mode 100644 build/node_modules/delegates/History.md delete mode 100644 build/node_modules/delegates/License delete mode 100644 build/node_modules/delegates/Makefile delete mode 100644 build/node_modules/delegates/Readme.md delete mode 100644 build/node_modules/delegates/index.js delete mode 100644 build/node_modules/delegates/package.json delete mode 100644 build/node_modules/depd/History.md delete mode 100644 build/node_modules/depd/LICENSE delete mode 100644 build/node_modules/depd/Readme.md delete mode 100644 build/node_modules/depd/index.js delete mode 100644 build/node_modules/depd/package.json delete mode 100644 build/node_modules/destroy/LICENSE delete mode 100644 build/node_modules/destroy/README.md delete mode 100644 build/node_modules/destroy/index.js delete mode 100644 build/node_modules/destroy/package.json delete mode 100644 build/node_modules/detect-indent/index.d.ts delete mode 100644 build/node_modules/detect-indent/index.js delete mode 100644 build/node_modules/detect-indent/license delete mode 100644 build/node_modules/detect-indent/package.json delete mode 100644 build/node_modules/detect-indent/readme.md delete mode 100644 build/node_modules/detect-libc/LICENSE delete mode 100644 build/node_modules/detect-libc/README.md delete mode 100644 build/node_modules/detect-libc/index.d.ts delete mode 100644 build/node_modules/detect-libc/package.json delete mode 100644 build/node_modules/detect-node/LICENSE delete mode 100644 build/node_modules/detect-node/Readme.md delete mode 100644 build/node_modules/detect-node/browser.js delete mode 100644 build/node_modules/detect-node/index.esm.js delete mode 100644 build/node_modules/detect-node/index.js delete mode 100644 build/node_modules/detect-node/package.json delete mode 100644 build/node_modules/dezalgo/LICENSE delete mode 100644 build/node_modules/dezalgo/README.md delete mode 100644 build/node_modules/dezalgo/dezalgo.js delete mode 100644 build/node_modules/dezalgo/package.json delete mode 100644 build/node_modules/diff-sequences/LICENSE delete mode 100644 build/node_modules/diff-sequences/README.md delete mode 100644 build/node_modules/diff-sequences/package.json delete mode 100644 build/node_modules/dir-glob/index.js delete mode 100644 build/node_modules/dir-glob/license delete mode 100644 build/node_modules/dir-glob/package.json delete mode 100644 build/node_modules/dir-glob/readme.md delete mode 100644 build/node_modules/dns-equal/.npmignore delete mode 100644 build/node_modules/dns-equal/.travis.yml delete mode 100644 build/node_modules/dns-equal/LICENSE delete mode 100644 build/node_modules/dns-equal/README.md delete mode 100644 build/node_modules/dns-equal/index.js delete mode 100644 build/node_modules/dns-equal/package.json delete mode 100644 build/node_modules/dns-equal/test.js delete mode 100644 build/node_modules/dns-packet/LICENSE delete mode 100644 build/node_modules/dns-packet/README.md delete mode 100644 build/node_modules/dns-packet/classes.js delete mode 100644 build/node_modules/dns-packet/index.js delete mode 100644 build/node_modules/dns-packet/opcodes.js delete mode 100644 build/node_modules/dns-packet/optioncodes.js delete mode 100644 build/node_modules/dns-packet/package.json delete mode 100644 build/node_modules/dns-packet/rcodes.js delete mode 100644 build/node_modules/dns-packet/types.js delete mode 100644 build/node_modules/doctrine/CHANGELOG.md delete mode 100644 build/node_modules/doctrine/LICENSE delete mode 100644 build/node_modules/doctrine/LICENSE.closure-compiler delete mode 100644 build/node_modules/doctrine/LICENSE.esprima delete mode 100644 build/node_modules/doctrine/README.md delete mode 100644 build/node_modules/doctrine/package.json delete mode 100644 build/node_modules/dom-converter/LICENSE delete mode 100644 build/node_modules/dom-converter/README.md delete mode 100644 build/node_modules/dom-converter/package.json delete mode 100644 build/node_modules/dom-serializer/LICENSE delete mode 100644 build/node_modules/dom-serializer/README.md delete mode 100644 build/node_modules/dom-serializer/package.json delete mode 100644 build/node_modules/domelementtype/LICENSE delete mode 100644 build/node_modules/domelementtype/package.json delete mode 100644 build/node_modules/domelementtype/readme.md delete mode 100644 build/node_modules/domhandler/LICENSE delete mode 100644 build/node_modules/domhandler/package.json delete mode 100644 build/node_modules/domhandler/readme.md delete mode 100644 build/node_modules/domutils/LICENSE delete mode 100644 build/node_modules/domutils/package.json delete mode 100644 build/node_modules/domutils/readme.md delete mode 100644 build/node_modules/dot-case/LICENSE delete mode 100644 build/node_modules/dot-case/README.md delete mode 100644 build/node_modules/dot-case/package.json delete mode 100644 build/node_modules/dotenv/CHANGELOG.md delete mode 100644 build/node_modules/dotenv/LICENSE delete mode 100644 build/node_modules/dotenv/README-es.md delete mode 100644 build/node_modules/dotenv/README.md delete mode 100644 build/node_modules/dotenv/config.d.ts delete mode 100644 build/node_modules/dotenv/config.js delete mode 100644 build/node_modules/dotenv/package.json delete mode 100644 build/node_modules/edge-error/LICENSE.md delete mode 100644 build/node_modules/edge-error/README.md delete mode 100644 build/node_modules/edge-error/package.json delete mode 100644 build/node_modules/edge-lexer/LICENSE.md delete mode 100644 build/node_modules/edge-lexer/README.md delete mode 100644 build/node_modules/edge-lexer/package.json delete mode 100644 build/node_modules/edge-parser/LICENSE.md delete mode 100644 build/node_modules/edge-parser/README.md delete mode 100644 build/node_modules/edge-parser/package.json delete mode 100644 build/node_modules/edge-supercharged/LICENSE.md delete mode 100644 build/node_modules/edge-supercharged/README.md delete mode 100644 build/node_modules/edge-supercharged/package.json delete mode 100644 build/node_modules/edge.js/LICENSE.md delete mode 100644 build/node_modules/edge.js/README.md delete mode 100644 build/node_modules/edge.js/package.json delete mode 100644 build/node_modules/editorconfig/CHANGELOG.md delete mode 100644 build/node_modules/editorconfig/LICENSE delete mode 100644 build/node_modules/editorconfig/README.md delete mode 100644 build/node_modules/editorconfig/package.json delete mode 100644 build/node_modules/ee-first/LICENSE delete mode 100644 build/node_modules/ee-first/README.md delete mode 100644 build/node_modules/ee-first/index.js delete mode 100644 build/node_modules/ee-first/package.json delete mode 100644 build/node_modules/electron-to-chromium/CHANGELOG.md delete mode 100644 build/node_modules/electron-to-chromium/LICENSE delete mode 100644 build/node_modules/electron-to-chromium/README.md delete mode 100644 build/node_modules/electron-to-chromium/chromium-versions.js delete mode 100644 build/node_modules/electron-to-chromium/chromium-versions.json delete mode 100644 build/node_modules/electron-to-chromium/full-chromium-versions.js delete mode 100644 build/node_modules/electron-to-chromium/full-chromium-versions.json delete mode 100644 build/node_modules/electron-to-chromium/full-versions.js delete mode 100644 build/node_modules/electron-to-chromium/full-versions.json delete mode 100644 build/node_modules/electron-to-chromium/index.js delete mode 100644 build/node_modules/electron-to-chromium/package.json delete mode 100644 build/node_modules/electron-to-chromium/versions.js delete mode 100644 build/node_modules/electron-to-chromium/versions.json delete mode 100644 build/node_modules/emittery/index.d.ts delete mode 100644 build/node_modules/emittery/index.js delete mode 100644 build/node_modules/emittery/license delete mode 100644 build/node_modules/emittery/maps.js delete mode 100644 build/node_modules/emittery/package.json delete mode 100644 build/node_modules/emittery/readme.md delete mode 100644 build/node_modules/emoji-regex/LICENSE-MIT.txt delete mode 100644 build/node_modules/emoji-regex/README.md delete mode 100644 build/node_modules/emoji-regex/index.d.ts delete mode 100644 build/node_modules/emoji-regex/index.js delete mode 100644 build/node_modules/emoji-regex/package.json delete mode 100644 build/node_modules/emoji-regex/text.js delete mode 100644 build/node_modules/emojis-list/CHANGELOG.md delete mode 100644 build/node_modules/emojis-list/LICENSE.md delete mode 100644 build/node_modules/emojis-list/README.md delete mode 100644 build/node_modules/emojis-list/index.js delete mode 100644 build/node_modules/emojis-list/package.json delete mode 100644 build/node_modules/encodeurl/HISTORY.md delete mode 100644 build/node_modules/encodeurl/LICENSE delete mode 100644 build/node_modules/encodeurl/README.md delete mode 100644 build/node_modules/encodeurl/index.js delete mode 100644 build/node_modules/encodeurl/package.json delete mode 100644 build/node_modules/encoding/.prettierrc.js delete mode 100644 build/node_modules/encoding/.travis.yml delete mode 100644 build/node_modules/encoding/LICENSE delete mode 100644 build/node_modules/encoding/README.md delete mode 100644 build/node_modules/encoding/package.json delete mode 100644 build/node_modules/end-of-stream/LICENSE delete mode 100644 build/node_modules/end-of-stream/README.md delete mode 100644 build/node_modules/end-of-stream/index.js delete mode 100644 build/node_modules/end-of-stream/package.json delete mode 100644 build/node_modules/enhanced-resolve/LICENSE delete mode 100644 build/node_modules/enhanced-resolve/README.md delete mode 100644 build/node_modules/enhanced-resolve/package.json delete mode 100644 build/node_modules/enhanced-resolve/types.d.ts delete mode 100644 build/node_modules/enquirer/LICENSE delete mode 100644 build/node_modules/enquirer/README.md delete mode 100644 build/node_modules/enquirer/index.d.ts delete mode 100644 build/node_modules/enquirer/index.js delete mode 100644 build/node_modules/enquirer/package.json delete mode 100644 build/node_modules/entities/LICENSE delete mode 100644 build/node_modules/entities/package.json delete mode 100644 build/node_modules/entities/readme.md delete mode 100644 build/node_modules/env-paths/index.d.ts delete mode 100644 build/node_modules/env-paths/index.js delete mode 100644 build/node_modules/env-paths/license delete mode 100644 build/node_modules/env-paths/package.json delete mode 100644 build/node_modules/env-paths/readme.md delete mode 100644 build/node_modules/envinfo/LICENSE delete mode 100644 build/node_modules/envinfo/README.md delete mode 100644 build/node_modules/envinfo/package.json delete mode 100644 build/node_modules/err-code/.editorconfig delete mode 100644 build/node_modules/err-code/.eslintrc.json delete mode 100644 build/node_modules/err-code/.travis.yml delete mode 100644 build/node_modules/err-code/README.md delete mode 100644 build/node_modules/err-code/bower.json delete mode 100644 build/node_modules/err-code/index.js delete mode 100644 build/node_modules/err-code/index.umd.js delete mode 100644 build/node_modules/err-code/package.json delete mode 100644 build/node_modules/error-stack-parser/LICENSE delete mode 100644 build/node_modules/error-stack-parser/README.md delete mode 100644 build/node_modules/error-stack-parser/error-stack-parser.d.ts delete mode 100644 build/node_modules/error-stack-parser/error-stack-parser.js delete mode 100644 build/node_modules/error-stack-parser/package.json delete mode 100644 build/node_modules/es-module-lexer/CHANGELOG.md delete mode 100644 build/node_modules/es-module-lexer/LICENSE delete mode 100644 build/node_modules/es-module-lexer/README.md delete mode 100644 build/node_modules/es-module-lexer/package.json delete mode 100644 build/node_modules/escalade/index.d.ts delete mode 100644 build/node_modules/escalade/license delete mode 100644 build/node_modules/escalade/package.json delete mode 100644 build/node_modules/escalade/readme.md delete mode 100644 build/node_modules/escape-goat/index.d.ts delete mode 100644 build/node_modules/escape-goat/index.js delete mode 100644 build/node_modules/escape-goat/license delete mode 100644 build/node_modules/escape-goat/package.json delete mode 100644 build/node_modules/escape-goat/readme.md delete mode 100644 build/node_modules/escape-html/LICENSE delete mode 100644 build/node_modules/escape-html/Readme.md delete mode 100644 build/node_modules/escape-html/index.js delete mode 100644 build/node_modules/escape-html/package.json delete mode 100644 build/node_modules/eslint-config-prettier/@typescript-eslint.js delete mode 100644 build/node_modules/eslint-config-prettier/LICENSE delete mode 100644 build/node_modules/eslint-config-prettier/README.md delete mode 100644 build/node_modules/eslint-config-prettier/babel.js delete mode 100644 build/node_modules/eslint-config-prettier/flowtype.js delete mode 100644 build/node_modules/eslint-config-prettier/index.js delete mode 100644 build/node_modules/eslint-config-prettier/package.json delete mode 100644 build/node_modules/eslint-config-prettier/prettier.js delete mode 100644 build/node_modules/eslint-config-prettier/react.js delete mode 100644 build/node_modules/eslint-config-prettier/standard.js delete mode 100644 build/node_modules/eslint-config-prettier/unicorn.js delete mode 100644 build/node_modules/eslint-config-prettier/vue.js delete mode 100644 build/node_modules/eslint-plugin-adonis/LICENSE.md delete mode 100644 build/node_modules/eslint-plugin-adonis/README.md delete mode 100644 build/node_modules/eslint-plugin-adonis/package.json delete mode 100644 build/node_modules/eslint-plugin-prettier/CHANGELOG.md delete mode 100644 build/node_modules/eslint-plugin-prettier/LICENSE.md delete mode 100644 build/node_modules/eslint-plugin-prettier/README.md delete mode 100644 build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.d.ts delete mode 100644 build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js delete mode 100644 build/node_modules/eslint-plugin-prettier/package.json delete mode 100644 build/node_modules/eslint-plugin-prettier/worker.js delete mode 100644 build/node_modules/eslint-scope/LICENSE delete mode 100644 build/node_modules/eslint-scope/README.md delete mode 100644 build/node_modules/eslint-scope/package.json delete mode 100644 build/node_modules/eslint-visitor-keys/LICENSE delete mode 100644 build/node_modules/eslint-visitor-keys/README.md delete mode 100644 build/node_modules/eslint-visitor-keys/package.json delete mode 100644 build/node_modules/eslint/LICENSE delete mode 100644 build/node_modules/eslint/README.md delete mode 100644 build/node_modules/eslint/package.json delete mode 100644 build/node_modules/esm/LICENSE delete mode 100644 build/node_modules/esm/README.md delete mode 100644 build/node_modules/esm/esm.js delete mode 100644 build/node_modules/esm/index.js delete mode 100644 build/node_modules/esm/package.json delete mode 100644 build/node_modules/espree/LICENSE delete mode 100644 build/node_modules/espree/README.md delete mode 100644 build/node_modules/espree/espree.js delete mode 100644 build/node_modules/espree/package.json delete mode 100644 build/node_modules/esprima/ChangeLog delete mode 100644 build/node_modules/esprima/LICENSE.BSD delete mode 100644 build/node_modules/esprima/README.md delete mode 100644 build/node_modules/esprima/package.json delete mode 100644 build/node_modules/esquery/README.md delete mode 100644 build/node_modules/esquery/license.txt delete mode 100644 build/node_modules/esquery/package.json delete mode 100644 build/node_modules/esquery/parser.js delete mode 100644 build/node_modules/esrecurse/.babelrc delete mode 100644 build/node_modules/esrecurse/README.md delete mode 100644 build/node_modules/esrecurse/esrecurse.js delete mode 100644 build/node_modules/esrecurse/gulpfile.babel.js delete mode 100644 build/node_modules/esrecurse/package.json delete mode 100644 build/node_modules/estraverse/.jshintrc delete mode 100644 build/node_modules/estraverse/LICENSE.BSD delete mode 100644 build/node_modules/estraverse/README.md delete mode 100644 build/node_modules/estraverse/estraverse.js delete mode 100644 build/node_modules/estraverse/gulpfile.js delete mode 100644 build/node_modules/estraverse/package.json delete mode 100644 build/node_modules/esutils/LICENSE.BSD delete mode 100644 build/node_modules/esutils/README.md delete mode 100644 build/node_modules/esutils/package.json delete mode 100644 build/node_modules/etag/HISTORY.md delete mode 100644 build/node_modules/etag/LICENSE delete mode 100644 build/node_modules/etag/README.md delete mode 100644 build/node_modules/etag/index.js delete mode 100644 build/node_modules/etag/package.json delete mode 100644 build/node_modules/event-target-shim/LICENSE delete mode 100644 build/node_modules/event-target-shim/README.md delete mode 100644 build/node_modules/event-target-shim/index.d.ts delete mode 100644 build/node_modules/event-target-shim/package.json delete mode 100644 build/node_modules/eventemitter3/LICENSE delete mode 100644 build/node_modules/eventemitter3/README.md delete mode 100644 build/node_modules/eventemitter3/index.d.ts delete mode 100644 build/node_modules/eventemitter3/index.js delete mode 100644 build/node_modules/eventemitter3/package.json delete mode 100644 build/node_modules/events/.airtap.yml delete mode 100644 build/node_modules/events/.travis.yml delete mode 100644 build/node_modules/events/History.md delete mode 100644 build/node_modules/events/LICENSE delete mode 100644 build/node_modules/events/Readme.md delete mode 100644 build/node_modules/events/events.js delete mode 100644 build/node_modules/events/package.json delete mode 100644 build/node_modules/events/security.md delete mode 100644 build/node_modules/execa/index.d.ts delete mode 100644 build/node_modules/execa/index.js delete mode 100644 build/node_modules/execa/license delete mode 100644 build/node_modules/execa/package.json delete mode 100644 build/node_modules/execa/readme.md delete mode 100644 build/node_modules/expand-brackets/LICENSE delete mode 100644 build/node_modules/expand-brackets/README.md delete mode 100644 build/node_modules/expand-brackets/changelog.md delete mode 100644 build/node_modules/expand-brackets/index.js delete mode 100644 build/node_modules/expand-brackets/package.json delete mode 100644 build/node_modules/express/History.md delete mode 100644 build/node_modules/express/LICENSE delete mode 100644 build/node_modules/express/Readme.md delete mode 100644 build/node_modules/express/index.js delete mode 100644 build/node_modules/express/package.json delete mode 100644 build/node_modules/extend-shallow/LICENSE delete mode 100644 build/node_modules/extend-shallow/README.md delete mode 100644 build/node_modules/extend-shallow/index.js delete mode 100644 build/node_modules/extend-shallow/package.json delete mode 100644 build/node_modules/extend/.editorconfig delete mode 100644 build/node_modules/extend/.eslintrc delete mode 100644 build/node_modules/extend/.jscs.json delete mode 100644 build/node_modules/extend/.travis.yml delete mode 100644 build/node_modules/extend/CHANGELOG.md delete mode 100644 build/node_modules/extend/LICENSE delete mode 100644 build/node_modules/extend/README.md delete mode 100644 build/node_modules/extend/component.json delete mode 100644 build/node_modules/extend/index.js delete mode 100644 build/node_modules/extend/package.json delete mode 100644 build/node_modules/extglob/LICENSE delete mode 100644 build/node_modules/extglob/README.md delete mode 100644 build/node_modules/extglob/changelog.md delete mode 100644 build/node_modules/extglob/index.js delete mode 100644 build/node_modules/extglob/package.json delete mode 100644 build/node_modules/fast-copy/.release-it.beta.json delete mode 100644 build/node_modules/fast-copy/.release-it.json delete mode 100644 build/node_modules/fast-copy/CHANGELOG.md delete mode 100644 build/node_modules/fast-copy/LICENSE delete mode 100644 build/node_modules/fast-copy/README.md delete mode 100644 build/node_modules/fast-copy/index.d.ts delete mode 100644 build/node_modules/fast-copy/package.json delete mode 100644 build/node_modules/fast-deep-equal/LICENSE delete mode 100644 build/node_modules/fast-deep-equal/README.md delete mode 100644 build/node_modules/fast-deep-equal/index.d.ts delete mode 100644 build/node_modules/fast-deep-equal/index.js delete mode 100644 build/node_modules/fast-deep-equal/package.json delete mode 100644 build/node_modules/fast-deep-equal/react.d.ts delete mode 100644 build/node_modules/fast-deep-equal/react.js delete mode 100644 build/node_modules/fast-diff/LICENSE delete mode 100644 build/node_modules/fast-diff/README.md delete mode 100644 build/node_modules/fast-diff/diff.d.ts delete mode 100644 build/node_modules/fast-diff/diff.js delete mode 100644 build/node_modules/fast-diff/package.json delete mode 100644 build/node_modules/fast-glob/LICENSE delete mode 100644 build/node_modules/fast-glob/README.md delete mode 100644 build/node_modules/fast-glob/index.d.ts delete mode 100644 build/node_modules/fast-glob/index.js delete mode 100644 build/node_modules/fast-glob/package.json delete mode 100644 build/node_modules/fast-json-stable-stringify/.eslintrc.yml delete mode 100644 build/node_modules/fast-json-stable-stringify/.travis.yml delete mode 100644 build/node_modules/fast-json-stable-stringify/LICENSE delete mode 100644 build/node_modules/fast-json-stable-stringify/README.md delete mode 100644 build/node_modules/fast-json-stable-stringify/index.d.ts delete mode 100644 build/node_modules/fast-json-stable-stringify/index.js delete mode 100644 build/node_modules/fast-json-stable-stringify/package.json delete mode 100644 build/node_modules/fast-levenshtein/LICENSE.md delete mode 100644 build/node_modules/fast-levenshtein/README.md delete mode 100644 build/node_modules/fast-levenshtein/levenshtein.js delete mode 100644 build/node_modules/fast-levenshtein/package.json delete mode 100644 build/node_modules/fast-redact/LICENSE delete mode 100644 build/node_modules/fast-redact/index.js delete mode 100644 build/node_modules/fast-redact/package.json delete mode 100644 build/node_modules/fast-redact/readme.md delete mode 100644 build/node_modules/fast-safe-stringify/.travis.yml delete mode 100644 build/node_modules/fast-safe-stringify/CHANGELOG.md delete mode 100644 build/node_modules/fast-safe-stringify/LICENSE delete mode 100644 build/node_modules/fast-safe-stringify/benchmark.js delete mode 100644 build/node_modules/fast-safe-stringify/index.d.ts delete mode 100644 build/node_modules/fast-safe-stringify/index.js delete mode 100644 build/node_modules/fast-safe-stringify/package.json delete mode 100644 build/node_modules/fast-safe-stringify/readme.md delete mode 100644 build/node_modules/fast-safe-stringify/test-stable.js delete mode 100644 build/node_modules/fast-safe-stringify/test.js delete mode 100644 build/node_modules/fastest-levenshtein/.eslintrc.json delete mode 100644 build/node_modules/fastest-levenshtein/.prettierrc delete mode 100644 build/node_modules/fastest-levenshtein/.travis.yml delete mode 100644 build/node_modules/fastest-levenshtein/LICENSE.md delete mode 100644 build/node_modules/fastest-levenshtein/README.md delete mode 100644 build/node_modules/fastest-levenshtein/bench.js delete mode 100644 build/node_modules/fastest-levenshtein/mod.d.ts delete mode 100644 build/node_modules/fastest-levenshtein/mod.js delete mode 100644 build/node_modules/fastest-levenshtein/package.json delete mode 100644 build/node_modules/fastest-levenshtein/test.js delete mode 100644 build/node_modules/fastest-levenshtein/test.ts delete mode 100644 build/node_modules/fastq/LICENSE delete mode 100644 build/node_modules/fastq/README.md delete mode 100644 build/node_modules/fastq/bench.js delete mode 100644 build/node_modules/fastq/example.js delete mode 100644 build/node_modules/fastq/example.mjs delete mode 100644 build/node_modules/fastq/index.d.ts delete mode 100644 build/node_modules/fastq/package.json delete mode 100644 build/node_modules/fastq/queue.js delete mode 100644 build/node_modules/faye-websocket/CHANGELOG.md delete mode 100644 build/node_modules/faye-websocket/LICENSE.md delete mode 100644 build/node_modules/faye-websocket/README.md delete mode 100644 build/node_modules/faye-websocket/package.json delete mode 100644 build/node_modules/file-entry-cache/LICENSE delete mode 100644 build/node_modules/file-entry-cache/README.md delete mode 100644 build/node_modules/file-entry-cache/cache.js delete mode 100644 build/node_modules/file-entry-cache/changelog.md delete mode 100644 build/node_modules/file-entry-cache/package.json delete mode 100644 build/node_modules/file-type/browser.d.ts delete mode 100644 build/node_modules/file-type/browser.js delete mode 100644 build/node_modules/file-type/core.d.ts delete mode 100644 build/node_modules/file-type/core.js delete mode 100644 build/node_modules/file-type/index.d.ts delete mode 100644 build/node_modules/file-type/index.js delete mode 100644 build/node_modules/file-type/license delete mode 100644 build/node_modules/file-type/package.json delete mode 100644 build/node_modules/file-type/readme.md delete mode 100644 build/node_modules/file-type/supported.js delete mode 100644 build/node_modules/file-type/util.js delete mode 100644 build/node_modules/fill-range/LICENSE delete mode 100644 build/node_modules/fill-range/README.md delete mode 100644 build/node_modules/fill-range/index.js delete mode 100644 build/node_modules/fill-range/package.json delete mode 100644 build/node_modules/finalhandler/HISTORY.md delete mode 100644 build/node_modules/finalhandler/LICENSE delete mode 100644 build/node_modules/finalhandler/README.md delete mode 100644 build/node_modules/finalhandler/SECURITY.md delete mode 100644 build/node_modules/finalhandler/index.js delete mode 100644 build/node_modules/finalhandler/package.json delete mode 100644 build/node_modules/find-cache-dir/index.js delete mode 100644 build/node_modules/find-cache-dir/license delete mode 100644 build/node_modules/find-cache-dir/package.json delete mode 100644 build/node_modules/find-cache-dir/readme.md delete mode 100644 build/node_modules/find-up/index.d.ts delete mode 100644 build/node_modules/find-up/index.js delete mode 100644 build/node_modules/find-up/license delete mode 100644 build/node_modules/find-up/package.json delete mode 100644 build/node_modules/find-up/readme.md delete mode 100644 build/node_modules/flat-cache/LICENSE delete mode 100644 build/node_modules/flat-cache/README.md delete mode 100644 build/node_modules/flat-cache/changelog.md delete mode 100644 build/node_modules/flat-cache/package.json delete mode 100644 build/node_modules/flat/.travis.yml delete mode 100644 build/node_modules/flat/LICENSE delete mode 100644 build/node_modules/flat/README.md delete mode 100644 build/node_modules/flat/cli.js delete mode 100644 build/node_modules/flat/index.js delete mode 100644 build/node_modules/flat/package.json delete mode 100644 build/node_modules/flatstr/LICENSE delete mode 100644 build/node_modules/flatstr/alt-benchmark.js delete mode 100644 build/node_modules/flatstr/benchmark.js delete mode 100644 build/node_modules/flatstr/index.js delete mode 100644 build/node_modules/flatstr/package.json delete mode 100644 build/node_modules/flatstr/readme.md delete mode 100644 build/node_modules/flatstr/test.js delete mode 100644 build/node_modules/flatted/LICENSE delete mode 100644 build/node_modules/flatted/README.md delete mode 100644 build/node_modules/flatted/es.js delete mode 100644 build/node_modules/flatted/esm.js delete mode 100644 build/node_modules/flatted/index.js delete mode 100644 build/node_modules/flatted/min.js delete mode 100644 build/node_modules/flatted/package.json delete mode 100644 build/node_modules/flatted/types.d.ts delete mode 100644 build/node_modules/flattie/index.d.ts delete mode 100644 build/node_modules/flattie/license delete mode 100644 build/node_modules/flattie/package.json delete mode 100644 build/node_modules/flattie/readme.md delete mode 100644 build/node_modules/follow-redirects/LICENSE delete mode 100644 build/node_modules/follow-redirects/README.md delete mode 100644 build/node_modules/follow-redirects/debug.js delete mode 100644 build/node_modules/follow-redirects/http.js delete mode 100644 build/node_modules/follow-redirects/https.js delete mode 100644 build/node_modules/follow-redirects/index.js delete mode 100644 build/node_modules/follow-redirects/package.json delete mode 100644 build/node_modules/for-in/LICENSE delete mode 100644 build/node_modules/for-in/README.md delete mode 100644 build/node_modules/for-in/index.js delete mode 100644 build/node_modules/for-in/package.json delete mode 100644 build/node_modules/form-data/License delete mode 100644 build/node_modules/form-data/README.md.bak delete mode 100644 build/node_modules/form-data/Readme.md delete mode 100644 build/node_modules/form-data/index.d.ts delete mode 100644 build/node_modules/form-data/package.json delete mode 100644 build/node_modules/formidable/CHANGELOG.md delete mode 100644 build/node_modules/formidable/LICENSE delete mode 100644 build/node_modules/formidable/README.md delete mode 100644 build/node_modules/formidable/package.json delete mode 100644 build/node_modules/forwarded/HISTORY.md delete mode 100644 build/node_modules/forwarded/LICENSE delete mode 100644 build/node_modules/forwarded/README.md delete mode 100644 build/node_modules/forwarded/index.js delete mode 100644 build/node_modules/forwarded/package.json delete mode 100644 build/node_modules/fragment-cache/LICENSE delete mode 100644 build/node_modules/fragment-cache/README.md delete mode 100644 build/node_modules/fragment-cache/index.js delete mode 100644 build/node_modules/fragment-cache/package.json delete mode 100644 build/node_modules/fresh/HISTORY.md delete mode 100644 build/node_modules/fresh/LICENSE delete mode 100644 build/node_modules/fresh/README.md delete mode 100644 build/node_modules/fresh/index.js delete mode 100644 build/node_modules/fresh/package.json delete mode 100644 build/node_modules/fs-extra/LICENSE delete mode 100644 build/node_modules/fs-extra/README.md delete mode 100644 build/node_modules/fs-extra/package.json delete mode 100644 build/node_modules/fs-minipass/LICENSE delete mode 100644 build/node_modules/fs-minipass/README.md delete mode 100644 build/node_modules/fs-minipass/index.js delete mode 100644 build/node_modules/fs-minipass/package.json delete mode 100644 build/node_modules/fs-monkey/LICENSE delete mode 100644 build/node_modules/fs-monkey/README.md delete mode 100644 build/node_modules/fs-monkey/package.json delete mode 100644 build/node_modules/fs-readdir-recursive/LICENSE delete mode 100644 build/node_modules/fs-readdir-recursive/README.md delete mode 100644 build/node_modules/fs-readdir-recursive/index.js delete mode 100644 build/node_modules/fs-readdir-recursive/package.json delete mode 100644 build/node_modules/fs.realpath/LICENSE delete mode 100644 build/node_modules/fs.realpath/README.md delete mode 100644 build/node_modules/fs.realpath/index.js delete mode 100644 build/node_modules/fs.realpath/old.js delete mode 100644 build/node_modules/fs.realpath/package.json delete mode 100644 build/node_modules/function-bind/.eslintrc delete mode 100644 build/node_modules/function-bind/.nycrc delete mode 100644 build/node_modules/function-bind/CHANGELOG.md delete mode 100644 build/node_modules/function-bind/LICENSE delete mode 100644 build/node_modules/function-bind/README.md delete mode 100644 build/node_modules/function-bind/implementation.js delete mode 100644 build/node_modules/function-bind/index.js delete mode 100644 build/node_modules/function-bind/package.json delete mode 100644 build/node_modules/gauge/CHANGELOG.md delete mode 100644 build/node_modules/gauge/LICENSE delete mode 100644 build/node_modules/gauge/README.md delete mode 100644 build/node_modules/gauge/base-theme.js delete mode 100644 build/node_modules/gauge/error.js delete mode 100644 build/node_modules/gauge/has-color.js delete mode 100644 build/node_modules/gauge/index.js delete mode 100644 build/node_modules/gauge/package.json delete mode 100644 build/node_modules/gauge/plumbing.js delete mode 100644 build/node_modules/gauge/process.js delete mode 100644 build/node_modules/gauge/progress-bar.js delete mode 100644 build/node_modules/gauge/render-template.js delete mode 100644 build/node_modules/gauge/set-immediate.js delete mode 100644 build/node_modules/gauge/set-interval.js delete mode 100644 build/node_modules/gauge/spin.js delete mode 100644 build/node_modules/gauge/template-item.js delete mode 100644 build/node_modules/gauge/theme-set.js delete mode 100644 build/node_modules/gauge/themes.js delete mode 100644 build/node_modules/gauge/wide-truncate.js delete mode 100644 build/node_modules/gensync/LICENSE delete mode 100644 build/node_modules/gensync/README.md delete mode 100644 build/node_modules/gensync/index.js delete mode 100644 build/node_modules/gensync/index.js.flow delete mode 100644 build/node_modules/gensync/package.json delete mode 100644 build/node_modules/get-func-name/LICENSE delete mode 100644 build/node_modules/get-func-name/README.md delete mode 100644 build/node_modules/get-func-name/get-func-name.js delete mode 100644 build/node_modules/get-func-name/index.js delete mode 100644 build/node_modules/get-func-name/package.json delete mode 100644 build/node_modules/get-intrinsic/.eslintrc delete mode 100644 build/node_modules/get-intrinsic/.nycrc delete mode 100644 build/node_modules/get-intrinsic/CHANGELOG.md delete mode 100644 build/node_modules/get-intrinsic/LICENSE delete mode 100644 build/node_modules/get-intrinsic/README.md delete mode 100644 build/node_modules/get-intrinsic/index.js delete mode 100644 build/node_modules/get-intrinsic/package.json delete mode 100644 build/node_modules/get-package-type/CHANGELOG.md delete mode 100644 build/node_modules/get-package-type/LICENSE delete mode 100644 build/node_modules/get-package-type/README.md delete mode 100644 build/node_modules/get-package-type/async.cjs delete mode 100644 build/node_modules/get-package-type/cache.cjs delete mode 100644 build/node_modules/get-package-type/index.cjs delete mode 100644 build/node_modules/get-package-type/is-node-modules.cjs delete mode 100644 build/node_modules/get-package-type/package.json delete mode 100644 build/node_modules/get-package-type/sync.cjs delete mode 100644 build/node_modules/get-port/index.d.ts delete mode 100644 build/node_modules/get-port/index.js delete mode 100644 build/node_modules/get-port/license delete mode 100644 build/node_modules/get-port/package.json delete mode 100644 build/node_modules/get-port/readme.md delete mode 100644 build/node_modules/get-source/.eslintrc delete mode 100644 build/node_modules/get-source/.travis.yml delete mode 100644 build/node_modules/get-source/LICENSE delete mode 100644 build/node_modules/get-source/README.md delete mode 100644 build/node_modules/get-source/get-source.d.ts delete mode 100644 build/node_modules/get-source/get-source.js delete mode 100644 build/node_modules/get-source/package.json delete mode 100644 build/node_modules/get-stream/buffer-stream.js delete mode 100644 build/node_modules/get-stream/index.d.ts delete mode 100644 build/node_modules/get-stream/index.js delete mode 100644 build/node_modules/get-stream/license delete mode 100644 build/node_modules/get-stream/package.json delete mode 100644 build/node_modules/get-stream/readme.md delete mode 100644 build/node_modules/get-value/LICENSE delete mode 100644 build/node_modules/get-value/index.js delete mode 100644 build/node_modules/get-value/package.json delete mode 100644 build/node_modules/getopts/LICENSE.md delete mode 100644 build/node_modules/getopts/README.md delete mode 100644 build/node_modules/getopts/index.cjs delete mode 100644 build/node_modules/getopts/index.d.ts delete mode 100644 build/node_modules/getopts/index.js delete mode 100644 build/node_modules/getopts/package.json delete mode 100644 build/node_modules/glob-parent/LICENSE delete mode 100644 build/node_modules/glob-parent/README.md delete mode 100644 build/node_modules/glob-parent/index.js delete mode 100644 build/node_modules/glob-parent/package.json delete mode 100644 build/node_modules/glob-to-regexp/.travis.yml delete mode 100644 build/node_modules/glob-to-regexp/README.md delete mode 100644 build/node_modules/glob-to-regexp/index.js delete mode 100644 build/node_modules/glob-to-regexp/package.json delete mode 100644 build/node_modules/glob-to-regexp/test.js delete mode 100644 build/node_modules/glob/LICENSE delete mode 100644 build/node_modules/glob/README.md delete mode 100644 build/node_modules/glob/common.js delete mode 100644 build/node_modules/glob/glob.js delete mode 100644 build/node_modules/glob/package.json delete mode 100644 build/node_modules/glob/sync.js delete mode 100644 build/node_modules/globals/globals.json delete mode 100644 build/node_modules/globals/index.d.ts delete mode 100644 build/node_modules/globals/index.js delete mode 100644 build/node_modules/globals/license delete mode 100644 build/node_modules/globals/package.json delete mode 100644 build/node_modules/globals/readme.md delete mode 100644 build/node_modules/globby/gitignore.js delete mode 100644 build/node_modules/globby/index.d.ts delete mode 100644 build/node_modules/globby/index.js delete mode 100644 build/node_modules/globby/license delete mode 100644 build/node_modules/globby/package.json delete mode 100644 build/node_modules/globby/readme.md delete mode 100644 build/node_modules/gopd/.eslintrc delete mode 100644 build/node_modules/gopd/CHANGELOG.md delete mode 100644 build/node_modules/gopd/LICENSE delete mode 100644 build/node_modules/gopd/README.md delete mode 100644 build/node_modules/gopd/index.js delete mode 100644 build/node_modules/gopd/package.json delete mode 100644 build/node_modules/graceful-fs/LICENSE delete mode 100644 build/node_modules/graceful-fs/README.md delete mode 100644 build/node_modules/graceful-fs/clone.js delete mode 100644 build/node_modules/graceful-fs/graceful-fs.js delete mode 100644 build/node_modules/graceful-fs/legacy-streams.js delete mode 100644 build/node_modules/graceful-fs/package.json delete mode 100644 build/node_modules/graceful-fs/polyfills.js delete mode 100644 build/node_modules/graphemer/CHANGELOG.md delete mode 100644 build/node_modules/graphemer/LICENSE delete mode 100644 build/node_modules/graphemer/README.md delete mode 100644 build/node_modules/graphemer/package.json delete mode 100644 build/node_modules/handle-thing/.travis.yml delete mode 100644 build/node_modules/handle-thing/README.md delete mode 100644 build/node_modules/handle-thing/package.json delete mode 100644 build/node_modules/has-ansi/index.js delete mode 100644 build/node_modules/has-ansi/license delete mode 100644 build/node_modules/has-ansi/package.json delete mode 100644 build/node_modules/has-ansi/readme.md delete mode 100644 build/node_modules/has-flag/index.d.ts delete mode 100644 build/node_modules/has-flag/index.js delete mode 100644 build/node_modules/has-flag/license delete mode 100644 build/node_modules/has-flag/package.json delete mode 100644 build/node_modules/has-flag/readme.md delete mode 100644 build/node_modules/has-glob/LICENSE delete mode 100644 build/node_modules/has-glob/README.md delete mode 100644 build/node_modules/has-glob/index.js delete mode 100644 build/node_modules/has-glob/package.json delete mode 100644 build/node_modules/has-own-prop/index.d.ts delete mode 100644 build/node_modules/has-own-prop/index.js delete mode 100644 build/node_modules/has-own-prop/license delete mode 100644 build/node_modules/has-own-prop/package.json delete mode 100644 build/node_modules/has-own-prop/readme.md delete mode 100644 build/node_modules/has-property-descriptors/.eslintrc delete mode 100644 build/node_modules/has-property-descriptors/.nycrc delete mode 100644 build/node_modules/has-property-descriptors/CHANGELOG.md delete mode 100644 build/node_modules/has-property-descriptors/LICENSE delete mode 100644 build/node_modules/has-property-descriptors/README.md delete mode 100644 build/node_modules/has-property-descriptors/index.js delete mode 100644 build/node_modules/has-property-descriptors/package.json delete mode 100644 build/node_modules/has-proto/.eslintrc delete mode 100644 build/node_modules/has-proto/CHANGELOG.md delete mode 100644 build/node_modules/has-proto/LICENSE delete mode 100644 build/node_modules/has-proto/README.md delete mode 100644 build/node_modules/has-proto/index.js delete mode 100644 build/node_modules/has-proto/package.json delete mode 100644 build/node_modules/has-symbols/.eslintrc delete mode 100644 build/node_modules/has-symbols/.nycrc delete mode 100644 build/node_modules/has-symbols/CHANGELOG.md delete mode 100644 build/node_modules/has-symbols/LICENSE delete mode 100644 build/node_modules/has-symbols/README.md delete mode 100644 build/node_modules/has-symbols/index.js delete mode 100644 build/node_modules/has-symbols/package.json delete mode 100644 build/node_modules/has-symbols/shams.js delete mode 100644 build/node_modules/has-unicode/LICENSE delete mode 100644 build/node_modules/has-unicode/README.md delete mode 100644 build/node_modules/has-unicode/index.js delete mode 100644 build/node_modules/has-unicode/package.json delete mode 100644 build/node_modules/has-value/LICENSE delete mode 100644 build/node_modules/has-value/README.md delete mode 100644 build/node_modules/has-value/index.js delete mode 100644 build/node_modules/has-value/package.json delete mode 100644 build/node_modules/has-values/LICENSE delete mode 100644 build/node_modules/has-values/README.md delete mode 100644 build/node_modules/has-values/index.js delete mode 100644 build/node_modules/has-values/package.json delete mode 100644 build/node_modules/has-yarn/index.d.ts delete mode 100644 build/node_modules/has-yarn/index.js delete mode 100644 build/node_modules/has-yarn/license delete mode 100644 build/node_modules/has-yarn/package.json delete mode 100644 build/node_modules/has-yarn/readme.md delete mode 100644 build/node_modules/hasown/.eslintrc delete mode 100644 build/node_modules/hasown/.nycrc delete mode 100644 build/node_modules/hasown/CHANGELOG.md delete mode 100644 build/node_modules/hasown/LICENSE delete mode 100644 build/node_modules/hasown/README.md delete mode 100644 build/node_modules/hasown/index.d.ts delete mode 100644 build/node_modules/hasown/index.d.ts.map delete mode 100644 build/node_modules/hasown/index.js delete mode 100644 build/node_modules/hasown/package.json delete mode 100644 build/node_modules/hasown/tsconfig.json delete mode 100644 build/node_modules/haye/CHANGELOG.md delete mode 100644 build/node_modules/haye/README.md delete mode 100644 build/node_modules/haye/package.json delete mode 100644 build/node_modules/he/LICENSE-MIT.txt delete mode 100644 build/node_modules/he/README.md delete mode 100644 build/node_modules/he/he.js delete mode 100644 build/node_modules/he/package.json delete mode 100644 build/node_modules/header-case/LICENSE delete mode 100644 build/node_modules/header-case/README.md delete mode 100644 build/node_modules/header-case/package.json delete mode 100644 build/node_modules/helmet-csp/CHANGELOG.md delete mode 100644 build/node_modules/helmet-csp/LICENSE delete mode 100644 build/node_modules/helmet-csp/README.md delete mode 100644 build/node_modules/helmet-csp/index.d.ts delete mode 100644 build/node_modules/helmet-csp/index.js delete mode 100644 build/node_modules/helmet-csp/package.json delete mode 100644 build/node_modules/help-me/LICENSE delete mode 100644 build/node_modules/help-me/README.md delete mode 100644 build/node_modules/help-me/example.js delete mode 100644 build/node_modules/help-me/help-me.js delete mode 100644 build/node_modules/help-me/package.json delete mode 100644 build/node_modules/help-me/test.js delete mode 100644 build/node_modules/hexoid/hexoid.d.ts delete mode 100644 build/node_modules/hexoid/license delete mode 100644 build/node_modules/hexoid/package.json delete mode 100644 build/node_modules/hexoid/readme.md delete mode 100644 build/node_modules/hpack.js/.npmignore delete mode 100644 build/node_modules/hpack.js/.travis.yml delete mode 100644 build/node_modules/hpack.js/README.md delete mode 100644 build/node_modules/hpack.js/package.json delete mode 100644 build/node_modules/html-entities/LICENSE delete mode 100644 build/node_modules/html-entities/README.md delete mode 100644 build/node_modules/html-entities/package.json delete mode 100644 build/node_modules/htmlparser2/LICENSE delete mode 100644 build/node_modules/htmlparser2/README.md delete mode 100644 build/node_modules/htmlparser2/package.json delete mode 100644 build/node_modules/http-cache-semantics/LICENSE delete mode 100644 build/node_modules/http-cache-semantics/README.md delete mode 100644 build/node_modules/http-cache-semantics/index.js delete mode 100644 build/node_modules/http-cache-semantics/package.json delete mode 100644 build/node_modules/http-deceiver/.npmignore delete mode 100644 build/node_modules/http-deceiver/.travis.yml delete mode 100644 build/node_modules/http-deceiver/README.md delete mode 100644 build/node_modules/http-deceiver/package.json delete mode 100644 build/node_modules/http-errors/HISTORY.md delete mode 100644 build/node_modules/http-errors/LICENSE delete mode 100644 build/node_modules/http-errors/README.md delete mode 100644 build/node_modules/http-errors/index.js delete mode 100644 build/node_modules/http-errors/package.json delete mode 100644 build/node_modules/http-parser-js/LICENSE.md delete mode 100644 build/node_modules/http-parser-js/README.md delete mode 100644 build/node_modules/http-parser-js/http-parser.d.ts delete mode 100644 build/node_modules/http-parser-js/http-parser.js delete mode 100644 build/node_modules/http-parser-js/package.json delete mode 100644 build/node_modules/http-proxy-agent/README.md delete mode 100644 build/node_modules/http-proxy-agent/package.json delete mode 100644 build/node_modules/http-proxy-middleware/LICENSE delete mode 100644 build/node_modules/http-proxy-middleware/README.md delete mode 100644 build/node_modules/http-proxy-middleware/package.json delete mode 100644 build/node_modules/http-proxy/.auto-changelog delete mode 100644 build/node_modules/http-proxy/.gitattributes delete mode 100644 build/node_modules/http-proxy/CHANGELOG.md delete mode 100644 build/node_modules/http-proxy/CODE_OF_CONDUCT.md delete mode 100644 build/node_modules/http-proxy/LICENSE delete mode 100644 build/node_modules/http-proxy/README.md delete mode 100644 build/node_modules/http-proxy/codecov.yml delete mode 100644 build/node_modules/http-proxy/index.js delete mode 100644 build/node_modules/http-proxy/package.json delete mode 100644 build/node_modules/http-proxy/renovate.json delete mode 100644 build/node_modules/https-proxy-agent/README.md delete mode 100644 build/node_modules/https-proxy-agent/package.json delete mode 100644 build/node_modules/human-signals/CHANGELOG.md delete mode 100644 build/node_modules/human-signals/LICENSE delete mode 100644 build/node_modules/human-signals/README.md delete mode 100644 build/node_modules/human-signals/package.json delete mode 100644 build/node_modules/humanize-ms/History.md delete mode 100644 build/node_modules/humanize-ms/LICENSE delete mode 100644 build/node_modules/humanize-ms/README.md delete mode 100644 build/node_modules/humanize-ms/index.js delete mode 100644 build/node_modules/humanize-ms/package.json delete mode 100644 build/node_modules/iconv-lite/Changelog.md delete mode 100644 build/node_modules/iconv-lite/LICENSE delete mode 100644 build/node_modules/iconv-lite/README.md delete mode 100644 build/node_modules/iconv-lite/package.json delete mode 100644 build/node_modules/icss-utils/CHANGELOG.md delete mode 100644 build/node_modules/icss-utils/LICENSE.md delete mode 100644 build/node_modules/icss-utils/README.md delete mode 100644 build/node_modules/icss-utils/package.json delete mode 100644 build/node_modules/ieee754/LICENSE delete mode 100644 build/node_modules/ieee754/README.md delete mode 100644 build/node_modules/ieee754/index.d.ts delete mode 100644 build/node_modules/ieee754/index.js delete mode 100644 build/node_modules/ieee754/package.json delete mode 100644 build/node_modules/igniculus/.npmignore delete mode 100644 build/node_modules/igniculus/CHANGELOG.md delete mode 100644 build/node_modules/igniculus/LICENSE delete mode 100644 build/node_modules/igniculus/README.md delete mode 100644 build/node_modules/igniculus/index.js delete mode 100644 build/node_modules/igniculus/package.json delete mode 100644 build/node_modules/ignore/LICENSE-MIT delete mode 100644 build/node_modules/ignore/README.md delete mode 100644 build/node_modules/ignore/index.d.ts delete mode 100644 build/node_modules/ignore/index.js delete mode 100644 build/node_modules/ignore/legacy.js delete mode 100644 build/node_modules/ignore/package.json delete mode 100644 build/node_modules/import-fresh/index.d.ts delete mode 100644 build/node_modules/import-fresh/index.js delete mode 100644 build/node_modules/import-fresh/license delete mode 100644 build/node_modules/import-fresh/package.json delete mode 100644 build/node_modules/import-fresh/readme.md delete mode 100644 build/node_modules/import-local/index.js delete mode 100644 build/node_modules/import-local/license delete mode 100644 build/node_modules/import-local/package.json delete mode 100644 build/node_modules/import-local/readme.md delete mode 100644 build/node_modules/imurmurhash/README.md delete mode 100644 build/node_modules/imurmurhash/imurmurhash.js delete mode 100644 build/node_modules/imurmurhash/imurmurhash.min.js delete mode 100644 build/node_modules/imurmurhash/package.json delete mode 100644 build/node_modules/inclusion/LICENSE delete mode 100644 build/node_modules/inclusion/index.js delete mode 100644 build/node_modules/inclusion/package.json delete mode 100644 build/node_modules/inclusion/readme.md delete mode 100644 build/node_modules/inclusion/test.js delete mode 100644 build/node_modules/indent-string/index.d.ts delete mode 100644 build/node_modules/indent-string/index.js delete mode 100644 build/node_modules/indent-string/license delete mode 100644 build/node_modules/indent-string/package.json delete mode 100644 build/node_modules/indent-string/readme.md delete mode 100644 build/node_modules/infer-owner/LICENSE delete mode 100644 build/node_modules/infer-owner/README.md delete mode 100644 build/node_modules/infer-owner/index.js delete mode 100644 build/node_modules/infer-owner/package.json delete mode 100644 build/node_modules/inflation/LICENSE delete mode 100644 build/node_modules/inflation/README.md delete mode 100644 build/node_modules/inflation/index.js delete mode 100644 build/node_modules/inflation/package.json delete mode 100644 build/node_modules/inflight/LICENSE delete mode 100644 build/node_modules/inflight/README.md delete mode 100644 build/node_modules/inflight/inflight.js delete mode 100644 build/node_modules/inflight/package.json delete mode 100644 build/node_modules/inherits/LICENSE delete mode 100644 build/node_modules/inherits/README.md delete mode 100644 build/node_modules/inherits/inherits.js delete mode 100644 build/node_modules/inherits/inherits_browser.js delete mode 100644 build/node_modules/inherits/package.json delete mode 100644 build/node_modules/ini/LICENSE delete mode 100644 build/node_modules/ini/README.md delete mode 100644 build/node_modules/ini/ini.js delete mode 100644 build/node_modules/ini/package.json delete mode 100644 build/node_modules/interpret/CHANGELOG delete mode 100644 build/node_modules/interpret/LICENSE delete mode 100644 build/node_modules/interpret/README.md delete mode 100644 build/node_modules/interpret/index.js delete mode 100644 build/node_modules/interpret/mjs-stub.js delete mode 100644 build/node_modules/interpret/package.json delete mode 100644 build/node_modules/ip/README.md delete mode 100644 build/node_modules/ip/package.json delete mode 100644 build/node_modules/ipaddr.js/LICENSE delete mode 100644 build/node_modules/ipaddr.js/README.md delete mode 100644 build/node_modules/ipaddr.js/ipaddr.min.js delete mode 100644 build/node_modules/ipaddr.js/package.json delete mode 100644 build/node_modules/is-accessor-descriptor/.editorconfig delete mode 100644 build/node_modules/is-accessor-descriptor/.eslintrc delete mode 100644 build/node_modules/is-accessor-descriptor/.nycrc delete mode 100644 build/node_modules/is-accessor-descriptor/CHANGELOG.md delete mode 100644 build/node_modules/is-accessor-descriptor/LICENSE delete mode 100644 build/node_modules/is-accessor-descriptor/README.md delete mode 100644 build/node_modules/is-accessor-descriptor/index.js delete mode 100644 build/node_modules/is-accessor-descriptor/package.json delete mode 100644 build/node_modules/is-binary-path/index.d.ts delete mode 100644 build/node_modules/is-binary-path/index.js delete mode 100644 build/node_modules/is-binary-path/license delete mode 100644 build/node_modules/is-binary-path/package.json delete mode 100644 build/node_modules/is-binary-path/readme.md delete mode 100644 build/node_modules/is-buffer/LICENSE delete mode 100644 build/node_modules/is-buffer/README.md delete mode 100644 build/node_modules/is-buffer/index.js delete mode 100644 build/node_modules/is-buffer/package.json delete mode 100644 build/node_modules/is-core-module/.eslintrc delete mode 100644 build/node_modules/is-core-module/.nycrc delete mode 100644 build/node_modules/is-core-module/CHANGELOG.md delete mode 100644 build/node_modules/is-core-module/LICENSE delete mode 100644 build/node_modules/is-core-module/README.md delete mode 100644 build/node_modules/is-core-module/core.json delete mode 100644 build/node_modules/is-core-module/index.js delete mode 100644 build/node_modules/is-core-module/package.json delete mode 100644 build/node_modules/is-data-descriptor/.editorconfig delete mode 100644 build/node_modules/is-data-descriptor/.eslintrc delete mode 100644 build/node_modules/is-data-descriptor/.nycrc delete mode 100644 build/node_modules/is-data-descriptor/CHANGELOG.md delete mode 100644 build/node_modules/is-data-descriptor/LICENSE delete mode 100644 build/node_modules/is-data-descriptor/README.md delete mode 100644 build/node_modules/is-data-descriptor/index.js delete mode 100644 build/node_modules/is-data-descriptor/package.json delete mode 100644 build/node_modules/is-descriptor/.editorconfig delete mode 100644 build/node_modules/is-descriptor/.eslintrc delete mode 100644 build/node_modules/is-descriptor/.gitattributes delete mode 100644 build/node_modules/is-descriptor/.nycrc delete mode 100644 build/node_modules/is-descriptor/CHANGELOG.md delete mode 100644 build/node_modules/is-descriptor/LICENSE delete mode 100644 build/node_modules/is-descriptor/README.md delete mode 100644 build/node_modules/is-descriptor/index.js delete mode 100644 build/node_modules/is-descriptor/package.json delete mode 100644 build/node_modules/is-docker/cli.js delete mode 100644 build/node_modules/is-docker/index.d.ts delete mode 100644 build/node_modules/is-docker/index.js delete mode 100644 build/node_modules/is-docker/license delete mode 100644 build/node_modules/is-docker/package.json delete mode 100644 build/node_modules/is-docker/readme.md delete mode 100644 build/node_modules/is-extendable/LICENSE delete mode 100644 build/node_modules/is-extendable/README.md delete mode 100644 build/node_modules/is-extendable/index.d.ts delete mode 100644 build/node_modules/is-extendable/index.js delete mode 100644 build/node_modules/is-extendable/package.json delete mode 100644 build/node_modules/is-extglob/LICENSE delete mode 100644 build/node_modules/is-extglob/README.md delete mode 100644 build/node_modules/is-extglob/index.js delete mode 100644 build/node_modules/is-extglob/package.json delete mode 100644 build/node_modules/is-fullwidth-code-point/index.d.ts delete mode 100644 build/node_modules/is-fullwidth-code-point/index.js delete mode 100644 build/node_modules/is-fullwidth-code-point/license delete mode 100644 build/node_modules/is-fullwidth-code-point/package.json delete mode 100644 build/node_modules/is-fullwidth-code-point/readme.md delete mode 100644 build/node_modules/is-glob/LICENSE delete mode 100644 build/node_modules/is-glob/README.md delete mode 100644 build/node_modules/is-glob/index.js delete mode 100644 build/node_modules/is-glob/package.json delete mode 100644 build/node_modules/is-inside-container/cli.js delete mode 100644 build/node_modules/is-inside-container/index.d.ts delete mode 100644 build/node_modules/is-inside-container/index.js delete mode 100644 build/node_modules/is-inside-container/license delete mode 100644 build/node_modules/is-inside-container/package.json delete mode 100644 build/node_modules/is-inside-container/readme.md delete mode 100644 build/node_modules/is-invalid-path/LICENSE delete mode 100644 build/node_modules/is-invalid-path/README.md delete mode 100644 build/node_modules/is-invalid-path/index.js delete mode 100644 build/node_modules/is-invalid-path/package.json delete mode 100644 build/node_modules/is-lambda/.npmignore delete mode 100644 build/node_modules/is-lambda/.travis.yml delete mode 100644 build/node_modules/is-lambda/LICENSE delete mode 100644 build/node_modules/is-lambda/README.md delete mode 100644 build/node_modules/is-lambda/index.js delete mode 100644 build/node_modules/is-lambda/package.json delete mode 100644 build/node_modules/is-lambda/test.js delete mode 100644 build/node_modules/is-number/LICENSE delete mode 100644 build/node_modules/is-number/README.md delete mode 100644 build/node_modules/is-number/index.js delete mode 100644 build/node_modules/is-number/package.json delete mode 100644 build/node_modules/is-path-cwd/index.d.ts delete mode 100644 build/node_modules/is-path-cwd/index.js delete mode 100644 build/node_modules/is-path-cwd/license delete mode 100644 build/node_modules/is-path-cwd/package.json delete mode 100644 build/node_modules/is-path-cwd/readme.md delete mode 100644 build/node_modules/is-path-in-cwd/index.d.ts delete mode 100644 build/node_modules/is-path-in-cwd/index.js delete mode 100644 build/node_modules/is-path-in-cwd/license delete mode 100644 build/node_modules/is-path-in-cwd/package.json delete mode 100644 build/node_modules/is-path-in-cwd/readme.md delete mode 100644 build/node_modules/is-path-inside/index.d.ts delete mode 100644 build/node_modules/is-path-inside/index.js delete mode 100644 build/node_modules/is-path-inside/license delete mode 100644 build/node_modules/is-path-inside/package.json delete mode 100644 build/node_modules/is-path-inside/readme.md delete mode 100644 build/node_modules/is-plain-obj/index.d.ts delete mode 100644 build/node_modules/is-plain-obj/index.js delete mode 100644 build/node_modules/is-plain-obj/license delete mode 100644 build/node_modules/is-plain-obj/package.json delete mode 100644 build/node_modules/is-plain-obj/readme.md delete mode 100644 build/node_modules/is-plain-object/LICENSE delete mode 100644 build/node_modules/is-plain-object/README.md delete mode 100644 build/node_modules/is-plain-object/index.d.ts delete mode 100644 build/node_modules/is-plain-object/index.js delete mode 100644 build/node_modules/is-plain-object/package.json delete mode 100644 build/node_modules/is-stream/index.d.ts delete mode 100644 build/node_modules/is-stream/index.js delete mode 100644 build/node_modules/is-stream/license delete mode 100644 build/node_modules/is-stream/package.json delete mode 100644 build/node_modules/is-stream/readme.md delete mode 100644 build/node_modules/is-valid-path/.editorconfig delete mode 100644 build/node_modules/is-valid-path/.gitattributes delete mode 100644 build/node_modules/is-valid-path/.jshintrc delete mode 100644 build/node_modules/is-valid-path/.npmignore delete mode 100644 build/node_modules/is-valid-path/.verb.md delete mode 100644 build/node_modules/is-valid-path/LICENSE delete mode 100644 build/node_modules/is-valid-path/README.md delete mode 100644 build/node_modules/is-valid-path/index.js delete mode 100644 build/node_modules/is-valid-path/package.json delete mode 100644 build/node_modules/is-valid-path/test.js delete mode 100644 build/node_modules/is-windows/LICENSE delete mode 100644 build/node_modules/is-windows/README.md delete mode 100644 build/node_modules/is-windows/index.js delete mode 100644 build/node_modules/is-windows/package.json delete mode 100644 build/node_modules/is-wsl/index.d.ts delete mode 100644 build/node_modules/is-wsl/index.js delete mode 100644 build/node_modules/is-wsl/license delete mode 100644 build/node_modules/is-wsl/package.json delete mode 100644 build/node_modules/is-wsl/readme.md delete mode 100644 build/node_modules/isarray/.npmignore delete mode 100644 build/node_modules/isarray/.travis.yml delete mode 100644 build/node_modules/isarray/Makefile delete mode 100644 build/node_modules/isarray/README.md delete mode 100644 build/node_modules/isarray/component.json delete mode 100644 build/node_modules/isarray/index.js delete mode 100644 build/node_modules/isarray/package.json delete mode 100644 build/node_modules/isarray/test.js delete mode 100644 build/node_modules/isexe/.npmignore delete mode 100644 build/node_modules/isexe/LICENSE delete mode 100644 build/node_modules/isexe/README.md delete mode 100644 build/node_modules/isexe/index.js delete mode 100644 build/node_modules/isexe/mode.js delete mode 100644 build/node_modules/isexe/package.json delete mode 100644 build/node_modules/isexe/windows.js delete mode 100644 build/node_modules/isobject/LICENSE delete mode 100644 build/node_modules/isobject/README.md delete mode 100644 build/node_modules/isobject/index.d.ts delete mode 100644 build/node_modules/isobject/index.js delete mode 100644 build/node_modules/isobject/package.json delete mode 100644 build/node_modules/jest-diff/LICENSE delete mode 100644 build/node_modules/jest-diff/README.md delete mode 100644 build/node_modules/jest-diff/package.json delete mode 100644 build/node_modules/jest-get-type/LICENSE delete mode 100644 build/node_modules/jest-get-type/package.json delete mode 100644 build/node_modules/jest-matcher-utils/LICENSE delete mode 100644 build/node_modules/jest-matcher-utils/package.json delete mode 100644 build/node_modules/jest-util/LICENSE delete mode 100644 build/node_modules/jest-util/Readme.md delete mode 100644 build/node_modules/jest-util/package.json delete mode 100644 build/node_modules/jest-worker/LICENSE delete mode 100644 build/node_modules/jest-worker/README.md delete mode 100644 build/node_modules/jest-worker/package.json delete mode 100644 build/node_modules/joycon/LICENSE delete mode 100644 build/node_modules/joycon/README.md delete mode 100644 build/node_modules/joycon/package.json delete mode 100644 build/node_modules/js-stringify/.npmignore delete mode 100644 build/node_modules/js-stringify/.travis.yml delete mode 100644 build/node_modules/js-stringify/LICENSE delete mode 100644 build/node_modules/js-stringify/README.md delete mode 100644 build/node_modules/js-stringify/index.js delete mode 100644 build/node_modules/js-stringify/package.json delete mode 100644 build/node_modules/js-tokens/CHANGELOG.md delete mode 100644 build/node_modules/js-tokens/LICENSE delete mode 100644 build/node_modules/js-tokens/README.md delete mode 100644 build/node_modules/js-tokens/index.js delete mode 100644 build/node_modules/js-tokens/package.json delete mode 100644 build/node_modules/js-yaml/CHANGELOG.md delete mode 100644 build/node_modules/js-yaml/LICENSE delete mode 100644 build/node_modules/js-yaml/README.md delete mode 100644 build/node_modules/js-yaml/index.js delete mode 100644 build/node_modules/js-yaml/package.json delete mode 100644 build/node_modules/jsesc/LICENSE-MIT.txt delete mode 100644 build/node_modules/jsesc/README.md delete mode 100644 build/node_modules/jsesc/jsesc.js delete mode 100644 build/node_modules/jsesc/package.json delete mode 100644 build/node_modules/json-buffer/.travis.yml delete mode 100644 build/node_modules/json-buffer/LICENSE delete mode 100644 build/node_modules/json-buffer/README.md delete mode 100644 build/node_modules/json-buffer/index.js delete mode 100644 build/node_modules/json-buffer/package.json delete mode 100644 build/node_modules/json-parse-even-better-errors/CHANGELOG.md delete mode 100644 build/node_modules/json-parse-even-better-errors/LICENSE.md delete mode 100644 build/node_modules/json-parse-even-better-errors/README.md delete mode 100644 build/node_modules/json-parse-even-better-errors/index.js delete mode 100644 build/node_modules/json-parse-even-better-errors/package.json delete mode 100644 build/node_modules/json-schema-deref-sync/.travis.yml delete mode 100644 build/node_modules/json-schema-deref-sync/ISSUE_TEMPLATE.md delete mode 100644 build/node_modules/json-schema-deref-sync/LICENSE delete mode 100644 build/node_modules/json-schema-deref-sync/LICENSE.txt delete mode 100644 build/node_modules/json-schema-deref-sync/README.md delete mode 100644 build/node_modules/json-schema-deref-sync/package.json delete mode 100644 build/node_modules/json-schema-deref-sync/readme.hbs delete mode 100644 build/node_modules/json-schema-traverse/.eslintrc.yml delete mode 100644 build/node_modules/json-schema-traverse/.travis.yml delete mode 100644 build/node_modules/json-schema-traverse/LICENSE delete mode 100644 build/node_modules/json-schema-traverse/README.md delete mode 100644 build/node_modules/json-schema-traverse/index.js delete mode 100644 build/node_modules/json-schema-traverse/package.json delete mode 100644 build/node_modules/json-stable-stringify-without-jsonify/.npmignore delete mode 100644 build/node_modules/json-stable-stringify-without-jsonify/.travis.yml delete mode 100644 build/node_modules/json-stable-stringify-without-jsonify/LICENSE delete mode 100644 build/node_modules/json-stable-stringify-without-jsonify/index.js delete mode 100644 build/node_modules/json-stable-stringify-without-jsonify/package.json delete mode 100644 build/node_modules/json-stable-stringify-without-jsonify/readme.markdown delete mode 100644 build/node_modules/json5/LICENSE.md delete mode 100644 build/node_modules/json5/README.md delete mode 100644 build/node_modules/json5/package.json delete mode 100644 build/node_modules/jsonfile/CHANGELOG.md delete mode 100644 build/node_modules/jsonfile/LICENSE delete mode 100644 build/node_modules/jsonfile/README.md delete mode 100644 build/node_modules/jsonfile/index.js delete mode 100644 build/node_modules/jsonfile/package.json delete mode 100644 build/node_modules/jsonfile/utils.js delete mode 100644 build/node_modules/junk/index.d.ts delete mode 100644 build/node_modules/junk/index.js delete mode 100644 build/node_modules/junk/license delete mode 100644 build/node_modules/junk/package.json delete mode 100644 build/node_modules/junk/readme.md delete mode 100644 build/node_modules/keyv/README.md delete mode 100644 build/node_modules/keyv/package.json delete mode 100644 build/node_modules/kind-of/CHANGELOG.md delete mode 100644 build/node_modules/kind-of/LICENSE delete mode 100644 build/node_modules/kind-of/README.md delete mode 100644 build/node_modules/kind-of/index.js delete mode 100644 build/node_modules/kind-of/package.json delete mode 100644 build/node_modules/kleur/colors.d.ts delete mode 100644 build/node_modules/kleur/colors.js delete mode 100644 build/node_modules/kleur/colors.mjs delete mode 100644 build/node_modules/kleur/index.d.ts delete mode 100644 build/node_modules/kleur/index.js delete mode 100644 build/node_modules/kleur/index.mjs delete mode 100644 build/node_modules/kleur/license delete mode 100644 build/node_modules/kleur/package.json delete mode 100644 build/node_modules/kleur/readme.md delete mode 100644 build/node_modules/knex-dynamic-connection/LICENSE.md delete mode 100644 build/node_modules/knex-dynamic-connection/README.md delete mode 100644 build/node_modules/knex-dynamic-connection/package.json delete mode 100644 build/node_modules/knex/CHANGELOG.md delete mode 100644 build/node_modules/knex/CONTRIBUTING.md delete mode 100644 build/node_modules/knex/LICENSE delete mode 100644 build/node_modules/knex/README.md delete mode 100644 build/node_modules/knex/UPGRADING.md delete mode 100644 build/node_modules/knex/knex.js delete mode 100644 build/node_modules/knex/knex.mjs delete mode 100644 build/node_modules/knex/package.json delete mode 100644 build/node_modules/launch-editor/LICENSE delete mode 100644 build/node_modules/launch-editor/get-args.js delete mode 100644 build/node_modules/launch-editor/guess.js delete mode 100644 build/node_modules/launch-editor/index.js delete mode 100644 build/node_modules/launch-editor/package.json delete mode 100644 build/node_modules/leven/index.d.ts delete mode 100644 build/node_modules/leven/index.js delete mode 100644 build/node_modules/leven/license delete mode 100644 build/node_modules/leven/package.json delete mode 100644 build/node_modules/leven/readme.md delete mode 100644 build/node_modules/levn/LICENSE delete mode 100644 build/node_modules/levn/README.md delete mode 100644 build/node_modules/levn/package.json delete mode 100644 build/node_modules/lilconfig/LICENSE delete mode 100644 build/node_modules/lilconfig/package.json delete mode 100644 build/node_modules/lilconfig/readme.md delete mode 100644 build/node_modules/loader-runner/LICENSE delete mode 100644 build/node_modules/loader-runner/README.md delete mode 100644 build/node_modules/loader-runner/package.json delete mode 100644 build/node_modules/loader-utils/LICENSE delete mode 100644 build/node_modules/loader-utils/README.md delete mode 100644 build/node_modules/loader-utils/package.json delete mode 100644 build/node_modules/locate-path/index.d.ts delete mode 100644 build/node_modules/locate-path/index.js delete mode 100644 build/node_modules/locate-path/license delete mode 100644 build/node_modules/locate-path/package.json delete mode 100644 build/node_modules/locate-path/readme.md delete mode 100644 build/node_modules/lodash.debounce/LICENSE delete mode 100644 build/node_modules/lodash.debounce/README.md delete mode 100644 build/node_modules/lodash.debounce/index.js delete mode 100644 build/node_modules/lodash.debounce/package.json delete mode 100644 build/node_modules/lodash.flatten/LICENSE delete mode 100644 build/node_modules/lodash.flatten/README.md delete mode 100644 build/node_modules/lodash.flatten/index.js delete mode 100644 build/node_modules/lodash.flatten/package.json delete mode 100644 build/node_modules/lodash.get/LICENSE delete mode 100644 build/node_modules/lodash.get/README.md delete mode 100644 build/node_modules/lodash.get/index.js delete mode 100644 build/node_modules/lodash.get/package.json delete mode 100644 build/node_modules/lodash.isequal/LICENSE delete mode 100644 build/node_modules/lodash.isequal/README.md delete mode 100644 build/node_modules/lodash.isequal/index.js delete mode 100644 build/node_modules/lodash.isequal/package.json delete mode 100644 build/node_modules/lodash.memoize/LICENSE delete mode 100644 build/node_modules/lodash.memoize/README.md delete mode 100644 build/node_modules/lodash.memoize/index.js delete mode 100644 build/node_modules/lodash.memoize/package.json delete mode 100644 build/node_modules/lodash.merge/LICENSE delete mode 100644 build/node_modules/lodash.merge/README.md delete mode 100644 build/node_modules/lodash.merge/index.js delete mode 100644 build/node_modules/lodash.merge/package.json delete mode 100644 build/node_modules/lodash.set/LICENSE delete mode 100644 build/node_modules/lodash.set/README.md delete mode 100644 build/node_modules/lodash.set/index.js delete mode 100644 build/node_modules/lodash.set/package.json delete mode 100644 build/node_modules/lodash.uniq/LICENSE delete mode 100644 build/node_modules/lodash.uniq/README.md delete mode 100644 build/node_modules/lodash.uniq/index.js delete mode 100644 build/node_modules/lodash.uniq/package.json delete mode 100644 build/node_modules/lodash/LICENSE delete mode 100644 build/node_modules/lodash/README.md delete mode 100644 build/node_modules/lodash/_DataView.js delete mode 100644 build/node_modules/lodash/_Hash.js delete mode 100644 build/node_modules/lodash/_LazyWrapper.js delete mode 100644 build/node_modules/lodash/_ListCache.js delete mode 100644 build/node_modules/lodash/_LodashWrapper.js delete mode 100644 build/node_modules/lodash/_Map.js delete mode 100644 build/node_modules/lodash/_MapCache.js delete mode 100644 build/node_modules/lodash/_Promise.js delete mode 100644 build/node_modules/lodash/_Set.js delete mode 100644 build/node_modules/lodash/_SetCache.js delete mode 100644 build/node_modules/lodash/_Stack.js delete mode 100644 build/node_modules/lodash/_Symbol.js delete mode 100644 build/node_modules/lodash/_Uint8Array.js delete mode 100644 build/node_modules/lodash/_WeakMap.js delete mode 100644 build/node_modules/lodash/_apply.js delete mode 100644 build/node_modules/lodash/_arrayAggregator.js delete mode 100644 build/node_modules/lodash/_arrayEach.js delete mode 100644 build/node_modules/lodash/_arrayEachRight.js delete mode 100644 build/node_modules/lodash/_arrayEvery.js delete mode 100644 build/node_modules/lodash/_arrayFilter.js delete mode 100644 build/node_modules/lodash/_arrayIncludes.js delete mode 100644 build/node_modules/lodash/_arrayIncludesWith.js delete mode 100644 build/node_modules/lodash/_arrayLikeKeys.js delete mode 100644 build/node_modules/lodash/_arrayMap.js delete mode 100644 build/node_modules/lodash/_arrayPush.js delete mode 100644 build/node_modules/lodash/_arrayReduce.js delete mode 100644 build/node_modules/lodash/_arrayReduceRight.js delete mode 100644 build/node_modules/lodash/_arraySample.js delete mode 100644 build/node_modules/lodash/_arraySampleSize.js delete mode 100644 build/node_modules/lodash/_arrayShuffle.js delete mode 100644 build/node_modules/lodash/_arraySome.js delete mode 100644 build/node_modules/lodash/_asciiSize.js delete mode 100644 build/node_modules/lodash/_asciiToArray.js delete mode 100644 build/node_modules/lodash/_asciiWords.js delete mode 100644 build/node_modules/lodash/_assignMergeValue.js delete mode 100644 build/node_modules/lodash/_assignValue.js delete mode 100644 build/node_modules/lodash/_assocIndexOf.js delete mode 100644 build/node_modules/lodash/_baseAggregator.js delete mode 100644 build/node_modules/lodash/_baseAssign.js delete mode 100644 build/node_modules/lodash/_baseAssignIn.js delete mode 100644 build/node_modules/lodash/_baseAssignValue.js delete mode 100644 build/node_modules/lodash/_baseAt.js delete mode 100644 build/node_modules/lodash/_baseClamp.js delete mode 100644 build/node_modules/lodash/_baseClone.js delete mode 100644 build/node_modules/lodash/_baseConforms.js delete mode 100644 build/node_modules/lodash/_baseConformsTo.js delete mode 100644 build/node_modules/lodash/_baseCreate.js delete mode 100644 build/node_modules/lodash/_baseDelay.js delete mode 100644 build/node_modules/lodash/_baseDifference.js delete mode 100644 build/node_modules/lodash/_baseEach.js delete mode 100644 build/node_modules/lodash/_baseEachRight.js delete mode 100644 build/node_modules/lodash/_baseEvery.js delete mode 100644 build/node_modules/lodash/_baseExtremum.js delete mode 100644 build/node_modules/lodash/_baseFill.js delete mode 100644 build/node_modules/lodash/_baseFilter.js delete mode 100644 build/node_modules/lodash/_baseFindIndex.js delete mode 100644 build/node_modules/lodash/_baseFindKey.js delete mode 100644 build/node_modules/lodash/_baseFlatten.js delete mode 100644 build/node_modules/lodash/_baseFor.js delete mode 100644 build/node_modules/lodash/_baseForOwn.js delete mode 100644 build/node_modules/lodash/_baseForOwnRight.js delete mode 100644 build/node_modules/lodash/_baseForRight.js delete mode 100644 build/node_modules/lodash/_baseFunctions.js delete mode 100644 build/node_modules/lodash/_baseGet.js delete mode 100644 build/node_modules/lodash/_baseGetAllKeys.js delete mode 100644 build/node_modules/lodash/_baseGetTag.js delete mode 100644 build/node_modules/lodash/_baseGt.js delete mode 100644 build/node_modules/lodash/_baseHas.js delete mode 100644 build/node_modules/lodash/_baseHasIn.js delete mode 100644 build/node_modules/lodash/_baseInRange.js delete mode 100644 build/node_modules/lodash/_baseIndexOf.js delete mode 100644 build/node_modules/lodash/_baseIndexOfWith.js delete mode 100644 build/node_modules/lodash/_baseIntersection.js delete mode 100644 build/node_modules/lodash/_baseInverter.js delete mode 100644 build/node_modules/lodash/_baseInvoke.js delete mode 100644 build/node_modules/lodash/_baseIsArguments.js delete mode 100644 build/node_modules/lodash/_baseIsArrayBuffer.js delete mode 100644 build/node_modules/lodash/_baseIsDate.js delete mode 100644 build/node_modules/lodash/_baseIsEqual.js delete mode 100644 build/node_modules/lodash/_baseIsEqualDeep.js delete mode 100644 build/node_modules/lodash/_baseIsMap.js delete mode 100644 build/node_modules/lodash/_baseIsMatch.js delete mode 100644 build/node_modules/lodash/_baseIsNaN.js delete mode 100644 build/node_modules/lodash/_baseIsNative.js delete mode 100644 build/node_modules/lodash/_baseIsRegExp.js delete mode 100644 build/node_modules/lodash/_baseIsSet.js delete mode 100644 build/node_modules/lodash/_baseIsTypedArray.js delete mode 100644 build/node_modules/lodash/_baseIteratee.js delete mode 100644 build/node_modules/lodash/_baseKeys.js delete mode 100644 build/node_modules/lodash/_baseKeysIn.js delete mode 100644 build/node_modules/lodash/_baseLodash.js delete mode 100644 build/node_modules/lodash/_baseLt.js delete mode 100644 build/node_modules/lodash/_baseMap.js delete mode 100644 build/node_modules/lodash/_baseMatches.js delete mode 100644 build/node_modules/lodash/_baseMatchesProperty.js delete mode 100644 build/node_modules/lodash/_baseMean.js delete mode 100644 build/node_modules/lodash/_baseMerge.js delete mode 100644 build/node_modules/lodash/_baseMergeDeep.js delete mode 100644 build/node_modules/lodash/_baseNth.js delete mode 100644 build/node_modules/lodash/_baseOrderBy.js delete mode 100644 build/node_modules/lodash/_basePick.js delete mode 100644 build/node_modules/lodash/_basePickBy.js delete mode 100644 build/node_modules/lodash/_baseProperty.js delete mode 100644 build/node_modules/lodash/_basePropertyDeep.js delete mode 100644 build/node_modules/lodash/_basePropertyOf.js delete mode 100644 build/node_modules/lodash/_basePullAll.js delete mode 100644 build/node_modules/lodash/_basePullAt.js delete mode 100644 build/node_modules/lodash/_baseRandom.js delete mode 100644 build/node_modules/lodash/_baseRange.js delete mode 100644 build/node_modules/lodash/_baseReduce.js delete mode 100644 build/node_modules/lodash/_baseRepeat.js delete mode 100644 build/node_modules/lodash/_baseRest.js delete mode 100644 build/node_modules/lodash/_baseSample.js delete mode 100644 build/node_modules/lodash/_baseSampleSize.js delete mode 100644 build/node_modules/lodash/_baseSet.js delete mode 100644 build/node_modules/lodash/_baseSetData.js delete mode 100644 build/node_modules/lodash/_baseSetToString.js delete mode 100644 build/node_modules/lodash/_baseShuffle.js delete mode 100644 build/node_modules/lodash/_baseSlice.js delete mode 100644 build/node_modules/lodash/_baseSome.js delete mode 100644 build/node_modules/lodash/_baseSortBy.js delete mode 100644 build/node_modules/lodash/_baseSortedIndex.js delete mode 100644 build/node_modules/lodash/_baseSortedIndexBy.js delete mode 100644 build/node_modules/lodash/_baseSortedUniq.js delete mode 100644 build/node_modules/lodash/_baseSum.js delete mode 100644 build/node_modules/lodash/_baseTimes.js delete mode 100644 build/node_modules/lodash/_baseToNumber.js delete mode 100644 build/node_modules/lodash/_baseToPairs.js delete mode 100644 build/node_modules/lodash/_baseToString.js delete mode 100644 build/node_modules/lodash/_baseTrim.js delete mode 100644 build/node_modules/lodash/_baseUnary.js delete mode 100644 build/node_modules/lodash/_baseUniq.js delete mode 100644 build/node_modules/lodash/_baseUnset.js delete mode 100644 build/node_modules/lodash/_baseUpdate.js delete mode 100644 build/node_modules/lodash/_baseValues.js delete mode 100644 build/node_modules/lodash/_baseWhile.js delete mode 100644 build/node_modules/lodash/_baseWrapperValue.js delete mode 100644 build/node_modules/lodash/_baseXor.js delete mode 100644 build/node_modules/lodash/_baseZipObject.js delete mode 100644 build/node_modules/lodash/_cacheHas.js delete mode 100644 build/node_modules/lodash/_castArrayLikeObject.js delete mode 100644 build/node_modules/lodash/_castFunction.js delete mode 100644 build/node_modules/lodash/_castPath.js delete mode 100644 build/node_modules/lodash/_castRest.js delete mode 100644 build/node_modules/lodash/_castSlice.js delete mode 100644 build/node_modules/lodash/_charsEndIndex.js delete mode 100644 build/node_modules/lodash/_charsStartIndex.js delete mode 100644 build/node_modules/lodash/_cloneArrayBuffer.js delete mode 100644 build/node_modules/lodash/_cloneBuffer.js delete mode 100644 build/node_modules/lodash/_cloneDataView.js delete mode 100644 build/node_modules/lodash/_cloneRegExp.js delete mode 100644 build/node_modules/lodash/_cloneSymbol.js delete mode 100644 build/node_modules/lodash/_cloneTypedArray.js delete mode 100644 build/node_modules/lodash/_compareAscending.js delete mode 100644 build/node_modules/lodash/_compareMultiple.js delete mode 100644 build/node_modules/lodash/_composeArgs.js delete mode 100644 build/node_modules/lodash/_composeArgsRight.js delete mode 100644 build/node_modules/lodash/_copyArray.js delete mode 100644 build/node_modules/lodash/_copyObject.js delete mode 100644 build/node_modules/lodash/_copySymbols.js delete mode 100644 build/node_modules/lodash/_copySymbolsIn.js delete mode 100644 build/node_modules/lodash/_coreJsData.js delete mode 100644 build/node_modules/lodash/_countHolders.js delete mode 100644 build/node_modules/lodash/_createAggregator.js delete mode 100644 build/node_modules/lodash/_createAssigner.js delete mode 100644 build/node_modules/lodash/_createBaseEach.js delete mode 100644 build/node_modules/lodash/_createBaseFor.js delete mode 100644 build/node_modules/lodash/_createBind.js delete mode 100644 build/node_modules/lodash/_createCaseFirst.js delete mode 100644 build/node_modules/lodash/_createCompounder.js delete mode 100644 build/node_modules/lodash/_createCtor.js delete mode 100644 build/node_modules/lodash/_createCurry.js delete mode 100644 build/node_modules/lodash/_createFind.js delete mode 100644 build/node_modules/lodash/_createFlow.js delete mode 100644 build/node_modules/lodash/_createHybrid.js delete mode 100644 build/node_modules/lodash/_createInverter.js delete mode 100644 build/node_modules/lodash/_createMathOperation.js delete mode 100644 build/node_modules/lodash/_createOver.js delete mode 100644 build/node_modules/lodash/_createPadding.js delete mode 100644 build/node_modules/lodash/_createPartial.js delete mode 100644 build/node_modules/lodash/_createRange.js delete mode 100644 build/node_modules/lodash/_createRecurry.js delete mode 100644 build/node_modules/lodash/_createRelationalOperation.js delete mode 100644 build/node_modules/lodash/_createRound.js delete mode 100644 build/node_modules/lodash/_createSet.js delete mode 100644 build/node_modules/lodash/_createToPairs.js delete mode 100644 build/node_modules/lodash/_createWrap.js delete mode 100644 build/node_modules/lodash/_customDefaultsAssignIn.js delete mode 100644 build/node_modules/lodash/_customDefaultsMerge.js delete mode 100644 build/node_modules/lodash/_customOmitClone.js delete mode 100644 build/node_modules/lodash/_deburrLetter.js delete mode 100644 build/node_modules/lodash/_defineProperty.js delete mode 100644 build/node_modules/lodash/_equalArrays.js delete mode 100644 build/node_modules/lodash/_equalByTag.js delete mode 100644 build/node_modules/lodash/_equalObjects.js delete mode 100644 build/node_modules/lodash/_escapeHtmlChar.js delete mode 100644 build/node_modules/lodash/_escapeStringChar.js delete mode 100644 build/node_modules/lodash/_flatRest.js delete mode 100644 build/node_modules/lodash/_freeGlobal.js delete mode 100644 build/node_modules/lodash/_getAllKeys.js delete mode 100644 build/node_modules/lodash/_getAllKeysIn.js delete mode 100644 build/node_modules/lodash/_getData.js delete mode 100644 build/node_modules/lodash/_getFuncName.js delete mode 100644 build/node_modules/lodash/_getHolder.js delete mode 100644 build/node_modules/lodash/_getMapData.js delete mode 100644 build/node_modules/lodash/_getMatchData.js delete mode 100644 build/node_modules/lodash/_getNative.js delete mode 100644 build/node_modules/lodash/_getPrototype.js delete mode 100644 build/node_modules/lodash/_getRawTag.js delete mode 100644 build/node_modules/lodash/_getSymbols.js delete mode 100644 build/node_modules/lodash/_getSymbolsIn.js delete mode 100644 build/node_modules/lodash/_getTag.js delete mode 100644 build/node_modules/lodash/_getValue.js delete mode 100644 build/node_modules/lodash/_getView.js delete mode 100644 build/node_modules/lodash/_getWrapDetails.js delete mode 100644 build/node_modules/lodash/_hasPath.js delete mode 100644 build/node_modules/lodash/_hasUnicode.js delete mode 100644 build/node_modules/lodash/_hasUnicodeWord.js delete mode 100644 build/node_modules/lodash/_hashClear.js delete mode 100644 build/node_modules/lodash/_hashDelete.js delete mode 100644 build/node_modules/lodash/_hashGet.js delete mode 100644 build/node_modules/lodash/_hashHas.js delete mode 100644 build/node_modules/lodash/_hashSet.js delete mode 100644 build/node_modules/lodash/_initCloneArray.js delete mode 100644 build/node_modules/lodash/_initCloneByTag.js delete mode 100644 build/node_modules/lodash/_initCloneObject.js delete mode 100644 build/node_modules/lodash/_insertWrapDetails.js delete mode 100644 build/node_modules/lodash/_isFlattenable.js delete mode 100644 build/node_modules/lodash/_isIndex.js delete mode 100644 build/node_modules/lodash/_isIterateeCall.js delete mode 100644 build/node_modules/lodash/_isKey.js delete mode 100644 build/node_modules/lodash/_isKeyable.js delete mode 100644 build/node_modules/lodash/_isLaziable.js delete mode 100644 build/node_modules/lodash/_isMaskable.js delete mode 100644 build/node_modules/lodash/_isMasked.js delete mode 100644 build/node_modules/lodash/_isPrototype.js delete mode 100644 build/node_modules/lodash/_isStrictComparable.js delete mode 100644 build/node_modules/lodash/_iteratorToArray.js delete mode 100644 build/node_modules/lodash/_lazyClone.js delete mode 100644 build/node_modules/lodash/_lazyReverse.js delete mode 100644 build/node_modules/lodash/_lazyValue.js delete mode 100644 build/node_modules/lodash/_listCacheClear.js delete mode 100644 build/node_modules/lodash/_listCacheDelete.js delete mode 100644 build/node_modules/lodash/_listCacheGet.js delete mode 100644 build/node_modules/lodash/_listCacheHas.js delete mode 100644 build/node_modules/lodash/_listCacheSet.js delete mode 100644 build/node_modules/lodash/_mapCacheClear.js delete mode 100644 build/node_modules/lodash/_mapCacheDelete.js delete mode 100644 build/node_modules/lodash/_mapCacheGet.js delete mode 100644 build/node_modules/lodash/_mapCacheHas.js delete mode 100644 build/node_modules/lodash/_mapCacheSet.js delete mode 100644 build/node_modules/lodash/_mapToArray.js delete mode 100644 build/node_modules/lodash/_matchesStrictComparable.js delete mode 100644 build/node_modules/lodash/_memoizeCapped.js delete mode 100644 build/node_modules/lodash/_mergeData.js delete mode 100644 build/node_modules/lodash/_metaMap.js delete mode 100644 build/node_modules/lodash/_nativeCreate.js delete mode 100644 build/node_modules/lodash/_nativeKeys.js delete mode 100644 build/node_modules/lodash/_nativeKeysIn.js delete mode 100644 build/node_modules/lodash/_nodeUtil.js delete mode 100644 build/node_modules/lodash/_objectToString.js delete mode 100644 build/node_modules/lodash/_overArg.js delete mode 100644 build/node_modules/lodash/_overRest.js delete mode 100644 build/node_modules/lodash/_parent.js delete mode 100644 build/node_modules/lodash/_reEscape.js delete mode 100644 build/node_modules/lodash/_reEvaluate.js delete mode 100644 build/node_modules/lodash/_reInterpolate.js delete mode 100644 build/node_modules/lodash/_realNames.js delete mode 100644 build/node_modules/lodash/_reorder.js delete mode 100644 build/node_modules/lodash/_replaceHolders.js delete mode 100644 build/node_modules/lodash/_root.js delete mode 100644 build/node_modules/lodash/_safeGet.js delete mode 100644 build/node_modules/lodash/_setCacheAdd.js delete mode 100644 build/node_modules/lodash/_setCacheHas.js delete mode 100644 build/node_modules/lodash/_setData.js delete mode 100644 build/node_modules/lodash/_setToArray.js delete mode 100644 build/node_modules/lodash/_setToPairs.js delete mode 100644 build/node_modules/lodash/_setToString.js delete mode 100644 build/node_modules/lodash/_setWrapToString.js delete mode 100644 build/node_modules/lodash/_shortOut.js delete mode 100644 build/node_modules/lodash/_shuffleSelf.js delete mode 100644 build/node_modules/lodash/_stackClear.js delete mode 100644 build/node_modules/lodash/_stackDelete.js delete mode 100644 build/node_modules/lodash/_stackGet.js delete mode 100644 build/node_modules/lodash/_stackHas.js delete mode 100644 build/node_modules/lodash/_stackSet.js delete mode 100644 build/node_modules/lodash/_strictIndexOf.js delete mode 100644 build/node_modules/lodash/_strictLastIndexOf.js delete mode 100644 build/node_modules/lodash/_stringSize.js delete mode 100644 build/node_modules/lodash/_stringToArray.js delete mode 100644 build/node_modules/lodash/_stringToPath.js delete mode 100644 build/node_modules/lodash/_toKey.js delete mode 100644 build/node_modules/lodash/_toSource.js delete mode 100644 build/node_modules/lodash/_trimmedEndIndex.js delete mode 100644 build/node_modules/lodash/_unescapeHtmlChar.js delete mode 100644 build/node_modules/lodash/_unicodeSize.js delete mode 100644 build/node_modules/lodash/_unicodeToArray.js delete mode 100644 build/node_modules/lodash/_unicodeWords.js delete mode 100644 build/node_modules/lodash/_updateWrapDetails.js delete mode 100644 build/node_modules/lodash/_wrapperClone.js delete mode 100644 build/node_modules/lodash/add.js delete mode 100644 build/node_modules/lodash/after.js delete mode 100644 build/node_modules/lodash/array.js delete mode 100644 build/node_modules/lodash/ary.js delete mode 100644 build/node_modules/lodash/assign.js delete mode 100644 build/node_modules/lodash/assignIn.js delete mode 100644 build/node_modules/lodash/assignInWith.js delete mode 100644 build/node_modules/lodash/assignWith.js delete mode 100644 build/node_modules/lodash/at.js delete mode 100644 build/node_modules/lodash/attempt.js delete mode 100644 build/node_modules/lodash/before.js delete mode 100644 build/node_modules/lodash/bind.js delete mode 100644 build/node_modules/lodash/bindAll.js delete mode 100644 build/node_modules/lodash/bindKey.js delete mode 100644 build/node_modules/lodash/camelCase.js delete mode 100644 build/node_modules/lodash/capitalize.js delete mode 100644 build/node_modules/lodash/castArray.js delete mode 100644 build/node_modules/lodash/ceil.js delete mode 100644 build/node_modules/lodash/chain.js delete mode 100644 build/node_modules/lodash/chunk.js delete mode 100644 build/node_modules/lodash/clamp.js delete mode 100644 build/node_modules/lodash/clone.js delete mode 100644 build/node_modules/lodash/cloneDeep.js delete mode 100644 build/node_modules/lodash/cloneDeepWith.js delete mode 100644 build/node_modules/lodash/cloneWith.js delete mode 100644 build/node_modules/lodash/collection.js delete mode 100644 build/node_modules/lodash/commit.js delete mode 100644 build/node_modules/lodash/compact.js delete mode 100644 build/node_modules/lodash/concat.js delete mode 100644 build/node_modules/lodash/cond.js delete mode 100644 build/node_modules/lodash/conforms.js delete mode 100644 build/node_modules/lodash/conformsTo.js delete mode 100644 build/node_modules/lodash/constant.js delete mode 100644 build/node_modules/lodash/core.js delete mode 100644 build/node_modules/lodash/core.min.js delete mode 100644 build/node_modules/lodash/countBy.js delete mode 100644 build/node_modules/lodash/create.js delete mode 100644 build/node_modules/lodash/curry.js delete mode 100644 build/node_modules/lodash/curryRight.js delete mode 100644 build/node_modules/lodash/date.js delete mode 100644 build/node_modules/lodash/debounce.js delete mode 100644 build/node_modules/lodash/deburr.js delete mode 100644 build/node_modules/lodash/defaultTo.js delete mode 100644 build/node_modules/lodash/defaults.js delete mode 100644 build/node_modules/lodash/defaultsDeep.js delete mode 100644 build/node_modules/lodash/defer.js delete mode 100644 build/node_modules/lodash/delay.js delete mode 100644 build/node_modules/lodash/difference.js delete mode 100644 build/node_modules/lodash/differenceBy.js delete mode 100644 build/node_modules/lodash/differenceWith.js delete mode 100644 build/node_modules/lodash/divide.js delete mode 100644 build/node_modules/lodash/drop.js delete mode 100644 build/node_modules/lodash/dropRight.js delete mode 100644 build/node_modules/lodash/dropRightWhile.js delete mode 100644 build/node_modules/lodash/dropWhile.js delete mode 100644 build/node_modules/lodash/each.js delete mode 100644 build/node_modules/lodash/eachRight.js delete mode 100644 build/node_modules/lodash/endsWith.js delete mode 100644 build/node_modules/lodash/entries.js delete mode 100644 build/node_modules/lodash/entriesIn.js delete mode 100644 build/node_modules/lodash/eq.js delete mode 100644 build/node_modules/lodash/escape.js delete mode 100644 build/node_modules/lodash/escapeRegExp.js delete mode 100644 build/node_modules/lodash/every.js delete mode 100644 build/node_modules/lodash/extend.js delete mode 100644 build/node_modules/lodash/extendWith.js delete mode 100644 build/node_modules/lodash/fill.js delete mode 100644 build/node_modules/lodash/filter.js delete mode 100644 build/node_modules/lodash/find.js delete mode 100644 build/node_modules/lodash/findIndex.js delete mode 100644 build/node_modules/lodash/findKey.js delete mode 100644 build/node_modules/lodash/findLast.js delete mode 100644 build/node_modules/lodash/findLastIndex.js delete mode 100644 build/node_modules/lodash/findLastKey.js delete mode 100644 build/node_modules/lodash/first.js delete mode 100644 build/node_modules/lodash/flake.lock delete mode 100644 build/node_modules/lodash/flake.nix delete mode 100644 build/node_modules/lodash/flatMap.js delete mode 100644 build/node_modules/lodash/flatMapDeep.js delete mode 100644 build/node_modules/lodash/flatMapDepth.js delete mode 100644 build/node_modules/lodash/flatten.js delete mode 100644 build/node_modules/lodash/flattenDeep.js delete mode 100644 build/node_modules/lodash/flattenDepth.js delete mode 100644 build/node_modules/lodash/flip.js delete mode 100644 build/node_modules/lodash/floor.js delete mode 100644 build/node_modules/lodash/flow.js delete mode 100644 build/node_modules/lodash/flowRight.js delete mode 100644 build/node_modules/lodash/forEach.js delete mode 100644 build/node_modules/lodash/forEachRight.js delete mode 100644 build/node_modules/lodash/forIn.js delete mode 100644 build/node_modules/lodash/forInRight.js delete mode 100644 build/node_modules/lodash/forOwn.js delete mode 100644 build/node_modules/lodash/forOwnRight.js delete mode 100644 build/node_modules/lodash/fp.js delete mode 100644 build/node_modules/lodash/fromPairs.js delete mode 100644 build/node_modules/lodash/function.js delete mode 100644 build/node_modules/lodash/functions.js delete mode 100644 build/node_modules/lodash/functionsIn.js delete mode 100644 build/node_modules/lodash/get.js delete mode 100644 build/node_modules/lodash/groupBy.js delete mode 100644 build/node_modules/lodash/gt.js delete mode 100644 build/node_modules/lodash/gte.js delete mode 100644 build/node_modules/lodash/has.js delete mode 100644 build/node_modules/lodash/hasIn.js delete mode 100644 build/node_modules/lodash/head.js delete mode 100644 build/node_modules/lodash/identity.js delete mode 100644 build/node_modules/lodash/inRange.js delete mode 100644 build/node_modules/lodash/includes.js delete mode 100644 build/node_modules/lodash/index.js delete mode 100644 build/node_modules/lodash/indexOf.js delete mode 100644 build/node_modules/lodash/initial.js delete mode 100644 build/node_modules/lodash/intersection.js delete mode 100644 build/node_modules/lodash/intersectionBy.js delete mode 100644 build/node_modules/lodash/intersectionWith.js delete mode 100644 build/node_modules/lodash/invert.js delete mode 100644 build/node_modules/lodash/invertBy.js delete mode 100644 build/node_modules/lodash/invoke.js delete mode 100644 build/node_modules/lodash/invokeMap.js delete mode 100644 build/node_modules/lodash/isArguments.js delete mode 100644 build/node_modules/lodash/isArray.js delete mode 100644 build/node_modules/lodash/isArrayBuffer.js delete mode 100644 build/node_modules/lodash/isArrayLike.js delete mode 100644 build/node_modules/lodash/isArrayLikeObject.js delete mode 100644 build/node_modules/lodash/isBoolean.js delete mode 100644 build/node_modules/lodash/isBuffer.js delete mode 100644 build/node_modules/lodash/isDate.js delete mode 100644 build/node_modules/lodash/isElement.js delete mode 100644 build/node_modules/lodash/isEmpty.js delete mode 100644 build/node_modules/lodash/isEqual.js delete mode 100644 build/node_modules/lodash/isEqualWith.js delete mode 100644 build/node_modules/lodash/isError.js delete mode 100644 build/node_modules/lodash/isFinite.js delete mode 100644 build/node_modules/lodash/isFunction.js delete mode 100644 build/node_modules/lodash/isInteger.js delete mode 100644 build/node_modules/lodash/isLength.js delete mode 100644 build/node_modules/lodash/isMap.js delete mode 100644 build/node_modules/lodash/isMatch.js delete mode 100644 build/node_modules/lodash/isMatchWith.js delete mode 100644 build/node_modules/lodash/isNaN.js delete mode 100644 build/node_modules/lodash/isNative.js delete mode 100644 build/node_modules/lodash/isNil.js delete mode 100644 build/node_modules/lodash/isNull.js delete mode 100644 build/node_modules/lodash/isNumber.js delete mode 100644 build/node_modules/lodash/isObject.js delete mode 100644 build/node_modules/lodash/isObjectLike.js delete mode 100644 build/node_modules/lodash/isPlainObject.js delete mode 100644 build/node_modules/lodash/isRegExp.js delete mode 100644 build/node_modules/lodash/isSafeInteger.js delete mode 100644 build/node_modules/lodash/isSet.js delete mode 100644 build/node_modules/lodash/isString.js delete mode 100644 build/node_modules/lodash/isSymbol.js delete mode 100644 build/node_modules/lodash/isTypedArray.js delete mode 100644 build/node_modules/lodash/isUndefined.js delete mode 100644 build/node_modules/lodash/isWeakMap.js delete mode 100644 build/node_modules/lodash/isWeakSet.js delete mode 100644 build/node_modules/lodash/iteratee.js delete mode 100644 build/node_modules/lodash/join.js delete mode 100644 build/node_modules/lodash/kebabCase.js delete mode 100644 build/node_modules/lodash/keyBy.js delete mode 100644 build/node_modules/lodash/keys.js delete mode 100644 build/node_modules/lodash/keysIn.js delete mode 100644 build/node_modules/lodash/lang.js delete mode 100644 build/node_modules/lodash/last.js delete mode 100644 build/node_modules/lodash/lastIndexOf.js delete mode 100644 build/node_modules/lodash/lodash.js delete mode 100644 build/node_modules/lodash/lodash.min.js delete mode 100644 build/node_modules/lodash/lowerCase.js delete mode 100644 build/node_modules/lodash/lowerFirst.js delete mode 100644 build/node_modules/lodash/lt.js delete mode 100644 build/node_modules/lodash/lte.js delete mode 100644 build/node_modules/lodash/map.js delete mode 100644 build/node_modules/lodash/mapKeys.js delete mode 100644 build/node_modules/lodash/mapValues.js delete mode 100644 build/node_modules/lodash/matches.js delete mode 100644 build/node_modules/lodash/matchesProperty.js delete mode 100644 build/node_modules/lodash/math.js delete mode 100644 build/node_modules/lodash/max.js delete mode 100644 build/node_modules/lodash/maxBy.js delete mode 100644 build/node_modules/lodash/mean.js delete mode 100644 build/node_modules/lodash/meanBy.js delete mode 100644 build/node_modules/lodash/memoize.js delete mode 100644 build/node_modules/lodash/merge.js delete mode 100644 build/node_modules/lodash/mergeWith.js delete mode 100644 build/node_modules/lodash/method.js delete mode 100644 build/node_modules/lodash/methodOf.js delete mode 100644 build/node_modules/lodash/min.js delete mode 100644 build/node_modules/lodash/minBy.js delete mode 100644 build/node_modules/lodash/mixin.js delete mode 100644 build/node_modules/lodash/multiply.js delete mode 100644 build/node_modules/lodash/negate.js delete mode 100644 build/node_modules/lodash/next.js delete mode 100644 build/node_modules/lodash/noop.js delete mode 100644 build/node_modules/lodash/now.js delete mode 100644 build/node_modules/lodash/nth.js delete mode 100644 build/node_modules/lodash/nthArg.js delete mode 100644 build/node_modules/lodash/number.js delete mode 100644 build/node_modules/lodash/object.js delete mode 100644 build/node_modules/lodash/omit.js delete mode 100644 build/node_modules/lodash/omitBy.js delete mode 100644 build/node_modules/lodash/once.js delete mode 100644 build/node_modules/lodash/orderBy.js delete mode 100644 build/node_modules/lodash/over.js delete mode 100644 build/node_modules/lodash/overArgs.js delete mode 100644 build/node_modules/lodash/overEvery.js delete mode 100644 build/node_modules/lodash/overSome.js delete mode 100644 build/node_modules/lodash/package.json delete mode 100644 build/node_modules/lodash/pad.js delete mode 100644 build/node_modules/lodash/padEnd.js delete mode 100644 build/node_modules/lodash/padStart.js delete mode 100644 build/node_modules/lodash/parseInt.js delete mode 100644 build/node_modules/lodash/partial.js delete mode 100644 build/node_modules/lodash/partialRight.js delete mode 100644 build/node_modules/lodash/partition.js delete mode 100644 build/node_modules/lodash/pick.js delete mode 100644 build/node_modules/lodash/pickBy.js delete mode 100644 build/node_modules/lodash/plant.js delete mode 100644 build/node_modules/lodash/property.js delete mode 100644 build/node_modules/lodash/propertyOf.js delete mode 100644 build/node_modules/lodash/pull.js delete mode 100644 build/node_modules/lodash/pullAll.js delete mode 100644 build/node_modules/lodash/pullAllBy.js delete mode 100644 build/node_modules/lodash/pullAllWith.js delete mode 100644 build/node_modules/lodash/pullAt.js delete mode 100644 build/node_modules/lodash/random.js delete mode 100644 build/node_modules/lodash/range.js delete mode 100644 build/node_modules/lodash/rangeRight.js delete mode 100644 build/node_modules/lodash/rearg.js delete mode 100644 build/node_modules/lodash/reduce.js delete mode 100644 build/node_modules/lodash/reduceRight.js delete mode 100644 build/node_modules/lodash/reject.js delete mode 100644 build/node_modules/lodash/release.md delete mode 100644 build/node_modules/lodash/remove.js delete mode 100644 build/node_modules/lodash/repeat.js delete mode 100644 build/node_modules/lodash/replace.js delete mode 100644 build/node_modules/lodash/rest.js delete mode 100644 build/node_modules/lodash/result.js delete mode 100644 build/node_modules/lodash/reverse.js delete mode 100644 build/node_modules/lodash/round.js delete mode 100644 build/node_modules/lodash/sample.js delete mode 100644 build/node_modules/lodash/sampleSize.js delete mode 100644 build/node_modules/lodash/seq.js delete mode 100644 build/node_modules/lodash/set.js delete mode 100644 build/node_modules/lodash/setWith.js delete mode 100644 build/node_modules/lodash/shuffle.js delete mode 100644 build/node_modules/lodash/size.js delete mode 100644 build/node_modules/lodash/slice.js delete mode 100644 build/node_modules/lodash/snakeCase.js delete mode 100644 build/node_modules/lodash/some.js delete mode 100644 build/node_modules/lodash/sortBy.js delete mode 100644 build/node_modules/lodash/sortedIndex.js delete mode 100644 build/node_modules/lodash/sortedIndexBy.js delete mode 100644 build/node_modules/lodash/sortedIndexOf.js delete mode 100644 build/node_modules/lodash/sortedLastIndex.js delete mode 100644 build/node_modules/lodash/sortedLastIndexBy.js delete mode 100644 build/node_modules/lodash/sortedLastIndexOf.js delete mode 100644 build/node_modules/lodash/sortedUniq.js delete mode 100644 build/node_modules/lodash/sortedUniqBy.js delete mode 100644 build/node_modules/lodash/split.js delete mode 100644 build/node_modules/lodash/spread.js delete mode 100644 build/node_modules/lodash/startCase.js delete mode 100644 build/node_modules/lodash/startsWith.js delete mode 100644 build/node_modules/lodash/string.js delete mode 100644 build/node_modules/lodash/stubArray.js delete mode 100644 build/node_modules/lodash/stubFalse.js delete mode 100644 build/node_modules/lodash/stubObject.js delete mode 100644 build/node_modules/lodash/stubString.js delete mode 100644 build/node_modules/lodash/stubTrue.js delete mode 100644 build/node_modules/lodash/subtract.js delete mode 100644 build/node_modules/lodash/sum.js delete mode 100644 build/node_modules/lodash/sumBy.js delete mode 100644 build/node_modules/lodash/tail.js delete mode 100644 build/node_modules/lodash/take.js delete mode 100644 build/node_modules/lodash/takeRight.js delete mode 100644 build/node_modules/lodash/takeRightWhile.js delete mode 100644 build/node_modules/lodash/takeWhile.js delete mode 100644 build/node_modules/lodash/tap.js delete mode 100644 build/node_modules/lodash/template.js delete mode 100644 build/node_modules/lodash/templateSettings.js delete mode 100644 build/node_modules/lodash/throttle.js delete mode 100644 build/node_modules/lodash/thru.js delete mode 100644 build/node_modules/lodash/times.js delete mode 100644 build/node_modules/lodash/toArray.js delete mode 100644 build/node_modules/lodash/toFinite.js delete mode 100644 build/node_modules/lodash/toInteger.js delete mode 100644 build/node_modules/lodash/toIterator.js delete mode 100644 build/node_modules/lodash/toJSON.js delete mode 100644 build/node_modules/lodash/toLength.js delete mode 100644 build/node_modules/lodash/toLower.js delete mode 100644 build/node_modules/lodash/toNumber.js delete mode 100644 build/node_modules/lodash/toPairs.js delete mode 100644 build/node_modules/lodash/toPairsIn.js delete mode 100644 build/node_modules/lodash/toPath.js delete mode 100644 build/node_modules/lodash/toPlainObject.js delete mode 100644 build/node_modules/lodash/toSafeInteger.js delete mode 100644 build/node_modules/lodash/toString.js delete mode 100644 build/node_modules/lodash/toUpper.js delete mode 100644 build/node_modules/lodash/transform.js delete mode 100644 build/node_modules/lodash/trim.js delete mode 100644 build/node_modules/lodash/trimEnd.js delete mode 100644 build/node_modules/lodash/trimStart.js delete mode 100644 build/node_modules/lodash/truncate.js delete mode 100644 build/node_modules/lodash/unary.js delete mode 100644 build/node_modules/lodash/unescape.js delete mode 100644 build/node_modules/lodash/union.js delete mode 100644 build/node_modules/lodash/unionBy.js delete mode 100644 build/node_modules/lodash/unionWith.js delete mode 100644 build/node_modules/lodash/uniq.js delete mode 100644 build/node_modules/lodash/uniqBy.js delete mode 100644 build/node_modules/lodash/uniqWith.js delete mode 100644 build/node_modules/lodash/uniqueId.js delete mode 100644 build/node_modules/lodash/unset.js delete mode 100644 build/node_modules/lodash/unzip.js delete mode 100644 build/node_modules/lodash/unzipWith.js delete mode 100644 build/node_modules/lodash/update.js delete mode 100644 build/node_modules/lodash/updateWith.js delete mode 100644 build/node_modules/lodash/upperCase.js delete mode 100644 build/node_modules/lodash/upperFirst.js delete mode 100644 build/node_modules/lodash/util.js delete mode 100644 build/node_modules/lodash/value.js delete mode 100644 build/node_modules/lodash/valueOf.js delete mode 100644 build/node_modules/lodash/values.js delete mode 100644 build/node_modules/lodash/valuesIn.js delete mode 100644 build/node_modules/lodash/without.js delete mode 100644 build/node_modules/lodash/words.js delete mode 100644 build/node_modules/lodash/wrap.js delete mode 100644 build/node_modules/lodash/wrapperAt.js delete mode 100644 build/node_modules/lodash/wrapperChain.js delete mode 100644 build/node_modules/lodash/wrapperLodash.js delete mode 100644 build/node_modules/lodash/wrapperReverse.js delete mode 100644 build/node_modules/lodash/wrapperValue.js delete mode 100644 build/node_modules/lodash/xor.js delete mode 100644 build/node_modules/lodash/xorBy.js delete mode 100644 build/node_modules/lodash/xorWith.js delete mode 100644 build/node_modules/lodash/zip.js delete mode 100644 build/node_modules/lodash/zipObject.js delete mode 100644 build/node_modules/lodash/zipObjectDeep.js delete mode 100644 build/node_modules/lodash/zipWith.js delete mode 100644 build/node_modules/log-update/index.d.ts delete mode 100644 build/node_modules/log-update/index.js delete mode 100644 build/node_modules/log-update/license delete mode 100644 build/node_modules/log-update/package.json delete mode 100644 build/node_modules/log-update/readme.md delete mode 100644 build/node_modules/loupe/CHANGELOG.md delete mode 100644 build/node_modules/loupe/LICENSE delete mode 100644 build/node_modules/loupe/README.md delete mode 100644 build/node_modules/loupe/index.js delete mode 100644 build/node_modules/loupe/loupe.js delete mode 100644 build/node_modules/loupe/package.json delete mode 100644 build/node_modules/lower-case/LICENSE delete mode 100644 build/node_modules/lower-case/README.md delete mode 100644 build/node_modules/lower-case/package.json delete mode 100644 build/node_modules/lru-cache/LICENSE delete mode 100644 build/node_modules/lru-cache/README.md delete mode 100644 build/node_modules/lru-cache/index.js delete mode 100644 build/node_modules/lru-cache/package.json delete mode 100644 build/node_modules/luxon/LICENSE.md delete mode 100644 build/node_modules/luxon/README.md delete mode 100644 build/node_modules/luxon/package.json delete mode 100644 build/node_modules/macroable/LICENSE.md delete mode 100644 build/node_modules/macroable/README.md delete mode 100644 build/node_modules/macroable/package.json delete mode 100644 build/node_modules/make-dir/index.d.ts delete mode 100644 build/node_modules/make-dir/index.js delete mode 100644 build/node_modules/make-dir/license delete mode 100644 build/node_modules/make-dir/package.json delete mode 100644 build/node_modules/make-dir/readme.md delete mode 100644 build/node_modules/make-fetch-happen/LICENSE delete mode 100644 build/node_modules/make-fetch-happen/README.md delete mode 100644 build/node_modules/make-fetch-happen/package.json delete mode 100644 build/node_modules/map-age-cleaner/license delete mode 100644 build/node_modules/map-age-cleaner/package.json delete mode 100644 build/node_modules/map-age-cleaner/readme.md delete mode 100644 build/node_modules/map-cache/LICENSE delete mode 100644 build/node_modules/map-cache/README.md delete mode 100644 build/node_modules/map-cache/index.js delete mode 100644 build/node_modules/map-cache/package.json delete mode 100644 build/node_modules/map-visit/LICENSE delete mode 100644 build/node_modules/map-visit/README.md delete mode 100644 build/node_modules/map-visit/index.js delete mode 100644 build/node_modules/map-visit/package.json delete mode 100644 build/node_modules/marked-terminal/LICENSE delete mode 100644 build/node_modules/marked-terminal/README.md delete mode 100644 build/node_modules/marked-terminal/index.cjs delete mode 100644 build/node_modules/marked-terminal/index.js delete mode 100644 build/node_modules/marked-terminal/package.json delete mode 100644 build/node_modules/marked/LICENSE.md delete mode 100644 build/node_modules/marked/README.md delete mode 100644 build/node_modules/marked/marked.min.js delete mode 100644 build/node_modules/marked/package.json delete mode 100644 build/node_modules/md5/.npmignore delete mode 100644 build/node_modules/md5/.travis.yml delete mode 100644 build/node_modules/md5/LICENSE delete mode 100644 build/node_modules/md5/README.md delete mode 100644 build/node_modules/md5/md5.js delete mode 100644 build/node_modules/md5/package.json delete mode 100644 build/node_modules/md5/test.js delete mode 100644 build/node_modules/mdn-data/LICENSE delete mode 100644 build/node_modules/mdn-data/README.md delete mode 100644 build/node_modules/mdn-data/index.js delete mode 100644 build/node_modules/mdn-data/package.json delete mode 100644 build/node_modules/media-typer/HISTORY.md delete mode 100644 build/node_modules/media-typer/LICENSE delete mode 100644 build/node_modules/media-typer/README.md delete mode 100644 build/node_modules/media-typer/index.js delete mode 100644 build/node_modules/media-typer/package.json delete mode 100644 build/node_modules/mem/license delete mode 100644 build/node_modules/mem/package.json delete mode 100644 build/node_modules/mem/readme.md delete mode 100644 build/node_modules/memfs/LICENSE delete mode 100644 build/node_modules/memfs/README.md delete mode 100644 build/node_modules/memfs/package.json delete mode 100644 build/node_modules/memory-cache/.jsbeautifyrc delete mode 100644 build/node_modules/memory-cache/.jshintrc delete mode 100644 build/node_modules/memory-cache/.npmignore delete mode 100644 build/node_modules/memory-cache/.travis.yml delete mode 100644 build/node_modules/memory-cache/LICENSE.md delete mode 100644 build/node_modules/memory-cache/README.md delete mode 100644 build/node_modules/memory-cache/gulpfile.js delete mode 100644 build/node_modules/memory-cache/index.js delete mode 100644 build/node_modules/memory-cache/package.json delete mode 100644 build/node_modules/memory-cache/test.js delete mode 100644 build/node_modules/merge-descriptors/HISTORY.md delete mode 100644 build/node_modules/merge-descriptors/LICENSE delete mode 100644 build/node_modules/merge-descriptors/README.md delete mode 100644 build/node_modules/merge-descriptors/index.js delete mode 100644 build/node_modules/merge-descriptors/package.json delete mode 100644 build/node_modules/merge-stream/LICENSE delete mode 100644 build/node_modules/merge-stream/README.md delete mode 100644 build/node_modules/merge-stream/index.js delete mode 100644 build/node_modules/merge-stream/package.json delete mode 100644 build/node_modules/merge2/LICENSE delete mode 100644 build/node_modules/merge2/README.md delete mode 100644 build/node_modules/merge2/index.js delete mode 100644 build/node_modules/merge2/package.json delete mode 100644 build/node_modules/methods/HISTORY.md delete mode 100644 build/node_modules/methods/LICENSE delete mode 100644 build/node_modules/methods/README.md delete mode 100644 build/node_modules/methods/index.js delete mode 100644 build/node_modules/methods/package.json delete mode 100644 build/node_modules/micromatch/CHANGELOG.md delete mode 100644 build/node_modules/micromatch/LICENSE delete mode 100644 build/node_modules/micromatch/README.md delete mode 100644 build/node_modules/micromatch/index.js delete mode 100644 build/node_modules/micromatch/package.json delete mode 100644 build/node_modules/mime-db/HISTORY.md delete mode 100644 build/node_modules/mime-db/LICENSE delete mode 100644 build/node_modules/mime-db/README.md delete mode 100644 build/node_modules/mime-db/db.json delete mode 100644 build/node_modules/mime-db/index.js delete mode 100644 build/node_modules/mime-db/package.json delete mode 100644 build/node_modules/mime-types/HISTORY.md delete mode 100644 build/node_modules/mime-types/LICENSE delete mode 100644 build/node_modules/mime-types/README.md delete mode 100644 build/node_modules/mime-types/index.js delete mode 100644 build/node_modules/mime-types/package.json delete mode 100644 build/node_modules/mime/CHANGELOG.md delete mode 100644 build/node_modules/mime/LICENSE delete mode 100644 build/node_modules/mime/README.md delete mode 100644 build/node_modules/mime/cli.js delete mode 100644 build/node_modules/mime/mime.js delete mode 100644 build/node_modules/mime/package.json delete mode 100644 build/node_modules/mime/types.json delete mode 100644 build/node_modules/mimic-fn/index.d.ts delete mode 100644 build/node_modules/mimic-fn/index.js delete mode 100644 build/node_modules/mimic-fn/license delete mode 100644 build/node_modules/mimic-fn/package.json delete mode 100644 build/node_modules/mimic-fn/readme.md delete mode 100644 build/node_modules/mini-css-extract-plugin/LICENSE delete mode 100644 build/node_modules/mini-css-extract-plugin/README.md delete mode 100644 build/node_modules/mini-css-extract-plugin/package.json delete mode 100644 build/node_modules/minimalistic-assert/LICENSE delete mode 100644 build/node_modules/minimalistic-assert/index.js delete mode 100644 build/node_modules/minimalistic-assert/package.json delete mode 100644 build/node_modules/minimalistic-assert/readme.md delete mode 100644 build/node_modules/minimatch/LICENSE delete mode 100644 build/node_modules/minimatch/README.md delete mode 100644 build/node_modules/minimatch/minimatch.js delete mode 100644 build/node_modules/minimatch/package.json delete mode 100644 build/node_modules/minimist/.eslintrc delete mode 100644 build/node_modules/minimist/.nycrc delete mode 100644 build/node_modules/minimist/CHANGELOG.md delete mode 100644 build/node_modules/minimist/LICENSE delete mode 100644 build/node_modules/minimist/README.md delete mode 100644 build/node_modules/minimist/index.js delete mode 100644 build/node_modules/minimist/package.json delete mode 100644 build/node_modules/minipass-collect/LICENSE delete mode 100644 build/node_modules/minipass-collect/README.md delete mode 100644 build/node_modules/minipass-collect/index.js delete mode 100644 build/node_modules/minipass-collect/package.json delete mode 100644 build/node_modules/minipass-fetch/LICENSE delete mode 100644 build/node_modules/minipass-fetch/README.md delete mode 100644 build/node_modules/minipass-fetch/index.js delete mode 100644 build/node_modules/minipass-fetch/package.json delete mode 100644 build/node_modules/minipass-flush/LICENSE delete mode 100644 build/node_modules/minipass-flush/README.md delete mode 100644 build/node_modules/minipass-flush/index.js delete mode 100644 build/node_modules/minipass-flush/package.json delete mode 100644 build/node_modules/minipass-pipeline/LICENSE delete mode 100644 build/node_modules/minipass-pipeline/README.md delete mode 100644 build/node_modules/minipass-pipeline/index.js delete mode 100644 build/node_modules/minipass-pipeline/package.json delete mode 100644 build/node_modules/minipass-sized/.npmignore delete mode 100644 build/node_modules/minipass-sized/LICENSE delete mode 100644 build/node_modules/minipass-sized/README.md delete mode 100644 build/node_modules/minipass-sized/index.js delete mode 100644 build/node_modules/minipass-sized/package-lock.json delete mode 100644 build/node_modules/minipass-sized/package.json delete mode 100644 build/node_modules/minipass/LICENSE delete mode 100644 build/node_modules/minipass/README.md delete mode 100644 build/node_modules/minipass/index.d.ts delete mode 100644 build/node_modules/minipass/index.js delete mode 100644 build/node_modules/minipass/package.json delete mode 100644 build/node_modules/minizlib/LICENSE delete mode 100644 build/node_modules/minizlib/README.md delete mode 100644 build/node_modules/minizlib/constants.js delete mode 100644 build/node_modules/minizlib/index.js delete mode 100644 build/node_modules/minizlib/package.json delete mode 100644 build/node_modules/mixin-deep/LICENSE delete mode 100644 build/node_modules/mixin-deep/README.md delete mode 100644 build/node_modules/mixin-deep/index.js delete mode 100644 build/node_modules/mixin-deep/package.json delete mode 100644 build/node_modules/mkdirp/CHANGELOG.md delete mode 100644 build/node_modules/mkdirp/LICENSE delete mode 100644 build/node_modules/mkdirp/index.js delete mode 100644 build/node_modules/mkdirp/package.json delete mode 100644 build/node_modules/mkdirp/readme.markdown delete mode 100644 build/node_modules/mrm-core/License.md delete mode 100644 build/node_modules/mrm-core/Readme.md delete mode 100644 build/node_modules/mrm-core/package.json delete mode 100644 build/node_modules/ms/index.js delete mode 100644 build/node_modules/ms/license.md delete mode 100644 build/node_modules/ms/package.json delete mode 100644 build/node_modules/ms/readme.md delete mode 100644 build/node_modules/multicast-dns/.travis.yml delete mode 100644 build/node_modules/multicast-dns/LICENSE delete mode 100644 build/node_modules/multicast-dns/README.md delete mode 100644 build/node_modules/multicast-dns/appveyor.yml delete mode 100644 build/node_modules/multicast-dns/cli.js delete mode 100644 build/node_modules/multicast-dns/example.js delete mode 100644 build/node_modules/multicast-dns/index.js delete mode 100644 build/node_modules/multicast-dns/package.json delete mode 100644 build/node_modules/multicast-dns/test.js delete mode 100644 build/node_modules/mustache/CHANGELOG.md delete mode 100644 build/node_modules/mustache/LICENSE delete mode 100644 build/node_modules/mustache/README.md delete mode 100644 build/node_modules/mustache/mustache.js delete mode 100644 build/node_modules/mustache/mustache.min.js delete mode 100644 build/node_modules/mustache/mustache.mjs delete mode 100644 build/node_modules/mustache/package.json delete mode 100644 build/node_modules/nanoid/LICENSE delete mode 100644 build/node_modules/nanoid/README.md delete mode 100644 build/node_modules/nanoid/index.browser.cjs delete mode 100644 build/node_modules/nanoid/index.browser.js delete mode 100644 build/node_modules/nanoid/index.cjs delete mode 100644 build/node_modules/nanoid/index.d.ts delete mode 100644 build/node_modules/nanoid/index.js delete mode 100644 build/node_modules/nanoid/nanoid.js delete mode 100644 build/node_modules/nanoid/package.json delete mode 100644 build/node_modules/nanomatch/CHANGELOG.md delete mode 100644 build/node_modules/nanomatch/LICENSE delete mode 100644 build/node_modules/nanomatch/README.md delete mode 100644 build/node_modules/nanomatch/index.js delete mode 100644 build/node_modules/nanomatch/package.json delete mode 100644 build/node_modules/natural-compare-lite/README.md delete mode 100644 build/node_modules/natural-compare-lite/index.js delete mode 100644 build/node_modules/natural-compare-lite/package.json delete mode 100644 build/node_modules/natural-compare/README.md delete mode 100644 build/node_modules/natural-compare/index.js delete mode 100644 build/node_modules/natural-compare/package.json delete mode 100644 build/node_modules/negotiator/HISTORY.md delete mode 100644 build/node_modules/negotiator/LICENSE delete mode 100644 build/node_modules/negotiator/README.md delete mode 100644 build/node_modules/negotiator/index.js delete mode 100644 build/node_modules/negotiator/package.json delete mode 100644 build/node_modules/neo-async/LICENSE delete mode 100644 build/node_modules/neo-async/README.md delete mode 100644 build/node_modules/neo-async/all.js delete mode 100644 build/node_modules/neo-async/allLimit.js delete mode 100644 build/node_modules/neo-async/allSeries.js delete mode 100644 build/node_modules/neo-async/angelFall.js delete mode 100644 build/node_modules/neo-async/any.js delete mode 100644 build/node_modules/neo-async/anyLimit.js delete mode 100644 build/node_modules/neo-async/anySeries.js delete mode 100644 build/node_modules/neo-async/apply.js delete mode 100644 build/node_modules/neo-async/applyEach.js delete mode 100644 build/node_modules/neo-async/applyEachSeries.js delete mode 100644 build/node_modules/neo-async/async.js delete mode 100644 build/node_modules/neo-async/async.min.js delete mode 100644 build/node_modules/neo-async/asyncify.js delete mode 100644 build/node_modules/neo-async/auto.js delete mode 100644 build/node_modules/neo-async/autoInject.js delete mode 100644 build/node_modules/neo-async/cargo.js delete mode 100644 build/node_modules/neo-async/compose.js delete mode 100644 build/node_modules/neo-async/concat.js delete mode 100644 build/node_modules/neo-async/concatLimit.js delete mode 100644 build/node_modules/neo-async/concatSeries.js delete mode 100644 build/node_modules/neo-async/constant.js delete mode 100644 build/node_modules/neo-async/createLogger.js delete mode 100644 build/node_modules/neo-async/detect.js delete mode 100644 build/node_modules/neo-async/detectLimit.js delete mode 100644 build/node_modules/neo-async/detectSeries.js delete mode 100644 build/node_modules/neo-async/dir.js delete mode 100644 build/node_modules/neo-async/doDuring.js delete mode 100644 build/node_modules/neo-async/doUntil.js delete mode 100644 build/node_modules/neo-async/doWhilst.js delete mode 100644 build/node_modules/neo-async/during.js delete mode 100644 build/node_modules/neo-async/each.js delete mode 100644 build/node_modules/neo-async/eachLimit.js delete mode 100644 build/node_modules/neo-async/eachOf.js delete mode 100644 build/node_modules/neo-async/eachOfLimit.js delete mode 100644 build/node_modules/neo-async/eachOfSeries.js delete mode 100644 build/node_modules/neo-async/eachSeries.js delete mode 100644 build/node_modules/neo-async/ensureAsync.js delete mode 100644 build/node_modules/neo-async/every.js delete mode 100644 build/node_modules/neo-async/everyLimit.js delete mode 100644 build/node_modules/neo-async/everySeries.js delete mode 100644 build/node_modules/neo-async/fast.js delete mode 100644 build/node_modules/neo-async/filter.js delete mode 100644 build/node_modules/neo-async/filterLimit.js delete mode 100644 build/node_modules/neo-async/filterSeries.js delete mode 100644 build/node_modules/neo-async/find.js delete mode 100644 build/node_modules/neo-async/findLimit.js delete mode 100644 build/node_modules/neo-async/findSeries.js delete mode 100644 build/node_modules/neo-async/foldl.js delete mode 100644 build/node_modules/neo-async/foldr.js delete mode 100644 build/node_modules/neo-async/forEach.js delete mode 100644 build/node_modules/neo-async/forEachLimit.js delete mode 100644 build/node_modules/neo-async/forEachOf.js delete mode 100644 build/node_modules/neo-async/forEachOfLimit.js delete mode 100644 build/node_modules/neo-async/forEachOfSeries.js delete mode 100644 build/node_modules/neo-async/forEachSeries.js delete mode 100644 build/node_modules/neo-async/forever.js delete mode 100644 build/node_modules/neo-async/groupBy.js delete mode 100644 build/node_modules/neo-async/groupByLimit.js delete mode 100644 build/node_modules/neo-async/groupBySeries.js delete mode 100644 build/node_modules/neo-async/inject.js delete mode 100644 build/node_modules/neo-async/iterator.js delete mode 100644 build/node_modules/neo-async/log.js delete mode 100644 build/node_modules/neo-async/map.js delete mode 100644 build/node_modules/neo-async/mapLimit.js delete mode 100644 build/node_modules/neo-async/mapSeries.js delete mode 100644 build/node_modules/neo-async/mapValues.js delete mode 100644 build/node_modules/neo-async/mapValuesLimit.js delete mode 100644 build/node_modules/neo-async/mapValuesSeries.js delete mode 100644 build/node_modules/neo-async/memoize.js delete mode 100644 build/node_modules/neo-async/nextTick.js delete mode 100644 build/node_modules/neo-async/omit.js delete mode 100644 build/node_modules/neo-async/omitLimit.js delete mode 100644 build/node_modules/neo-async/omitSeries.js delete mode 100644 build/node_modules/neo-async/package.json delete mode 100644 build/node_modules/neo-async/parallel.js delete mode 100644 build/node_modules/neo-async/parallelLimit.js delete mode 100644 build/node_modules/neo-async/pick.js delete mode 100644 build/node_modules/neo-async/pickLimit.js delete mode 100644 build/node_modules/neo-async/pickSeries.js delete mode 100644 build/node_modules/neo-async/priorityQueue.js delete mode 100644 build/node_modules/neo-async/queue.js delete mode 100644 build/node_modules/neo-async/race.js delete mode 100644 build/node_modules/neo-async/reduce.js delete mode 100644 build/node_modules/neo-async/reduceRight.js delete mode 100644 build/node_modules/neo-async/reflect.js delete mode 100644 build/node_modules/neo-async/reflectAll.js delete mode 100644 build/node_modules/neo-async/reject.js delete mode 100644 build/node_modules/neo-async/rejectLimit.js delete mode 100644 build/node_modules/neo-async/rejectSeries.js delete mode 100644 build/node_modules/neo-async/retry.js delete mode 100644 build/node_modules/neo-async/retryable.js delete mode 100644 build/node_modules/neo-async/safe.js delete mode 100644 build/node_modules/neo-async/select.js delete mode 100644 build/node_modules/neo-async/selectLimit.js delete mode 100644 build/node_modules/neo-async/selectSeries.js delete mode 100644 build/node_modules/neo-async/seq.js delete mode 100644 build/node_modules/neo-async/series.js delete mode 100644 build/node_modules/neo-async/setImmediate.js delete mode 100644 build/node_modules/neo-async/some.js delete mode 100644 build/node_modules/neo-async/someLimit.js delete mode 100644 build/node_modules/neo-async/someSeries.js delete mode 100644 build/node_modules/neo-async/sortBy.js delete mode 100644 build/node_modules/neo-async/sortByLimit.js delete mode 100644 build/node_modules/neo-async/sortBySeries.js delete mode 100644 build/node_modules/neo-async/timeout.js delete mode 100644 build/node_modules/neo-async/times.js delete mode 100644 build/node_modules/neo-async/timesLimit.js delete mode 100644 build/node_modules/neo-async/timesSeries.js delete mode 100644 build/node_modules/neo-async/transform.js delete mode 100644 build/node_modules/neo-async/transformLimit.js delete mode 100644 build/node_modules/neo-async/transformSeries.js delete mode 100644 build/node_modules/neo-async/tryEach.js delete mode 100644 build/node_modules/neo-async/unmemoize.js delete mode 100644 build/node_modules/neo-async/until.js delete mode 100644 build/node_modules/neo-async/waterfall.js delete mode 100644 build/node_modules/neo-async/whilst.js delete mode 100644 build/node_modules/neo-async/wrapSync.js delete mode 100644 build/node_modules/nested-error-stacks/CHANGELOG.md delete mode 100644 build/node_modules/nested-error-stacks/LICENSE delete mode 100644 build/node_modules/nested-error-stacks/README.md delete mode 100644 build/node_modules/nested-error-stacks/index.js delete mode 100644 build/node_modules/nested-error-stacks/package.json delete mode 100644 build/node_modules/no-case/LICENSE delete mode 100644 build/node_modules/no-case/README.md delete mode 100644 build/node_modules/no-case/package.json delete mode 100644 build/node_modules/node-addon-api/LICENSE.md delete mode 100644 build/node_modules/node-addon-api/README.md delete mode 100644 build/node_modules/node-addon-api/common.gypi delete mode 100644 build/node_modules/node-addon-api/except.gypi delete mode 100644 build/node_modules/node-addon-api/index.js delete mode 100644 build/node_modules/node-addon-api/napi-inl.deprecated.h delete mode 100644 build/node_modules/node-addon-api/napi-inl.h delete mode 100644 build/node_modules/node-addon-api/napi.h delete mode 100644 build/node_modules/node-addon-api/node_api.gyp delete mode 100644 build/node_modules/node-addon-api/noexcept.gypi delete mode 100644 build/node_modules/node-addon-api/package-support.json delete mode 100644 build/node_modules/node-addon-api/package.json delete mode 100644 build/node_modules/node-emoji/.travis.yml delete mode 100644 build/node_modules/node-emoji/LICENSE delete mode 100644 build/node_modules/node-emoji/README.md delete mode 100644 build/node_modules/node-emoji/index.js delete mode 100644 build/node_modules/node-emoji/package.json delete mode 100644 build/node_modules/node-fetch/LICENSE.md delete mode 100644 build/node_modules/node-fetch/README.md delete mode 100644 build/node_modules/node-fetch/browser.js delete mode 100644 build/node_modules/node-fetch/package.json delete mode 100644 build/node_modules/node-forge/CHANGELOG.md delete mode 100644 build/node_modules/node-forge/LICENSE delete mode 100644 build/node_modules/node-forge/README.md delete mode 100644 build/node_modules/node-forge/package.json delete mode 100644 build/node_modules/node-gyp/CHANGELOG.md delete mode 100644 build/node_modules/node-gyp/CONTRIBUTING.md delete mode 100644 build/node_modules/node-gyp/LICENSE delete mode 100644 build/node_modules/node-gyp/README.md delete mode 100644 build/node_modules/node-gyp/addon.gypi delete mode 100644 build/node_modules/node-gyp/macOS_Catalina.md delete mode 100644 build/node_modules/node-gyp/macOS_Catalina_acid_test.sh delete mode 100644 build/node_modules/node-gyp/package.json delete mode 100644 build/node_modules/node-gyp/update-gyp.py delete mode 100644 build/node_modules/node-releases/LICENSE delete mode 100644 build/node_modules/node-releases/README.md delete mode 100644 build/node_modules/node-releases/package.json delete mode 100644 build/node_modules/node-repl-await/LICENSE delete mode 100644 build/node_modules/node-repl-await/README.md delete mode 100644 build/node_modules/node-repl-await/index.d.ts delete mode 100644 build/node_modules/node-repl-await/index.js delete mode 100644 build/node_modules/node-repl-await/package.json delete mode 100644 build/node_modules/node-repl-await/test.js delete mode 100644 build/node_modules/nopt/CHANGELOG.md delete mode 100644 build/node_modules/nopt/LICENSE delete mode 100644 build/node_modules/nopt/README.md delete mode 100644 build/node_modules/nopt/package.json delete mode 100644 build/node_modules/normalize-path/LICENSE delete mode 100644 build/node_modules/normalize-path/README.md delete mode 100644 build/node_modules/normalize-path/index.js delete mode 100644 build/node_modules/normalize-path/package.json delete mode 100644 build/node_modules/normalize-url/index.d.ts delete mode 100644 build/node_modules/normalize-url/index.js delete mode 100644 build/node_modules/normalize-url/license delete mode 100644 build/node_modules/normalize-url/package.json delete mode 100644 build/node_modules/normalize-url/readme.md delete mode 100644 build/node_modules/npm-run-path/index.d.ts delete mode 100644 build/node_modules/npm-run-path/index.js delete mode 100644 build/node_modules/npm-run-path/license delete mode 100644 build/node_modules/npm-run-path/package.json delete mode 100644 build/node_modules/npm-run-path/readme.md delete mode 100644 build/node_modules/npmlog/LICENSE delete mode 100644 build/node_modules/npmlog/README.md delete mode 100644 build/node_modules/npmlog/log.js delete mode 100644 build/node_modules/npmlog/package.json delete mode 100644 build/node_modules/nth-check/LICENSE delete mode 100644 build/node_modules/nth-check/README.md delete mode 100644 build/node_modules/nth-check/package.json delete mode 100644 build/node_modules/object-assign/index.js delete mode 100644 build/node_modules/object-assign/license delete mode 100644 build/node_modules/object-assign/package.json delete mode 100644 build/node_modules/object-assign/readme.md delete mode 100644 build/node_modules/object-copy/LICENSE delete mode 100644 build/node_modules/object-copy/index.js delete mode 100644 build/node_modules/object-copy/package.json delete mode 100644 build/node_modules/object-inspect/.eslintrc delete mode 100644 build/node_modules/object-inspect/.nycrc delete mode 100644 build/node_modules/object-inspect/CHANGELOG.md delete mode 100644 build/node_modules/object-inspect/LICENSE delete mode 100644 build/node_modules/object-inspect/index.js delete mode 100644 build/node_modules/object-inspect/package-support.json delete mode 100644 build/node_modules/object-inspect/package.json delete mode 100644 build/node_modules/object-inspect/readme.markdown delete mode 100644 build/node_modules/object-inspect/test-core-js.js delete mode 100644 build/node_modules/object-inspect/util.inspect.js delete mode 100644 build/node_modules/object-visit/LICENSE delete mode 100644 build/node_modules/object-visit/README.md delete mode 100644 build/node_modules/object-visit/index.js delete mode 100644 build/node_modules/object-visit/package.json delete mode 100644 build/node_modules/object.pick/LICENSE delete mode 100644 build/node_modules/object.pick/README.md delete mode 100644 build/node_modules/object.pick/index.js delete mode 100644 build/node_modules/object.pick/package.json delete mode 100644 build/node_modules/obuf/LICENSE delete mode 100644 build/node_modules/obuf/README.md delete mode 100644 build/node_modules/obuf/index.js delete mode 100644 build/node_modules/obuf/package.json delete mode 100644 build/node_modules/on-exit-leak-free/LICENSE delete mode 100644 build/node_modules/on-exit-leak-free/README.md delete mode 100644 build/node_modules/on-exit-leak-free/index.js delete mode 100644 build/node_modules/on-exit-leak-free/package.json delete mode 100644 build/node_modules/on-finished/HISTORY.md delete mode 100644 build/node_modules/on-finished/LICENSE delete mode 100644 build/node_modules/on-finished/README.md delete mode 100644 build/node_modules/on-finished/index.js delete mode 100644 build/node_modules/on-finished/package.json delete mode 100644 build/node_modules/on-headers/HISTORY.md delete mode 100644 build/node_modules/on-headers/LICENSE delete mode 100644 build/node_modules/on-headers/README.md delete mode 100644 build/node_modules/on-headers/index.js delete mode 100644 build/node_modules/on-headers/package.json delete mode 100644 build/node_modules/once/LICENSE delete mode 100644 build/node_modules/once/README.md delete mode 100644 build/node_modules/once/once.js delete mode 100644 build/node_modules/once/package.json delete mode 100644 build/node_modules/onetime/index.d.ts delete mode 100644 build/node_modules/onetime/index.js delete mode 100644 build/node_modules/onetime/license delete mode 100644 build/node_modules/onetime/package.json delete mode 100644 build/node_modules/onetime/readme.md delete mode 100644 build/node_modules/open/index.d.ts delete mode 100644 build/node_modules/open/index.js delete mode 100644 build/node_modules/open/license delete mode 100644 build/node_modules/open/package.json delete mode 100644 build/node_modules/open/readme.md delete mode 100644 build/node_modules/open/xdg-open delete mode 100644 build/node_modules/openapi-schema-validator/CHANGELOG.md delete mode 100644 build/node_modules/openapi-schema-validator/LICENSE delete mode 100644 build/node_modules/openapi-schema-validator/README.md delete mode 100644 build/node_modules/openapi-schema-validator/package.json delete mode 100644 build/node_modules/openapi-types/CHANGELOG.md delete mode 100644 build/node_modules/openapi-types/README.md delete mode 100644 build/node_modules/openapi-types/package.json delete mode 100644 build/node_modules/optionator/CHANGELOG.md delete mode 100644 build/node_modules/optionator/LICENSE delete mode 100644 build/node_modules/optionator/README.md delete mode 100644 build/node_modules/optionator/package.json delete mode 100644 build/node_modules/p-all/index.d.ts delete mode 100644 build/node_modules/p-all/index.js delete mode 100644 build/node_modules/p-all/license delete mode 100644 build/node_modules/p-all/package.json delete mode 100644 build/node_modules/p-all/readme.md delete mode 100644 build/node_modules/p-defer/index.js delete mode 100644 build/node_modules/p-defer/license delete mode 100644 build/node_modules/p-defer/package.json delete mode 100644 build/node_modules/p-defer/readme.md delete mode 100644 build/node_modules/p-event/index.d.ts delete mode 100644 build/node_modules/p-event/index.js delete mode 100644 build/node_modules/p-event/license delete mode 100644 build/node_modules/p-event/package.json delete mode 100644 build/node_modules/p-event/readme.md delete mode 100644 build/node_modules/p-filter/index.d.ts delete mode 100644 build/node_modules/p-filter/index.js delete mode 100644 build/node_modules/p-filter/license delete mode 100644 build/node_modules/p-filter/package.json delete mode 100644 build/node_modules/p-filter/readme.md delete mode 100644 build/node_modules/p-finally/index.js delete mode 100644 build/node_modules/p-finally/license delete mode 100644 build/node_modules/p-finally/package.json delete mode 100644 build/node_modules/p-finally/readme.md delete mode 100644 build/node_modules/p-limit/index.d.ts delete mode 100644 build/node_modules/p-limit/index.js delete mode 100644 build/node_modules/p-limit/license delete mode 100644 build/node_modules/p-limit/package.json delete mode 100644 build/node_modules/p-limit/readme.md delete mode 100644 build/node_modules/p-locate/index.d.ts delete mode 100644 build/node_modules/p-locate/index.js delete mode 100644 build/node_modules/p-locate/license delete mode 100644 build/node_modules/p-locate/package.json delete mode 100644 build/node_modules/p-locate/readme.md delete mode 100644 build/node_modules/p-map/index.d.ts delete mode 100644 build/node_modules/p-map/index.js delete mode 100644 build/node_modules/p-map/license delete mode 100644 build/node_modules/p-map/package.json delete mode 100644 build/node_modules/p-map/readme.md delete mode 100644 build/node_modules/p-retry/index.d.ts delete mode 100644 build/node_modules/p-retry/index.js delete mode 100644 build/node_modules/p-retry/license delete mode 100644 build/node_modules/p-retry/package.json delete mode 100644 build/node_modules/p-retry/readme.md delete mode 100644 build/node_modules/p-timeout/index.d.ts delete mode 100644 build/node_modules/p-timeout/index.js delete mode 100644 build/node_modules/p-timeout/license delete mode 100644 build/node_modules/p-timeout/package.json delete mode 100644 build/node_modules/p-timeout/readme.md delete mode 100644 build/node_modules/p-try/index.d.ts delete mode 100644 build/node_modules/p-try/index.js delete mode 100644 build/node_modules/p-try/license delete mode 100644 build/node_modules/p-try/package.json delete mode 100644 build/node_modules/p-try/readme.md delete mode 100644 build/node_modules/param-case/LICENSE delete mode 100644 build/node_modules/param-case/README.md delete mode 100644 build/node_modules/param-case/package.json delete mode 100644 build/node_modules/parent-module/index.js delete mode 100644 build/node_modules/parent-module/license delete mode 100644 build/node_modules/parent-module/package.json delete mode 100644 build/node_modules/parent-module/readme.md delete mode 100644 build/node_modules/parse-imports/license delete mode 100644 build/node_modules/parse-imports/package.json delete mode 100644 build/node_modules/parse-imports/readme.md delete mode 100644 build/node_modules/parseurl/HISTORY.md delete mode 100644 build/node_modules/parseurl/LICENSE delete mode 100644 build/node_modules/parseurl/README.md delete mode 100644 build/node_modules/parseurl/index.js delete mode 100644 build/node_modules/parseurl/package.json delete mode 100644 build/node_modules/pascal-case/LICENSE delete mode 100644 build/node_modules/pascal-case/README.md delete mode 100644 build/node_modules/pascal-case/package.json delete mode 100644 build/node_modules/pascalcase/LICENSE delete mode 100644 build/node_modules/pascalcase/README.md delete mode 100644 build/node_modules/pascalcase/index.js delete mode 100644 build/node_modules/pascalcase/package.json delete mode 100644 build/node_modules/path-case/LICENSE delete mode 100644 build/node_modules/path-case/README.md delete mode 100644 build/node_modules/path-case/package.json delete mode 100644 build/node_modules/path-dirname/index.js delete mode 100644 build/node_modules/path-dirname/license delete mode 100644 build/node_modules/path-dirname/package.json delete mode 100644 build/node_modules/path-dirname/readme.md delete mode 100644 build/node_modules/path-exists/index.d.ts delete mode 100644 build/node_modules/path-exists/index.js delete mode 100644 build/node_modules/path-exists/license delete mode 100644 build/node_modules/path-exists/package.json delete mode 100644 build/node_modules/path-exists/readme.md delete mode 100644 build/node_modules/path-is-absolute/index.js delete mode 100644 build/node_modules/path-is-absolute/license delete mode 100644 build/node_modules/path-is-absolute/package.json delete mode 100644 build/node_modules/path-is-absolute/readme.md delete mode 100644 build/node_modules/path-is-inside/LICENSE.txt delete mode 100644 build/node_modules/path-is-inside/package.json delete mode 100644 build/node_modules/path-key/index.d.ts delete mode 100644 build/node_modules/path-key/index.js delete mode 100644 build/node_modules/path-key/license delete mode 100644 build/node_modules/path-key/package.json delete mode 100644 build/node_modules/path-key/readme.md delete mode 100644 build/node_modules/path-parse/LICENSE delete mode 100644 build/node_modules/path-parse/README.md delete mode 100644 build/node_modules/path-parse/index.js delete mode 100644 build/node_modules/path-parse/package.json delete mode 100644 build/node_modules/path-to-regexp/History.md delete mode 100644 build/node_modules/path-to-regexp/LICENSE delete mode 100644 build/node_modules/path-to-regexp/Readme.md delete mode 100644 build/node_modules/path-to-regexp/index.js delete mode 100644 build/node_modules/path-to-regexp/package.json delete mode 100644 build/node_modules/path-type/index.js delete mode 100644 build/node_modules/path-type/license delete mode 100644 build/node_modules/path-type/package.json delete mode 100644 build/node_modules/path-type/readme.md delete mode 100644 build/node_modules/pathval/CHANGELOG.md delete mode 100644 build/node_modules/pathval/LICENSE delete mode 100644 build/node_modules/pathval/README.md delete mode 100644 build/node_modules/pathval/index.js delete mode 100644 build/node_modules/pathval/package.json delete mode 100644 build/node_modules/pathval/pathval.js delete mode 100644 build/node_modules/peek-readable/LICENSE delete mode 100644 build/node_modules/peek-readable/README.md delete mode 100644 build/node_modules/peek-readable/package.json delete mode 100644 build/node_modules/pg-connection-string/LICENSE delete mode 100644 build/node_modules/pg-connection-string/README.md delete mode 100644 build/node_modules/pg-connection-string/index.d.ts delete mode 100644 build/node_modules/pg-connection-string/index.js delete mode 100644 build/node_modules/pg-connection-string/package.json delete mode 100644 build/node_modules/phc-argon2/index.js delete mode 100644 build/node_modules/phc-argon2/license delete mode 100644 build/node_modules/phc-argon2/package.json delete mode 100644 build/node_modules/phc-argon2/readme.md delete mode 100644 build/node_modules/picocolors/LICENSE delete mode 100644 build/node_modules/picocolors/README.md delete mode 100644 build/node_modules/picocolors/package.json delete mode 100644 build/node_modules/picocolors/picocolors.browser.js delete mode 100644 build/node_modules/picocolors/picocolors.d.ts delete mode 100644 build/node_modules/picocolors/picocolors.js delete mode 100644 build/node_modules/picocolors/types.ts delete mode 100644 build/node_modules/picomatch/CHANGELOG.md delete mode 100644 build/node_modules/picomatch/LICENSE delete mode 100644 build/node_modules/picomatch/README.md delete mode 100644 build/node_modules/picomatch/index.js delete mode 100644 build/node_modules/picomatch/package.json delete mode 100644 build/node_modules/pify/index.js delete mode 100644 build/node_modules/pify/license delete mode 100644 build/node_modules/pify/package.json delete mode 100644 build/node_modules/pify/readme.md delete mode 100644 build/node_modules/pinkie-promise/index.js delete mode 100644 build/node_modules/pinkie-promise/license delete mode 100644 build/node_modules/pinkie-promise/package.json delete mode 100644 build/node_modules/pinkie-promise/readme.md delete mode 100644 build/node_modules/pinkie/index.js delete mode 100644 build/node_modules/pinkie/license delete mode 100644 build/node_modules/pinkie/package.json delete mode 100644 build/node_modules/pinkie/readme.md delete mode 100644 build/node_modules/pino-abstract-transport/LICENSE delete mode 100644 build/node_modules/pino-abstract-transport/README.md delete mode 100644 build/node_modules/pino-abstract-transport/index.d.ts delete mode 100644 build/node_modules/pino-abstract-transport/index.js delete mode 100644 build/node_modules/pino-abstract-transport/package.json delete mode 100644 build/node_modules/pino-pretty/.editorconfig delete mode 100644 build/node_modules/pino-pretty/.eslintrc delete mode 100644 build/node_modules/pino-pretty/.taprc.yaml delete mode 100644 build/node_modules/pino-pretty/LICENSE delete mode 100644 build/node_modules/pino-pretty/Readme.md delete mode 100644 build/node_modules/pino-pretty/benchmark.js delete mode 100644 build/node_modules/pino-pretty/bin.js delete mode 100644 build/node_modules/pino-pretty/coverage-map.js delete mode 100644 build/node_modules/pino-pretty/demo.png delete mode 100644 build/node_modules/pino-pretty/index.d.ts delete mode 100644 build/node_modules/pino-pretty/index.js delete mode 100644 build/node_modules/pino-pretty/package.json delete mode 100644 build/node_modules/pino-pretty/tsconfig.json delete mode 100644 build/node_modules/pino-std-serializers/.editorconfig delete mode 100644 build/node_modules/pino-std-serializers/.eslintignore delete mode 100644 build/node_modules/pino-std-serializers/.taprc delete mode 100644 build/node_modules/pino-std-serializers/LICENSE delete mode 100644 build/node_modules/pino-std-serializers/Readme.md delete mode 100644 build/node_modules/pino-std-serializers/index.d.ts delete mode 100644 build/node_modules/pino-std-serializers/index.js delete mode 100644 build/node_modules/pino-std-serializers/package.json delete mode 100644 build/node_modules/pino-std-serializers/tsconfig.json delete mode 100644 build/node_modules/pino/LICENSE delete mode 100644 build/node_modules/pino/README.md delete mode 100644 build/node_modules/pino/bin.js delete mode 100644 build/node_modules/pino/browser.js delete mode 100644 build/node_modules/pino/example.js delete mode 100644 build/node_modules/pino/package.json delete mode 100644 build/node_modules/pino/pino.js delete mode 100644 build/node_modules/pirates/LICENSE delete mode 100644 build/node_modules/pirates/README.md delete mode 100644 build/node_modules/pirates/index.d.ts delete mode 100644 build/node_modules/pirates/package.json delete mode 100644 build/node_modules/pkg-dir/index.d.ts delete mode 100644 build/node_modules/pkg-dir/index.js delete mode 100644 build/node_modules/pkg-dir/license delete mode 100644 build/node_modules/pkg-dir/package.json delete mode 100644 build/node_modules/pkg-dir/readme.md delete mode 100644 build/node_modules/pkg-up/index.d.ts delete mode 100644 build/node_modules/pkg-up/index.js delete mode 100644 build/node_modules/pkg-up/license delete mode 100644 build/node_modules/pkg-up/package.json delete mode 100644 build/node_modules/pkg-up/readme.md delete mode 100644 build/node_modules/pluralize/LICENSE delete mode 100644 build/node_modules/pluralize/Readme.md delete mode 100644 build/node_modules/pluralize/package.json delete mode 100644 build/node_modules/pluralize/pluralize.js delete mode 100644 build/node_modules/posix-character-classes/LICENSE delete mode 100644 build/node_modules/posix-character-classes/README.md delete mode 100644 build/node_modules/posix-character-classes/index.js delete mode 100644 build/node_modules/posix-character-classes/package.json delete mode 100644 build/node_modules/postcss-calc/LICENSE delete mode 100644 build/node_modules/postcss-calc/README.md delete mode 100644 build/node_modules/postcss-calc/package.json delete mode 100644 build/node_modules/postcss-colormin/LICENSE-MIT delete mode 100644 build/node_modules/postcss-colormin/README.md delete mode 100644 build/node_modules/postcss-colormin/package.json delete mode 100644 build/node_modules/postcss-convert-values/LICENSE-MIT delete mode 100644 build/node_modules/postcss-convert-values/README.md delete mode 100644 build/node_modules/postcss-convert-values/package.json delete mode 100644 build/node_modules/postcss-discard-comments/LICENSE-MIT delete mode 100644 build/node_modules/postcss-discard-comments/README.md delete mode 100644 build/node_modules/postcss-discard-comments/package.json delete mode 100644 build/node_modules/postcss-discard-duplicates/LICENSE-MIT delete mode 100644 build/node_modules/postcss-discard-duplicates/README.md delete mode 100644 build/node_modules/postcss-discard-duplicates/package.json delete mode 100644 build/node_modules/postcss-discard-empty/LICENSE-MIT delete mode 100644 build/node_modules/postcss-discard-empty/README.md delete mode 100644 build/node_modules/postcss-discard-empty/package.json delete mode 100644 build/node_modules/postcss-discard-overridden/LICENSE delete mode 100644 build/node_modules/postcss-discard-overridden/README.md delete mode 100644 build/node_modules/postcss-discard-overridden/package.json delete mode 100644 build/node_modules/postcss-merge-longhand/LICENSE-MIT delete mode 100644 build/node_modules/postcss-merge-longhand/README.md delete mode 100644 build/node_modules/postcss-merge-longhand/package.json delete mode 100644 build/node_modules/postcss-merge-rules/LICENSE-MIT delete mode 100644 build/node_modules/postcss-merge-rules/README.md delete mode 100644 build/node_modules/postcss-merge-rules/package.json delete mode 100644 build/node_modules/postcss-minify-font-values/LICENSE delete mode 100644 build/node_modules/postcss-minify-font-values/README.md delete mode 100644 build/node_modules/postcss-minify-font-values/package.json delete mode 100644 build/node_modules/postcss-minify-gradients/LICENSE-MIT delete mode 100644 build/node_modules/postcss-minify-gradients/README.md delete mode 100644 build/node_modules/postcss-minify-gradients/package.json delete mode 100644 build/node_modules/postcss-minify-params/LICENSE delete mode 100644 build/node_modules/postcss-minify-params/README.md delete mode 100644 build/node_modules/postcss-minify-params/package.json delete mode 100644 build/node_modules/postcss-minify-selectors/LICENSE-MIT delete mode 100644 build/node_modules/postcss-minify-selectors/README.md delete mode 100644 build/node_modules/postcss-minify-selectors/package.json delete mode 100644 build/node_modules/postcss-modules-extract-imports/CHANGELOG.md delete mode 100644 build/node_modules/postcss-modules-extract-imports/LICENSE delete mode 100644 build/node_modules/postcss-modules-extract-imports/README.md delete mode 100644 build/node_modules/postcss-modules-extract-imports/package.json delete mode 100644 build/node_modules/postcss-modules-local-by-default/LICENSE delete mode 100644 build/node_modules/postcss-modules-local-by-default/README.md delete mode 100644 build/node_modules/postcss-modules-local-by-default/package.json delete mode 100644 build/node_modules/postcss-modules-scope/CHANGELOG.md delete mode 100644 build/node_modules/postcss-modules-scope/LICENSE delete mode 100644 build/node_modules/postcss-modules-scope/README.md delete mode 100644 build/node_modules/postcss-modules-scope/package.json delete mode 100644 build/node_modules/postcss-modules-values/CHANGELOG.md delete mode 100644 build/node_modules/postcss-modules-values/LICENSE delete mode 100644 build/node_modules/postcss-modules-values/README.md delete mode 100644 build/node_modules/postcss-modules-values/package.json delete mode 100644 build/node_modules/postcss-normalize-charset/LICENSE delete mode 100644 build/node_modules/postcss-normalize-charset/README.md delete mode 100644 build/node_modules/postcss-normalize-charset/package.json delete mode 100644 build/node_modules/postcss-normalize-display-values/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-display-values/README.md delete mode 100644 build/node_modules/postcss-normalize-display-values/package.json delete mode 100644 build/node_modules/postcss-normalize-positions/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-positions/README.md delete mode 100644 build/node_modules/postcss-normalize-positions/package.json delete mode 100644 build/node_modules/postcss-normalize-repeat-style/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-repeat-style/README.md delete mode 100644 build/node_modules/postcss-normalize-repeat-style/package.json delete mode 100644 build/node_modules/postcss-normalize-string/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-string/README.md delete mode 100644 build/node_modules/postcss-normalize-string/package.json delete mode 100644 build/node_modules/postcss-normalize-timing-functions/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-timing-functions/README.md delete mode 100644 build/node_modules/postcss-normalize-timing-functions/package.json delete mode 100644 build/node_modules/postcss-normalize-unicode/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-unicode/README.md delete mode 100644 build/node_modules/postcss-normalize-unicode/package.json delete mode 100644 build/node_modules/postcss-normalize-url/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-url/README.md delete mode 100644 build/node_modules/postcss-normalize-url/package.json delete mode 100644 build/node_modules/postcss-normalize-whitespace/LICENSE-MIT delete mode 100644 build/node_modules/postcss-normalize-whitespace/README.md delete mode 100644 build/node_modules/postcss-normalize-whitespace/package.json delete mode 100644 build/node_modules/postcss-ordered-values/LICENSE-MIT delete mode 100644 build/node_modules/postcss-ordered-values/README.md delete mode 100644 build/node_modules/postcss-ordered-values/package.json delete mode 100644 build/node_modules/postcss-reduce-initial/LICENSE-MIT delete mode 100644 build/node_modules/postcss-reduce-initial/README.md delete mode 100644 build/node_modules/postcss-reduce-initial/package.json delete mode 100644 build/node_modules/postcss-reduce-transforms/LICENSE-MIT delete mode 100644 build/node_modules/postcss-reduce-transforms/README.md delete mode 100644 build/node_modules/postcss-reduce-transforms/package.json delete mode 100644 build/node_modules/postcss-selector-parser/API.md delete mode 100644 build/node_modules/postcss-selector-parser/CHANGELOG.md delete mode 100644 build/node_modules/postcss-selector-parser/LICENSE-MIT delete mode 100644 build/node_modules/postcss-selector-parser/README.md delete mode 100644 build/node_modules/postcss-selector-parser/package.json delete mode 100644 build/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts delete mode 100644 build/node_modules/postcss-svgo/LICENSE-MIT delete mode 100644 build/node_modules/postcss-svgo/README.md delete mode 100644 build/node_modules/postcss-svgo/package.json delete mode 100644 build/node_modules/postcss-unique-selectors/LICENSE-MIT delete mode 100644 build/node_modules/postcss-unique-selectors/README.md delete mode 100644 build/node_modules/postcss-unique-selectors/package.json delete mode 100644 build/node_modules/postcss-value-parser/LICENSE delete mode 100644 build/node_modules/postcss-value-parser/README.md delete mode 100644 build/node_modules/postcss-value-parser/package.json delete mode 100644 build/node_modules/postcss/LICENSE delete mode 100644 build/node_modules/postcss/README.md delete mode 100644 build/node_modules/postcss/package.json delete mode 100644 build/node_modules/prelude-ls/CHANGELOG.md delete mode 100644 build/node_modules/prelude-ls/LICENSE delete mode 100644 build/node_modules/prelude-ls/README.md delete mode 100644 build/node_modules/prelude-ls/package.json delete mode 100644 build/node_modules/prettier-linter-helpers/.editorconfig delete mode 100644 build/node_modules/prettier-linter-helpers/.eslintignore delete mode 100644 build/node_modules/prettier-linter-helpers/.eslintrc.js delete mode 100644 build/node_modules/prettier-linter-helpers/.prettierignore delete mode 100644 build/node_modules/prettier-linter-helpers/.prettierrc delete mode 100644 build/node_modules/prettier-linter-helpers/LICENSE.md delete mode 100644 build/node_modules/prettier-linter-helpers/README.md delete mode 100644 build/node_modules/prettier-linter-helpers/index.js delete mode 100644 build/node_modules/prettier-linter-helpers/package.json delete mode 100644 build/node_modules/prettier/LICENSE delete mode 100644 build/node_modules/prettier/README.md delete mode 100644 build/node_modules/prettier/doc.d.ts delete mode 100644 build/node_modules/prettier/doc.js delete mode 100644 build/node_modules/prettier/doc.mjs delete mode 100644 build/node_modules/prettier/index.cjs delete mode 100644 build/node_modules/prettier/index.d.ts delete mode 100644 build/node_modules/prettier/index.mjs delete mode 100644 build/node_modules/prettier/package.json delete mode 100644 build/node_modules/prettier/standalone.d.ts delete mode 100644 build/node_modules/prettier/standalone.js delete mode 100644 build/node_modules/prettier/standalone.mjs delete mode 100644 build/node_modules/pretty-error/.mocharc.yaml delete mode 100644 build/node_modules/pretty-error/.travis.yml delete mode 100644 build/node_modules/pretty-error/CHANGELOG.md delete mode 100644 build/node_modules/pretty-error/LICENSE delete mode 100644 build/node_modules/pretty-error/README.md delete mode 100644 build/node_modules/pretty-error/index.d.ts delete mode 100644 build/node_modules/pretty-error/package.json delete mode 100644 build/node_modules/pretty-error/start.js delete mode 100644 build/node_modules/pretty-format/LICENSE delete mode 100644 build/node_modules/pretty-format/README.md delete mode 100644 build/node_modules/pretty-format/package.json delete mode 100644 build/node_modules/pretty-hrtime/.jshintignore delete mode 100644 build/node_modules/pretty-hrtime/.npmignore delete mode 100644 build/node_modules/pretty-hrtime/LICENSE delete mode 100644 build/node_modules/pretty-hrtime/README.md delete mode 100644 build/node_modules/pretty-hrtime/index.js delete mode 100644 build/node_modules/pretty-hrtime/package.json delete mode 100644 build/node_modules/printable-characters/.babelrc delete mode 100644 build/node_modules/printable-characters/.eslintrc delete mode 100644 build/node_modules/printable-characters/.gitattributes delete mode 100644 build/node_modules/printable-characters/.npmignore delete mode 100644 build/node_modules/printable-characters/.travis.yml delete mode 100644 build/node_modules/printable-characters/CHANGELOG.md delete mode 100644 build/node_modules/printable-characters/LICENSE delete mode 100644 build/node_modules/printable-characters/README.md delete mode 100644 build/node_modules/printable-characters/package-lock.json delete mode 100644 build/node_modules/printable-characters/package.json delete mode 100644 build/node_modules/printable-characters/printable-characters.js delete mode 100644 build/node_modules/printable-characters/test.js delete mode 100644 build/node_modules/process-nextick-args/index.js delete mode 100644 build/node_modules/process-nextick-args/license.md delete mode 100644 build/node_modules/process-nextick-args/package.json delete mode 100644 build/node_modules/process-nextick-args/readme.md delete mode 100644 build/node_modules/process/.eslintrc delete mode 100644 build/node_modules/process/LICENSE delete mode 100644 build/node_modules/process/README.md delete mode 100644 build/node_modules/process/browser.js delete mode 100644 build/node_modules/process/index.js delete mode 100644 build/node_modules/process/package.json delete mode 100644 build/node_modules/process/test.js delete mode 100644 build/node_modules/promise-inflight/LICENSE delete mode 100644 build/node_modules/promise-inflight/README.md delete mode 100644 build/node_modules/promise-inflight/inflight.js delete mode 100644 build/node_modules/promise-inflight/package.json delete mode 100644 build/node_modules/promise-retry/.editorconfig delete mode 100644 build/node_modules/promise-retry/.jshintrc delete mode 100644 build/node_modules/promise-retry/.travis.yml delete mode 100644 build/node_modules/promise-retry/LICENSE delete mode 100644 build/node_modules/promise-retry/README.md delete mode 100644 build/node_modules/promise-retry/index.js delete mode 100644 build/node_modules/promise-retry/package.json delete mode 100644 build/node_modules/prop-ini/LICENSE delete mode 100644 build/node_modules/prop-ini/README.md delete mode 100644 build/node_modules/prop-ini/package.json delete mode 100644 build/node_modules/prop-ini/prop-ini.js delete mode 100644 build/node_modules/proxy-addr/HISTORY.md delete mode 100644 build/node_modules/proxy-addr/LICENSE delete mode 100644 build/node_modules/proxy-addr/README.md delete mode 100644 build/node_modules/proxy-addr/index.js delete mode 100644 build/node_modules/proxy-addr/package.json delete mode 100644 build/node_modules/pseudomap/LICENSE delete mode 100644 build/node_modules/pseudomap/README.md delete mode 100644 build/node_modules/pseudomap/map.js delete mode 100644 build/node_modules/pseudomap/package.json delete mode 100644 build/node_modules/pseudomap/pseudomap.js delete mode 100644 build/node_modules/pump/.travis.yml delete mode 100644 build/node_modules/pump/LICENSE delete mode 100644 build/node_modules/pump/README.md delete mode 100644 build/node_modules/pump/index.js delete mode 100644 build/node_modules/pump/package.json delete mode 100644 build/node_modules/pump/test-browser.js delete mode 100644 build/node_modules/pump/test-node.js delete mode 100644 build/node_modules/punycode/LICENSE-MIT.txt delete mode 100644 build/node_modules/punycode/README.md delete mode 100644 build/node_modules/punycode/package.json delete mode 100644 build/node_modules/punycode/punycode.es6.js delete mode 100644 build/node_modules/punycode/punycode.js delete mode 100644 build/node_modules/qs/.editorconfig delete mode 100644 build/node_modules/qs/.eslintrc delete mode 100644 build/node_modules/qs/.nycrc delete mode 100644 build/node_modules/qs/CHANGELOG.md delete mode 100644 build/node_modules/qs/LICENSE.md delete mode 100644 build/node_modules/qs/README.md delete mode 100644 build/node_modules/qs/package.json delete mode 100644 build/node_modules/queue-microtask/LICENSE delete mode 100644 build/node_modules/queue-microtask/README.md delete mode 100644 build/node_modules/queue-microtask/index.d.ts delete mode 100644 build/node_modules/queue-microtask/index.js delete mode 100644 build/node_modules/queue-microtask/package.json delete mode 100644 build/node_modules/quick-format-unescaped/LICENSE delete mode 100644 build/node_modules/quick-format-unescaped/benchmark.js delete mode 100644 build/node_modules/quick-format-unescaped/index.js delete mode 100644 build/node_modules/quick-format-unescaped/package.json delete mode 100644 build/node_modules/quick-format-unescaped/readme.md delete mode 100644 build/node_modules/random-bytes/HISTORY.md delete mode 100644 build/node_modules/random-bytes/LICENSE delete mode 100644 build/node_modules/random-bytes/README.md delete mode 100644 build/node_modules/random-bytes/index.js delete mode 100644 build/node_modules/random-bytes/package.json delete mode 100644 build/node_modules/randombytes/.travis.yml delete mode 100644 build/node_modules/randombytes/.zuul.yml delete mode 100644 build/node_modules/randombytes/LICENSE delete mode 100644 build/node_modules/randombytes/README.md delete mode 100644 build/node_modules/randombytes/browser.js delete mode 100644 build/node_modules/randombytes/index.js delete mode 100644 build/node_modules/randombytes/package.json delete mode 100644 build/node_modules/randombytes/test.js delete mode 100644 build/node_modules/range-parser/HISTORY.md delete mode 100644 build/node_modules/range-parser/LICENSE delete mode 100644 build/node_modules/range-parser/README.md delete mode 100644 build/node_modules/range-parser/index.js delete mode 100644 build/node_modules/range-parser/package.json delete mode 100644 build/node_modules/raw-body/HISTORY.md delete mode 100644 build/node_modules/raw-body/LICENSE delete mode 100644 build/node_modules/raw-body/README.md delete mode 100644 build/node_modules/raw-body/SECURITY.md delete mode 100644 build/node_modules/raw-body/index.d.ts delete mode 100644 build/node_modules/raw-body/index.js delete mode 100644 build/node_modules/raw-body/package.json delete mode 100644 build/node_modules/react-is/LICENSE delete mode 100644 build/node_modules/react-is/README.md delete mode 100644 build/node_modules/react-is/index.js delete mode 100644 build/node_modules/react-is/package.json delete mode 100644 build/node_modules/readable-stream/LICENSE delete mode 100644 build/node_modules/readable-stream/README.md delete mode 100644 build/node_modules/readable-stream/package.json delete mode 100644 build/node_modules/readable-web-to-node-stream/README.md delete mode 100644 build/node_modules/readable-web-to-node-stream/package.json delete mode 100644 build/node_modules/readdirp/LICENSE delete mode 100644 build/node_modules/readdirp/README.md delete mode 100644 build/node_modules/readdirp/index.d.ts delete mode 100644 build/node_modules/readdirp/index.js delete mode 100644 build/node_modules/readdirp/package.json delete mode 100644 build/node_modules/readme-badger/.travis.yml delete mode 100644 build/node_modules/readme-badger/README.md delete mode 100644 build/node_modules/readme-badger/index.js delete mode 100644 build/node_modules/readme-badger/package.json delete mode 100644 build/node_modules/rechoir/LICENSE delete mode 100644 build/node_modules/rechoir/README.md delete mode 100644 build/node_modules/rechoir/index.js delete mode 100644 build/node_modules/rechoir/package.json delete mode 100644 build/node_modules/redeyed/.npmignore delete mode 100644 build/node_modules/redeyed/.travis.yml delete mode 100644 build/node_modules/redeyed/LICENSE delete mode 100644 build/node_modules/redeyed/README.md delete mode 100644 build/node_modules/redeyed/config-es5.js delete mode 100644 build/node_modules/redeyed/config.js delete mode 100644 build/node_modules/redeyed/package.json delete mode 100644 build/node_modules/redeyed/redeyed.js delete mode 100644 build/node_modules/reflect-metadata/AUTHORS.md delete mode 100644 build/node_modules/reflect-metadata/CopyrightNotice.txt delete mode 100644 build/node_modules/reflect-metadata/LICENSE delete mode 100644 build/node_modules/reflect-metadata/README.md delete mode 100644 build/node_modules/reflect-metadata/Reflect.d.ts delete mode 100644 build/node_modules/reflect-metadata/Reflect.js delete mode 100644 build/node_modules/reflect-metadata/index.d.ts delete mode 100644 build/node_modules/reflect-metadata/package.json delete mode 100644 build/node_modules/reflect-metadata/reflect-metadata.d.ts delete mode 100644 build/node_modules/reflect-metadata/standalone.d.ts delete mode 100644 build/node_modules/reflect-metadata/typings.d.ts delete mode 100644 build/node_modules/regenerate-unicode-properties/LICENSE-MIT.txt delete mode 100644 build/node_modules/regenerate-unicode-properties/README.md delete mode 100644 build/node_modules/regenerate-unicode-properties/index.js delete mode 100644 build/node_modules/regenerate-unicode-properties/package.json delete mode 100644 build/node_modules/regenerate-unicode-properties/unicode-version.js delete mode 100644 build/node_modules/regenerate/LICENSE-MIT.txt delete mode 100644 build/node_modules/regenerate/README.md delete mode 100644 build/node_modules/regenerate/package.json delete mode 100644 build/node_modules/regenerate/regenerate.js delete mode 100644 build/node_modules/regenerator-runtime/LICENSE delete mode 100644 build/node_modules/regenerator-runtime/README.md delete mode 100644 build/node_modules/regenerator-runtime/package.json delete mode 100644 build/node_modules/regenerator-runtime/path.js delete mode 100644 build/node_modules/regenerator-runtime/runtime.js delete mode 100644 build/node_modules/regenerator-transform/LICENSE delete mode 100644 build/node_modules/regenerator-transform/README.md delete mode 100644 build/node_modules/regenerator-transform/package.json delete mode 100644 build/node_modules/regex-not/LICENSE delete mode 100644 build/node_modules/regex-not/README.md delete mode 100644 build/node_modules/regex-not/index.js delete mode 100644 build/node_modules/regex-not/package.json delete mode 100644 build/node_modules/regex-parser/LICENSE delete mode 100644 build/node_modules/regex-parser/README.md delete mode 100644 build/node_modules/regex-parser/package.json delete mode 100644 build/node_modules/regexpu-core/LICENSE-MIT.txt delete mode 100644 build/node_modules/regexpu-core/README.md delete mode 100644 build/node_modules/regexpu-core/package.json delete mode 100644 build/node_modules/regexpu-core/rewrite-pattern.js delete mode 100644 build/node_modules/regjsparser/LICENSE.BSD delete mode 100644 build/node_modules/regjsparser/README.md delete mode 100644 build/node_modules/regjsparser/package.json delete mode 100644 build/node_modules/regjsparser/parser.d.ts delete mode 100644 build/node_modules/regjsparser/parser.js delete mode 100644 build/node_modules/renderkid/CHANGELOG.md delete mode 100644 build/node_modules/renderkid/LICENSE delete mode 100644 build/node_modules/renderkid/README.md delete mode 100644 build/node_modules/renderkid/SECURITY.md delete mode 100644 build/node_modules/renderkid/package.json delete mode 100644 build/node_modules/repeat-element/LICENSE delete mode 100644 build/node_modules/repeat-element/README.md delete mode 100644 build/node_modules/repeat-element/index.js delete mode 100644 build/node_modules/repeat-element/package.json delete mode 100644 build/node_modules/repeat-string/LICENSE delete mode 100644 build/node_modules/repeat-string/README.md delete mode 100644 build/node_modules/repeat-string/index.js delete mode 100644 build/node_modules/repeat-string/package.json delete mode 100644 build/node_modules/require-all/Changes.md delete mode 100644 build/node_modules/require-all/LICENSE delete mode 100644 build/node_modules/require-all/Readme.md delete mode 100644 build/node_modules/require-all/index.js delete mode 100644 build/node_modules/require-all/package.json delete mode 100644 build/node_modules/require-from-string/index.js delete mode 100644 build/node_modules/require-from-string/license delete mode 100644 build/node_modules/require-from-string/package.json delete mode 100644 build/node_modules/require-from-string/readme.md delete mode 100644 build/node_modules/requires-port/.npmignore delete mode 100644 build/node_modules/requires-port/.travis.yml delete mode 100644 build/node_modules/requires-port/LICENSE delete mode 100644 build/node_modules/requires-port/README.md delete mode 100644 build/node_modules/requires-port/index.js delete mode 100644 build/node_modules/requires-port/package.json delete mode 100644 build/node_modules/requires-port/test.js delete mode 100644 build/node_modules/resolve-cwd/index.d.ts delete mode 100644 build/node_modules/resolve-cwd/index.js delete mode 100644 build/node_modules/resolve-cwd/license delete mode 100644 build/node_modules/resolve-cwd/package.json delete mode 100644 build/node_modules/resolve-cwd/readme.md delete mode 100644 build/node_modules/resolve-from/index.d.ts delete mode 100644 build/node_modules/resolve-from/index.js delete mode 100644 build/node_modules/resolve-from/license delete mode 100644 build/node_modules/resolve-from/package.json delete mode 100644 build/node_modules/resolve-from/readme.md delete mode 100644 build/node_modules/resolve-url-loader/CHANGELOG.md delete mode 100644 build/node_modules/resolve-url-loader/LICENSE delete mode 100644 build/node_modules/resolve-url-loader/README.md delete mode 100644 build/node_modules/resolve-url-loader/index.js delete mode 100644 build/node_modules/resolve-url-loader/package.json delete mode 100644 build/node_modules/resolve-url/.jshintrc delete mode 100644 build/node_modules/resolve-url/LICENSE delete mode 100644 build/node_modules/resolve-url/bower.json delete mode 100644 build/node_modules/resolve-url/changelog.md delete mode 100644 build/node_modules/resolve-url/component.json delete mode 100644 build/node_modules/resolve-url/package.json delete mode 100644 build/node_modules/resolve-url/readme.md delete mode 100644 build/node_modules/resolve-url/resolve-url.js delete mode 100644 build/node_modules/resolve/.editorconfig delete mode 100644 build/node_modules/resolve/.eslintrc delete mode 100644 build/node_modules/resolve/LICENSE delete mode 100644 build/node_modules/resolve/SECURITY.md delete mode 100644 build/node_modules/resolve/async.js delete mode 100644 build/node_modules/resolve/index.js delete mode 100644 build/node_modules/resolve/package.json delete mode 100644 build/node_modules/resolve/readme.markdown delete mode 100644 build/node_modules/resolve/sync.js delete mode 100644 build/node_modules/restore-cursor/index.d.ts delete mode 100644 build/node_modules/restore-cursor/index.js delete mode 100644 build/node_modules/restore-cursor/license delete mode 100644 build/node_modules/restore-cursor/package.json delete mode 100644 build/node_modules/restore-cursor/readme.md delete mode 100644 build/node_modules/ret/LICENSE delete mode 100644 build/node_modules/ret/README.md delete mode 100644 build/node_modules/ret/package.json delete mode 100644 build/node_modules/retry/License delete mode 100644 build/node_modules/retry/README.md delete mode 100644 build/node_modules/retry/index.js delete mode 100644 build/node_modules/retry/package.json delete mode 100644 build/node_modules/reusify/.coveralls.yml delete mode 100644 build/node_modules/reusify/.travis.yml delete mode 100644 build/node_modules/reusify/LICENSE delete mode 100644 build/node_modules/reusify/README.md delete mode 100644 build/node_modules/reusify/package.json delete mode 100644 build/node_modules/reusify/reusify.js delete mode 100644 build/node_modules/reusify/test.js delete mode 100644 build/node_modules/rev-hash/index.d.ts delete mode 100644 build/node_modules/rev-hash/index.js delete mode 100644 build/node_modules/rev-hash/license delete mode 100644 build/node_modules/rev-hash/package.json delete mode 100644 build/node_modules/rev-hash/readme.md delete mode 100644 build/node_modules/rimraf/CHANGELOG.md delete mode 100644 build/node_modules/rimraf/LICENSE delete mode 100644 build/node_modules/rimraf/README.md delete mode 100644 build/node_modules/rimraf/bin.js delete mode 100644 build/node_modules/rimraf/package.json delete mode 100644 build/node_modules/rimraf/rimraf.js delete mode 100644 build/node_modules/rndm/LICENSE delete mode 100644 build/node_modules/rndm/README.md delete mode 100644 build/node_modules/rndm/index.js delete mode 100644 build/node_modules/rndm/package.json delete mode 100644 build/node_modules/run-parallel/LICENSE delete mode 100644 build/node_modules/run-parallel/README.md delete mode 100644 build/node_modules/run-parallel/index.js delete mode 100644 build/node_modules/run-parallel/package.json delete mode 100644 build/node_modules/safe-buffer/LICENSE delete mode 100644 build/node_modules/safe-buffer/README.md delete mode 100644 build/node_modules/safe-buffer/index.d.ts delete mode 100644 build/node_modules/safe-buffer/index.js delete mode 100644 build/node_modules/safe-buffer/package.json delete mode 100644 build/node_modules/safe-regex/.travis.yml delete mode 100644 build/node_modules/safe-regex/LICENSE delete mode 100644 build/node_modules/safe-regex/index.js delete mode 100644 build/node_modules/safe-regex/package.json delete mode 100644 build/node_modules/safe-regex/readme.markdown delete mode 100644 build/node_modules/safer-buffer/LICENSE delete mode 100644 build/node_modules/safer-buffer/Porting-Buffer.md delete mode 100644 build/node_modules/safer-buffer/Readme.md delete mode 100644 build/node_modules/safer-buffer/dangerous.js delete mode 100644 build/node_modules/safer-buffer/package.json delete mode 100644 build/node_modules/safer-buffer/safer.js delete mode 100644 build/node_modules/safer-buffer/tests.js delete mode 100644 build/node_modules/schema-utils/CHANGELOG.md delete mode 100644 build/node_modules/schema-utils/LICENSE delete mode 100644 build/node_modules/schema-utils/README.md delete mode 100644 build/node_modules/schema-utils/package.json delete mode 100644 build/node_modules/secure-json-parse/.airtap.yml delete mode 100644 build/node_modules/secure-json-parse/LICENSE.md delete mode 100644 build/node_modules/secure-json-parse/index.js delete mode 100644 build/node_modules/secure-json-parse/package.json delete mode 100644 build/node_modules/select-hose/.jscsrc delete mode 100644 build/node_modules/select-hose/.jshintrc delete mode 100644 build/node_modules/select-hose/.npmignore delete mode 100644 build/node_modules/select-hose/.travis.yml delete mode 100644 build/node_modules/select-hose/README.md delete mode 100644 build/node_modules/select-hose/package.json delete mode 100644 build/node_modules/selfsigned/.jshintrc delete mode 100644 build/node_modules/selfsigned/LICENSE delete mode 100644 build/node_modules/selfsigned/README.md delete mode 100644 build/node_modules/selfsigned/index.d.ts delete mode 100644 build/node_modules/selfsigned/index.js delete mode 100644 build/node_modules/selfsigned/package.json delete mode 100644 build/node_modules/semver/LICENSE delete mode 100644 build/node_modules/semver/README.md delete mode 100644 build/node_modules/semver/index.js delete mode 100644 build/node_modules/semver/package.json delete mode 100644 build/node_modules/semver/preload.js delete mode 100644 build/node_modules/semver/range.bnf delete mode 100644 build/node_modules/send/HISTORY.md delete mode 100644 build/node_modules/send/LICENSE delete mode 100644 build/node_modules/send/README.md delete mode 100644 build/node_modules/send/SECURITY.md delete mode 100644 build/node_modules/send/index.js delete mode 100644 build/node_modules/send/package.json delete mode 100644 build/node_modules/sentence-case/LICENSE delete mode 100644 build/node_modules/sentence-case/README.md delete mode 100644 build/node_modules/sentence-case/package.json delete mode 100644 build/node_modules/serialize-javascript/LICENSE delete mode 100644 build/node_modules/serialize-javascript/README.md delete mode 100644 build/node_modules/serialize-javascript/index.js delete mode 100644 build/node_modules/serialize-javascript/package.json delete mode 100644 build/node_modules/serve-index/HISTORY.md delete mode 100644 build/node_modules/serve-index/LICENSE delete mode 100644 build/node_modules/serve-index/README.md delete mode 100644 build/node_modules/serve-index/index.js delete mode 100644 build/node_modules/serve-index/package.json delete mode 100644 build/node_modules/set-blocking/CHANGELOG.md delete mode 100644 build/node_modules/set-blocking/LICENSE.txt delete mode 100644 build/node_modules/set-blocking/README.md delete mode 100644 build/node_modules/set-blocking/index.js delete mode 100644 build/node_modules/set-blocking/package.json delete mode 100644 build/node_modules/set-cookie-parser/LICENSE delete mode 100644 build/node_modules/set-cookie-parser/package.json delete mode 100644 build/node_modules/set-function-length/.eslintrc delete mode 100644 build/node_modules/set-function-length/.nycrc delete mode 100644 build/node_modules/set-function-length/CHANGELOG.md delete mode 100644 build/node_modules/set-function-length/LICENSE delete mode 100644 build/node_modules/set-function-length/README.md delete mode 100644 build/node_modules/set-function-length/env.js delete mode 100644 build/node_modules/set-function-length/index.js delete mode 100644 build/node_modules/set-function-length/package.json delete mode 100644 build/node_modules/setprototypeof/LICENSE delete mode 100644 build/node_modules/setprototypeof/README.md delete mode 100644 build/node_modules/setprototypeof/index.d.ts delete mode 100644 build/node_modules/setprototypeof/index.js delete mode 100644 build/node_modules/setprototypeof/package.json delete mode 100644 build/node_modules/shallow-clone/LICENSE delete mode 100644 build/node_modules/shallow-clone/README.md delete mode 100644 build/node_modules/shallow-clone/index.js delete mode 100644 build/node_modules/shebang-command/index.js delete mode 100644 build/node_modules/shebang-command/package.json delete mode 100644 build/node_modules/shebang-command/readme.md delete mode 100644 build/package-lock.json delete mode 100644 build/package.json delete mode 100644 build/providers/AppProvider.js delete mode 100644 build/providers/AppProvider.js.map delete mode 100644 build/public/Logo Discord.png delete mode 100644 build/public/assets/entrypoints.json delete mode 100644 build/public/assets/index.7668700c.css delete mode 100644 build/public/assets/manifest.json delete mode 100644 build/public/favicon.ico delete mode 100644 build/public/logo github.png delete mode 100644 build/public/logo insta.png delete mode 100644 build/public/logo.png delete mode 100644 build/public/other.png delete mode 100644 build/public/pp.jpg delete mode 100644 build/server.js delete mode 100644 build/server.js.map delete mode 100644 build/start/kernel.js delete mode 100644 build/start/kernel.js.map delete mode 100644 build/start/routes.js delete mode 100644 build/start/routes.js.map delete mode 100644 build/test.js delete mode 100644 build/test.js.map delete mode 100644 build/tests/bootstrap.js delete mode 100644 build/tests/bootstrap.js.map delete mode 100644 build/tsconfig.json delete mode 100644 build/tsconfig.tsbuildinfo rename build/node_modules/mime/.npmignore => public/assets/compte.31d6cfe0.js (100%) create mode 100644 public/assets/compte.753baa5d.css rename {build/public => public}/assets/form.31d6cfe0.js (100%) rename {build/public => public}/assets/form.d255c0c6.css (100%) create mode 100644 public/assets/images/landing.6d6841c3.jpg create mode 100644 public/assets/index.426cec9e.js create mode 100644 public/assets/index.c6bb0e40.css rename build/node_modules/node-addon-api/nothing.c => public/assets/journal.31d6cfe0.js (100%) create mode 100644 public/assets/journal.f506c653.css rename build/public/assets/index.31d6cfe0.js => public/assets/my-network-project.31d6cfe0.js (100%) create mode 100644 public/assets/my-network-project.75c72c57.css create mode 100644 public/assets/nups.1cfcc6cb.css create mode 100644 public/assets/nups.31d6cfe0.js create mode 100644 public/assets/project-nups.31d6cfe0.js create mode 100644 public/assets/project-nups.bc10365c.css create mode 100644 public/assets/terms.31d6cfe0.js create mode 100644 public/assets/terms.81e389a9.css diff --git a/.gitignore b/.gitignore index 78e020f2..9198c4da 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules -build coverage .vscode .DS_STORE diff --git a/build/.adonisrc.json b/build/.adonisrc.json deleted file mode 100644 index 663fae91..00000000 --- a/build/.adonisrc.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "typescript": false, - "commands": [ - "./commands", - "@adonisjs/core/build/commands/index.js", - "@adonisjs/repl/build/commands", - "@adonisjs/lucid/build/commands" - ], - "exceptionHandlerNamespace": "App/Exceptions/Handler", - "aliases": { - "App": "app", - "Config": "config", - "Database": "database", - "Contracts": "contracts" - }, - "preloads": [ - "./start/routes", - "./start/kernel" - ], - "providers": [ - "./providers/AppProvider", - "@adonisjs/core", - "@adonisjs/session", - "@adonisjs/view", - "@adonisjs/shield", - "@adonisjs/lucid", - "@adonisjs/auth" - ], - "metaFiles": [ - { - "pattern": "public/**", - "reloadServer": false - }, - { - "pattern": "resources/views/**/*.edge", - "reloadServer": false - } - ], - "aceProviders": [ - "@adonisjs/repl" - ], - "tests": { - "suites": [ - { - "name": "functional", - "files": [ - "tests/functional/**/*.spec(.ts|.js)" - ], - "timeout": 60000 - } - ] - }, - "testProviders": [ - "@japa/preset-adonis/TestsProvider" - ], - "lastCompiledAt": "2023-11-02T17:01:05.675Z" -} diff --git a/build/.env.example b/build/.env.example deleted file mode 100644 index c97d34a1..00000000 --- a/build/.env.example +++ /dev/null @@ -1 +0,0 @@ -SESSION_DRIVER=cookie diff --git a/build/ace b/build/ace deleted file mode 100644 index c1750318..00000000 --- a/build/ace +++ /dev/null @@ -1,16 +0,0 @@ -/* -|-------------------------------------------------------------------------- -| Ace Commands -|-------------------------------------------------------------------------- -| -| This file is the entry point for running ace commands. -| -*/ - -require('reflect-metadata') -require('source-map-support').install({ handleUncaughtExceptions: false }) - -const { Ignitor } = require('@adonisjs/core/build/standalone') -new Ignitor(__dirname) - .ace() - .handle(process.argv.slice(2)) diff --git a/build/ace-manifest.json b/build/ace-manifest.json deleted file mode 100644 index 027c4d10..00000000 --- a/build/ace-manifest.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "commands": { - "dump:rcfile": { - "settings": {}, - "commandPath": "@adonisjs/core/build/commands/DumpRc", - "commandName": "dump:rcfile", - "description": "Dump contents of .adonisrc.json file along with defaults", - "args": [], - "aliases": [], - "flags": [] - }, - "list:routes": { - "settings": { - "loadApp": true, - "stayAlive": true - }, - "commandPath": "@adonisjs/core/build/commands/ListRoutes/index", - "commandName": "list:routes", - "description": "List application routes", - "args": [], - "aliases": [], - "flags": [ - { - "name": "verbose", - "propertyName": "verbose", - "type": "boolean", - "description": "Display more information" - }, - { - "name": "reverse", - "propertyName": "reverse", - "type": "boolean", - "alias": "r", - "description": "Reverse routes display" - }, - { - "name": "methods", - "propertyName": "methodsFilter", - "type": "array", - "alias": "m", - "description": "Filter routes by method" - }, - { - "name": "patterns", - "propertyName": "patternsFilter", - "type": "array", - "alias": "p", - "description": "Filter routes by the route pattern" - }, - { - "name": "names", - "propertyName": "namesFilter", - "type": "array", - "alias": "n", - "description": "Filter routes by route name" - }, - { - "name": "json", - "propertyName": "json", - "type": "boolean", - "description": "Output as JSON" - }, - { - "name": "table", - "propertyName": "table", - "type": "boolean", - "description": "Output as Table" - }, - { - "name": "max-width", - "propertyName": "maxWidth", - "type": "number", - "description": "Specify maximum rendering width. Ignored for JSON Output" - } - ] - }, - "generate:key": { - "settings": {}, - "commandPath": "@adonisjs/core/build/commands/GenerateKey", - "commandName": "generate:key", - "description": "Generate a new APP_KEY secret", - "args": [], - "aliases": [], - "flags": [] - }, - "repl": { - "settings": { - "loadApp": true, - "environment": "repl", - "stayAlive": true - }, - "commandPath": "@adonisjs/repl/build/commands/AdonisRepl", - "commandName": "repl", - "description": "Start a new REPL session", - "args": [], - "aliases": [], - "flags": [] - }, - "db:seed": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/DbSeed", - "commandName": "db:seed", - "description": "Execute database seeders", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection for the seeders", - "alias": "c" - }, - { - "name": "interactive", - "propertyName": "interactive", - "type": "boolean", - "description": "Run seeders in interactive mode", - "alias": "i" - }, - { - "name": "files", - "propertyName": "files", - "type": "array", - "description": "Define a custom set of seeders files names to run", - "alias": "f" - }, - { - "name": "compact-output", - "propertyName": "compactOutput", - "type": "boolean", - "description": "A compact single-line output" - } - ] - }, - "db:wipe": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/DbWipe", - "commandName": "db:wipe", - "description": "Drop all tables, views and types in database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "drop-views", - "propertyName": "dropViews", - "type": "boolean", - "description": "Drop all views" - }, - { - "name": "drop-types", - "propertyName": "dropTypes", - "type": "boolean", - "description": "Drop all custom types (Postgres only)" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - } - ] - }, - "db:truncate": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/DbTruncate", - "commandName": "db:truncate", - "description": "Truncate all tables in database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - } - ] - }, - "make:model": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/MakeModel", - "commandName": "make:model", - "description": "Make a new Lucid model", - "args": [ - { - "type": "string", - "propertyName": "name", - "name": "name", - "required": true, - "description": "Name of the model class" - } - ], - "aliases": [], - "flags": [ - { - "name": "migration", - "propertyName": "migration", - "type": "boolean", - "alias": "m", - "description": "Generate the migration for the model" - }, - { - "name": "controller", - "propertyName": "controller", - "type": "boolean", - "alias": "c", - "description": "Generate the controller for the model" - }, - { - "name": "factory", - "propertyName": "factory", - "type": "boolean", - "alias": "f", - "description": "Generate a factory for the model" - } - ] - }, - "make:migration": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/MakeMigration", - "commandName": "make:migration", - "description": "Make a new migration file", - "args": [ - { - "type": "string", - "propertyName": "name", - "name": "name", - "required": true, - "description": "Name of the migration file" - } - ], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "The connection flag is used to lookup the directory for the migration file" - }, - { - "name": "folder", - "propertyName": "folder", - "type": "string", - "description": "Pre-select a migration directory" - }, - { - "name": "create", - "propertyName": "create", - "type": "string", - "description": "Define the table name for creating a new table" - }, - { - "name": "table", - "propertyName": "table", - "type": "string", - "description": "Define the table name for altering an existing table" - } - ] - }, - "make:seeder": { - "settings": {}, - "commandPath": "@adonisjs/lucid/build/commands/MakeSeeder", - "commandName": "make:seeder", - "description": "Make a new Seeder file", - "args": [ - { - "type": "string", - "propertyName": "name", - "name": "name", - "required": true, - "description": "Name of the seeder class" - } - ], - "aliases": [], - "flags": [] - }, - "make:factory": { - "settings": {}, - "commandPath": "@adonisjs/lucid/build/commands/MakeFactory", - "commandName": "make:factory", - "description": "Make a new factory", - "args": [ - { - "type": "string", - "propertyName": "model", - "name": "model", - "required": true, - "description": "The name of the model" - } - ], - "aliases": [], - "flags": [ - { - "name": "model-path", - "propertyName": "modelPath", - "type": "string", - "description": "The path to the model" - }, - { - "name": "exact", - "propertyName": "exact", - "type": "boolean", - "description": "Create the factory with the exact name as provided", - "alias": "e" - } - ] - }, - "migration:run": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Run", - "commandName": "migration:run", - "description": "Migrate database by running pending migrations", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force to run migrations in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "compact-output", - "propertyName": "compactOutput", - "type": "boolean", - "description": "A compact single-line output" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:rollback": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Rollback", - "commandName": "migration:rollback", - "description": "Rollback migrations to a specific batch number", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explictly force to run migrations in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "batch", - "propertyName": "batch", - "type": "number", - "description": "Define custom batch number for rollback. Use 0 to rollback to initial state" - }, - { - "name": "compact-output", - "propertyName": "compactOutput", - "type": "boolean", - "description": "A compact single-line output" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:status": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Status", - "commandName": "migration:status", - "description": "View migrations status", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - } - ] - }, - "migration:reset": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Reset", - "commandName": "migration:reset", - "description": "Rollback all migrations", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:refresh": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Refresh", - "commandName": "migration:refresh", - "description": "Rollback and migrate database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - }, - { - "name": "dry-run", - "propertyName": "dryRun", - "type": "boolean", - "description": "Do not run actual queries. Instead view the SQL output" - }, - { - "name": "seed", - "propertyName": "seed", - "type": "boolean", - "description": "Run seeders" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - }, - "migration:fresh": { - "settings": { - "loadApp": true - }, - "commandPath": "@adonisjs/lucid/build/commands/Migration/Fresh", - "commandName": "migration:fresh", - "description": "Drop all tables and re-migrate the database", - "args": [], - "aliases": [], - "flags": [ - { - "name": "connection", - "propertyName": "connection", - "type": "string", - "description": "Define a custom database connection", - "alias": "c" - }, - { - "name": "force", - "propertyName": "force", - "type": "boolean", - "description": "Explicitly force command to run in production" - }, - { - "name": "seed", - "propertyName": "seed", - "type": "boolean", - "description": "Run seeders" - }, - { - "name": "drop-views", - "propertyName": "dropViews", - "type": "boolean", - "description": "Drop all views" - }, - { - "name": "drop-types", - "propertyName": "dropTypes", - "type": "boolean", - "description": "Drop all custom types (Postgres only)" - }, - { - "name": "disable-locks", - "propertyName": "disableLocks", - "type": "boolean", - "description": "Disable locks acquired to run migrations safely" - } - ] - } - }, - "aliases": {} -} diff --git a/build/app/Exceptions/Handler.js b/build/app/Exceptions/Handler.js deleted file mode 100644 index 2d0c6952..00000000 --- a/build/app/Exceptions/Handler.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Logger_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Logger")); -const HttpExceptionHandler_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/HttpExceptionHandler")); -class ExceptionHandler extends HttpExceptionHandler_1.default { - constructor() { - super(Logger_1.default); - this.statusPages = { - '403': 'errors/unauthorized', - '404': 'errors/not-found', - '500..599': 'errors/server-error', - }; - } -} -exports.default = ExceptionHandler; -//# sourceMappingURL=Handler.js.map \ No newline at end of file diff --git a/build/app/Exceptions/Handler.js.map b/build/app/Exceptions/Handler.js.map deleted file mode 100644 index 4e624a93..00000000 --- a/build/app/Exceptions/Handler.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../../../app/Exceptions/Handler.ts"],"names":[],"mappings":";;;;;AAeA,sFAA4C;AAC5C,kHAAwE;AAExE,MAAqB,gBAAiB,SAAQ,8BAAoB;IAOhE;QACE,KAAK,CAAC,gBAAM,CAAC,CAAA;QAPL,gBAAW,GAAG;YACtB,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,qBAAqB;SAClC,CAAA;IAID,CAAC;CACF;AAVD,mCAUC"} \ No newline at end of file diff --git a/build/app/Middleware/Auth.js b/build/app/Middleware/Auth.js deleted file mode 100644 index 2e90d9e0..00000000 --- a/build/app/Middleware/Auth.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const standalone_1 = require("@adonisjs/auth/build/standalone"); -class AuthMiddleware { - constructor() { - this.redirectTo = '/login'; - } - async authenticate(auth, guards) { - let guardLastAttempted; - for (let guard of guards) { - guardLastAttempted = guard; - if (await auth.use(guard).check()) { - auth.defaultGuard = guard; - return true; - } - } - throw new standalone_1.AuthenticationException('Unauthorized access', 'E_UNAUTHORIZED_ACCESS', guardLastAttempted, this.redirectTo); - } - async handle({ auth }, next, customGuards) { - const guards = customGuards.length ? customGuards : [auth.name]; - await this.authenticate(auth, guards); - await next(); - } -} -exports.default = AuthMiddleware; -//# sourceMappingURL=Auth.js.map \ No newline at end of file diff --git a/build/app/Middleware/Auth.js.map b/build/app/Middleware/Auth.js.map deleted file mode 100644 index a479946d..00000000 --- a/build/app/Middleware/Auth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../../app/Middleware/Auth.ts"],"names":[],"mappings":";;AAAA,gEAAyE;AAWzE,MAAqB,cAAc;IAAnC;QAIY,eAAU,GAAG,QAAQ,CAAA;IA4DjC,CAAC;IAlDW,KAAK,CAAC,YAAY,CAAC,IAAiC,EAAE,MAA4B;QAO1F,IAAI,kBAAsC,CAAA;QAE1C,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACxB,kBAAkB,GAAG,KAAK,CAAA;YAE1B,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAMjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;gBACzB,OAAO,IAAI,CAAA;aACZ;SACF;QAKD,MAAM,IAAI,oCAAuB,CAC/B,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,IAAI,CAAC,UAAU,CAChB,CAAA;IACH,CAAC;IAKM,KAAK,CAAC,MAAM,CACjB,EAAE,IAAI,EAAuB,EAC7B,IAAyB,EACzB,YAAkC;QAMlC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACrC,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;CACF;AAhED,iCAgEC"} \ No newline at end of file diff --git a/build/app/Middleware/SilentAuth.js b/build/app/Middleware/SilentAuth.js deleted file mode 100644 index 7d4c957f..00000000 --- a/build/app/Middleware/SilentAuth.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -class SilentAuthMiddleware { - async handle({ auth }, next) { - await auth.check(); - await next(); - } -} -exports.default = SilentAuthMiddleware; -//# sourceMappingURL=SilentAuth.js.map \ No newline at end of file diff --git a/build/app/Middleware/SilentAuth.js.map b/build/app/Middleware/SilentAuth.js.map deleted file mode 100644 index 9a364285..00000000 --- a/build/app/Middleware/SilentAuth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SilentAuth.js","sourceRoot":"","sources":["../../../app/Middleware/SilentAuth.ts"],"names":[],"mappings":";;AAQA,MAAqB,oBAAoB;IAIhC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAuB,EAAE,IAAyB;QAK1E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;CACF;AAZD,uCAYC"} \ No newline at end of file diff --git a/build/app/Models/User.js b/build/app/Models/User.js deleted file mode 100644 index 31f8a718..00000000 --- a/build/app/Models/User.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const luxon_1 = require("luxon"); -const Hash_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Hash")); -const Orm_1 = global[Symbol.for('ioc.use')]("Adonis/Lucid/Orm"); -class User extends Orm_1.BaseModel { - static async hashPassword(user) { - if (user.$dirty.password) { - user.password = await Hash_1.default.make(user.password); - } - } -} -__decorate([ - (0, Orm_1.column)({ isPrimary: true }), - __metadata("design:type", Number) -], User.prototype, "id", void 0); -__decorate([ - (0, Orm_1.column)(), - __metadata("design:type", String) -], User.prototype, "pseudo", void 0); -__decorate([ - (0, Orm_1.column)(), - __metadata("design:type", String) -], User.prototype, "email", void 0); -__decorate([ - (0, Orm_1.column)({ serializeAs: null }), - __metadata("design:type", String) -], User.prototype, "password", void 0); -__decorate([ - (0, Orm_1.column)(), - __metadata("design:type", Object) -], User.prototype, "rememberMeToken", void 0); -__decorate([ - Orm_1.column.dateTime({ autoCreate: true }), - __metadata("design:type", luxon_1.DateTime) -], User.prototype, "createdAt", void 0); -__decorate([ - Orm_1.column.dateTime({ autoCreate: true, autoUpdate: true }), - __metadata("design:type", luxon_1.DateTime) -], User.prototype, "updatedAt", void 0); -__decorate([ - (0, Orm_1.beforeSave)(), - __metadata("design:type", Function), - __metadata("design:paramtypes", [User]), - __metadata("design:returntype", Promise) -], User, "hashPassword", null); -exports.default = User; -//# sourceMappingURL=User.js.map \ No newline at end of file diff --git a/build/app/Models/User.js.map b/build/app/Models/User.js.map deleted file mode 100644 index 1d50c126..00000000 --- a/build/app/Models/User.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../app/Models/User.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iCAAgC;AAChC,kFAAwC;AACxC,gEAAqE;AAErE,MAAqB,IAAK,SAAQ,eAAS;IAuBlC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAE,IAAU;QAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SAC/C;IACH,CAAC;CACF;AA1BC;IADC,IAAA,YAAM,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;gCACX;AAGjB;IADC,IAAA,YAAM,GAAE;;oCACY;AAGrB;IADC,IAAA,YAAM,GAAE;;mCACW;AAGpB;IADC,IAAA,YAAM,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;sCACP;AAGvB;IADC,IAAA,YAAM,GAAE;;6CAC4B;AAGrC;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACpB,gBAAQ;uCAAA;AAG1B;IADC,YAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;8BACtC,gBAAQ;uCAAA;AAG1B;IADC,IAAA,gBAAU,GAAE;;qCAC2B,IAAI;;8BAI3C;AA3BH,uBA4BC"} \ No newline at end of file diff --git a/build/app/Validators/CreateUserValidator.js b/build/app/Validators/CreateUserValidator.js deleted file mode 100644 index 65262dc3..00000000 --- a/build/app/Validators/CreateUserValidator.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const Validator_1 = global[Symbol.for('ioc.use')]("Adonis/Core/Validator"); -class CreateUserValidator { - constructor(ctx) { - this.ctx = ctx; - this.schema = Validator_1.schema.create({ - pseudo: Validator_1.schema.string(), - email: Validator_1.schema.string({}, [Validator_1.rules.email(), Validator_1.rules.unique({ table: 'users', column: 'email' })]), - password: Validator_1.schema.string({}, [Validator_1.rules.minLength(4), Validator_1.rules.confirmed()]) - }); - this.messages = { - required: 'The {{ field }} is required to create a new account', - 'email.email': 'Vous devez saisir un email dans le champ email', - 'email.unique': 'Email is already in use', - 'password.minLength': 'The password must be at least 4 characters long' - }; - } -} -exports.default = CreateUserValidator; -//# sourceMappingURL=CreateUserValidator.js.map \ No newline at end of file diff --git a/build/app/Validators/CreateUserValidator.js.map b/build/app/Validators/CreateUserValidator.js.map deleted file mode 100644 index cd27e5e3..00000000 --- a/build/app/Validators/CreateUserValidator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CreateUserValidator.js","sourceRoot":"","sources":["../../../app/Validators/CreateUserValidator.ts"],"names":[],"mappings":";;AAAA,2EAA0E;AAG1E,MAAqB,mBAAmB;IACtC,YAAsB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;QAqBvC,WAAM,GAAG,kBAAM,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,kBAAM,CAAC,MAAM,EAAE;YACvB,KAAK,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,KAAK,EAAE,EAAE,iBAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAE,CAAC;YAC7F,QAAQ,EAAE,kBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAK,CAAC,SAAS,EAAE,CAAE,CAAC;SACtE,CAAC,CAAA;QAaK,aAAQ,GAAmB;YAChC,QAAQ,EAAE,qDAAqD;YAC/D,aAAa,EAAE,gDAAgD;YAC/D,cAAc,EAAE,yBAAyB;YACzC,oBAAoB,EAAE,iDAAiD;SACxE,CAAA;IA3CgD,CAAC;CA4CnD;AA7CD,sCA6CC"} \ No newline at end of file diff --git a/build/commands/index.js b/build/commands/index.js deleted file mode 100644 index e61f87b1..00000000 --- a/build/commands/index.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const standalone_1 = require("@adonisjs/core/build/standalone"); -const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); -exports.default = (0, standalone_1.listDirectoryFiles)(__dirname, Application_1.default.appRoot, ['./commands/index']); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/commands/index.js.map b/build/commands/index.js.map deleted file mode 100644 index 48574fc4..00000000 --- a/build/commands/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../commands/index.ts"],"names":[],"mappings":";;;;;AAAA,gEAAoE;AACpE,gGAAsD;AAiBtD,kBAAe,IAAA,+BAAkB,EAAC,SAAS,EAAE,qBAAW,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/build/config/app.js b/build/config/app.js deleted file mode 100644 index 552f6315..00000000 --- a/build/config/app.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.assets = exports.validator = exports.profiler = exports.logger = exports.http = exports.appKey = void 0; -const proxy_addr_1 = __importDefault(require("proxy-addr")); -const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); -const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); -exports.appKey = Env_1.default.get('APP_KEY'); -exports.http = { - allowMethodSpoofing: false, - subdomainOffset: 2, - generateRequestId: false, - trustProxy: proxy_addr_1.default.compile('loopback'), - etag: false, - jsonpCallbackName: 'callback', - cookie: { - domain: '', - path: '/', - maxAge: '2h', - httpOnly: true, - secure: false, - sameSite: false, - }, -}; -exports.logger = { - name: Env_1.default.get('APP_NAME'), - enabled: true, - level: Env_1.default.get('LOG_LEVEL', 'info'), - prettyPrint: Env_1.default.get('NODE_ENV') === 'development', -}; -exports.profiler = { - enabled: true, - blacklist: [], - whitelist: [], -}; -exports.validator = {}; -exports.assets = { - driver: Env_1.default.get('ASSETS_DRIVER'), - publicPath: Application_1.default.publicPath('assets'), - script: { - attributes: { - defer: true, - }, - }, - style: { - attributes: {}, - }, -}; -//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/build/config/app.js.map b/build/config/app.js.map deleted file mode 100644 index 92b30a6b..00000000 --- a/build/config/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../../config/app.ts"],"names":[],"mappings":";;;;;;AAOA,4DAAkC;AAClC,gFAAsC;AACtC,gGAAsD;AAoBzC,QAAA,MAAM,GAAW,aAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAWnC,QAAA,IAAI,GAAiB;IAYhC,mBAAmB,EAAE,KAAK;IAO1B,eAAe,EAAE,CAAC;IAWlB,iBAAiB,EAAE,KAAK;IAWxB,UAAU,EAAE,oBAAS,CAAC,OAAO,CAAC,UAAU,CAAC;IAUzC,IAAI,EAAE,KAAK;IAOX,iBAAiB,EAAE,UAAU;IAO7B,MAAM,EAAE;QACN,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;CACF,CAAA;AAOY,QAAA,MAAM,GAAiB;IAalC,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,UAAU,CAAC;IAUzB,OAAO,EAAE,IAAI;IAYb,KAAK,EAAE,aAAG,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;IAWnC,WAAW,EAAE,aAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,aAAa;CACnD,CAAA;AAOY,QAAA,QAAQ,GAAmB;IAStC,OAAO,EAAE,IAAI;IAWb,SAAS,EAAE,EAAE;IAWb,SAAS,EAAE,EAAE;CACd,CAAA;AAWY,QAAA,SAAS,GAAoB,EAAE,CAAA;AAU/B,QAAA,MAAM,GAAwB;IAUzC,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,eAAe,CAAC;IAWhC,UAAU,EAAE,qBAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;IAU5C,MAAM,EAAE;QACN,UAAU,EAAE;YACV,KAAK,EAAE,IAAI;SACZ;KACF;IAUD,KAAK,EAAE;QACL,UAAU,EAAE,EAAE;KACf;CACF,CAAA"} \ No newline at end of file diff --git a/build/config/auth.js b/build/config/auth.js deleted file mode 100644 index 78bf1fa7..00000000 --- a/build/config/auth.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const authConfig = { - guard: 'web', - guards: { - web: { - driver: 'session', - provider: { - driver: 'lucid', - identifierKey: 'id', - uids: ['email'], - model: () => Promise.resolve().then(() => __importStar(global[Symbol.for('ioc.use')]('App/Models/User'))), - }, - }, - }, -}; -exports.default = authConfig; -//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/build/config/auth.js.map b/build/config/auth.js.map deleted file mode 100644 index 61a7424b..00000000 --- a/build/config/auth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../config/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,UAAU,GAAe;IAC7B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QAWN,GAAG,EAAE;YACH,MAAM,EAAE,SAAS;YAEjB,QAAQ,EAAE;gBASR,MAAM,EAAE,OAAO;gBAWf,aAAa,EAAE,IAAI;gBAYnB,IAAI,EAAE,CAAC,OAAO,CAAC;gBAaf,KAAK,EAAE,GAAG,EAAE,yEAAQ,iBAAiB,GAAC;aACvC;SACF;KACF;CACF,CAAA;AAED,kBAAe,UAAU,CAAA"} \ No newline at end of file diff --git a/build/config/bodyparser.js b/build/config/bodyparser.js deleted file mode 100644 index 09f04ebb..00000000 --- a/build/config/bodyparser.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const bodyParserConfig = { - whitelistedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], - json: { - encoding: 'utf-8', - limit: '1mb', - strict: true, - types: [ - 'application/json', - 'application/json-patch+json', - 'application/vnd.api+json', - 'application/csp-report', - ], - }, - form: { - encoding: 'utf-8', - limit: '1mb', - queryString: {}, - convertEmptyStringsToNull: true, - types: ['application/x-www-form-urlencoded'], - }, - raw: { - encoding: 'utf-8', - limit: '1mb', - queryString: {}, - types: ['text/*'], - }, - multipart: { - autoProcess: true, - processManually: [], - encoding: 'utf-8', - convertEmptyStringsToNull: true, - maxFields: 1000, - limit: '20mb', - types: ['multipart/form-data'], - }, -}; -exports.default = bodyParserConfig; -//# sourceMappingURL=bodyparser.js.map \ No newline at end of file diff --git a/build/config/bodyparser.js.map b/build/config/bodyparser.js.map deleted file mode 100644 index 437b4695..00000000 --- a/build/config/bodyparser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bodyparser.js","sourceRoot":"","sources":["../../config/bodyparser.ts"],"names":[],"mappings":";;AASA,MAAM,gBAAgB,GAAqB;IAUzC,kBAAkB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAWtD,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE;YACL,kBAAkB;YAClB,6BAA6B;YAC7B,0BAA0B;YAC1B,wBAAwB;SACzB;KACF;IAWD,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,EAAE;QAYf,yBAAyB,EAAE,IAAI;QAE/B,KAAK,EAAE,CAAC,mCAAmC,CAAC;KAC7C;IAYD,GAAG,EAAE;QACH,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,CAAC,QAAQ,CAAC;KAClB;IAWD,SAAS,EAAE;QAcT,WAAW,EAAE,IAAI;QAsBjB,eAAe,EAAE,EAAE;QAuBnB,QAAQ,EAAE,OAAO;QAYjB,yBAAyB,EAAE,IAAI;QAW/B,SAAS,EAAE,IAAI;QAWf,KAAK,EAAE,MAAM;QAUb,KAAK,EAAE,CAAC,qBAAqB,CAAC;KAC/B;CACF,CAAA;AAED,kBAAe,gBAAgB,CAAA"} \ No newline at end of file diff --git a/build/config/cors.js b/build/config/cors.js deleted file mode 100644 index 0c4120ed..00000000 --- a/build/config/cors.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const corsConfig = { - enabled: false, - origin: true, - methods: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'], - headers: true, - exposeHeaders: [ - 'cache-control', - 'content-language', - 'content-type', - 'expires', - 'last-modified', - 'pragma', - ], - credentials: true, - maxAge: 90, -}; -exports.default = corsConfig; -//# sourceMappingURL=cors.js.map \ No newline at end of file diff --git a/build/config/cors.js.map b/build/config/cors.js.map deleted file mode 100644 index 8d149c01..00000000 --- a/build/config/cors.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../config/cors.ts"],"names":[],"mappings":";;AASA,MAAM,UAAU,GAAe;IAa7B,OAAO,EAAE,KAAK;IAwBd,MAAM,EAAE,IAAI;IAYZ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;IAmBjD,OAAO,EAAE,IAAI;IAsBb,aAAa,EAAE;QACb,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,SAAS;QACT,eAAe;QACf,QAAQ;KACT;IAaD,WAAW,EAAE,IAAI;IAWjB,MAAM,EAAE,EAAE;CACX,CAAA;AAED,kBAAe,UAAU,CAAA"} \ No newline at end of file diff --git a/build/config/database.js b/build/config/database.js deleted file mode 100644 index 59f3ff5b..00000000 --- a/build/config/database.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); -const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); -const databaseConfig = { - connection: Env_1.default.get('DB_CONNECTION'), - connections: { - sqlite: { - client: 'sqlite', - connection: { - filename: Application_1.default.tmpPath('db.sqlite3'), - }, - pool: { - afterCreate: (conn, cb) => { - conn.run('PRAGMA foreign_keys=true', cb); - } - }, - migrations: { - naturalSort: true, - }, - useNullAsDefault: true, - healthCheck: false, - debug: false, - }, - } -}; -exports.default = databaseConfig; -//# sourceMappingURL=database.js.map \ No newline at end of file diff --git a/build/config/database.js.map b/build/config/database.js.map deleted file mode 100644 index 584f6db7..00000000 --- a/build/config/database.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"database.js","sourceRoot":"","sources":["../../config/database.ts"],"names":[],"mappings":";;;;;AAOA,gFAAsC;AACtC,gGAAsD;AAGtD,MAAM,cAAc,GAAmB;IAWrC,UAAU,EAAE,aAAG,CAAC,GAAG,CAAC,eAAe,CAAC;IAEpC,WAAW,EAAE;QAYX,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE;gBACV,QAAQ,EAAE,qBAAW,CAAC,OAAO,CAAC,YAAY,CAAC;aAC5C;YACD,IAAI,EAAE;gBACJ,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;oBACxB,IAAI,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;gBAC1C,CAAC;aACF;YACD,UAAU,EAAE;gBACV,WAAW,EAAE,IAAI;aAClB;YACD,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,KAAK;SACb;KAEF;CACF,CAAA;AAED,kBAAe,cAAc,CAAA"} \ No newline at end of file diff --git a/build/config/drive.js b/build/config/drive.js deleted file mode 100644 index f1c36028..00000000 --- a/build/config/drive.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); -const config_1 = require("@adonisjs/core/build/config"); -const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); -exports.default = (0, config_1.driveConfig)({ - disk: Env_1.default.get('DRIVE_DISK'), - disks: { - local: { - driver: 'local', - visibility: 'public', - root: Application_1.default.tmpPath('uploads'), - serveFiles: true, - basePath: '/uploads', - }, - }, -}); -//# sourceMappingURL=drive.js.map \ No newline at end of file diff --git a/build/config/drive.js.map b/build/config/drive.js.map deleted file mode 100644 index 7a010d7f..00000000 --- a/build/config/drive.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../config/drive.ts"],"names":[],"mappings":";;;;;AAOA,gFAAsC;AACtC,wDAAyD;AACzD,gGAAsD;AAWtD,kBAAe,IAAA,oBAAW,EAAC;IAUzB,IAAI,EAAE,aAAG,CAAC,GAAG,CAAC,YAAY,CAAC;IAE3B,KAAK,EAAE;QAUL,KAAK,EAAE;YACL,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,QAAQ;YAWpB,IAAI,EAAE,qBAAW,CAAC,OAAO,CAAC,SAAS,CAAC;YAYpC,UAAU,EAAE,IAAI;YAYhB,QAAQ,EAAE,UAAU;SACrB;KAmEF;CACF,CAAC,CAAA"} \ No newline at end of file diff --git a/build/config/hash.js b/build/config/hash.js deleted file mode 100644 index 1865b26b..00000000 --- a/build/config/hash.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); -const config_1 = require("@adonisjs/core/build/config"); -exports.default = (0, config_1.hashConfig)({ - default: Env_1.default.get('HASH_DRIVER', 'scrypt'), - list: { - scrypt: { - driver: 'scrypt', - cost: 16384, - blockSize: 8, - parallelization: 1, - saltSize: 16, - keyLength: 64, - maxMemory: 32 * 1024 * 1024, - }, - argon: { - driver: 'argon2', - variant: 'id', - iterations: 3, - memory: 4096, - parallelism: 1, - saltSize: 16, - }, - bcrypt: { - driver: 'bcrypt', - rounds: 10, - }, - }, -}); -//# sourceMappingURL=hash.js.map \ No newline at end of file diff --git a/build/config/hash.js.map b/build/config/hash.js.map deleted file mode 100644 index 689af119..00000000 --- a/build/config/hash.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../config/hash.ts"],"names":[],"mappings":";;;;;AAOA,gFAAsC;AACtC,wDAAwD;AAWxD,kBAAe,IAAA,mBAAU,EAAC;IAUxB,OAAO,EAAE,aAAG,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;IAEzC,IAAI,EAAE;QAcJ,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B;QAeD,KAAK,EAAE;YACL,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,EAAE;SACb;QAeD,MAAM,EAAE;YACN,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAA"} \ No newline at end of file diff --git a/build/config/session.js b/build/config/session.js deleted file mode 100644 index 5b96e552..00000000 --- a/build/config/session.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); -const Application_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Application")); -const config_1 = require("@adonisjs/session/build/config"); -exports.default = (0, config_1.sessionConfig)({ - enabled: true, - driver: Env_1.default.get('SESSION_DRIVER'), - cookieName: 'adonis-session', - clearWithBrowser: false, - age: '2h', - cookie: { - path: '/', - httpOnly: true, - sameSite: false, - }, - file: { - location: Application_1.default.tmpPath('sessions'), - }, - redisConnection: 'local', -}); -//# sourceMappingURL=session.js.map \ No newline at end of file diff --git a/build/config/session.js.map b/build/config/session.js.map deleted file mode 100644 index 0865ade1..00000000 --- a/build/config/session.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"session.js","sourceRoot":"","sources":["../../config/session.ts"],"names":[],"mappings":";;;;;AAOA,gFAAsC;AACtC,gGAAsD;AACtD,2DAA8D;AAE9D,kBAAe,IAAA,sBAAa,EAAC;IAU3B,OAAO,EAAE,IAAI;IAiBb,MAAM,EAAE,aAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAUjC,UAAU,EAAE,gBAAgB;IAW5B,gBAAgB,EAAE,KAAK;IAgBvB,GAAG,EAAE,IAAI;IAWT,MAAM,EAAE;QACN,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;KAChB;IAWD,IAAI,EAAE;QACJ,QAAQ,EAAE,qBAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KAC1C;IAWD,eAAe,EAAE,OAAO;CACzB,CAAC,CAAA"} \ No newline at end of file diff --git a/build/config/session.ts b/build/config/session.ts deleted file mode 100644 index 3d359ccd..00000000 --- a/build/config/session.ts +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Config source: https://git.io/JeYHp - * - * Feel free to let us know via PR, if you find something broken in this config - * file. - */ - -import Env from '@ioc:Adonis/Core/Env' -import Application from '@ioc:Adonis/Core/Application' -import { sessionConfig } from '@adonisjs/session/build/config' - -export default sessionConfig({ - /* - |-------------------------------------------------------------------------- - | Enable/Disable sessions - |-------------------------------------------------------------------------- - | - | Setting the following property to "false" will disable the session for the - | entire application - | - */ - enabled: true, - - /* - |-------------------------------------------------------------------------- - | Driver - |-------------------------------------------------------------------------- - | - | The session driver to use. You can choose between one of the following - | drivers. - | - | - cookie (Uses signed cookies to store session values) - | - file (Uses filesystem to store session values) - | - redis (Uses redis. Make sure to install "@adonisjs/redis" as well) - | - | Note: Switching drivers will make existing sessions invalid. - | - */ - driver: Env.get('SESSION_DRIVER'), - - /* - |-------------------------------------------------------------------------- - | Cookie name - |-------------------------------------------------------------------------- - | - | The name of the cookie that will hold the session id. - | - */ - cookieName: 'adonis-session', - - /* - |-------------------------------------------------------------------------- - | Clear session when browser closes - |-------------------------------------------------------------------------- - | - | Whether or not you want to destroy the session when browser closes. Setting - | this value to `true` will ignore the `age`. - | - */ - clearWithBrowser: false, - - /* - |-------------------------------------------------------------------------- - | Session age - |-------------------------------------------------------------------------- - | - | The duration for which session stays active after no activity. A new HTTP - | request to the server is considered as activity. - | - | The value can be a number in milliseconds or a string that must be valid - | as per https://npmjs.org/package/ms package. - | - | Example: `2 days`, `2.5 hrs`, `1y`, `5s` and so on. - | - */ - age: '2h', - - /* - |-------------------------------------------------------------------------- - | Cookie values - |-------------------------------------------------------------------------- - | - | The cookie settings are used to setup the session id cookie and also the - | driver will use the same values. - | - */ - cookie: { - path: '/', - httpOnly: true, - sameSite: false, - }, - - /* - |-------------------------------------------------------------------------- - | Configuration for the file driver - |-------------------------------------------------------------------------- - | - | The file driver needs absolute path to the directory in which sessions - | must be stored. - | - */ - file: { - location: Application.tmpPath('sessions'), - }, - - /* - |-------------------------------------------------------------------------- - | Redis driver - |-------------------------------------------------------------------------- - | - | The redis connection you want session driver to use. The same connection - | must be defined inside `config/redis.ts` file as well. - | - */ - redisConnection: 'local', -}) diff --git a/build/config/shield.js b/build/config/shield.js deleted file mode 100644 index d7cf2da4..00000000 --- a/build/config/shield.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.contentTypeSniffing = exports.hsts = exports.xFrame = exports.dnsPrefetch = exports.csrf = exports.csp = void 0; -exports.csp = { - enabled: false, - directives: {}, - reportOnly: false, -}; -exports.csrf = { - enabled: true, - exceptRoutes: [], - enableXsrfCookie: true, - methods: ['POST', 'PUT', 'PATCH', 'DELETE'], -}; -exports.dnsPrefetch = { - enabled: true, - allow: true, -}; -exports.xFrame = { - enabled: true, - action: 'DENY', -}; -exports.hsts = { - enabled: true, - maxAge: '180 days', - includeSubDomains: true, - preload: false, -}; -exports.contentTypeSniffing = { - enabled: true, -}; -//# sourceMappingURL=shield.js.map \ No newline at end of file diff --git a/build/config/shield.js.map b/build/config/shield.js.map deleted file mode 100644 index 9d8619b3..00000000 --- a/build/config/shield.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../config/shield.ts"],"names":[],"mappings":";;;AAkBa,QAAA,GAAG,GAAwB;IAStC,OAAO,EAAE,KAAK;IAkBd,UAAU,EAAE,EAAE;IAWd,UAAU,EAAE,KAAK;CAClB,CAAA;AAWY,QAAA,IAAI,GAAyB;IAMxC,OAAO,EAAE,IAAI;IAmBb,YAAY,EAAE,EAAE;IAgBhB,gBAAgB,EAAE,IAAI;IAUtB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;CAC5C,CAAA;AAaY,QAAA,WAAW,GAAgC;IAMtD,OAAO,EAAE,IAAI;IAcb,KAAK,EAAE,IAAI;CACZ,CAAA;AAgBY,QAAA,MAAM,GAA2B;IAC5C,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,MAAM;CACf,CAAA;AAaY,QAAA,IAAI,GAAyB;IACxC,OAAO,EAAE,IAAI;IAUb,MAAM,EAAE,UAAU;IAUlB,iBAAiB,EAAE,IAAI;IAWvB,OAAO,EAAE,KAAK;CACf,CAAA;AAcY,QAAA,mBAAmB,GAAwC;IACtE,OAAO,EAAE,IAAI;CACd,CAAA"} \ No newline at end of file diff --git a/build/config/static.js b/build/config/static.js deleted file mode 100644 index aaada81f..00000000 --- a/build/config/static.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const staticConfig = { - enabled: true, - dotFiles: 'ignore', - etag: true, - lastModified: true, - maxAge: 0, - immutable: false, -}; -exports.default = staticConfig; -//# sourceMappingURL=static.js.map \ No newline at end of file diff --git a/build/config/static.js.map b/build/config/static.js.map deleted file mode 100644 index 6d2dd2bd..00000000 --- a/build/config/static.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static.js","sourceRoot":"","sources":["../../config/static.ts"],"names":[],"mappings":";;AASA,MAAM,YAAY,GAAiB;IAajC,OAAO,EAAE,IAAI;IAgBb,QAAQ,EAAE,QAAQ;IAWlB,IAAI,EAAE,IAAI;IAWV,YAAY,EAAE,IAAI;IAalB,MAAM,EAAE,CAAC;IAYT,SAAS,EAAE,KAAK;CACjB,CAAA;AAED,kBAAe,YAAY,CAAA"} \ No newline at end of file diff --git a/build/contracts/auth.js b/build/contracts/auth.js deleted file mode 100644 index 1bf08174..00000000 --- a/build/contracts/auth.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=auth.js.map \ No newline at end of file diff --git a/build/contracts/auth.js.map b/build/contracts/auth.js.map deleted file mode 100644 index 208c50fb..00000000 --- a/build/contracts/auth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../contracts/auth.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/drive.js b/build/contracts/drive.js deleted file mode 100644 index d977609f..00000000 --- a/build/contracts/drive.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=drive.js.map \ No newline at end of file diff --git a/build/contracts/drive.js.map b/build/contracts/drive.js.map deleted file mode 100644 index 4c24673d..00000000 --- a/build/contracts/drive.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"drive.js","sourceRoot":"","sources":["../../contracts/drive.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/env.js b/build/contracts/env.js deleted file mode 100644 index 1c45e331..00000000 --- a/build/contracts/env.js +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/build/contracts/env.js.map b/build/contracts/env.js.map deleted file mode 100644 index b46d3d41..00000000 --- a/build/contracts/env.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"env.js","sourceRoot":"","sources":["../../contracts/env.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/events.js b/build/contracts/events.js deleted file mode 100644 index 6bee6c46..00000000 --- a/build/contracts/events.js +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=events.js.map \ No newline at end of file diff --git a/build/contracts/events.js.map b/build/contracts/events.js.map deleted file mode 100644 index 1383ffe3..00000000 --- a/build/contracts/events.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"events.js","sourceRoot":"","sources":["../../contracts/events.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/hash.js b/build/contracts/hash.js deleted file mode 100644 index 6032c199..00000000 --- a/build/contracts/hash.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=hash.js.map \ No newline at end of file diff --git a/build/contracts/hash.js.map b/build/contracts/hash.js.map deleted file mode 100644 index d3cf71ba..00000000 --- a/build/contracts/hash.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../contracts/hash.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/contracts/tests.js b/build/contracts/tests.js deleted file mode 100644 index 6c041c7a..00000000 --- a/build/contracts/tests.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -require("@japa/runner"); -//# sourceMappingURL=tests.js.map \ No newline at end of file diff --git a/build/contracts/tests.js.map b/build/contracts/tests.js.map deleted file mode 100644 index 836e0fce..00000000 --- a/build/contracts/tests.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../contracts/tests.ts"],"names":[],"mappings":";;AAOA,wBAAqB"} \ No newline at end of file diff --git a/build/database/factories/index.js b/build/database/factories/index.js deleted file mode 100644 index 8332f84c..00000000 --- a/build/database/factories/index.js +++ /dev/null @@ -1 +0,0 @@ -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/database/factories/index.js.map b/build/database/factories/index.js.map deleted file mode 100644 index eeb9b1df..00000000 --- a/build/database/factories/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../database/factories/index.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/build/database/migrations/1698786769334_users.js b/build/database/migrations/1698786769334_users.js deleted file mode 100644 index 6dd39723..00000000 --- a/build/database/migrations/1698786769334_users.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Schema_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Lucid/Schema")); -class default_1 extends Schema_1.default { - constructor() { - super(...arguments); - this.tableName = 'users'; - } - async up() { - this.schema.createTable(this.tableName, (table) => { - table.increments('id').primary(); - table.string('pseudo', 50).notNullable; - table.string('email', 255).notNullable().unique(); - table.string('password', 180).notNullable(); - table.string('remember_me_token').nullable(); - table.timestamp('created_at', { useTz: true }).notNullable(); - table.timestamp('updated_at', { useTz: true }).notNullable(); - }); - } - async down() { - this.schema.dropTable(this.tableName); - } -} -exports.default = default_1; -//# sourceMappingURL=1698786769334_users.js.map \ No newline at end of file diff --git a/build/database/migrations/1698786769334_users.js.map b/build/database/migrations/1698786769334_users.js.map deleted file mode 100644 index 983fe442..00000000 --- a/build/database/migrations/1698786769334_users.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"1698786769334_users.js","sourceRoot":"","sources":["../../../database/migrations/1698786769334_users.ts"],"names":[],"mappings":";;;;;AAAA,uFAAiD;AAEjD,eAAqB,SAAQ,gBAAU;IAAvC;;QACY,cAAS,GAAG,OAAO,CAAA;IAiB/B,CAAC;IAfQ,KAAK,CAAC,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAChD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;YAChC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,CAAA;YACtC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAA;YACjD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;YAC3C,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAA;YAC5C,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;YAC5D,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC;CACF;AAlBD,4BAkBC"} \ No newline at end of file diff --git a/build/env.js b/build/env.js deleted file mode 100644 index 319fde1b..00000000 --- a/build/env.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const Env_1 = __importDefault(global[Symbol.for('ioc.use')]("Adonis/Core/Env")); -exports.default = Env_1.default.rules({ - HOST: Env_1.default.schema.string({ format: 'host' }), - PORT: Env_1.default.schema.number(), - APP_KEY: Env_1.default.schema.string(), - APP_NAME: Env_1.default.schema.string(), - CACHE_VIEWS: Env_1.default.schema.boolean(), - SESSION_DRIVER: Env_1.default.schema.string(), - DRIVE_DISK: Env_1.default.schema.enum(['local']), - NODE_ENV: Env_1.default.schema.enum(['development', 'production', 'test']), -}); -//# sourceMappingURL=env.js.map \ No newline at end of file diff --git a/build/env.js.map b/build/env.js.map deleted file mode 100644 index 21ff4797..00000000 --- a/build/env.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"env.js","sourceRoot":"","sources":["../env.ts"],"names":[],"mappings":";;;;;AAcA,gFAAsC;AAEtC,kBAAe,aAAG,CAAC,KAAK,CAAC;IACvB,IAAI,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3C,IAAI,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC5B,QAAQ,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,CAAC,OAAO,EAAE;IACjC,cAAc,EAAE,aAAG,CAAC,MAAM,CAAC,MAAM,EAAE;IACnC,UAAU,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAU,CAAC;IAC/C,QAAQ,EAAE,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;CAC1E,CAAC,CAAA"} \ No newline at end of file diff --git a/build/node_modules/.bin/acorn b/build/node_modules/.bin/acorn deleted file mode 100644 index 46a3e61a..00000000 --- a/build/node_modules/.bin/acorn +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" -else - exec node "$basedir/../acorn/bin/acorn" "$@" -fi diff --git a/build/node_modules/.bin/acorn.cmd b/build/node_modules/.bin/acorn.cmd deleted file mode 100644 index a9324df9..00000000 --- a/build/node_modules/.bin/acorn.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* diff --git a/build/node_modules/.bin/acorn.ps1 b/build/node_modules/.bin/acorn.ps1 deleted file mode 100644 index 6f6dcddf..00000000 --- a/build/node_modules/.bin/acorn.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args - } else { - & "node$exe" "$basedir/../acorn/bin/acorn" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/ansi-html b/build/node_modules/.bin/ansi-html deleted file mode 100644 index 70835657..00000000 --- a/build/node_modules/.bin/ansi-html +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../ansi-html-community/bin/ansi-html" "$@" -else - exec node "$basedir/../ansi-html-community/bin/ansi-html" "$@" -fi diff --git a/build/node_modules/.bin/ansi-html.cmd b/build/node_modules/.bin/ansi-html.cmd deleted file mode 100644 index 5777d6f8..00000000 --- a/build/node_modules/.bin/ansi-html.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ansi-html-community\bin\ansi-html" %* diff --git a/build/node_modules/.bin/ansi-html.ps1 b/build/node_modules/.bin/ansi-html.ps1 deleted file mode 100644 index f4bc43c0..00000000 --- a/build/node_modules/.bin/ansi-html.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../ansi-html-community/bin/ansi-html" $args - } else { - & "$basedir/node$exe" "$basedir/../ansi-html-community/bin/ansi-html" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../ansi-html-community/bin/ansi-html" $args - } else { - & "node$exe" "$basedir/../ansi-html-community/bin/ansi-html" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/astring b/build/node_modules/.bin/astring deleted file mode 100644 index f35c8ee8..00000000 --- a/build/node_modules/.bin/astring +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../astring/bin/astring" "$@" -else - exec node "$basedir/../astring/bin/astring" "$@" -fi diff --git a/build/node_modules/.bin/astring.cmd b/build/node_modules/.bin/astring.cmd deleted file mode 100644 index 4f1391cd..00000000 --- a/build/node_modules/.bin/astring.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\astring\bin\astring" %* diff --git a/build/node_modules/.bin/astring.ps1 b/build/node_modules/.bin/astring.ps1 deleted file mode 100644 index 45275d5b..00000000 --- a/build/node_modules/.bin/astring.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../astring/bin/astring" $args - } else { - & "$basedir/node$exe" "$basedir/../astring/bin/astring" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../astring/bin/astring" $args - } else { - & "node$exe" "$basedir/../astring/bin/astring" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/atob b/build/node_modules/.bin/atob deleted file mode 100644 index 6d8ec0ee..00000000 --- a/build/node_modules/.bin/atob +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../atob/bin/atob.js" "$@" -else - exec node "$basedir/../atob/bin/atob.js" "$@" -fi diff --git a/build/node_modules/.bin/atob.cmd b/build/node_modules/.bin/atob.cmd deleted file mode 100644 index 850a60b9..00000000 --- a/build/node_modules/.bin/atob.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\atob\bin\atob.js" %* diff --git a/build/node_modules/.bin/atob.ps1 b/build/node_modules/.bin/atob.ps1 deleted file mode 100644 index 4a9f311b..00000000 --- a/build/node_modules/.bin/atob.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../atob/bin/atob.js" $args - } else { - & "$basedir/node$exe" "$basedir/../atob/bin/atob.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../atob/bin/atob.js" $args - } else { - & "node$exe" "$basedir/../atob/bin/atob.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/browserslist b/build/node_modules/.bin/browserslist deleted file mode 100644 index 68dd69d4..00000000 --- a/build/node_modules/.bin/browserslist +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" -else - exec node "$basedir/../browserslist/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/browserslist.cmd b/build/node_modules/.bin/browserslist.cmd deleted file mode 100644 index f93c251e..00000000 --- a/build/node_modules/.bin/browserslist.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* diff --git a/build/node_modules/.bin/browserslist.ps1 b/build/node_modules/.bin/browserslist.ps1 deleted file mode 100644 index 01e10a08..00000000 --- a/build/node_modules/.bin/browserslist.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../browserslist/cli.js" $args - } else { - & "node$exe" "$basedir/../browserslist/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/cdl b/build/node_modules/.bin/cdl deleted file mode 100644 index 70e55189..00000000 --- a/build/node_modules/.bin/cdl +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../cardinal/bin/cdl.js" "$@" -else - exec node "$basedir/../cardinal/bin/cdl.js" "$@" -fi diff --git a/build/node_modules/.bin/cdl.cmd b/build/node_modules/.bin/cdl.cmd deleted file mode 100644 index b4476568..00000000 --- a/build/node_modules/.bin/cdl.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cardinal\bin\cdl.js" %* diff --git a/build/node_modules/.bin/cdl.ps1 b/build/node_modules/.bin/cdl.ps1 deleted file mode 100644 index caaa9772..00000000 --- a/build/node_modules/.bin/cdl.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../cardinal/bin/cdl.js" $args - } else { - & "$basedir/node$exe" "$basedir/../cardinal/bin/cdl.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../cardinal/bin/cdl.js" $args - } else { - & "node$exe" "$basedir/../cardinal/bin/cdl.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/color-support b/build/node_modules/.bin/color-support deleted file mode 100644 index 59e65069..00000000 --- a/build/node_modules/.bin/color-support +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../color-support/bin.js" "$@" -else - exec node "$basedir/../color-support/bin.js" "$@" -fi diff --git a/build/node_modules/.bin/color-support.cmd b/build/node_modules/.bin/color-support.cmd deleted file mode 100644 index 005f9a56..00000000 --- a/build/node_modules/.bin/color-support.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\color-support\bin.js" %* diff --git a/build/node_modules/.bin/color-support.ps1 b/build/node_modules/.bin/color-support.ps1 deleted file mode 100644 index f5c9fe49..00000000 --- a/build/node_modules/.bin/color-support.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../color-support/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../color-support/bin.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../color-support/bin.js" $args - } else { - & "node$exe" "$basedir/../color-support/bin.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/cssesc b/build/node_modules/.bin/cssesc deleted file mode 100644 index c9b52142..00000000 --- a/build/node_modules/.bin/cssesc +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@" -else - exec node "$basedir/../cssesc/bin/cssesc" "$@" -fi diff --git a/build/node_modules/.bin/cssesc.cmd b/build/node_modules/.bin/cssesc.cmd deleted file mode 100644 index b560b42b..00000000 --- a/build/node_modules/.bin/cssesc.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cssesc\bin\cssesc" %* diff --git a/build/node_modules/.bin/cssesc.ps1 b/build/node_modules/.bin/cssesc.ps1 deleted file mode 100644 index 480aa17f..00000000 --- a/build/node_modules/.bin/cssesc.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args - } else { - & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../cssesc/bin/cssesc" $args - } else { - & "node$exe" "$basedir/../cssesc/bin/cssesc" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/editorconfig b/build/node_modules/.bin/editorconfig deleted file mode 100644 index 6ff1a81e..00000000 --- a/build/node_modules/.bin/editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../editorconfig/bin/editorconfig" "$@" -else - exec node "$basedir/../editorconfig/bin/editorconfig" "$@" -fi diff --git a/build/node_modules/.bin/editorconfig.cmd b/build/node_modules/.bin/editorconfig.cmd deleted file mode 100644 index 3c160a93..00000000 --- a/build/node_modules/.bin/editorconfig.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\editorconfig\bin\editorconfig" %* diff --git a/build/node_modules/.bin/editorconfig.ps1 b/build/node_modules/.bin/editorconfig.ps1 deleted file mode 100644 index 23d69547..00000000 --- a/build/node_modules/.bin/editorconfig.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../editorconfig/bin/editorconfig" $args - } else { - & "$basedir/node$exe" "$basedir/../editorconfig/bin/editorconfig" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../editorconfig/bin/editorconfig" $args - } else { - & "node$exe" "$basedir/../editorconfig/bin/editorconfig" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/encore b/build/node_modules/.bin/encore deleted file mode 100644 index f3febcaa..00000000 --- a/build/node_modules/.bin/encore +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../@symfony/webpack-encore/bin/encore.js" "$@" -else - exec node "$basedir/../@symfony/webpack-encore/bin/encore.js" "$@" -fi diff --git a/build/node_modules/.bin/encore.cmd b/build/node_modules/.bin/encore.cmd deleted file mode 100644 index 611745c7..00000000 --- a/build/node_modules/.bin/encore.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@symfony\webpack-encore\bin\encore.js" %* diff --git a/build/node_modules/.bin/encore.ps1 b/build/node_modules/.bin/encore.ps1 deleted file mode 100644 index ff210ac2..00000000 --- a/build/node_modules/.bin/encore.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../@symfony/webpack-encore/bin/encore.js" $args - } else { - & "$basedir/node$exe" "$basedir/../@symfony/webpack-encore/bin/encore.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../@symfony/webpack-encore/bin/encore.js" $args - } else { - & "node$exe" "$basedir/../@symfony/webpack-encore/bin/encore.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/envinfo b/build/node_modules/.bin/envinfo deleted file mode 100644 index 239315f9..00000000 --- a/build/node_modules/.bin/envinfo +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../envinfo/dist/cli.js" "$@" -else - exec node "$basedir/../envinfo/dist/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/envinfo.cmd b/build/node_modules/.bin/envinfo.cmd deleted file mode 100644 index a0f47be3..00000000 --- a/build/node_modules/.bin/envinfo.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\envinfo\dist\cli.js" %* diff --git a/build/node_modules/.bin/envinfo.ps1 b/build/node_modules/.bin/envinfo.ps1 deleted file mode 100644 index f9e36e51..00000000 --- a/build/node_modules/.bin/envinfo.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../envinfo/dist/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../envinfo/dist/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../envinfo/dist/cli.js" $args - } else { - & "node$exe" "$basedir/../envinfo/dist/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/eslint b/build/node_modules/.bin/eslint deleted file mode 100644 index 4e7c1c90..00000000 --- a/build/node_modules/.bin/eslint +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@" -else - exec node "$basedir/../eslint/bin/eslint.js" "$@" -fi diff --git a/build/node_modules/.bin/eslint-config-prettier b/build/node_modules/.bin/eslint-config-prettier deleted file mode 100644 index 913590dc..00000000 --- a/build/node_modules/.bin/eslint-config-prettier +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../eslint-config-prettier/bin/cli.js" "$@" -else - exec node "$basedir/../eslint-config-prettier/bin/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/eslint-config-prettier.cmd b/build/node_modules/.bin/eslint-config-prettier.cmd deleted file mode 100644 index 13a820d7..00000000 --- a/build/node_modules/.bin/eslint-config-prettier.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\eslint-config-prettier\bin\cli.js" %* diff --git a/build/node_modules/.bin/eslint-config-prettier.ps1 b/build/node_modules/.bin/eslint-config-prettier.ps1 deleted file mode 100644 index 342c61fe..00000000 --- a/build/node_modules/.bin/eslint-config-prettier.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../eslint-config-prettier/bin/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../eslint-config-prettier/bin/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../eslint-config-prettier/bin/cli.js" $args - } else { - & "node$exe" "$basedir/../eslint-config-prettier/bin/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/eslint.cmd b/build/node_modules/.bin/eslint.cmd deleted file mode 100644 index 032901a5..00000000 --- a/build/node_modules/.bin/eslint.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\eslint\bin\eslint.js" %* diff --git a/build/node_modules/.bin/eslint.ps1 b/build/node_modules/.bin/eslint.ps1 deleted file mode 100644 index 155bec49..00000000 --- a/build/node_modules/.bin/eslint.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args - } else { - & "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../eslint/bin/eslint.js" $args - } else { - & "node$exe" "$basedir/../eslint/bin/eslint.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/esparse b/build/node_modules/.bin/esparse deleted file mode 100644 index 1cc1c96f..00000000 --- a/build/node_modules/.bin/esparse +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" -else - exec node "$basedir/../esprima/bin/esparse.js" "$@" -fi diff --git a/build/node_modules/.bin/esparse.cmd b/build/node_modules/.bin/esparse.cmd deleted file mode 100644 index 2ca6d502..00000000 --- a/build/node_modules/.bin/esparse.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esparse.js" %* diff --git a/build/node_modules/.bin/esparse.ps1 b/build/node_modules/.bin/esparse.ps1 deleted file mode 100644 index f19ed730..00000000 --- a/build/node_modules/.bin/esparse.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args - } else { - & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../esprima/bin/esparse.js" $args - } else { - & "node$exe" "$basedir/../esprima/bin/esparse.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/esvalidate b/build/node_modules/.bin/esvalidate deleted file mode 100644 index 91a4c9b5..00000000 --- a/build/node_modules/.bin/esvalidate +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" -else - exec node "$basedir/../esprima/bin/esvalidate.js" "$@" -fi diff --git a/build/node_modules/.bin/esvalidate.cmd b/build/node_modules/.bin/esvalidate.cmd deleted file mode 100644 index 4c41643e..00000000 --- a/build/node_modules/.bin/esvalidate.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %* diff --git a/build/node_modules/.bin/esvalidate.ps1 b/build/node_modules/.bin/esvalidate.ps1 deleted file mode 100644 index 23699d11..00000000 --- a/build/node_modules/.bin/esvalidate.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args - } else { - & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args - } else { - & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/flat b/build/node_modules/.bin/flat deleted file mode 100644 index 50faba11..00000000 --- a/build/node_modules/.bin/flat +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../flat/cli.js" "$@" -else - exec node "$basedir/../flat/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/flat.cmd b/build/node_modules/.bin/flat.cmd deleted file mode 100644 index bae8d2ca..00000000 --- a/build/node_modules/.bin/flat.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\flat\cli.js" %* diff --git a/build/node_modules/.bin/flat.ps1 b/build/node_modules/.bin/flat.ps1 deleted file mode 100644 index 92a76a9b..00000000 --- a/build/node_modules/.bin/flat.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../flat/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../flat/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../flat/cli.js" $args - } else { - & "node$exe" "$basedir/../flat/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/he b/build/node_modules/.bin/he deleted file mode 100644 index 70e18de9..00000000 --- a/build/node_modules/.bin/he +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../he/bin/he" "$@" -else - exec node "$basedir/../he/bin/he" "$@" -fi diff --git a/build/node_modules/.bin/he.cmd b/build/node_modules/.bin/he.cmd deleted file mode 100644 index 611a864a..00000000 --- a/build/node_modules/.bin/he.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\he\bin\he" %* diff --git a/build/node_modules/.bin/he.ps1 b/build/node_modules/.bin/he.ps1 deleted file mode 100644 index b0010bc6..00000000 --- a/build/node_modules/.bin/he.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../he/bin/he" $args - } else { - & "$basedir/node$exe" "$basedir/../he/bin/he" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../he/bin/he" $args - } else { - & "node$exe" "$basedir/../he/bin/he" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/import-local-fixture b/build/node_modules/.bin/import-local-fixture deleted file mode 100644 index 79e31800..00000000 --- a/build/node_modules/.bin/import-local-fixture +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" -else - exec node "$basedir/../import-local/fixtures/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/import-local-fixture.cmd b/build/node_modules/.bin/import-local-fixture.cmd deleted file mode 100644 index 5a3f6859..00000000 --- a/build/node_modules/.bin/import-local-fixture.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\import-local\fixtures\cli.js" %* diff --git a/build/node_modules/.bin/import-local-fixture.ps1 b/build/node_modules/.bin/import-local-fixture.ps1 deleted file mode 100644 index 01ef7842..00000000 --- a/build/node_modules/.bin/import-local-fixture.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../import-local/fixtures/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../import-local/fixtures/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../import-local/fixtures/cli.js" $args - } else { - & "node$exe" "$basedir/../import-local/fixtures/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/is-docker b/build/node_modules/.bin/is-docker deleted file mode 100644 index 9e457930..00000000 --- a/build/node_modules/.bin/is-docker +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../is-docker/cli.js" "$@" -else - exec node "$basedir/../is-docker/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/is-docker.cmd b/build/node_modules/.bin/is-docker.cmd deleted file mode 100644 index 79e76ca1..00000000 --- a/build/node_modules/.bin/is-docker.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\is-docker\cli.js" %* diff --git a/build/node_modules/.bin/is-docker.ps1 b/build/node_modules/.bin/is-docker.ps1 deleted file mode 100644 index 74276253..00000000 --- a/build/node_modules/.bin/is-docker.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../is-docker/cli.js" $args - } else { - & "node$exe" "$basedir/../is-docker/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/is-inside-container b/build/node_modules/.bin/is-inside-container deleted file mode 100644 index 753446f6..00000000 --- a/build/node_modules/.bin/is-inside-container +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../is-inside-container/cli.js" "$@" -else - exec node "$basedir/../is-inside-container/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/is-inside-container.cmd b/build/node_modules/.bin/is-inside-container.cmd deleted file mode 100644 index 88426e6b..00000000 --- a/build/node_modules/.bin/is-inside-container.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\is-inside-container\cli.js" %* diff --git a/build/node_modules/.bin/is-inside-container.ps1 b/build/node_modules/.bin/is-inside-container.ps1 deleted file mode 100644 index cf19a2ab..00000000 --- a/build/node_modules/.bin/is-inside-container.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../is-inside-container/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../is-inside-container/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../is-inside-container/cli.js" $args - } else { - & "node$exe" "$basedir/../is-inside-container/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/js-yaml b/build/node_modules/.bin/js-yaml deleted file mode 100644 index ed78a868..00000000 --- a/build/node_modules/.bin/js-yaml +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@" -else - exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@" -fi diff --git a/build/node_modules/.bin/js-yaml.cmd b/build/node_modules/.bin/js-yaml.cmd deleted file mode 100644 index 453312b6..00000000 --- a/build/node_modules/.bin/js-yaml.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %* diff --git a/build/node_modules/.bin/js-yaml.ps1 b/build/node_modules/.bin/js-yaml.ps1 deleted file mode 100644 index 2acfc61c..00000000 --- a/build/node_modules/.bin/js-yaml.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args - } else { - & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args - } else { - & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/jsesc b/build/node_modules/.bin/jsesc deleted file mode 100644 index e7105da3..00000000 --- a/build/node_modules/.bin/jsesc +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" -else - exec node "$basedir/../jsesc/bin/jsesc" "$@" -fi diff --git a/build/node_modules/.bin/jsesc.cmd b/build/node_modules/.bin/jsesc.cmd deleted file mode 100644 index eb41110f..00000000 --- a/build/node_modules/.bin/jsesc.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %* diff --git a/build/node_modules/.bin/jsesc.ps1 b/build/node_modules/.bin/jsesc.ps1 deleted file mode 100644 index 6007e022..00000000 --- a/build/node_modules/.bin/jsesc.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args - } else { - & "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../jsesc/bin/jsesc" $args - } else { - & "node$exe" "$basedir/../jsesc/bin/jsesc" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/json5 b/build/node_modules/.bin/json5 deleted file mode 100644 index 977b7507..00000000 --- a/build/node_modules/.bin/json5 +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" -else - exec node "$basedir/../json5/lib/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/json5.cmd b/build/node_modules/.bin/json5.cmd deleted file mode 100644 index 95c137fe..00000000 --- a/build/node_modules/.bin/json5.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %* diff --git a/build/node_modules/.bin/json5.ps1 b/build/node_modules/.bin/json5.ps1 deleted file mode 100644 index 8700ddbe..00000000 --- a/build/node_modules/.bin/json5.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../json5/lib/cli.js" $args - } else { - & "node$exe" "$basedir/../json5/lib/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/knex b/build/node_modules/.bin/knex deleted file mode 100644 index e3b50c14..00000000 --- a/build/node_modules/.bin/knex +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../knex/bin/cli.js" "$@" -else - exec node "$basedir/../knex/bin/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/knex.cmd b/build/node_modules/.bin/knex.cmd deleted file mode 100644 index b32f3555..00000000 --- a/build/node_modules/.bin/knex.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\knex\bin\cli.js" %* diff --git a/build/node_modules/.bin/knex.ps1 b/build/node_modules/.bin/knex.ps1 deleted file mode 100644 index 0789610b..00000000 --- a/build/node_modules/.bin/knex.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../knex/bin/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../knex/bin/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../knex/bin/cli.js" $args - } else { - & "node$exe" "$basedir/../knex/bin/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/marked b/build/node_modules/.bin/marked deleted file mode 100644 index bc49a0d6..00000000 --- a/build/node_modules/.bin/marked +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../marked/bin/marked.js" "$@" -else - exec node "$basedir/../marked/bin/marked.js" "$@" -fi diff --git a/build/node_modules/.bin/marked.cmd b/build/node_modules/.bin/marked.cmd deleted file mode 100644 index a7364558..00000000 --- a/build/node_modules/.bin/marked.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\marked\bin\marked.js" %* diff --git a/build/node_modules/.bin/marked.ps1 b/build/node_modules/.bin/marked.ps1 deleted file mode 100644 index c6b4c9f1..00000000 --- a/build/node_modules/.bin/marked.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../marked/bin/marked.js" $args - } else { - & "$basedir/node$exe" "$basedir/../marked/bin/marked.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../marked/bin/marked.js" $args - } else { - & "node$exe" "$basedir/../marked/bin/marked.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/mime b/build/node_modules/.bin/mime deleted file mode 100644 index 0a62a1b1..00000000 --- a/build/node_modules/.bin/mime +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mime/cli.js" "$@" -else - exec node "$basedir/../mime/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/mime.cmd b/build/node_modules/.bin/mime.cmd deleted file mode 100644 index 54491f12..00000000 --- a/build/node_modules/.bin/mime.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* diff --git a/build/node_modules/.bin/mime.ps1 b/build/node_modules/.bin/mime.ps1 deleted file mode 100644 index 2222f40b..00000000 --- a/build/node_modules/.bin/mime.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../mime/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../mime/cli.js" $args - } else { - & "node$exe" "$basedir/../mime/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/mkdirp b/build/node_modules/.bin/mkdirp deleted file mode 100644 index 6ba5765a..00000000 --- a/build/node_modules/.bin/mkdirp +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" -else - exec node "$basedir/../mkdirp/bin/cmd.js" "$@" -fi diff --git a/build/node_modules/.bin/mkdirp.cmd b/build/node_modules/.bin/mkdirp.cmd deleted file mode 100644 index a865dd9f..00000000 --- a/build/node_modules/.bin/mkdirp.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* diff --git a/build/node_modules/.bin/mkdirp.ps1 b/build/node_modules/.bin/mkdirp.ps1 deleted file mode 100644 index 911e8546..00000000 --- a/build/node_modules/.bin/mkdirp.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args - } else { - & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args - } else { - & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/multicast-dns b/build/node_modules/.bin/multicast-dns deleted file mode 100644 index 466f9038..00000000 --- a/build/node_modules/.bin/multicast-dns +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../multicast-dns/cli.js" "$@" -else - exec node "$basedir/../multicast-dns/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/multicast-dns.cmd b/build/node_modules/.bin/multicast-dns.cmd deleted file mode 100644 index 4643dc4e..00000000 --- a/build/node_modules/.bin/multicast-dns.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\multicast-dns\cli.js" %* diff --git a/build/node_modules/.bin/multicast-dns.ps1 b/build/node_modules/.bin/multicast-dns.ps1 deleted file mode 100644 index ec44f13a..00000000 --- a/build/node_modules/.bin/multicast-dns.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../multicast-dns/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../multicast-dns/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../multicast-dns/cli.js" $args - } else { - & "node$exe" "$basedir/../multicast-dns/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/mustache b/build/node_modules/.bin/mustache deleted file mode 100644 index 7bc1d34d..00000000 --- a/build/node_modules/.bin/mustache +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../mustache/bin/mustache" "$@" -else - exec node "$basedir/../mustache/bin/mustache" "$@" -fi diff --git a/build/node_modules/.bin/mustache.cmd b/build/node_modules/.bin/mustache.cmd deleted file mode 100644 index 92cf68dc..00000000 --- a/build/node_modules/.bin/mustache.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mustache\bin\mustache" %* diff --git a/build/node_modules/.bin/mustache.ps1 b/build/node_modules/.bin/mustache.ps1 deleted file mode 100644 index ec52dfec..00000000 --- a/build/node_modules/.bin/mustache.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../mustache/bin/mustache" $args - } else { - & "$basedir/node$exe" "$basedir/../mustache/bin/mustache" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../mustache/bin/mustache" $args - } else { - & "node$exe" "$basedir/../mustache/bin/mustache" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/nanoid b/build/node_modules/.bin/nanoid deleted file mode 100644 index 23254eb2..00000000 --- a/build/node_modules/.bin/nanoid +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@" -else - exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@" -fi diff --git a/build/node_modules/.bin/nanoid.cmd b/build/node_modules/.bin/nanoid.cmd deleted file mode 100644 index 9c40107c..00000000 --- a/build/node_modules/.bin/nanoid.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %* diff --git a/build/node_modules/.bin/nanoid.ps1 b/build/node_modules/.bin/nanoid.ps1 deleted file mode 100644 index d8a4d7ad..00000000 --- a/build/node_modules/.bin/nanoid.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args - } else { - & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args - } else { - & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/node-gyp b/build/node_modules/.bin/node-gyp deleted file mode 100644 index b80888c2..00000000 --- a/build/node_modules/.bin/node-gyp +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../node-gyp/bin/node-gyp.js" "$@" -else - exec node "$basedir/../node-gyp/bin/node-gyp.js" "$@" -fi diff --git a/build/node_modules/.bin/node-gyp.cmd b/build/node_modules/.bin/node-gyp.cmd deleted file mode 100644 index 9a6a721e..00000000 --- a/build/node_modules/.bin/node-gyp.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp\bin\node-gyp.js" %* diff --git a/build/node_modules/.bin/node-gyp.ps1 b/build/node_modules/.bin/node-gyp.ps1 deleted file mode 100644 index dd514e27..00000000 --- a/build/node_modules/.bin/node-gyp.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } else { - & "$basedir/node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } else { - & "node$exe" "$basedir/../node-gyp/bin/node-gyp.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/node-pre-gyp b/build/node_modules/.bin/node-pre-gyp deleted file mode 100644 index 004c3be1..00000000 --- a/build/node_modules/.bin/node-pre-gyp +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../@mapbox/node-pre-gyp/bin/node-pre-gyp" "$@" -else - exec node "$basedir/../@mapbox/node-pre-gyp/bin/node-pre-gyp" "$@" -fi diff --git a/build/node_modules/.bin/node-pre-gyp.cmd b/build/node_modules/.bin/node-pre-gyp.cmd deleted file mode 100644 index a2fc5085..00000000 --- a/build/node_modules/.bin/node-pre-gyp.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@mapbox\node-pre-gyp\bin\node-pre-gyp" %* diff --git a/build/node_modules/.bin/node-pre-gyp.ps1 b/build/node_modules/.bin/node-pre-gyp.ps1 deleted file mode 100644 index ed297ff9..00000000 --- a/build/node_modules/.bin/node-pre-gyp.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../@mapbox/node-pre-gyp/bin/node-pre-gyp" $args - } else { - & "$basedir/node$exe" "$basedir/../@mapbox/node-pre-gyp/bin/node-pre-gyp" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../@mapbox/node-pre-gyp/bin/node-pre-gyp" $args - } else { - & "node$exe" "$basedir/../@mapbox/node-pre-gyp/bin/node-pre-gyp" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/node-which b/build/node_modules/.bin/node-which deleted file mode 100644 index aece7353..00000000 --- a/build/node_modules/.bin/node-which +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../which/bin/node-which" "$@" -else - exec node "$basedir/../which/bin/node-which" "$@" -fi diff --git a/build/node_modules/.bin/node-which.cmd b/build/node_modules/.bin/node-which.cmd deleted file mode 100644 index 8738aed8..00000000 --- a/build/node_modules/.bin/node-which.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\node-which" %* diff --git a/build/node_modules/.bin/node-which.ps1 b/build/node_modules/.bin/node-which.ps1 deleted file mode 100644 index cfb09e84..00000000 --- a/build/node_modules/.bin/node-which.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../which/bin/node-which" $args - } else { - & "$basedir/node$exe" "$basedir/../which/bin/node-which" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../which/bin/node-which" $args - } else { - & "node$exe" "$basedir/../which/bin/node-which" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/nopt b/build/node_modules/.bin/nopt deleted file mode 100644 index f1ec43bc..00000000 --- a/build/node_modules/.bin/nopt +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" -else - exec node "$basedir/../nopt/bin/nopt.js" "$@" -fi diff --git a/build/node_modules/.bin/nopt.cmd b/build/node_modules/.bin/nopt.cmd deleted file mode 100644 index a7f38b3d..00000000 --- a/build/node_modules/.bin/nopt.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* diff --git a/build/node_modules/.bin/nopt.ps1 b/build/node_modules/.bin/nopt.ps1 deleted file mode 100644 index 9d6ba56f..00000000 --- a/build/node_modules/.bin/nopt.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args - } else { - & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../nopt/bin/nopt.js" $args - } else { - & "node$exe" "$basedir/../nopt/bin/nopt.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/parser b/build/node_modules/.bin/parser deleted file mode 100644 index cb5b10d8..00000000 --- a/build/node_modules/.bin/parser +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" -else - exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" -fi diff --git a/build/node_modules/.bin/parser.cmd b/build/node_modules/.bin/parser.cmd deleted file mode 100644 index 1ad5c81c..00000000 --- a/build/node_modules/.bin/parser.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %* diff --git a/build/node_modules/.bin/parser.ps1 b/build/node_modules/.bin/parser.ps1 deleted file mode 100644 index 8926517b..00000000 --- a/build/node_modules/.bin/parser.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args - } else { - & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args - } else { - & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/pino b/build/node_modules/.bin/pino deleted file mode 100644 index ed8dabdd..00000000 --- a/build/node_modules/.bin/pino +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../pino/bin.js" "$@" -else - exec node "$basedir/../pino/bin.js" "$@" -fi diff --git a/build/node_modules/.bin/pino-pretty b/build/node_modules/.bin/pino-pretty deleted file mode 100644 index 3464b115..00000000 --- a/build/node_modules/.bin/pino-pretty +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../pino-pretty/bin.js" "$@" -else - exec node "$basedir/../pino-pretty/bin.js" "$@" -fi diff --git a/build/node_modules/.bin/pino-pretty.cmd b/build/node_modules/.bin/pino-pretty.cmd deleted file mode 100644 index b1177967..00000000 --- a/build/node_modules/.bin/pino-pretty.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\pino-pretty\bin.js" %* diff --git a/build/node_modules/.bin/pino-pretty.ps1 b/build/node_modules/.bin/pino-pretty.ps1 deleted file mode 100644 index 905a97b2..00000000 --- a/build/node_modules/.bin/pino-pretty.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../pino-pretty/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../pino-pretty/bin.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../pino-pretty/bin.js" $args - } else { - & "node$exe" "$basedir/../pino-pretty/bin.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/pino.cmd b/build/node_modules/.bin/pino.cmd deleted file mode 100644 index 0780f612..00000000 --- a/build/node_modules/.bin/pino.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\pino\bin.js" %* diff --git a/build/node_modules/.bin/pino.ps1 b/build/node_modules/.bin/pino.ps1 deleted file mode 100644 index 72fc9d98..00000000 --- a/build/node_modules/.bin/pino.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../pino/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../pino/bin.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../pino/bin.js" $args - } else { - & "node$exe" "$basedir/../pino/bin.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/prettier b/build/node_modules/.bin/prettier deleted file mode 100644 index c955d680..00000000 --- a/build/node_modules/.bin/prettier +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@" -else - exec node "$basedir/../prettier/bin/prettier.cjs" "$@" -fi diff --git a/build/node_modules/.bin/prettier.cmd b/build/node_modules/.bin/prettier.cmd deleted file mode 100644 index e0fa0f71..00000000 --- a/build/node_modules/.bin/prettier.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\prettier\bin\prettier.cjs" %* diff --git a/build/node_modules/.bin/prettier.ps1 b/build/node_modules/.bin/prettier.ps1 deleted file mode 100644 index 8359dd9d..00000000 --- a/build/node_modules/.bin/prettier.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } else { - & "$basedir/node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } else { - & "node$exe" "$basedir/../prettier/bin/prettier.cjs" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/rc b/build/node_modules/.bin/rc deleted file mode 100644 index e31cd835..00000000 --- a/build/node_modules/.bin/rc +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../rc/cli.js" "$@" -else - exec node "$basedir/../rc/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/rc.cmd b/build/node_modules/.bin/rc.cmd deleted file mode 100644 index be16b733..00000000 --- a/build/node_modules/.bin/rc.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rc\cli.js" %* diff --git a/build/node_modules/.bin/rc.ps1 b/build/node_modules/.bin/rc.ps1 deleted file mode 100644 index 9a9b6e37..00000000 --- a/build/node_modules/.bin/rc.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../rc/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../rc/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../rc/cli.js" $args - } else { - & "node$exe" "$basedir/../rc/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/regjsparser b/build/node_modules/.bin/regjsparser deleted file mode 100644 index 04b07bc5..00000000 --- a/build/node_modules/.bin/regjsparser +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../regjsparser/bin/parser" "$@" -else - exec node "$basedir/../regjsparser/bin/parser" "$@" -fi diff --git a/build/node_modules/.bin/regjsparser.cmd b/build/node_modules/.bin/regjsparser.cmd deleted file mode 100644 index 36b5e78d..00000000 --- a/build/node_modules/.bin/regjsparser.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\regjsparser\bin\parser" %* diff --git a/build/node_modules/.bin/regjsparser.ps1 b/build/node_modules/.bin/regjsparser.ps1 deleted file mode 100644 index 7d45ef7d..00000000 --- a/build/node_modules/.bin/regjsparser.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../regjsparser/bin/parser" $args - } else { - & "$basedir/node$exe" "$basedir/../regjsparser/bin/parser" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../regjsparser/bin/parser" $args - } else { - & "node$exe" "$basedir/../regjsparser/bin/parser" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/resolve b/build/node_modules/.bin/resolve deleted file mode 100644 index 757d454a..00000000 --- a/build/node_modules/.bin/resolve +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@" -else - exec node "$basedir/../resolve/bin/resolve" "$@" -fi diff --git a/build/node_modules/.bin/resolve.cmd b/build/node_modules/.bin/resolve.cmd deleted file mode 100644 index 1a017c40..00000000 --- a/build/node_modules/.bin/resolve.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %* diff --git a/build/node_modules/.bin/resolve.ps1 b/build/node_modules/.bin/resolve.ps1 deleted file mode 100644 index f22b2d31..00000000 --- a/build/node_modules/.bin/resolve.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args - } else { - & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../resolve/bin/resolve" $args - } else { - & "node$exe" "$basedir/../resolve/bin/resolve" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/rimraf b/build/node_modules/.bin/rimraf deleted file mode 100644 index b8168255..00000000 --- a/build/node_modules/.bin/rimraf +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@" -else - exec node "$basedir/../rimraf/bin.js" "$@" -fi diff --git a/build/node_modules/.bin/rimraf.cmd b/build/node_modules/.bin/rimraf.cmd deleted file mode 100644 index 13f45eca..00000000 --- a/build/node_modules/.bin/rimraf.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %* diff --git a/build/node_modules/.bin/rimraf.ps1 b/build/node_modules/.bin/rimraf.ps1 deleted file mode 100644 index 17167914..00000000 --- a/build/node_modules/.bin/rimraf.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../rimraf/bin.js" $args - } else { - & "node$exe" "$basedir/../rimraf/bin.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/semver b/build/node_modules/.bin/semver deleted file mode 100644 index 77443e78..00000000 --- a/build/node_modules/.bin/semver +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" -else - exec node "$basedir/../semver/bin/semver.js" "$@" -fi diff --git a/build/node_modules/.bin/semver.cmd b/build/node_modules/.bin/semver.cmd deleted file mode 100644 index 9913fa9d..00000000 --- a/build/node_modules/.bin/semver.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* diff --git a/build/node_modules/.bin/semver.ps1 b/build/node_modules/.bin/semver.ps1 deleted file mode 100644 index 314717ad..00000000 --- a/build/node_modules/.bin/semver.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args - } else { - & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args - } else { - & "node$exe" "$basedir/../semver/bin/semver.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/svgo b/build/node_modules/.bin/svgo deleted file mode 100644 index 96eb5601..00000000 --- a/build/node_modules/.bin/svgo +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../svgo/bin/svgo" "$@" -else - exec node "$basedir/../svgo/bin/svgo" "$@" -fi diff --git a/build/node_modules/.bin/svgo.cmd b/build/node_modules/.bin/svgo.cmd deleted file mode 100644 index 3624a53c..00000000 --- a/build/node_modules/.bin/svgo.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\svgo\bin\svgo" %* diff --git a/build/node_modules/.bin/svgo.ps1 b/build/node_modules/.bin/svgo.ps1 deleted file mode 100644 index a249bd9b..00000000 --- a/build/node_modules/.bin/svgo.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args - } else { - & "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../svgo/bin/svgo" $args - } else { - & "node$exe" "$basedir/../svgo/bin/svgo" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/terser b/build/node_modules/.bin/terser deleted file mode 100644 index 2d3fa890..00000000 --- a/build/node_modules/.bin/terser +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../terser/bin/terser" "$@" -else - exec node "$basedir/../terser/bin/terser" "$@" -fi diff --git a/build/node_modules/.bin/terser.cmd b/build/node_modules/.bin/terser.cmd deleted file mode 100644 index abf66a82..00000000 --- a/build/node_modules/.bin/terser.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\terser\bin\terser" %* diff --git a/build/node_modules/.bin/terser.ps1 b/build/node_modules/.bin/terser.ps1 deleted file mode 100644 index 0bbfff61..00000000 --- a/build/node_modules/.bin/terser.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../terser/bin/terser" $args - } else { - & "$basedir/node$exe" "$basedir/../terser/bin/terser" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../terser/bin/terser" $args - } else { - & "node$exe" "$basedir/../terser/bin/terser" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/tsc b/build/node_modules/.bin/tsc deleted file mode 100644 index 49798517..00000000 --- a/build/node_modules/.bin/tsc +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@" -else - exec node "$basedir/../typescript/bin/tsc" "$@" -fi diff --git a/build/node_modules/.bin/tsc.cmd b/build/node_modules/.bin/tsc.cmd deleted file mode 100644 index 40bf1284..00000000 --- a/build/node_modules/.bin/tsc.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsc" %* diff --git a/build/node_modules/.bin/tsc.ps1 b/build/node_modules/.bin/tsc.ps1 deleted file mode 100644 index 112413b5..00000000 --- a/build/node_modules/.bin/tsc.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args - } else { - & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../typescript/bin/tsc" $args - } else { - & "node$exe" "$basedir/../typescript/bin/tsc" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/tsserver b/build/node_modules/.bin/tsserver deleted file mode 100644 index cc53aac9..00000000 --- a/build/node_modules/.bin/tsserver +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@" -else - exec node "$basedir/../typescript/bin/tsserver" "$@" -fi diff --git a/build/node_modules/.bin/tsserver.cmd b/build/node_modules/.bin/tsserver.cmd deleted file mode 100644 index 57f851fd..00000000 --- a/build/node_modules/.bin/tsserver.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsserver" %* diff --git a/build/node_modules/.bin/tsserver.ps1 b/build/node_modules/.bin/tsserver.ps1 deleted file mode 100644 index 249f417d..00000000 --- a/build/node_modules/.bin/tsserver.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args - } else { - & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../typescript/bin/tsserver" $args - } else { - & "node$exe" "$basedir/../typescript/bin/tsserver" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/update-browserslist-db b/build/node_modules/.bin/update-browserslist-db deleted file mode 100644 index 8cde7e33..00000000 --- a/build/node_modules/.bin/update-browserslist-db +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@" -else - exec node "$basedir/../update-browserslist-db/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/update-browserslist-db.cmd b/build/node_modules/.bin/update-browserslist-db.cmd deleted file mode 100644 index 2e14905f..00000000 --- a/build/node_modules/.bin/update-browserslist-db.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %* diff --git a/build/node_modules/.bin/update-browserslist-db.ps1 b/build/node_modules/.bin/update-browserslist-db.ps1 deleted file mode 100644 index 7abdf26d..00000000 --- a/build/node_modules/.bin/update-browserslist-db.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args - } else { - & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/uuid b/build/node_modules/.bin/uuid deleted file mode 100644 index c3ec0035..00000000 --- a/build/node_modules/.bin/uuid +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@" -else - exec node "$basedir/../uuid/dist/bin/uuid" "$@" -fi diff --git a/build/node_modules/.bin/uuid.cmd b/build/node_modules/.bin/uuid.cmd deleted file mode 100644 index 0f2376ea..00000000 --- a/build/node_modules/.bin/uuid.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %* diff --git a/build/node_modules/.bin/uuid.ps1 b/build/node_modules/.bin/uuid.ps1 deleted file mode 100644 index 78046284..00000000 --- a/build/node_modules/.bin/uuid.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } else { - & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } else { - & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/webpack b/build/node_modules/.bin/webpack deleted file mode 100644 index e6748011..00000000 --- a/build/node_modules/.bin/webpack +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack/bin/webpack.js" "$@" -else - exec node "$basedir/../webpack/bin/webpack.js" "$@" -fi diff --git a/build/node_modules/.bin/webpack-cli b/build/node_modules/.bin/webpack-cli deleted file mode 100644 index d04406f6..00000000 --- a/build/node_modules/.bin/webpack-cli +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack-cli/bin/cli.js" "$@" -else - exec node "$basedir/../webpack-cli/bin/cli.js" "$@" -fi diff --git a/build/node_modules/.bin/webpack-cli.cmd b/build/node_modules/.bin/webpack-cli.cmd deleted file mode 100644 index bd930c57..00000000 --- a/build/node_modules/.bin/webpack-cli.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack-cli\bin\cli.js" %* diff --git a/build/node_modules/.bin/webpack-cli.ps1 b/build/node_modules/.bin/webpack-cli.ps1 deleted file mode 100644 index 9400edb0..00000000 --- a/build/node_modules/.bin/webpack-cli.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } else { - & "node$exe" "$basedir/../webpack-cli/bin/cli.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/webpack-dev-server b/build/node_modules/.bin/webpack-dev-server deleted file mode 100644 index 36862cd0..00000000 --- a/build/node_modules/.bin/webpack-dev-server +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" "$@" -else - exec node "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" "$@" -fi diff --git a/build/node_modules/.bin/webpack-dev-server.cmd b/build/node_modules/.bin/webpack-dev-server.cmd deleted file mode 100644 index ba9e4e6f..00000000 --- a/build/node_modules/.bin/webpack-dev-server.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack-dev-server\bin\webpack-dev-server.js" %* diff --git a/build/node_modules/.bin/webpack-dev-server.ps1 b/build/node_modules/.bin/webpack-dev-server.ps1 deleted file mode 100644 index 9e472e6a..00000000 --- a/build/node_modules/.bin/webpack-dev-server.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } else { - & "node$exe" "$basedir/../webpack-dev-server/bin/webpack-dev-server.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/webpack.cmd b/build/node_modules/.bin/webpack.cmd deleted file mode 100644 index 5b1e07b9..00000000 --- a/build/node_modules/.bin/webpack.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\webpack\bin\webpack.js" %* diff --git a/build/node_modules/.bin/webpack.ps1 b/build/node_modules/.bin/webpack.ps1 deleted file mode 100644 index 57bb5253..00000000 --- a/build/node_modules/.bin/webpack.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../webpack/bin/webpack.js" $args - } else { - & "$basedir/node$exe" "$basedir/../webpack/bin/webpack.js" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../webpack/bin/webpack.js" $args - } else { - & "node$exe" "$basedir/../webpack/bin/webpack.js" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.bin/z-schema b/build/node_modules/.bin/z-schema deleted file mode 100644 index 2d74229d..00000000 --- a/build/node_modules/.bin/z-schema +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../z-schema/bin/z-schema" "$@" -else - exec node "$basedir/../z-schema/bin/z-schema" "$@" -fi diff --git a/build/node_modules/.bin/z-schema.cmd b/build/node_modules/.bin/z-schema.cmd deleted file mode 100644 index 5ac79bb0..00000000 --- a/build/node_modules/.bin/z-schema.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -GOTO start -:find_dp0 -SET dp0=%~dp0 -EXIT /b -:start -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\z-schema\bin\z-schema" %* diff --git a/build/node_modules/.bin/z-schema.ps1 b/build/node_modules/.bin/z-schema.ps1 deleted file mode 100644 index d41f2cb0..00000000 --- a/build/node_modules/.bin/z-schema.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "$basedir/node$exe" "$basedir/../z-schema/bin/z-schema" $args - } else { - & "$basedir/node$exe" "$basedir/../z-schema/bin/z-schema" $args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & "node$exe" "$basedir/../z-schema/bin/z-schema" $args - } else { - & "node$exe" "$basedir/../z-schema/bin/z-schema" $args - } - $ret=$LASTEXITCODE -} -exit $ret diff --git a/build/node_modules/.package-lock.json b/build/node_modules/.package-lock.json deleted file mode 100644 index 9108be63..00000000 --- a/build/node_modules/.package-lock.json +++ /dev/null @@ -1,16075 +0,0 @@ -{ - "name": "nups-web", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@adonisjs/ace": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-11.3.1.tgz", - "integrity": "sha512-Ho3+Lk/16OSjX3CfhxsoLUTlcVG4sDlXUwHx+Zry/RLft5M6plT5ln0WkZvL7tqtb1uCZgP5YiMrMtDjSRzZLA==", - "dependencies": { - "@poppinss/cliui": "^3.0.2", - "@poppinss/prompts": "^2.0.2", - "@poppinss/utils": "^4.0.4", - "fs-extra": "^10.1.0", - "getopts": "^2.3.0", - "leven": "^3.1.0", - "mustache": "^4.2.0", - "slash": "^3.0.0", - "term-size": "^2.2.1" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/ace/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/application": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@adonisjs/application/-/application-5.3.0.tgz", - "integrity": "sha512-AruZZXMgOdmmRxJEHUbXoqhgRavPfhkeIR2nQtGyxbn0PCNjqlGraq8ypuLINY1J+wNuH2tt0xCS98EDeMdTOQ==", - "dependencies": { - "@adonisjs/config": "^3.0.9", - "@adonisjs/env": "^3.0.9", - "@adonisjs/fold": "^8.2.0", - "@adonisjs/logger": "^4.1.5", - "@adonisjs/profiler": "^6.0.9", - "@poppinss/utils": "^5.0.0", - "semver": "^7.3.8" - } - }, - "node_modules/@adonisjs/assembler": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/@adonisjs/assembler/-/assembler-5.9.6.tgz", - "integrity": "sha512-8CLAX8vlsfsYmtoBxI8YfyZyNZwtUB0FiplEbd8hmo5iv1/52SU2LEU1R6gPk4hkJbqHx22aS8UeZoogPqnmwg==", - "dev": true, - "dependencies": { - "@adonisjs/application": "^5.2.5", - "@adonisjs/env": "^3.0.9", - "@adonisjs/ioc-transformer": "^2.3.4", - "@adonisjs/require-ts": "^2.0.13", - "@adonisjs/sink": "^5.4.2", - "@poppinss/chokidar-ts": "^3.3.5", - "@poppinss/cliui": "^3.0.5", - "@poppinss/utils": "^5.0.0", - "cpy": "^8.1.2", - "emittery": "^0.13.1", - "execa": "^5.1.1", - "fs-extra": "^10.1.0", - "get-port": "^5.1.1", - "glob-parent": "^6.0.2", - "has-yarn": "^2.1.0", - "picomatch": "^2.3.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.1.0" - } - }, - "node_modules/@adonisjs/auth": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@adonisjs/auth/-/auth-8.2.3.tgz", - "integrity": "sha512-js9e8AHEsNC/8MGvho6MgL+uXr8SlhTg9MJJDWQBBiqsKkT7+H7NMP/pLbuSzYaaf40t2u/OXfq6wXuIC5ZYvw==", - "dependencies": { - "@poppinss/hooks": "^5.0.3", - "@poppinss/utils": "^5.0.0", - "luxon": "^3.0.4" - }, - "peerDependencies": { - "@adonisjs/core": "^5.7.1", - "@adonisjs/i18n": "^1.5.0", - "@adonisjs/lucid": "^18.0.0", - "@adonisjs/redis": "^7.2.0", - "@adonisjs/session": "^6.2.0" - }, - "peerDependenciesMeta": { - "@adonisjs/i18n": { - "optional": true - }, - "@adonisjs/lucid": { - "optional": true - }, - "@adonisjs/redis": { - "optional": true - }, - "@adonisjs/session": { - "optional": true - } - } - }, - "node_modules/@adonisjs/auth/node_modules/@poppinss/hooks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-5.0.3.tgz", - "integrity": "sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==", - "peerDependencies": { - "@adonisjs/application": ">=4.0.0" - }, - "peerDependenciesMeta": { - "@adonisjs/application": { - "optional": true - } - } - }, - "node_modules/@adonisjs/bodyparser": { - "version": "8.1.9", - "resolved": "https://registry.npmjs.org/@adonisjs/bodyparser/-/bodyparser-8.1.9.tgz", - "integrity": "sha512-enVETPmoBJhg+CP6AVlG/GSwllpW/5y22wjFpEhYZl0YOXnE7i+wsp2VeGfMtQzl4+snTuAPEfwCtG+I/s6jqQ==", - "dependencies": { - "@poppinss/co-body": "^1.1.3", - "@poppinss/multiparty": "^2.0.1", - "@poppinss/utils": "^5.0.0", - "bytes": "^3.1.2", - "file-type": "^16.5.4", - "fs-extra": "^10.1.0", - "media-typer": "^1.1.0", - "slash": "^3.0.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/drive": "^2.0.0", - "@adonisjs/http-server": "^5.0.0" - } - }, - "node_modules/@adonisjs/config": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@adonisjs/config/-/config-3.0.9.tgz", - "integrity": "sha512-f+wzrc+0HLvhJyYGEMV2QTHtyJ8sI3PKvH9h/baW/iF8UO3KF+llHH0Cf3/M5dYnpdz9rnmj0VtdTaIDfxrgGg==", - "dependencies": { - "@poppinss/utils": "^5.0.0" - } - }, - "node_modules/@adonisjs/core": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-5.9.0.tgz", - "integrity": "sha512-32zG9EW0t0Ck0cMzlwD0+z3GJG7k/gZz6P0+h+s8N1N7fHxGixrKs7W7lT3OcIvk0NsuIw1tUPAU7fAWytHEqA==", - "dependencies": { - "@adonisjs/ace": "^11.3.1", - "@adonisjs/application": "^5.3.0", - "@adonisjs/bodyparser": "^8.1.7", - "@adonisjs/drive": "^2.3.0", - "@adonisjs/encryption": "^4.0.8", - "@adonisjs/events": "^7.2.1", - "@adonisjs/hash": "^7.2.2", - "@adonisjs/http-server": "^5.12.0", - "@adonisjs/validator": "^12.4.1", - "@poppinss/cliui": "^3.0.5", - "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^5.0.0", - "fs-extra": "^10.1.0", - "macroable": "^7.0.2", - "memfs": "^3.4.12", - "serve-static": "^1.15.0", - "stringify-attributes": "^2.0.0" - } - }, - "node_modules/@adonisjs/drive": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@adonisjs/drive/-/drive-2.3.0.tgz", - "integrity": "sha512-3V1kBe2qB/860KcS+dDonv8Xya2YDBdR7291pQgObJeTbV50Vy8RhwdOwtU7ybRfN2kh/svdC4238JGpbQOR9w==", - "dependencies": { - "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^5.0.0", - "@types/fs-extra": "^9.0.13", - "etag": "^1.8.1", - "fs-extra": "^10.1.0", - "memfs": "^3.4.7" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/http-server": "^5.0.0" - } - }, - "node_modules/@adonisjs/encryption": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@adonisjs/encryption/-/encryption-4.0.8.tgz", - "integrity": "sha512-zMWbIESPHXafsbiLJyON/hlRYwrTIA3PuTil7xC8W4ngC36PgWe86Ra0x0t961u1We/LaSGkT8Vn93DymqB3aA==", - "dependencies": { - "@poppinss/utils": "^4.0.3" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/encryption/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/env": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@adonisjs/env/-/env-3.0.9.tgz", - "integrity": "sha512-9lxGmOQuF4FpUQ6NIwL/YQumaXG+2Wt8jQlQptplSUTasy6DHSEp7/SYvtC2RD9vxwn4gsptNCo+f8YRiqUvwQ==", - "dependencies": { - "@poppinss/utils": "^4.0.2", - "dotenv": "^16.0.0", - "validator": "^13.7.0" - } - }, - "node_modules/@adonisjs/env/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/events": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@adonisjs/events/-/events-7.2.1.tgz", - "integrity": "sha512-N+ewQ19pvdWVIRGBeio1GqlMRJpHpZ+ZHCjhObI+bqoCh5nBApumW0JYe4blyMnUbUAtA9Aq1m1QbGaE7pRMcw==", - "dependencies": { - "emittery": "^0.10.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/events/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/@adonisjs/fold": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-8.2.0.tgz", - "integrity": "sha512-Uoo2HPp4SShIkGOF3+p3gT09W3j0zpkK+fOpPyYPTqYm7CWAunklTlowqX45b6CAVb5DCcORDUB8ia4D1ijeKg==", - "dependencies": { - "@poppinss/utils": "^4.0.4" - } - }, - "node_modules/@adonisjs/fold/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/hash": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-7.2.2.tgz", - "integrity": "sha512-qJxFX8jNH+5+jxckIIvz2y9pMt59ueT50a4B5kUe/68g5iC7UdwKmMos+tj5Pnm5hRFfwKXbtIQBGd+Bb87+2Q==", - "dependencies": { - "@phc/format": "^1.0.0", - "@poppinss/manager": "^5.0.2", - "@poppinss/utils": "^5.0.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/http-server": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@adonisjs/http-server/-/http-server-5.12.0.tgz", - "integrity": "sha512-+9cw/DRlLO2NSoHsccmMe3pFf6c0/8INds2yf73ZAZOmzUROb9DQaXHocJ/iwHX9EVxtDuKWDc5z0jI1SYdqEA==", - "dependencies": { - "@poppinss/matchit": "^3.1.2", - "@poppinss/utils": "^5.0.0", - "accepts": "^1.3.8", - "co-compose": "^7.0.2", - "content-disposition": "^0.5.4", - "cookie": "^0.5.0", - "destroy": "^1.2.0", - "encodeurl": "^1.0.2", - "etag": "^1.8.1", - "fresh": "^0.5.2", - "haye": "^3.0.0", - "macroable": "^7.0.2", - "mime-types": "^2.1.35", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "pluralize": "^8.0.0", - "proxy-addr": "^2.0.7", - "qs": "^6.11.0", - "tmp-cache": "^1.1.0", - "type-is": "^1.6.18", - "vary": "^1.1.2" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/encryption": "^4.0.0" - } - }, - "node_modules/@adonisjs/ioc-transformer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@adonisjs/ioc-transformer/-/ioc-transformer-2.3.4.tgz", - "integrity": "sha512-ik1C7f0Hbqenw6S1Ty06B4pznGfpUH5bL2fiCYgwq+jKPw8CKdsTQKvYudS6Tj68Nr6Mpqow4RNbvFV/OC0mZg==", - "dev": true - }, - "node_modules/@adonisjs/logger": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@adonisjs/logger/-/logger-4.1.5.tgz", - "integrity": "sha512-JMINhXp/6VW0y4e86luyM8vbBzV4Y5F4IzVklMObCu/SwiaCbp5bgx9Z6QOHiGVW8SFVlRF1KlwLq8pAifjTpQ==", - "dependencies": { - "@poppinss/utils": "^5.0.0", - "@types/pino": "^6.3.12", - "abstract-logging": "^2.0.1", - "pino": "^6.14.0" - } - }, - "node_modules/@adonisjs/lucid": { - "version": "18.4.2", - "resolved": "https://registry.npmjs.org/@adonisjs/lucid/-/lucid-18.4.2.tgz", - "integrity": "sha512-4k8GOat/YQtobNqwBIU8VAuY19p+V3ucBRoZ+iwxd/qy/KE1XupPzuMZVWYt1vyBboCrBmEYYmvC851tNqoP0A==", - "dependencies": { - "@faker-js/faker": "^8.0.1", - "@poppinss/hooks": "^5.0.3", - "@poppinss/utils": "^5.0.0", - "fast-deep-equal": "^3.1.3", - "igniculus": "^1.5.0", - "knex": "^2.4.2", - "knex-dynamic-connection": "^3.0.1", - "luxon": "^3.3.0", - "macroable": "^7.0.2", - "pretty-hrtime": "^1.0.3", - "qs": "^6.11.2", - "slash": "^3.0.0", - "tarn": "^3.0.2" - }, - "engines": { - "node": ">=14.15.4" - }, - "peerDependencies": { - "@adonisjs/core": "^5.1.0" - } - }, - "node_modules/@adonisjs/lucid/node_modules/@poppinss/hooks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-5.0.3.tgz", - "integrity": "sha512-M5a151VUl+RslVP5qwDW+u+0VmzKt5Nfplzdx2nrtXol3yVlLN3u2Jp6UADESid3DDI7IRHmFrA3sQusey3eUA==", - "peerDependencies": { - "@adonisjs/application": ">=4.0.0" - }, - "peerDependenciesMeta": { - "@adonisjs/application": { - "optional": true - } - } - }, - "node_modules/@adonisjs/profiler": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@adonisjs/profiler/-/profiler-6.0.9.tgz", - "integrity": "sha512-V1bJPPDTn05NzAKUEICnYtWi9fC8NownUToaqxVkWOUovYBO6ubt06qtH1Uv9zvUjB2PKHUn+ieDAOgyHle09A==", - "dependencies": { - "@poppinss/utils": "^4.0.3", - "jest-worker": "^27.5.1" - }, - "peerDependencies": { - "@adonisjs/logger": "^4.0.0" - } - }, - "node_modules/@adonisjs/profiler/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/repl": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@adonisjs/repl/-/repl-3.1.11.tgz", - "integrity": "sha512-t4xN+G+fa/XeZ+7qHnFbTk1bri/4RIGdFDk1cq2SeZI3nfu3E8Ma62uQVc8U3AAroN51plzXVcUoQ/Iw8q1P+Q==", - "dependencies": { - "@poppinss/colors": "^3.0.2", - "node-repl-await": "^0.1.2", - "parse-imports": "0.0.5", - "string-width": "^4.2.2" - }, - "peerDependencies": { - "@adonisjs/core": "^5.1.0" - } - }, - "node_modules/@adonisjs/require-ts": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@adonisjs/require-ts/-/require-ts-2.0.13.tgz", - "integrity": "sha512-PyDvrGzriU9dJC/ZkP+aT/+5jKCMTWIlc6KivU/uSGX9L9+PF213nzAATS1PKEWP1G0GcWsnyhQW8QgMwuFS3A==", - "dev": true, - "dependencies": { - "@poppinss/utils": "^5.0.0", - "debug": "^4.3.4", - "find-cache-dir": "^3.3.2", - "fs-extra": "^10.1.0", - "normalize-path": "^3.0.0", - "pirates": "^4.0.5", - "rev-hash": "^3.0.0", - "source-map-support": "^0.5.21" - } - }, - "node_modules/@adonisjs/session": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@adonisjs/session/-/session-6.4.0.tgz", - "integrity": "sha512-9yHS60lFpNBUX5/yB+0j+bXQDWqbaYJ1JelLCYtaKRa7B0NewvmPAmsNpHH8SrXE3XGaRyKOxrUGRcmSGg5mRA==", - "dependencies": { - "@poppinss/utils": "^4.0.4", - "fs-extra": "^10.1.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.8.0" - } - }, - "node_modules/@adonisjs/session/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/shield": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@adonisjs/shield/-/shield-7.1.1.tgz", - "integrity": "sha512-y1YzXwravcS/A1yxcyfSD/UrRi2+H9v0ntX9NgVhLYvBF5eHuPzQKgv9sICVjmj2z7n94HzcTAio0Rc32EX51Q==", - "dependencies": { - "@poppinss/utils": "^4.0.4", - "csrf": "^3.1.0", - "helmet-csp": "^3.4.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.7.0", - "@adonisjs/session": "^6.2.0", - "@adonisjs/view": "^6.1.0" - }, - "peerDependenciesMeta": { - "@adonisjs/view": { - "optional": true - } - } - }, - "node_modules/@adonisjs/shield/node_modules/@poppinss/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-6LS3mofSVB9IQZqofA4rX6KVVcCpdwUQuNe4efHqOTzgD/Q5HTVvDP0vKg1m994QlzJs4aLW1JwXVcNCThEh4g==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@adonisjs/sink": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@adonisjs/sink/-/sink-5.4.3.tgz", - "integrity": "sha512-wmAft/tjHQLtjbDjntaVu3/cmeP+3tXKDaMeWjVf6Dz+tXaM9XNg2EVVSV41F3JDF4W1u9ich9mC+4wvWJDy5g==", - "dev": true, - "dependencies": { - "@poppinss/cliui": "^3.0.5", - "@poppinss/prompts": "^2.0.2", - "@poppinss/utils": "^5.0.0", - "cp-file": "^9.1.0", - "fs-extra": "^10.1.0", - "marked": "^4.2.12", - "marked-terminal": "^5.1.1", - "mrm-core": "7.1.13", - "mustache": "^4.2.0", - "open": "^8.4.2" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0" - } - }, - "node_modules/@adonisjs/validator": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/@adonisjs/validator/-/validator-12.5.0.tgz", - "integrity": "sha512-88Lu+8OyS92A4mg0hE8AEjr8q9KmgZeR5obPGoAnCxBrptrsHHtKTQq242c+DbzuAWZzw5ZEX2dvv34PW/FmFw==", - "dependencies": { - "@poppinss/utils": "^5.0.0", - "@types/luxon": "^3.3.1", - "@types/validator": "^13.11.1", - "luxon": "^3.4.1", - "normalize-url": "^6.1.0", - "tmp-cache": "^1.1.0", - "validator": "^13.11.0" - }, - "peerDependencies": { - "@adonisjs/application": "^5.0.0", - "@adonisjs/bodyparser": "^8.0.0", - "@adonisjs/http-server": "^5.0.0" - } - }, - "node_modules/@adonisjs/view": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@adonisjs/view/-/view-6.2.0.tgz", - "integrity": "sha512-967f0fQ0QqdHIGh8qVdWoTHbfjB21gCh+SmCbuBWk1etpO0xTGgA2P1iDkBp/9Cd8BUTyhJX2TamKTsUP8FraA==", - "dependencies": { - "edge-error": "^2.0.8", - "edge-supercharged": "^3.1.1", - "edge.js": "^5.5.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.7.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", - "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true - }, - "node_modules/@arr/every": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@arr/every/-/every-1.0.1.tgz", - "integrity": "sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@faker-js/faker": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.2.0.tgz", - "integrity": "sha512-VacmzZqVxdWdf9y64lDOMZNDMM/FQdtM9IsaOPKOm2suYwEatb8VkdHqOzXcDnZbk7YDE2BmsJmy/2Hmkn563g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/fakerjs" - } - ], - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0", - "npm": ">=6.14.13" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@japa/api-client": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@japa/api-client/-/api-client-1.4.4.tgz", - "integrity": "sha512-7YVDWMWDvUGRlAxOS2QmYTyfxsY+EC0fiVz/w7J4qIT2oYhl1TVfJ/R1WWRoLe/KuZr2yIUNlp7OdStVjESB5A==", - "dev": true, - "dependencies": { - "@poppinss/hooks": "^6.0.2-0", - "@types/superagent": "^4.1.16", - "cookie": "^0.5.0", - "macroable": "^7.0.2", - "set-cookie-parser": "^2.5.1", - "superagent": "^8.0.9" - }, - "peerDependencies": { - "@japa/runner": "^2.2.3" - } - }, - "node_modules/@japa/assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@japa/assert/-/assert-1.4.1.tgz", - "integrity": "sha512-IyacnyaGzHqKTUbnOproPluHGWybt0ix0UsISAnjK62aTlDS4pOYPXkCDexk21/iReXNLtFgKM/RrDPDAUfrqA==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.4", - "api-contract-validator": "^2.2.8", - "chai": "^4.3.7", - "macroable": "^7.0.2" - }, - "peerDependencies": { - "@japa/runner": "^2.1.1" - } - }, - "node_modules/@japa/base-reporter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@japa/base-reporter/-/base-reporter-1.1.2.tgz", - "integrity": "sha512-6MYs/EsXjouFPNUQL3VGllryZ5enI5rqhvQbY2Dzh3Zmhu22DWw6v9d2pxucrFptDTtQ38MBPVL/BIeZAafmOw==", - "dev": true, - "dependencies": { - "@japa/errors-printer": "^2.1.0", - "@poppinss/cliui": "^3.0.5", - "ms": "^2.1.3" - } - }, - "node_modules/@japa/core": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@japa/core/-/core-7.3.3.tgz", - "integrity": "sha512-3mkWlzWVALZANFfMK6Q6xtYGM3mpzZeeGGUVQGDt2OOxvL8FDADVxHrRn9BFc1V4fVJO4jR/QH5utrb+RfCF5g==", - "dev": true, - "dependencies": { - "@poppinss/hooks": "^6.0.2-0", - "async-retry": "^1.3.3", - "emittery": "^0.13.1", - "macroable": "^7.0.2", - "time-span": "^4.0.0" - } - }, - "node_modules/@japa/errors-printer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@japa/errors-printer/-/errors-printer-2.1.0.tgz", - "integrity": "sha512-iZUrB58e29jbRxb7lxocz5uHt9mQ1q7iojs8Gh1kIKmvaPx0KMqce77JDtqYzu2+95WjmppAvM6au1l1WYJmpw==", - "dev": true, - "dependencies": { - "@poppinss/cliui": "^3.0.5", - "jest-diff": "^29.4.1", - "youch": "^3.2.3", - "youch-terminal": "^2.2.0" - } - }, - "node_modules/@japa/preset-adonis": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@japa/preset-adonis/-/preset-adonis-1.2.0.tgz", - "integrity": "sha512-jcvQCN9U5WA4kdKDtYuV6DZMzrZomxho3MASS6yhnJsSqSW6jgFDNwhOgSzY7AyPgxmVAf3jZ6JKd7r2USctlA==", - "dev": true, - "dependencies": { - "@japa/api-client": "^1.4.2", - "@japa/assert": "^1.3.6", - "@japa/run-failed-tests": "^1.1.0", - "@japa/spec-reporter": "^1.3.0" - }, - "peerDependencies": { - "@adonisjs/core": "^5.0.0", - "@japa/runner": "^2.0.0" - } - }, - "node_modules/@japa/run-failed-tests": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@japa/run-failed-tests/-/run-failed-tests-1.1.1.tgz", - "integrity": "sha512-lMv1nAtKBpX7CH8K+HHRr2aaCTAJ9Q3i7DG12MmU2A/EDJFuP7e9ZASE8O0UTlk5Goc+DR6mzuFXG3R351J89w==", - "dev": true, - "dependencies": { - "@poppinss/cliui": "^3.0.5", - "find-cache-dir": "^3.3.2", - "fs-extra": "^11.1.0" - }, - "peerDependencies": { - "@japa/runner": "^2.2.3" - } - }, - "node_modules/@japa/run-failed-tests/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@japa/runner": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@japa/runner/-/runner-2.5.1.tgz", - "integrity": "sha512-p1zjniMCiGxRnZkUs5WtZjTQhbXcnK0aM2Wu4Qc+w+MBpmOrw5J2zJuge0FweepTUR9CT3r2x65uw4qIshy8XQ==", - "dev": true, - "dependencies": { - "@japa/core": "^7.3.2", - "@japa/errors-printer": "^2.1.0", - "@poppinss/cliui": "^3.0.5", - "@poppinss/hooks": "^6.0.2-0", - "fast-glob": "^3.2.12", - "getopts": "^2.3.0", - "inclusion": "^1.0.1" - } - }, - "node_modules/@japa/runner/node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/@japa/runner/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@japa/runner/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@japa/spec-reporter": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@japa/spec-reporter/-/spec-reporter-1.3.3.tgz", - "integrity": "sha512-EOOjvQVmmWZDKxmO+f0v/BSNeKzKkeJSrNwEldkF40zZWdHX2J3Jb2MJowE5DgSOQCiG/OG2UFen0I+XLnPoxQ==", - "dev": true, - "dependencies": { - "@japa/base-reporter": "^1.1.1", - "@japa/errors-printer": "^2.1.0", - "@poppinss/cliui": "^3.0.5", - "ms": "^2.1.3" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "node_modules/@kdf/salt": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@kdf/salt/-/salt-2.0.1.tgz", - "integrity": "sha512-1RBY7HcGYuWBm0+4ygjdRerN+mhpuT5picGB6+azqUXsz/IZljegrKkeHRiV6wuxY8n4HrxOuw8ou7JuGxRWdQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "optional": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@nuxt/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-2.5.2.tgz", - "integrity": "sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==", - "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "consola": "^2.6.0", - "error-stack-parser": "^2.0.0", - "string-width": "^4.2.3" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nuxt/friendly-errors-webpack-plugin/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@phc/format": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", - "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", - "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@pkgr/utils/node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/@pkgr/utils/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@pkgr/utils/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@poppinss/chokidar-ts": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@poppinss/chokidar-ts/-/chokidar-ts-3.3.5.tgz", - "integrity": "sha512-Ht//xB2ZPa16EDH/bmaWEBWunsBTnBYdnv3nKwXHrqNHDfcYX1DHcJmcNORRH9YLOOuVsTmqDcpiAdTn06LaHQ==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.2.0", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "emittery": "^0.10.2", - "fs-extra": "^10.0.1", - "mem": "^8.1.1", - "picomatch": "^2.3.1" - } - }, - "node_modules/@poppinss/chokidar-ts/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/@poppinss/cliui": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@poppinss/cliui/-/cliui-3.0.5.tgz", - "integrity": "sha512-9TCwhJ6hQDAv7LWredEQL7eSA97kQ/i5Td80T7InV9z9rOXT8keywAM0pSvTUS01bwCeiZQVoT4r/G67DRiPJA==", - "dependencies": { - "@poppinss/colors": "^3.0.3", - "cli-boxes": "^3.0.0", - "cli-table3": "^0.6.3", - "color-support": "^1.1.3", - "log-update": "^4.0.0", - "pretty-hrtime": "^1.0.3", - "string-width": "^4.2.2" - } - }, - "node_modules/@poppinss/co-body": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@poppinss/co-body/-/co-body-1.2.0.tgz", - "integrity": "sha512-1aJ06XrtQ8gueo91+Vc7TTSeXECsW1pWDCKumtuGL+9xsjJvP6n567YuimwHuH99wFMIhyNW5U1g2C/4wjvXCQ==", - "dependencies": { - "@poppinss/utils": "^5.0.0", - "inflation": "^2.0.0", - "qs": "^6.11.0", - "raw-body": "^2.5.1", - "type-is": "^1.6.18" - } - }, - "node_modules/@poppinss/colors": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-3.0.3.tgz", - "integrity": "sha512-jiZcp91PvIs5s4Wz4gEVY9J2tqH6H1++mZmsrC3TmFam9gbVPUJPEubPM5j4BQYJre7bjs9nkIbYFcWMOFHIVQ==", - "dependencies": { - "color-support": "^1.1.3", - "kleur": "^4.1.5" - } - }, - "node_modules/@poppinss/file-generator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/file-generator/-/file-generator-1.0.2.tgz", - "integrity": "sha512-rRob//4jLbUVbDSsNRihloKGgpyVsWdFQWUmONxX/gyv4koT1OlVoc3ccWgk7Y/sEa2cFxj3zrFs+wdT09iXWw==", - "dependencies": { - "bytes": "^3.1.2" - } - }, - "node_modules/@poppinss/hooks": { - "version": "6.0.2-0", - "resolved": "https://registry.npmjs.org/@poppinss/hooks/-/hooks-6.0.2-0.tgz", - "integrity": "sha512-mG0hnQlxgflvxyM6t/XO8z/FwotsYRXPhtLZ3cz3iyk4t8xaNtOihSANBcvqdkxZCtGBvotNIf/GnES9hvlfSQ==", - "dev": true - }, - "node_modules/@poppinss/inspect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@poppinss/inspect/-/inspect-1.0.1.tgz", - "integrity": "sha512-kLeEaBSGhlleyYvKc7c9s3uE6xv7cwyulE0EgHf4jU/CL96h0yC4mkdw1wvC1l1PYYQozCGy46FwMBAAMOobCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@poppinss/manager": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/manager/-/manager-5.0.2.tgz", - "integrity": "sha512-c5F3EKztq/iw0J+BfNu5rSI5/ji+kjts4rJaC/VvIzpTWzbRorb7UR9J32T8cLtTwjNHbmxk3BAU402lvL2JFA==" - }, - "node_modules/@poppinss/matchit": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@poppinss/matchit/-/matchit-3.1.2.tgz", - "integrity": "sha512-Bx+jY+vmdQFmwYiHliiPjr+oVBaGnh79B1h1FSAm3jME1QylLFt8PPYC0ymO8Q5PzJj/KuE3jeTnZhRHOWqq8g==", - "dependencies": { - "@arr/every": "^1.0.0" - } - }, - "node_modules/@poppinss/multiparty": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@poppinss/multiparty/-/multiparty-2.0.1.tgz", - "integrity": "sha512-Pf3V9PFyZDIkDBBiAOT2hdmA+1l/+hverHbUnMzNzwtwgO50s2ZPt5KxUydVA0hceg9gryo5unQ0WUF1SO9tkQ==", - "dependencies": { - "http-errors": "^2.0.0", - "safe-buffer": "5.2.1", - "uid-safe": "2.1.5" - } - }, - "node_modules/@poppinss/prompts": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@poppinss/prompts/-/prompts-2.0.2.tgz", - "integrity": "sha512-jTrE8U5rnHTZNpBvPauFVDMQZZuEnfABbJUEXfq0uu8oGJnPaaA+y0bQbyqVf4yWqgRGldgrzAwNz739hIEnPQ==", - "dependencies": { - "@poppinss/colors": "^3.0.2", - "enquirer": "^2.3.6" - } - }, - "node_modules/@poppinss/utils": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-5.0.0.tgz", - "integrity": "sha512-SpJL5p4Nx3bRCpCf62KagZLUHLvJD+VDylGpXAeP2G5qb3s6SSOBlpaFmer4GxdyTqLIUt0PRCzF1TbpNU+qZw==", - "dependencies": { - "@poppinss/file-generator": "^1.0.2", - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "bytes": "^3.1.2", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.5", - "truncatise": "0.0.8" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@symfony/webpack-encore": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@symfony/webpack-encore/-/webpack-encore-4.1.1.tgz", - "integrity": "sha512-uZRXej1prTvYG/QJWR/DzKcZtBKEXDkGtK9qlQtO43ip8t8NIZmM+w8qeb4eiS7aoULWmpG7GpQOLWPhsccUDA==", - "dev": true, - "dependencies": { - "@nuxt/friendly-errors-webpack-plugin": "^2.5.1", - "assets-webpack-plugin": "7.0.*", - "babel-loader": "^8.2.5", - "chalk": "^4.0.0", - "clean-webpack-plugin": "^4.0.0", - "css-loader": "^6.7.0", - "css-minimizer-webpack-plugin": "^4.0.0", - "fast-levenshtein": "^3.0.0", - "mini-css-extract-plugin": "^2.6.0", - "pkg-up": "^3.1.0", - "pretty-error": "^4.0.0", - "resolve-url-loader": "^5.0.0", - "semver": "^7.3.2", - "style-loader": "^3.3.0", - "sync-rpc": "^1.3.6", - "tapable": "^2.2.1", - "terser-webpack-plugin": "^5.3.0", - "tmp": "^0.2.1", - "webpack-dev-server": "^4.8.0", - "yargs-parser": "^21.0.0" - }, - "bin": { - "encore": "bin/encore.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.17.0", - "@babel/plugin-transform-react-jsx": "^7.12.11", - "@babel/preset-env": "^7.16.0", - "@babel/preset-react": "^7.0.0", - "@babel/preset-typescript": "^7.0.0", - "@symfony/stimulus-bridge": "^3.0.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-preset-jsx": "^1.0.0", - "@vue/compiler-sfc": "^3.0.2", - "eslint": "^8.0.0", - "eslint-webpack-plugin": "^3.1.0", - "file-loader": "^6.0.0", - "fork-ts-checker-webpack-plugin": "^7.0.0", - "handlebars": "^4.7.7", - "handlebars-loader": "^1.7.0", - "less": "^4.0.0", - "less-loader": "^11.0.0", - "postcss": "^8.3.0", - "postcss-loader": "^7.0.0", - "sass": "^1.17.0", - "sass-loader": "^13.0.0", - "stylus": "^0.58.1", - "stylus-loader": "^7.0.0", - "ts-loader": "^9.0.0", - "typescript": "^4.2.2", - "vue": "^2.6 || ^3.2.14", - "vue-loader": "^15.0.11 || ^17.0.0", - "vue-template-compiler": "^2.5", - "webpack": "^5.72", - "webpack-cli": "^4.9.1", - "webpack-notifier": "^1.15.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": false - }, - "@babel/plugin-transform-react-jsx": { - "optional": true - }, - "@babel/preset-env": { - "optional": false - }, - "@babel/preset-react": { - "optional": true - }, - "@babel/preset-typescript": { - "optional": true - }, - "@symfony/stimulus-bridge": { - "optional": true - }, - "@vue/babel-helper-vue-jsx-merge-props": { - "optional": true - }, - "@vue/babel-preset-jsx": { - "optional": true - }, - "@vue/compiler-sfc": { - "optional": true - }, - "eslint": { - "optional": true - }, - "eslint-webpack-plugin": { - "optional": true - }, - "file-loader": { - "optional": true - }, - "fork-ts-checker-webpack-plugin": { - "optional": true - }, - "handlebars": { - "optional": true - }, - "handlebars-loader": { - "optional": true - }, - "less": { - "optional": true - }, - "less-loader": { - "optional": true - }, - "postcss": { - "optional": true - }, - "postcss-loader": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-loader": { - "optional": true - }, - "stylus": { - "optional": true - }, - "stylus-loader": { - "optional": true - }, - "ts-loader": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vue": { - "optional": true - }, - "vue-loader": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - }, - "webpack": { - "optional": false - }, - "webpack-cli": { - "optional": false - }, - "webpack-notifier": { - "optional": true - } - } - }, - "node_modules/@symfony/webpack-encore/node_modules/fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "dev": true, - "dependencies": { - "fastest-levenshtein": "^1.0.7" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", - "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.12.tgz", - "integrity": "sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bytes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.3.tgz", - "integrity": "sha512-eEgZiWn6cjG8tc+AkI3FIa9ub9zhLMSRHqbecHe5yffqws+848zoHdbgFYxvUks4RElfJB9cupvqcd1gvDFQig==" - }, - "node_modules/@types/chai": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz", - "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==", - "dev": true - }, - "node_modules/@types/connect": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", - "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.2.tgz", - "integrity": "sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-LZ8SD3LpNmLMDLkG2oCBjZg+ETnx6XdCjydUE0HwojDmnDfDUnhMKKbtth1TZh+hzcqb03azrYWoXLS8sMXdqg==", - "dev": true - }, - "node_modules/@types/eslint": { - "version": "8.44.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz", - "integrity": "sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.6.tgz", - "integrity": "sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz", - "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.20.tgz", - "integrity": "sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.39", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", - "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/he": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/he/-/he-1.2.2.tgz", - "integrity": "sha512-v2gT1gRK65k9nz8SVSXo3lh7AHnRPL3mRcYNhhsqL/L2S1xt/MGyEI5a7vJPXWik/IxTtAktXf8/HlCxDR1nsw==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.13", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.13.tgz", - "integrity": "sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true - }, - "node_modules/@types/luxon": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.3.tgz", - "integrity": "sha512-/BJF3NT0pRMuxrenr42emRUF67sXwcZCd+S1ksG/Fcf9O7C3kKCY4uJSbKBE4KDUIYr3WMsvfmWD8hRjXExBJQ==" - }, - "node_modules/@types/mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.8.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", - "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.8.tgz", - "integrity": "sha512-vGXshY9vim9CJjrpcS5raqSjEfKlJcWy2HNdgUasR66fAnVEYarrf1ULV4nfvpC1nZq/moA9qyqBcu83x+Jlrg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/pino": { - "version": "6.3.12", - "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.12.tgz", - "integrity": "sha512-dsLRTq8/4UtVSpJgl9aeqHvbh6pzdmjYD3C092SYgLD2TyoCqHpTJk6vp8DvCTGGc7iowZ2MoiYiVUUCcu7muw==", - "dependencies": { - "@types/node": "*", - "@types/pino-pretty": "*", - "@types/pino-std-serializers": "*", - "sonic-boom": "^2.1.0" - } - }, - "node_modules/@types/pino-pretty": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-5.0.0.tgz", - "integrity": "sha512-N1uzqSzioqz8R3AkDbSJwcfDWeI3YMPNapSQQhnB2ISU4NYgUIcAh+hYT5ygqBM+klX4htpEhXMmoJv3J7GrdA==", - "deprecated": "This is a stub types definition. pino-pretty provides its own type definitions, so you do not need this installed.", - "dependencies": { - "pino-pretty": "*" - } - }, - "node_modules/@types/pino-std-serializers": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", - "integrity": "sha512-gXfUZx2xIBbFYozGms53fT0nvkacx/+62c8iTxrEqH5PkIGAQvDbXg2774VWOycMPbqn5YJBQ3BMsg4Li3dWbg==", - "deprecated": "This is a stub types definition. pino-std-serializers provides its own type definitions, so you do not need this installed.", - "dependencies": { - "pino-std-serializers": "*" - } - }, - "node_modules/@types/proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha512-6OK5kH63HPo+0kDR8c05960AYxsfMEFOd/CXmhy87jREIpVIgYTCrHEqjl3f1wS5USA0i2is4Bx1BLzt+5evfA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/qs": { - "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", - "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.3.tgz", - "integrity": "sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", - "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.35", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.35.tgz", - "integrity": "sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-91Jf4LyPAObBTFbpW3bSDK1ncdwXohvlBmzffSj7/44SY+1mD/HhesdfspCMxPIJwllgN2G4eVFatGs4Zw/lnw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.0" - } - }, - "node_modules/@types/superagent": { - "version": "4.1.20", - "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-4.1.20.tgz", - "integrity": "sha512-GfpwJgYSr3yO+nArFkmyqv3i0vZavyEG5xPd/o95RwpKYpsOKJYI5XLdxLpdRbZI3YiGKKdIOFIf/jlP7A0Jxg==", - "dev": true, - "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" - } - }, - "node_modules/@types/validator": { - "version": "13.11.5", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.5.tgz", - "integrity": "sha512-xW4qsT4UIYILu+7ZrBnfQdBYniZrMLYYK3wN9M/NdeIHgBN5pZI2/8Q7UfdWIcr5RLJv/OGENsx91JIpUUoC7Q==" - }, - "node_modules/@types/ws": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz", - "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "15.0.17", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.17.tgz", - "integrity": "sha512-cj53I8GUcWJIgWVTSVe2L7NJAB5XWGdsoMosVvUgv1jEnMbAcsbaCzt1coUcyi8Sda5PgTWAooG8jNyDTD+CWA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abstract-logging": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-class-fields": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-1.0.0.tgz", - "integrity": "sha512-l+1FokF34AeCXGBHkrXFmml9nOIRI+2yBnBpO5MaVAaTIJ96irWLtcCxX+7hAp6USHFCe+iyyBB4ZhxV807wmA==", - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6 || ^7 || ^8" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-private-class-elements": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-1.0.0.tgz", - "integrity": "sha512-zYNcZtxKgVCg1brS39BEou86mIao1EV7eeREG+6WMwKbuYTeivRRs6S2XdWnboRde6G9wKh2w+WBydEyJsJ6mg==", - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7 || ^8" - } - }, - "node_modules/acorn-private-methods": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-1.0.0.tgz", - "integrity": "sha512-Jou2L3nfwfPpFdmmHObI3yUpVPM1bPohTUAZCyVDw5Efyn9LSS6E36neRLCRfIr8QjskAfdxRdABOrvP4c/gwQ==", - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6 || ^7 || ^8" - } - }, - "node_modules/acorn-static-class-features": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-1.0.0.tgz", - "integrity": "sha512-XZJECjbmMOKvMHiNzbiPXuXpLAJfN3dAKtfIYbk1eHiWdsutlek+gS7ND4B8yJ3oqvHo1NxfafnezVmq7NXK0A==", - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "engines": { - "node": ">=4.8.2" - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7 || ^8" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adonis-preset-ts": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/adonis-preset-ts/-/adonis-preset-ts-2.1.0.tgz", - "integrity": "sha512-cQH/NP250gOF9k3TTDhVsTOPSAvyH4MhKVZ4ryYiihA+vnP27sut1gVIrRas3Evl5d2wEgWVGI5DgdP/ZFSk0w==", - "dev": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "optional": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "devOptional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/api-contract-validator": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/api-contract-validator/-/api-contract-validator-2.2.8.tgz", - "integrity": "sha512-YM3rMcrIp8Thf/WWbVBXBGX793Mm3Phw2pn3VbJpiZkpeTCTtF10huKPrzQ2gSIaK5GjAhTRJMAOyf+rsS7MAw==", - "dev": true, - "dependencies": { - "api-schema-builder": "^2.0.10", - "chalk": "^3.0.0", - "columnify": "^1.5.4", - "jest-diff": "^25.5.0", - "jest-matcher-utils": "^25.5.0", - "lodash.flatten": "^4.4.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "uri-js": "^4.4.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-contract-validator/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-contract-validator/node_modules/diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "dependencies": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/api-contract-validator/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/api-schema-builder": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/api-schema-builder/-/api-schema-builder-2.0.11.tgz", - "integrity": "sha512-85zbwf8MtPWodhfnmQRW5YD/fuGR12FP+8TbcYai5wbRnoUmPYLftLSbp7NB6zQMPb61Gjz+ApPUSyTdcCos7g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.6", - "clone-deep": "^4.0.1", - "decimal.js": "^10.3.1", - "js-yaml": "^3.14.1", - "json-schema-deref-sync": "^0.14.0", - "lodash.get": "^4.4.2", - "openapi-schema-validator": "^3.0.3", - "swagger-parser": "^10.0.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/api-schema-builder/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/api-schema-builder/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/argon2": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.30.3.tgz", - "integrity": "sha512-DoH/kv8c9127ueJSBxAVJXinW9+EuPA3EMUxoV2sAY1qDE5H9BjTyVF/aD2XyHqbqUWabgBkIfcP3ZZuGhbJdg==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.10", - "@phc/format": "^1.0.0", - "node-addon-api": "^5.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/argon2/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/as-table": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", - "dev": true, - "dependencies": { - "printable-characters": "^1.0.42" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/assets-webpack-plugin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/assets-webpack-plugin/-/assets-webpack-plugin-7.0.0.tgz", - "integrity": "sha512-DMZ9r6HFxynWeONRMhSOFTvTrmit5dovdoUKdJgCG03M6CC7XiwNImPH+Ad1jaVrQ2n59e05lBhte52xPt4MSA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "escape-string-regexp": "^4.0.0", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=10.x.x" - }, - "peerDependencies": { - "webpack": ">=5.0.0" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dev": true, - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/bootstrap": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", - "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "peerDependencies": { - "@popperjs/core": "^2.11.8" - } - }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "dev": true, - "dependencies": { - "run-applescript": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001558", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001558.tgz", - "integrity": "sha512-/Et7DwLqpjS47JPEcz6VnxU9PwcIdVi0ciLXRWBQdj1XFye68pSQYpV0QtPTfUKWuOaEig+/Vez2l74eDc1tPQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dev": true, - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dependencies": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/clean-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", - "dev": true, - "dependencies": { - "del": "^4.1.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.0 <6.0.0" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/co-compose": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/co-compose/-/co-compose-7.0.3.tgz", - "integrity": "sha512-ZHLSLzeBXe5yaEyIHo9T92uVrbsBRLMXlG0G4/pSm9f6148l4mJTr1cii8Jl9ce+mbLmW5XqHURPC7gZFJNeZA==" - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/comment-json": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-2.4.2.tgz", - "integrity": "sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==", - "dev": true, - "dependencies": { - "core-util-is": "^1.0.2", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-hrtime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", - "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js-compat": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", - "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cp-file": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", - "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", - "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.1", - "cp-file": "^7.0.0", - "globby": "^9.2.0", - "has-glob": "^1.0.0", - "junk": "^3.1.0", - "nested-error-stacks": "^2.1.0", - "p-all": "^2.1.0", - "p-filter": "^2.1.0", - "p-map": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy/node_modules/cp-file": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", - "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/csrf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", - "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", - "dependencies": { - "rndm": "1.2.0", - "tsscmp": "1.0.6", - "uid-safe": "2.1.5" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", - "dev": true, - "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/cuid": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", - "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==", - "deprecated": "Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead." - }, - "node_modules/dag-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", - "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", - "dev": true - }, - "node_modules/data-uri-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", - "dev": true - }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "dev": true, - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/default-browser/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/default-browser/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/edge-error": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-2.0.8.tgz", - "integrity": "sha512-ORKH7rn/LEfgo0qrgoMMwFPfestNFvTO+dRLDmS+zgulhd9BVXfv/p+V6K3OyEeu2L0ysYp/71uHB31GIDe68A==" - }, - "node_modules/edge-lexer": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/edge-lexer/-/edge-lexer-5.0.2.tgz", - "integrity": "sha512-MSpv6JRPD96eZl0uPo8gIvE9cPAXb1eNRfZKlQpFYJ2O8cNdZDpN8RvT2zpu4XqC63HWs/c938qc3dWN+GJhFw==", - "dependencies": { - "edge-error": "^3.0.0" - } - }, - "node_modules/edge-lexer/node_modules/edge-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-3.0.0.tgz", - "integrity": "sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==" - }, - "node_modules/edge-parser": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/edge-parser/-/edge-parser-8.2.2.tgz", - "integrity": "sha512-48iOLaOD4PAxIU0jnLRNXUL8G6ktO79bA4adOGXzNHg2M+mHfudFI7QPdF6IO8gW0NC1N0TPvwLWK3FVkE9bLQ==", - "dependencies": { - "acorn": "^8.8.2", - "astring": "^1.8.4", - "edge-error": "^3.0.0", - "edge-lexer": "^5.0.2", - "js-stringify": "^1.0.2" - } - }, - "node_modules/edge-parser/node_modules/edge-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-3.0.0.tgz", - "integrity": "sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==" - }, - "node_modules/edge-supercharged": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/edge-supercharged/-/edge-supercharged-3.1.1.tgz", - "integrity": "sha512-Pxgst3UeR+0PWuTIG2QHuFgFe73TMoVMphRsa/bOmIvOkQ87cD7+VxiS9ph2KbA4djJ2ChbdgtbNiIvju5yXEw==", - "dependencies": { - "@poppinss/utils": "^3.1.3", - "slash": "^3.0.0" - } - }, - "node_modules/edge-supercharged/node_modules/@poppinss/utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-3.3.1.tgz", - "integrity": "sha512-k4MFt+4JhOWJZ9D2xpEcG/mpZyXVXYT+dSOg83vHK1xhXl+7r0IYBXRKWX2+To7/90KJaWlwpcdCAalXE8Debg==", - "dependencies": { - "@types/bytes": "^3.1.1", - "@types/he": "^1.1.2", - "buffer-alloc": "^1.2.0", - "bytes": "^3.1.0", - "change-case": "^4.1.2", - "cuid": "^2.1.8", - "flattie": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "he": "^1.2.0", - "kind-of": "^6.0.3", - "lodash": "^4.17.21", - "ms": "^2.1.3", - "pluralize": "^8.0.0", - "require-all": "^3.0.0", - "resolve-from": "^5.0.0", - "slugify": "^1.6.1", - "truncatise": "0.0.8" - } - }, - "node_modules/edge.js": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/edge.js/-/edge.js-5.5.1.tgz", - "integrity": "sha512-lAhEdj1tW2VOJsP5X38wSHjjaXXwoteZ+8PDAJ50rAKzBxpw4QsdXK2jVzMFgRoTMUf7C+x+Tp51R9yxGTLO0w==", - "dependencies": { - "@poppinss/inspect": "^1.0.1", - "@poppinss/utils": "^5.0.0", - "edge-error": "^3.0.0", - "edge-lexer": "^5.0.2", - "edge-parser": "^8.2.1", - "js-stringify": "^1.0.2", - "macroable": "^7.0.1", - "stringify-attributes": "^2.0.0" - } - }, - "node_modules/edge.js/node_modules/edge-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/edge-error/-/edge-error-3.0.0.tgz", - "integrity": "sha512-TJE2A6KFqBMIe3EPyl/5V8veGYcMfpEtSNKfZkrSkQAyz3kh27etQ2erU6o0lkAFqDjjUl11YVzBIO2ij5/Zhw==" - }, - "node_modules/editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "bin": { - "editorconfig": "bin/editorconfig" - } - }, - "node_modules/editorconfig/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.569", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.569.tgz", - "integrity": "sha512-LsrJjZ0IbVy12ApW3gpYpcmHS3iRxH4bkKOW98y1/D+3cvDUWGcbzbsFinfUS8knpcZk/PG/2p/RnkMCYN7PVg==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/es-module-lexer": { - "version": "0.3.26", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz", - "integrity": "sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-adonis": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-adonis/-/eslint-plugin-adonis-2.1.1.tgz", - "integrity": "sha512-iC3eZXofK4q+KOGypiquT74amCpeqW+5K5WZ7pezUvrXgmFkZMn7MSQjAg44KVzq6pQdXFuRNlnS+ijcwx0AMw==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.37.0", - "@typescript-eslint/parser": "^5.37.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", - "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.5" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-copy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz", - "integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "dependencies": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/fast-glob/node_modules/@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-redact": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", - "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/flattie": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.0.tgz", - "integrity": "sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", - "dev": true, - "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-source": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getopts": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", - "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", - "dev": true - }, - "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", - "integrity": "sha512-D+8A457fBShSEI3tFCj65PAbT++5sKiFtdCdOam0gnfBgw9D277OERk+HM9qYJXmdVLZ/znez10SqHN0BBQ50g==", - "dev": true, - "dependencies": { - "is-glob": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-glob/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-own-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/haye": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/haye/-/haye-3.0.0.tgz", - "integrity": "sha512-yWxbPdeex78IR3x3X/DdqkZbVG4rP4UaRdUGmpClfnUh1C61mASt7Iav8vk2tXcTMSygBHDDfgoVqk68NJqzhQ==" - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/helmet-csp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-3.4.0.tgz", - "integrity": "sha512-a+YgzWw6dajqhQfb6ktxil0FsQuWTKzrLSUfy55dxS8fuvl1jidTIMPZ2udN15mjjcpBPgTHNHGF5tyWKYyR8w==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/help-me": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz", - "integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==", - "dependencies": { - "glob": "^8.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/help-me/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/help-me/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/help-me/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/help-me/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "optional": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/igniculus": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/igniculus/-/igniculus-1.5.0.tgz", - "integrity": "sha512-vhj2J/cSzNg2G5tcK4Z1KZdeYmQa5keoxFULUYAxctK/zHJb1oraO7noCqnJxKe1b2eZdiiaSL1IHPOFAI8UYQ==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "devOptional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inclusion": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/inclusion/-/inclusion-1.0.1.tgz", - "integrity": "sha512-TRicJXpIfJN+a47xxjs5nfy2V5l413e4aAtsLYRG+OsDM3A3uloBd/+fDmj23RVuIL9VQfwtb37iIc0rtMw9KA==", - "dev": true, - "dependencies": { - "parent-module": "^2.0.0" - } - }, - "node_modules/inclusion/node_modules/parent-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "dev": true, - "dependencies": { - "callsites": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "node_modules/inflation": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", - "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "optional": true - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "dev": true, - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "devOptional": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", - "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "dependencies": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/jest-util/node_modules/@types/yargs": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" - }, - "node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-deref-sync": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.14.0.tgz", - "integrity": "sha512-yGR1xmhdiD6R0MSrwWcFxQzAj5b3i5Gb/mt5tvQKgFMMeNe0KZYNEN/jWr7G+xn39Azqgcvk4ZKMs8dQl8e4wA==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "dag-map": "~1.0.0", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.13", - "md5": "~2.2.0", - "memory-cache": "~0.2.0", - "traverse": "~0.6.6", - "valid-url": "~1.0.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/knex": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/knex/-/knex-2.5.1.tgz", - "integrity": "sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==", - "dependencies": { - "colorette": "2.0.19", - "commander": "^10.0.0", - "debug": "4.3.4", - "escalade": "^3.1.1", - "esm": "^3.2.25", - "get-package-type": "^0.1.0", - "getopts": "2.3.0", - "interpret": "^2.2.0", - "lodash": "^4.17.21", - "pg-connection-string": "2.6.1", - "rechoir": "^0.8.0", - "resolve-from": "^5.0.0", - "tarn": "^3.0.2", - "tildify": "2.0.0" - }, - "bin": { - "knex": "bin/cli.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependenciesMeta": { - "better-sqlite3": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/knex-dynamic-connection": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/knex-dynamic-connection/-/knex-dynamic-connection-3.1.1.tgz", - "integrity": "sha512-Omq2Mw+5LkjJvZX+ESWpLx2FYkH9SB6Qq4Jad7f2LNQOQV1VLq91QQqtEhkgprnQuT3IUvzFooARpSN1uzoMEg==", - "dependencies": { - "debug": "^4.3.4", - "knex": "^3.0.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/knex-dynamic-connection/node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "node_modules/knex-dynamic-connection/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/knex-dynamic-connection/node_modules/knex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/knex/-/knex-3.0.1.tgz", - "integrity": "sha512-ruASxC6xPyDklRdrcDy6a9iqK+R9cGK214aiQa+D9gX2ZnHZKv6o6JC9ZfgxILxVAul4bZ13c3tgOAHSuQ7/9g==", - "dependencies": { - "colorette": "2.0.19", - "commander": "^10.0.0", - "debug": "4.3.4", - "escalade": "^3.1.1", - "esm": "^3.2.25", - "get-package-type": "^0.1.0", - "getopts": "2.3.0", - "interpret": "^2.2.0", - "lodash": "^4.17.21", - "pg-connection-string": "2.6.1", - "rechoir": "^0.8.0", - "resolve-from": "^5.0.0", - "tarn": "^3.0.2", - "tildify": "2.0.0" - }, - "bin": { - "knex": "bin/cli.js" - }, - "engines": { - "node": ">=16" - }, - "peerDependenciesMeta": { - "better-sqlite3": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/knex-dynamic-connection/node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/knex/node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "node_modules/knex/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/knex/node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/listify": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.3.tgz", - "integrity": "sha512-083swF7iH7bx8666zdzBColpgEuy46HjN3r1isD4zV6Ix7FuHfb/2/WVnl4CH8hjuoWeFF7P5KkKNXUnJCFEJg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/macroable": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/macroable/-/macroable-7.0.2.tgz", - "integrity": "sha512-QS9p+Q20YBxpE0dJBnF6CPURP7p1GUsxnhTxTWH5nG3A1F5w8Rg3T4Xyh5UlrFSbHp88oOciVP/0agsNLhkHdQ==" - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/marked-terminal": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", - "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^6.2.0", - "cardinal": "^2.1.1", - "chalk": "^5.2.0", - "cli-table3": "^0.6.3", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.3.0" - }, - "engines": { - "node": ">=14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" - } - }, - "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dev": true, - "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/marked-terminal/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", - "dev": true, - "dependencies": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/mem": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", - "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/mem?sponsor=1" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memory-cache": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", - "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", - "dev": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mrm-core": { - "version": "7.1.13", - "resolved": "https://registry.npmjs.org/mrm-core/-/mrm-core-7.1.13.tgz", - "integrity": "sha512-+AlsNuryLYw9HWqf+HBcNXULiwBEfcmb2VDccvYyg71x25bC8nJOn0YJA13x1PUUEF0aEbc5RTfqa6weMtRHaw==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "comment-json": "^2.2.0", - "detect-indent": "^6.0.0", - "editorconfig": "^0.15.3", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "kleur": "^3.0.3", - "listify": "^1.0.0", - "lodash": "^4.17.15", - "minimist": "^1.2.0", - "prop-ini": "^0.0.2", - "rc": "^1.2.8", - "readme-badger": "^0.3.0", - "semver": "^6.3.0", - "smpltmpl": "^1.0.2", - "split-lines": "^2.0.0", - "strip-bom": "^4.0.0", - "validate-npm-package-name": "^3.0.0", - "webpack-merge": "^4.2.2", - "yaml": "^2.0.0-1" - }, - "engines": { - "node": ">=10.13" - } - }, - "node_modules/mrm-core/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mrm-core/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/mrm-core/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/mrm-core/node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mrm-core/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mrm-core/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mrm-core/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mrm-core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/mrm-core/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nested-error-stacks": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/node-repl-await": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/node-repl-await/-/node-repl-await-0.1.2.tgz", - "integrity": "sha512-e03zlI31RjF6Ks9+/ju0gY55dZSm21XXMSzy85FGZtDxuAZCa/iQwzWoQjmZvaolQCrIjzs0e4shxZs1bxbpUg==", - "dependencies": { - "acorn": "^8.0.5", - "acorn-class-fields": "^1.0.0", - "acorn-private-methods": "^1.0.0", - "acorn-static-class-features": "^1.0.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-exit-leak-free": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", - "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/onetime/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-schema-validator": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-3.0.3.tgz", - "integrity": "sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==", - "dev": true, - "dependencies": { - "ajv": "^6.5.2", - "lodash.merge": "^4.6.1", - "openapi-types": "1.3.4", - "swagger-schema-official": "2.0.0-bab6bed" - } - }, - "node_modules/openapi-types": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.4.tgz", - "integrity": "sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==", - "dev": true - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-all": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", - "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-all/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-imports": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-0.0.5.tgz", - "integrity": "sha512-yA6mDNotJmyAXcEdi2AjiHfI8Llk+/uv/jgBgvzFVP8iGaHC5L3rR6VQk/1qEE3SvLUsDQ2GdQMfPTi0qrmt8Q==", - "dependencies": { - "es-module-lexer": "0.3.26", - "slashes": "2.0.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/pg-connection-string": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", - "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" - }, - "node_modules/phc-argon2": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/phc-argon2/-/phc-argon2-1.1.4.tgz", - "integrity": "sha512-iZGWarpCNY71Cu+Os5dsJPIUmuHb4EOC6wtnAfjRIPJ2SJ/MZ2ADLdrqqVw6GBeMmCT/EMMuyKRYG/ldIL2kOQ==", - "dependencies": { - "@kdf/salt": "^2.0.1", - "@phc/format": "^1.0.0", - "argon2": "^0.30.2", - "tsse": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pino": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", - "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", - "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", - "dependencies": { - "readable-stream": "^4.0.0", - "split2": "^4.0.0" - } - }, - "node_modules/pino-pretty": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.3.tgz", - "integrity": "sha512-4jfIUc8TC1GPUfDyMSlW1STeORqkoxec71yhxIpLDQapUu8WOuoz2TTCoidrIssyz78LZC69whBMPIKCMbi3cw==", - "dependencies": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.0", - "fast-safe-stringify": "^2.1.1", - "help-me": "^4.0.1", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^4.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-pretty/node_modules/sonic-boom": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz", - "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" - }, - "node_modules/pino/node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" - }, - "node_modules/pino/node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/printable-characters": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", - "dev": true - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/process-warning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/promise-retry/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/prop-ini": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", - "integrity": "sha512-qyU57WvAvZDbzmRy9xDbJGVwrGJhmA+rYnVjy4xtX4Ny9c7gzvpmf/j7A3oq9ChbPh15MZQKjPep2mNdnAhtig==", - "dev": true, - "dependencies": { - "extend": "^3.0.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", - "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readme-badger": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/readme-badger/-/readme-badger-0.3.0.tgz", - "integrity": "sha512-+sMOLSs1imZUISZ2Rhz7qqVd77QtpcAPbGeIraFdgJmijb04YtdlPjGNBvDChTNtLbeQ6JNGQy3pOgslWfaP3g==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dev": true, - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-all": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/require-all/-/require-all-3.0.0.tgz", - "integrity": "sha512-jPGN876lc5exWYrMcgZSd7U42P0PmVQzxnQB13fCSzmyGnqQWW4WUz5DosZ/qe24hz+5o9lSvW2epBNZ1xa6Fw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/resolve-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rev-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rev-hash/-/rev-hash-3.0.0.tgz", - "integrity": "sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rndm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", - "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==" - }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dev": true, - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slashes": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/slashes/-/slashes-2.0.2.tgz", - "integrity": "sha512-68p+QkFAQQRetIUzNXAdktNJr8AYLxJukjBegYQz8F7VATsBJG621UYtY/vS2j9jerxdJ1k6Tc25K4DXEw1d5w==" - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/smpltmpl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/smpltmpl/-/smpltmpl-1.0.2.tgz", - "integrity": "sha512-Hq23NNgeZigOzIiX1dkb6W3gFn2/XQj43KhPxu65IMieG/gIwf/lQb1IudjYv0c/5LwJeS/mPayYzyo+8WJMxQ==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "optional": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sonic-boom": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", - "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/split-lines": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/split-lines/-/split-lines-2.1.0.tgz", - "integrity": "sha512-8dv+1zKgTpfTkOy8XZLFyWrfxO0NV/bj/3EaQ+hBrBxGv2DwiroljPjU8NlCr+59nLnsVm9WYT7lXKwe4TC6bw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/sqlite3": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.6.tgz", - "integrity": "sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true - }, - "node_modules/stacktracey": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", - "dev": true, - "dependencies": { - "as-table": "^1.0.36", - "get-source": "^2.0.12" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-attributes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stringify-attributes/-/stringify-attributes-2.0.0.tgz", - "integrity": "sha512-wrVfRV6sCCB6wr3gx8OgKsp/9dSWWbKr8ifLfOxEcd/BBoa8d5pAf4BZb/jQW1JZnoZImjvUdxdo3ikYHZmYiw==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/superagent": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", - "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", - "dev": true, - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.1.2", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/swagger-parser": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.3.tgz", - "integrity": "sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==", - "dev": true, - "dependencies": { - "@apidevtools/swagger-parser": "10.0.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/swagger-parser/node_modules/@apidevtools/swagger-parser": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", - "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@apidevtools/openapi-schemas": "^2.0.4", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "z-schema": "^5.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/swagger-parser/node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "dev": true, - "peer": true - }, - "node_modules/swagger-schema-official": { - "version": "2.0.0-bab6bed", - "resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz", - "integrity": "sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==", - "dev": true - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dev": true, - "dependencies": { - "get-port": "^3.1.0" - } - }, - "node_modules/sync-rpc/node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/synckit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", - "dev": true, - "dependencies": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/tarn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", - "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.23.0.tgz", - "integrity": "sha512-Iyy83LN0uX9ZZLCX4Qbu5JiHiWjOCTwrmM9InWOzVeM++KNWEsqV4YgN9U9E8AlohQ6Gs42ztczlWOG/lwDAMA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/tildify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", - "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/time-span": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-4.0.0.tgz", - "integrity": "sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==", - "dev": true, - "dependencies": { - "convert-hrtime": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp-cache": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tmp-cache/-/tmp-cache-1.1.0.tgz", - "integrity": "sha512-j040fkL/x+XAZQ9K3bKGEPwgYhOZNBQLa3NXEADUiuno9C+3N2JJA4bVPDREixp604G3/vTXWA3DIPpA9lu1RQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/truncatise": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz", - "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "engines": { - "node": ">=0.6.x" - } - }, - "node_modules/tsse": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tsse/-/tsse-2.1.0.tgz", - "integrity": "sha512-rYyp1CO0VcKCIoAlMKAaLEb/1v5arucsRWSc+kkz9k2/GQN7rVMUH5Dmc7l3ZuiJGZ7jwEDO9Z0Qv6LkAqCdDA==", - "dependencies": { - "safe-buffer": "^5.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", - "dev": true - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/watchpack/node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", - "dev": true - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "devOptional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", - "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/youch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.2.tgz", - "integrity": "sha512-9cwz/z7abtcHOIuH45nzmUFCZbyJA1nLqlirKvyNRx4wDMhqsBaifAJzBej7L4fsVPjFxYq3NK3GAcfvZsydFw==", - "dev": true, - "dependencies": { - "cookie": "^0.5.0", - "mustache": "^4.2.0", - "stacktracey": "^2.1.8" - } - }, - "node_modules/youch-terminal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/youch-terminal/-/youch-terminal-2.2.3.tgz", - "integrity": "sha512-/PE77ZwG072tXBvF47S9RL9/G80u86icZ5QwyjblyM67L4n/T5qQeM3Xrecbu8kkDDr/9T/PTj/X+6G/OSRQug==", - "dev": true, - "dependencies": { - "kleur": "^4.1.5", - "string-width": "^4.2.3", - "wordwrap": "^1.0.0" - } - }, - "node_modules/z-schema": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", - "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", - "dev": true, - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - }, - "bin": { - "z-schema": "bin/z-schema" - }, - "engines": { - "node": ">=8.0.0" - }, - "optionalDependencies": { - "commander": "^9.4.1" - } - }, - "node_modules/z-schema/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "optional": true, - "engines": { - "node": "^12.20.0 || >=14" - } - } - } -} diff --git a/build/node_modules/abbrev/LICENSE b/build/node_modules/abbrev/LICENSE deleted file mode 100644 index 9bcfa9d7..00000000 --- a/build/node_modules/abbrev/LICENSE +++ /dev/null @@ -1,46 +0,0 @@ -This software is dual-licensed under the ISC and MIT licenses. -You may use this software under EITHER of the following licenses. - ----------- - -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----------- - -Copyright Isaac Z. Schlueter and Contributors -All rights reserved. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/abbrev/README.md b/build/node_modules/abbrev/README.md deleted file mode 100644 index 99746fe6..00000000 --- a/build/node_modules/abbrev/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# abbrev-js - -Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). - -Usage: - - var abbrev = require("abbrev"); - abbrev("foo", "fool", "folding", "flop"); - - // returns: - { fl: 'flop' - , flo: 'flop' - , flop: 'flop' - , fol: 'folding' - , fold: 'folding' - , foldi: 'folding' - , foldin: 'folding' - , folding: 'folding' - , foo: 'foo' - , fool: 'fool' - } - -This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. diff --git a/build/node_modules/abbrev/abbrev.js b/build/node_modules/abbrev/abbrev.js deleted file mode 100644 index 7b1dc5d6..00000000 --- a/build/node_modules/abbrev/abbrev.js +++ /dev/null @@ -1,61 +0,0 @@ -module.exports = exports = abbrev.abbrev = abbrev - -abbrev.monkeyPatch = monkeyPatch - -function monkeyPatch () { - Object.defineProperty(Array.prototype, 'abbrev', { - value: function () { return abbrev(this) }, - enumerable: false, configurable: true, writable: true - }) - - Object.defineProperty(Object.prototype, 'abbrev', { - value: function () { return abbrev(Object.keys(this)) }, - enumerable: false, configurable: true, writable: true - }) -} - -function abbrev (list) { - if (arguments.length !== 1 || !Array.isArray(list)) { - list = Array.prototype.slice.call(arguments, 0) - } - for (var i = 0, l = list.length, args = [] ; i < l ; i ++) { - args[i] = typeof list[i] === "string" ? list[i] : String(list[i]) - } - - // sort them lexicographically, so that they're next to their nearest kin - args = args.sort(lexSort) - - // walk through each, seeing how much it has in common with the next and previous - var abbrevs = {} - , prev = "" - for (var i = 0, l = args.length ; i < l ; i ++) { - var current = args[i] - , next = args[i + 1] || "" - , nextMatches = true - , prevMatches = true - if (current === next) continue - for (var j = 0, cl = current.length ; j < cl ; j ++) { - var curChar = current.charAt(j) - nextMatches = nextMatches && curChar === next.charAt(j) - prevMatches = prevMatches && curChar === prev.charAt(j) - if (!nextMatches && !prevMatches) { - j ++ - break - } - } - prev = current - if (j === cl) { - abbrevs[current] = current - continue - } - for (var a = current.substr(0, j) ; j <= cl ; j ++) { - abbrevs[a] = current - a += current.charAt(j) - } - } - return abbrevs -} - -function lexSort (a, b) { - return a === b ? 0 : a > b ? 1 : -1 -} diff --git a/build/node_modules/abbrev/package.json b/build/node_modules/abbrev/package.json deleted file mode 100644 index bf4e8015..00000000 --- a/build/node_modules/abbrev/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "abbrev", - "version": "1.1.1", - "description": "Like ruby's abbrev module, but in js", - "author": "Isaac Z. Schlueter ", - "main": "abbrev.js", - "scripts": { - "test": "tap test.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, - "repository": "http://github.com/isaacs/abbrev-js", - "license": "ISC", - "devDependencies": { - "tap": "^10.1" - }, - "files": [ - "abbrev.js" - ] -} diff --git a/build/node_modules/abort-controller/LICENSE b/build/node_modules/abort-controller/LICENSE deleted file mode 100644 index c914149a..00000000 --- a/build/node_modules/abort-controller/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Toru Nagashima - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/abort-controller/README.md b/build/node_modules/abort-controller/README.md deleted file mode 100644 index 9de3e45f..00000000 --- a/build/node_modules/abort-controller/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# abort-controller - -[![npm version](https://img.shields.io/npm/v/abort-controller.svg)](https://www.npmjs.com/package/abort-controller) -[![Downloads/month](https://img.shields.io/npm/dm/abort-controller.svg)](http://www.npmtrends.com/abort-controller) -[![Build Status](https://travis-ci.org/mysticatea/abort-controller.svg?branch=master)](https://travis-ci.org/mysticatea/abort-controller) -[![Coverage Status](https://codecov.io/gh/mysticatea/abort-controller/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/abort-controller) -[![Dependency Status](https://david-dm.org/mysticatea/abort-controller.svg)](https://david-dm.org/mysticatea/abort-controller) - -An implementation of [WHATWG AbortController interface](https://dom.spec.whatwg.org/#interface-abortcontroller). - -```js -import AbortController from "abort-controller" - -const controller = new AbortController() -const signal = controller.signal - -signal.addEventListener("abort", () => { - console.log("aborted!") -}) - -controller.abort() -``` - -> https://jsfiddle.net/1r2994qp/1/ - -## 💿 Installation - -Use [npm](https://www.npmjs.com/) to install then use a bundler. - -``` -npm install abort-controller -``` - -Or download from [`dist` directory](./dist). - -- [dist/abort-controller.mjs](dist/abort-controller.mjs) ... ES modules version. -- [dist/abort-controller.js](dist/abort-controller.js) ... Common JS version. -- [dist/abort-controller.umd.js](dist/abort-controller.umd.js) ... UMD (Universal Module Definition) version. This is transpiled by [Babel](https://babeljs.io/) for IE 11. - -## 📖 Usage - -### Basic - -```js -import AbortController from "abort-controller" -// or -const AbortController = require("abort-controller") - -// or UMD version defines a global variable: -const AbortController = window.AbortControllerShim -``` - -If your bundler recognizes `browser` field of `package.json`, the imported `AbortController` is the native one and it doesn't contain shim (even if the native implementation was nothing). -If you wanted to polyfill `AbortController` for IE, use `abort-controller/polyfill`. - -### Polyfilling - -Importing `abort-controller/polyfill` assigns the `AbortController` shim to the `AbortController` global variable if the native implementation was nothing. - -```js -import "abort-controller/polyfill" -// or -require("abort-controller/polyfill") -``` - -### API - -#### AbortController - -> https://dom.spec.whatwg.org/#interface-abortcontroller - -##### controller.signal - -The [AbortSignal](https://dom.spec.whatwg.org/#interface-AbortSignal) object which is associated to this controller. - -##### controller.abort() - -Notify `abort` event to listeners that the `signal` has. - -## 📰 Changelog - -- See [GitHub releases](https://github.com/mysticatea/abort-controller/releases). - -## 🍻 Contributing - -Contributing is welcome ❤️ - -Please use GitHub issues/PRs. - -### Development tools - -- `npm install` installs dependencies for development. -- `npm test` runs tests and measures code coverage. -- `npm run clean` removes temporary files of tests. -- `npm run coverage` opens code coverage of the previous test with your default browser. -- `npm run lint` runs ESLint. -- `npm run build` generates `dist` codes. -- `npm run watch` runs tests on each file change. diff --git a/build/node_modules/abort-controller/browser.js b/build/node_modules/abort-controller/browser.js deleted file mode 100644 index b0c5ec37..00000000 --- a/build/node_modules/abort-controller/browser.js +++ /dev/null @@ -1,13 +0,0 @@ -/*globals self, window */ -"use strict" - -/*eslint-disable @mysticatea/prettier */ -const { AbortController, AbortSignal } = - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - /* otherwise */ undefined -/*eslint-enable @mysticatea/prettier */ - -module.exports = AbortController -module.exports.AbortSignal = AbortSignal -module.exports.default = AbortController diff --git a/build/node_modules/abort-controller/browser.mjs b/build/node_modules/abort-controller/browser.mjs deleted file mode 100644 index a8f321af..00000000 --- a/build/node_modules/abort-controller/browser.mjs +++ /dev/null @@ -1,11 +0,0 @@ -/*globals self, window */ - -/*eslint-disable @mysticatea/prettier */ -const { AbortController, AbortSignal } = - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - /* otherwise */ undefined -/*eslint-enable @mysticatea/prettier */ - -export default AbortController -export { AbortController, AbortSignal } diff --git a/build/node_modules/abort-controller/package.json b/build/node_modules/abort-controller/package.json deleted file mode 100644 index fc705e03..00000000 --- a/build/node_modules/abort-controller/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "abort-controller", - "version": "3.0.0", - "description": "An implementation of WHATWG AbortController interface.", - "main": "dist/abort-controller", - "files": [ - "dist", - "polyfill.*", - "browser.*" - ], - "engines": { - "node": ">=6.5" - }, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "browser": "./browser.js", - "devDependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/preset-env": "^7.3.0", - "@babel/register": "^7.0.0", - "@mysticatea/eslint-plugin": "^8.0.1", - "@mysticatea/spy": "^0.1.2", - "@types/mocha": "^5.2.5", - "@types/node": "^10.12.18", - "assert": "^1.4.1", - "codecov": "^3.1.0", - "dts-bundle-generator": "^2.0.0", - "eslint": "^5.12.1", - "karma": "^3.1.4", - "karma-chrome-launcher": "^2.2.0", - "karma-coverage": "^1.1.2", - "karma-firefox-launcher": "^1.1.0", - "karma-growl-reporter": "^1.0.0", - "karma-ie-launcher": "^1.0.0", - "karma-mocha": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.0-rc.2", - "mocha": "^5.2.0", - "npm-run-all": "^4.1.5", - "nyc": "^13.1.0", - "opener": "^1.5.1", - "rimraf": "^2.6.3", - "rollup": "^1.1.2", - "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-babel-minify": "^7.0.0", - "rollup-plugin-commonjs": "^9.2.0", - "rollup-plugin-node-resolve": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.4.2", - "rollup-plugin-typescript": "^1.0.0", - "rollup-watch": "^4.3.1", - "ts-node": "^8.0.1", - "type-tester": "^1.0.0", - "typescript": "^3.2.4" - }, - "scripts": { - "preversion": "npm test", - "version": "npm run -s build && git add dist/*", - "postversion": "git push && git push --tags", - "clean": "rimraf .nyc_output coverage", - "coverage": "opener coverage/lcov-report/index.html", - "lint": "eslint . --ext .ts", - "build": "run-s -s build:*", - "build:rollup": "rollup -c", - "build:dts": "dts-bundle-generator -o dist/abort-controller.d.ts src/abort-controller.ts && ts-node scripts/fix-dts", - "test": "run-s -s lint test:*", - "test:mocha": "nyc mocha test/*.ts", - "test:karma": "karma start --single-run", - "watch": "run-p -s watch:*", - "watch:mocha": "mocha test/*.ts --require ts-node/register --watch-extensions ts --watch --growl", - "watch:karma": "karma start --watch", - "codecov": "codecov" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mysticatea/abort-controller.git" - }, - "keywords": [ - "w3c", - "whatwg", - "event", - "events", - "abort", - "cancel", - "abortcontroller", - "abortsignal", - "controller", - "signal", - "shim" - ], - "author": "Toru Nagashima (https://github.com/mysticatea)", - "license": "MIT", - "bugs": { - "url": "https://github.com/mysticatea/abort-controller/issues" - }, - "homepage": "https://github.com/mysticatea/abort-controller#readme" -} diff --git a/build/node_modules/abort-controller/polyfill.js b/build/node_modules/abort-controller/polyfill.js deleted file mode 100644 index 3ca89233..00000000 --- a/build/node_modules/abort-controller/polyfill.js +++ /dev/null @@ -1,21 +0,0 @@ -/*globals require, self, window */ -"use strict" - -const ac = require("./dist/abort-controller") - -/*eslint-disable @mysticatea/prettier */ -const g = - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - /* otherwise */ undefined -/*eslint-enable @mysticatea/prettier */ - -if (g) { - if (typeof g.AbortController === "undefined") { - g.AbortController = ac.AbortController - } - if (typeof g.AbortSignal === "undefined") { - g.AbortSignal = ac.AbortSignal - } -} diff --git a/build/node_modules/abort-controller/polyfill.mjs b/build/node_modules/abort-controller/polyfill.mjs deleted file mode 100644 index 0602a64d..00000000 --- a/build/node_modules/abort-controller/polyfill.mjs +++ /dev/null @@ -1,19 +0,0 @@ -/*globals self, window */ -import * as ac from "./dist/abort-controller" - -/*eslint-disable @mysticatea/prettier */ -const g = - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : - typeof global !== "undefined" ? global : - /* otherwise */ undefined -/*eslint-enable @mysticatea/prettier */ - -if (g) { - if (typeof g.AbortController === "undefined") { - g.AbortController = ac.AbortController - } - if (typeof g.AbortSignal === "undefined") { - g.AbortSignal = ac.AbortSignal - } -} diff --git a/build/node_modules/abstract-logging/Readme.md b/build/node_modules/abstract-logging/Readme.md deleted file mode 100644 index 3204c862..00000000 --- a/build/node_modules/abstract-logging/Readme.md +++ /dev/null @@ -1,47 +0,0 @@ -# abstract-logging - -This module provides an interface for modules to include so that they can -support logging via an external logger that conforms to the standard Log4j -interface. One such logger is [Pino](https://npm.im/pino). This module -is intended for modules that are meant to be used by other modules. - -Example: - -```js -'use strict' - -function AwesomeLibrary (options) { - this.log = (options.logger) ? options.logger : require('abstract-logging') -} - -AwesomeLibrary.prototype.coolMethod = function () { - this.log.trace('AwesomeLibrary.coolMethod was invoked') - return {} -} - -module.exports = AwesomeLibrary -``` - -## Interface - -Available methods: - -+ `fatal` -+ `error` -+ `warn` -+ `info` -+ `debug` -+ `trace` - -All methods are no operation functions. - -Some loggers, like [Pino](https://getpino.io/), implement a `child()` method. This method can be easily added to an `abstract-logging` instance when stubbing out such loggers: - -```js -const logger = require('abstract-logging') -logger.child = () => logger -``` - -## License - -[MIT License](http://jsumners.mit-license.org/) diff --git a/build/node_modules/abstract-logging/index.js b/build/node_modules/abstract-logging/index.js deleted file mode 100644 index 0fecbbaa..00000000 --- a/build/node_modules/abstract-logging/index.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict' - -function noop () { } - -const proto = { - fatal: noop, - error: noop, - warn: noop, - info: noop, - debug: noop, - trace: noop -} - -Object.defineProperty(module, 'exports', { - get () { - return Object.create(proto) - } -}) diff --git a/build/node_modules/abstract-logging/package.json b/build/node_modules/abstract-logging/package.json deleted file mode 100644 index 94f931ca..00000000 --- a/build/node_modules/abstract-logging/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "abstract-logging", - "version": "2.0.1", - "description": "A noop logger that conforms to the Log4j interface for modules to stub out internal logging", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jsumners/abstract-logging.git" - }, - "keywords": [ - "log", - "logging", - "logger", - "pino" - ], - "author": "James Sumners ", - "license": "MIT", - "bugs": { - "url": "https://github.com/jsumners/abstract-logging/issues" - }, - "homepage": "https://github.com/jsumners/abstract-logging#readme" -} diff --git a/build/node_modules/abstract-logging/test.js b/build/node_modules/abstract-logging/test.js deleted file mode 100644 index c039ea2c..00000000 --- a/build/node_modules/abstract-logging/test.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict' - -const assert = require('assert') - -const one = require('./') -const two = require('./') - -assert.notEqual(one, two) -assert.ok(one.info) -assert.equal(Function.prototype.isPrototypeOf(one.info), true) -two.info = () => 'info' - -const result1 = one.info() -assert.equal(result1, undefined) - -const result2 = two.info() -assert.equal(result2, 'info') diff --git a/build/node_modules/accepts/HISTORY.md b/build/node_modules/accepts/HISTORY.md deleted file mode 100644 index cb5990c7..00000000 --- a/build/node_modules/accepts/HISTORY.md +++ /dev/null @@ -1,243 +0,0 @@ -1.3.8 / 2022-02-02 -================== - - * deps: mime-types@~2.1.34 - - deps: mime-db@~1.51.0 - * deps: negotiator@0.6.3 - -1.3.7 / 2019-04-29 -================== - - * deps: negotiator@0.6.2 - - Fix sorting charset, encoding, and language with extra parameters - -1.3.6 / 2019-04-28 -================== - - * deps: mime-types@~2.1.24 - - deps: mime-db@~1.40.0 - -1.3.5 / 2018-02-28 -================== - - * deps: mime-types@~2.1.18 - - deps: mime-db@~1.33.0 - -1.3.4 / 2017-08-22 -================== - - * deps: mime-types@~2.1.16 - - deps: mime-db@~1.29.0 - -1.3.3 / 2016-05-02 -================== - - * deps: mime-types@~2.1.11 - - deps: mime-db@~1.23.0 - * deps: negotiator@0.6.1 - - perf: improve `Accept` parsing speed - - perf: improve `Accept-Charset` parsing speed - - perf: improve `Accept-Encoding` parsing speed - - perf: improve `Accept-Language` parsing speed - -1.3.2 / 2016-03-08 -================== - - * deps: mime-types@~2.1.10 - - Fix extension of `application/dash+xml` - - Update primary extension for `audio/mp4` - - deps: mime-db@~1.22.0 - -1.3.1 / 2016-01-19 -================== - - * deps: mime-types@~2.1.9 - - deps: mime-db@~1.21.0 - -1.3.0 / 2015-09-29 -================== - - * deps: mime-types@~2.1.7 - - deps: mime-db@~1.19.0 - * deps: negotiator@0.6.0 - - Fix including type extensions in parameters in `Accept` parsing - - Fix parsing `Accept` parameters with quoted equals - - Fix parsing `Accept` parameters with quoted semicolons - - Lazy-load modules from main entry point - - perf: delay type concatenation until needed - - perf: enable strict mode - - perf: hoist regular expressions - - perf: remove closures getting spec properties - - perf: remove a closure from media type parsing - - perf: remove property delete from media type parsing - -1.2.13 / 2015-09-06 -=================== - - * deps: mime-types@~2.1.6 - - deps: mime-db@~1.18.0 - -1.2.12 / 2015-07-30 -=================== - - * deps: mime-types@~2.1.4 - - deps: mime-db@~1.16.0 - -1.2.11 / 2015-07-16 -=================== - - * deps: mime-types@~2.1.3 - - deps: mime-db@~1.15.0 - -1.2.10 / 2015-07-01 -=================== - - * deps: mime-types@~2.1.2 - - deps: mime-db@~1.14.0 - -1.2.9 / 2015-06-08 -================== - - * deps: mime-types@~2.1.1 - - perf: fix deopt during mapping - -1.2.8 / 2015-06-07 -================== - - * deps: mime-types@~2.1.0 - - deps: mime-db@~1.13.0 - * perf: avoid argument reassignment & argument slice - * perf: avoid negotiator recursive construction - * perf: enable strict mode - * perf: remove unnecessary bitwise operator - -1.2.7 / 2015-05-10 -================== - - * deps: negotiator@0.5.3 - - Fix media type parameter matching to be case-insensitive - -1.2.6 / 2015-05-07 -================== - - * deps: mime-types@~2.0.11 - - deps: mime-db@~1.9.1 - * deps: negotiator@0.5.2 - - Fix comparing media types with quoted values - - Fix splitting media types with quoted commas - -1.2.5 / 2015-03-13 -================== - - * deps: mime-types@~2.0.10 - - deps: mime-db@~1.8.0 - -1.2.4 / 2015-02-14 -================== - - * Support Node.js 0.6 - * deps: mime-types@~2.0.9 - - deps: mime-db@~1.7.0 - * deps: negotiator@0.5.1 - - Fix preference sorting to be stable for long acceptable lists - -1.2.3 / 2015-01-31 -================== - - * deps: mime-types@~2.0.8 - - deps: mime-db@~1.6.0 - -1.2.2 / 2014-12-30 -================== - - * deps: mime-types@~2.0.7 - - deps: mime-db@~1.5.0 - -1.2.1 / 2014-12-30 -================== - - * deps: mime-types@~2.0.5 - - deps: mime-db@~1.3.1 - -1.2.0 / 2014-12-19 -================== - - * deps: negotiator@0.5.0 - - Fix list return order when large accepted list - - Fix missing identity encoding when q=0 exists - - Remove dynamic building of Negotiator class - -1.1.4 / 2014-12-10 -================== - - * deps: mime-types@~2.0.4 - - deps: mime-db@~1.3.0 - -1.1.3 / 2014-11-09 -================== - - * deps: mime-types@~2.0.3 - - deps: mime-db@~1.2.0 - -1.1.2 / 2014-10-14 -================== - - * deps: negotiator@0.4.9 - - Fix error when media type has invalid parameter - -1.1.1 / 2014-09-28 -================== - - * deps: mime-types@~2.0.2 - - deps: mime-db@~1.1.0 - * deps: negotiator@0.4.8 - - Fix all negotiations to be case-insensitive - - Stable sort preferences of same quality according to client order - -1.1.0 / 2014-09-02 -================== - - * update `mime-types` - -1.0.7 / 2014-07-04 -================== - - * Fix wrong type returned from `type` when match after unknown extension - -1.0.6 / 2014-06-24 -================== - - * deps: negotiator@0.4.7 - -1.0.5 / 2014-06-20 -================== - - * fix crash when unknown extension given - -1.0.4 / 2014-06-19 -================== - - * use `mime-types` - -1.0.3 / 2014-06-11 -================== - - * deps: negotiator@0.4.6 - - Order by specificity when quality is the same - -1.0.2 / 2014-05-29 -================== - - * Fix interpretation when header not in request - * deps: pin negotiator@0.4.5 - -1.0.1 / 2014-01-18 -================== - - * Identity encoding isn't always acceptable - * deps: negotiator@~0.4.0 - -1.0.0 / 2013-12-27 -================== - - * Genesis diff --git a/build/node_modules/accepts/LICENSE b/build/node_modules/accepts/LICENSE deleted file mode 100644 index 06166077..00000000 --- a/build/node_modules/accepts/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/accepts/README.md b/build/node_modules/accepts/README.md deleted file mode 100644 index 82680c53..00000000 --- a/build/node_modules/accepts/README.md +++ /dev/null @@ -1,140 +0,0 @@ -# accepts - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][github-actions-ci-image]][github-actions-ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). -Extracted from [koa](https://www.npmjs.com/package/koa) for general use. - -In addition to negotiator, it allows: - -- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` - as well as `('text/html', 'application/json')`. -- Allows type shorthands such as `json`. -- Returns `false` when no types match -- Treats non-existent headers as `*` - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install accepts -``` - -## API - -```js -var accepts = require('accepts') -``` - -### accepts(req) - -Create a new `Accepts` object for the given `req`. - -#### .charset(charsets) - -Return the first accepted charset. If nothing in `charsets` is accepted, -then `false` is returned. - -#### .charsets() - -Return the charsets that the request accepts, in the order of the client's -preference (most preferred first). - -#### .encoding(encodings) - -Return the first accepted encoding. If nothing in `encodings` is accepted, -then `false` is returned. - -#### .encodings() - -Return the encodings that the request accepts, in the order of the client's -preference (most preferred first). - -#### .language(languages) - -Return the first accepted language. If nothing in `languages` is accepted, -then `false` is returned. - -#### .languages() - -Return the languages that the request accepts, in the order of the client's -preference (most preferred first). - -#### .type(types) - -Return the first accepted type (and it is returned as the same text as what -appears in the `types` array). If nothing in `types` is accepted, then `false` -is returned. - -The `types` array can contain full MIME types or file extensions. Any value -that is not a full MIME types is passed to `require('mime-types').lookup`. - -#### .types() - -Return the types that the request accepts, in the order of the client's -preference (most preferred first). - -## Examples - -### Simple type negotiation - -This simple example shows how to use `accepts` to return a different typed -respond body based on what the client wants to accept. The server lists it's -preferences in order and will get back the best match between the client and -server. - -```js -var accepts = require('accepts') -var http = require('http') - -function app (req, res) { - var accept = accepts(req) - - // the order of this list is significant; should be server preferred order - switch (accept.type(['json', 'html'])) { - case 'json': - res.setHeader('Content-Type', 'application/json') - res.write('{"hello":"world!"}') - break - case 'html': - res.setHeader('Content-Type', 'text/html') - res.write('hello, world!') - break - default: - // the fallback is text/plain, so no need to specify it above - res.setHeader('Content-Type', 'text/plain') - res.write('hello, world!') - break - } - - res.end() -} - -http.createServer(app).listen(3000) -``` - -You can test this out with the cURL program: -```sh -curl -I -H'Accept: text/html' http://localhost:3000/ -``` - -## License - -[MIT](LICENSE) - -[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master -[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master -[github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci -[github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml -[node-version-image]: https://badgen.net/npm/node/accepts -[node-version-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/accepts -[npm-url]: https://npmjs.org/package/accepts -[npm-version-image]: https://badgen.net/npm/v/accepts diff --git a/build/node_modules/accepts/index.js b/build/node_modules/accepts/index.js deleted file mode 100644 index e9b2f63f..00000000 --- a/build/node_modules/accepts/index.js +++ /dev/null @@ -1,238 +0,0 @@ -/*! - * accepts - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Negotiator = require('negotiator') -var mime = require('mime-types') - -/** - * Module exports. - * @public - */ - -module.exports = Accepts - -/** - * Create a new Accepts object for the given req. - * - * @param {object} req - * @public - */ - -function Accepts (req) { - if (!(this instanceof Accepts)) { - return new Accepts(req) - } - - this.headers = req.headers - this.negotiator = new Negotiator(req) -} - -/** - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single mime type string - * such as "application/json", the extension name - * such as "json" or an array `["json", "html", "text/plain"]`. When a list - * or array is given the _best_ match, if any is returned. - * - * Examples: - * - * // Accept: text/html - * this.types('html'); - * // => "html" - * - * // Accept: text/*, application/json - * this.types('html'); - * // => "html" - * this.types('text/html'); - * // => "text/html" - * this.types('json', 'text'); - * // => "json" - * this.types('application/json'); - * // => "application/json" - * - * // Accept: text/*, application/json - * this.types('image/png'); - * this.types('png'); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * this.types(['html', 'json']); - * this.types('html', 'json'); - * // => "json" - * - * @param {String|Array} types... - * @return {String|Array|Boolean} - * @public - */ - -Accepts.prototype.type = -Accepts.prototype.types = function (types_) { - var types = types_ - - // support flattened arguments - if (types && !Array.isArray(types)) { - types = new Array(arguments.length) - for (var i = 0; i < types.length; i++) { - types[i] = arguments[i] - } - } - - // no types, return all requested types - if (!types || types.length === 0) { - return this.negotiator.mediaTypes() - } - - // no accept header, return first given type - if (!this.headers.accept) { - return types[0] - } - - var mimes = types.map(extToMime) - var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) - var first = accepts[0] - - return first - ? types[mimes.indexOf(first)] - : false -} - -/** - * Return accepted encodings or best fit based on `encodings`. - * - * Given `Accept-Encoding: gzip, deflate` - * an array sorted by quality is returned: - * - * ['gzip', 'deflate'] - * - * @param {String|Array} encodings... - * @return {String|Array} - * @public - */ - -Accepts.prototype.encoding = -Accepts.prototype.encodings = function (encodings_) { - var encodings = encodings_ - - // support flattened arguments - if (encodings && !Array.isArray(encodings)) { - encodings = new Array(arguments.length) - for (var i = 0; i < encodings.length; i++) { - encodings[i] = arguments[i] - } - } - - // no encodings, return all requested encodings - if (!encodings || encodings.length === 0) { - return this.negotiator.encodings() - } - - return this.negotiator.encodings(encodings)[0] || false -} - -/** - * Return accepted charsets or best fit based on `charsets`. - * - * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` - * an array sorted by quality is returned: - * - * ['utf-8', 'utf-7', 'iso-8859-1'] - * - * @param {String|Array} charsets... - * @return {String|Array} - * @public - */ - -Accepts.prototype.charset = -Accepts.prototype.charsets = function (charsets_) { - var charsets = charsets_ - - // support flattened arguments - if (charsets && !Array.isArray(charsets)) { - charsets = new Array(arguments.length) - for (var i = 0; i < charsets.length; i++) { - charsets[i] = arguments[i] - } - } - - // no charsets, return all requested charsets - if (!charsets || charsets.length === 0) { - return this.negotiator.charsets() - } - - return this.negotiator.charsets(charsets)[0] || false -} - -/** - * Return accepted languages or best fit based on `langs`. - * - * Given `Accept-Language: en;q=0.8, es, pt` - * an array sorted by quality is returned: - * - * ['es', 'pt', 'en'] - * - * @param {String|Array} langs... - * @return {Array|String} - * @public - */ - -Accepts.prototype.lang = -Accepts.prototype.langs = -Accepts.prototype.language = -Accepts.prototype.languages = function (languages_) { - var languages = languages_ - - // support flattened arguments - if (languages && !Array.isArray(languages)) { - languages = new Array(arguments.length) - for (var i = 0; i < languages.length; i++) { - languages[i] = arguments[i] - } - } - - // no languages, return all requested languages - if (!languages || languages.length === 0) { - return this.negotiator.languages() - } - - return this.negotiator.languages(languages)[0] || false -} - -/** - * Convert extnames to mime. - * - * @param {String} type - * @return {String} - * @private - */ - -function extToMime (type) { - return type.indexOf('/') === -1 - ? mime.lookup(type) - : type -} - -/** - * Check if mime is valid. - * - * @param {String} type - * @return {String} - * @private - */ - -function validMime (type) { - return typeof type === 'string' -} diff --git a/build/node_modules/accepts/package.json b/build/node_modules/accepts/package.json deleted file mode 100644 index 0f2d15da..00000000 --- a/build/node_modules/accepts/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "accepts", - "description": "Higher-level content negotiation", - "version": "1.3.8", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "repository": "jshttp/accepts", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "devDependencies": { - "deep-equal": "1.0.1", - "eslint": "7.32.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.25.4", - "eslint-plugin-markdown": "2.2.1", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "4.3.1", - "eslint-plugin-standard": "4.1.0", - "mocha": "9.2.0", - "nyc": "15.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "nyc --reporter=lcov --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - }, - "keywords": [ - "content", - "negotiation", - "accept", - "accepts" - ] -} diff --git a/build/node_modules/acorn-class-fields/.eslintrc.json b/build/node_modules/acorn-class-fields/.eslintrc.json deleted file mode 100644 index 827afb4b..00000000 --- a/build/node_modules/acorn-class-fields/.eslintrc.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": ["eslint:recommended", "plugin:node/recommended"], - "plugins": ["node"], - "rules": { - "accessor-pairs": "error", - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-callback-return": "error", - "array-element-newline": "off", - "arrow-body-style": "error", - "arrow-parens": [ - "error", - "as-needed" - ], - "arrow-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "block-scoped-var": "error", - "block-spacing": "off", - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "callback-return": "error", - "camelcase": "error", - "capitalized-comments": "off", - "class-methods-use-this": "error", - "comma-dangle": "off", - "comma-spacing": [ - "error", - { - "after": true, - "before": false - } - ], - "comma-style": [ - "error", - "last" - ], - "complexity": "off", - "computed-property-spacing": [ - "error", - "never" - ], - "consistent-return": "error", - "consistent-this": "error", - "curly": [ "error", "multi-line" ], - "default-case": "error", - "dot-location": "error", - "dot-notation": [ - "error", - { - "allowKeywords": true - } - ], - "eol-last": "error", - "eqeqeq": "off", - "for-direction": "error", - "func-call-spacing": "error", - "func-name-matching": "error", - "func-names": [ - "error", - "never" - ], - "func-style": [ - "error", - "declaration", - { "allowArrowFunctions": true } - ], - "function-paren-newline": "off", - "generator-star-spacing": "error", - "getter-return": "error", - "global-require": "warn", - "guard-for-in": "error", - "handle-callback-err": "error", - "id-blacklist": "error", - "id-length": "off", - "id-match": "error", - "implicit-arrow-linebreak": [ - "error", - "beside" - ], - "indent": ["error", 2], - "indent-legacy": "off", - "init-declarations": "off", - "jsx-quotes": "error", - "key-spacing": "error", - "keyword-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "line-comment-position": "off", - "linebreak-style": [ - "error", - "unix" - ], - "lines-around-comment": "error", - "lines-around-directive": "error", - "lines-between-class-members": "error", - "max-depth": "error", - "max-len": "off", - "max-lines": "off", - "max-nested-callbacks": "error", - "max-params": "off", - "max-statements": "off", - "max-statements-per-line": "off", - "multiline-comment-style": [ - "error", - "separate-lines" - ], - "new-cap": "error", - "new-parens": "error", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": "off", - "no-alert": "error", - "no-array-constructor": "error", - "no-await-in-loop": "error", - "no-bitwise": "off", - "no-buffer-constructor": "error", - "no-caller": "error", - "no-catch-shadow": "error", - "no-confusing-arrow": "error", - "no-continue": "off", - "no-div-regex": "error", - "no-duplicate-imports": "error", - "no-else-return": "error", - "no-empty-function": "error", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-extra-parens": "off", - "no-floating-decimal": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-inline-comments": "off", - "no-invalid-this": "off", - "no-iterator": "error", - "no-label-var": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "off", - "no-loop-func": "error", - "no-magic-numbers": "off", - "no-mixed-operators": "off", - "no-mixed-requires": "error", - "no-multi-assign": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }], - "no-native-reassign": "error", - "no-negated-condition": "off", - "no-negated-in-lhs": "error", - "no-nested-ternary": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-wrappers": "error", - "no-octal-escape": "error", - "no-param-reassign": "off", - "no-path-concat": "error", - "no-plusplus": "off", - "no-process-env": "error", - "no-process-exit": "error", - "no-proto": "error", - "no-prototype-builtins": "error", - "no-restricted-globals": "error", - "no-restricted-imports": "error", - "no-restricted-modules": "error", - "no-restricted-properties": "error", - "no-restricted-syntax": "error", - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow": "error", - "no-shadow-restricted-names": "error", - "no-spaced-func": "error", - "no-sync": [ - "error", - { - "allowAtRootLevel": true - } - ], - "no-tabs": "error", - "no-template-curly-in-string": "error", - "no-ternary": "off", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-undefined": "error", - "no-underscore-dangle": "off", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unused-expressions": "error", - "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "error", - "no-warning-comments": "warn", - "no-whitespace-before-property": "error", - "no-with": "error", - "nonblock-statement-body-position": [ - "error", - "any" - ], - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "object-shorthand": "off", - "one-var": "off", - "one-var-declaration-per-line": "off", - "operator-assignment": "error", - "operator-linebreak": "error", - "padded-blocks": "off", - "padding-line-between-statements": "error", - "prefer-arrow-callback": "off", - "prefer-const": "off", - "prefer-destructuring": "off", - "prefer-numeric-literals": "error", - "prefer-promise-reject-errors": "error", - "prefer-reflect": "off", - "prefer-rest-params": "off", - "prefer-spread": "error", - "prefer-template": "error", - "quote-props": ["error", "as-needed"], - "quotes": ["error", "double"], - "radix": "error", - "require-await": "error", - "require-jsdoc": "off", - "rest-spread-spacing": "error", - "semi": ["error", "never"], - "semi-spacing": "error", - "semi-style": [ - "error", - "last" - ], - "sort-imports": "error", - "sort-keys": "off", - "sort-vars": "off", - "space-before-blocks": "error", - "space-before-function-paren": "off", - "space-in-parens": [ - "error", - "never" - ], - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": "off", - "strict": "error", - "switch-colon-spacing": "error", - "symbol-description": "error", - "template-curly-spacing": "error", - "template-tag-spacing": "error", - "unicode-bom": [ - "error", - "never" - ], - "valid-jsdoc": "error", - "vars-on-top": "off", - "wrap-regex": "error", - "yield-star-spacing": "error", - "yoda": [ - "error", - "never" - ], - "node/no-unpublished-require": "off" - } -} diff --git a/build/node_modules/acorn-class-fields/CHANGELOG.md b/build/node_modules/acorn-class-fields/CHANGELOG.md deleted file mode 100644 index 245d89d5..00000000 --- a/build/node_modules/acorn-class-fields/CHANGELOG.md +++ /dev/null @@ -1,63 +0,0 @@ -## 1.0.0 (2021-02-08) - -* Update AST node names to match [ESTree](https://github.com/estree/estree/blob/master/experimental/class-features.md) - -## 0.3.7 (2020-08-13) - -* Don't break methods with line break after name -* Mark as compatible with acorn@8 -* Support await in field initializers - -## 0.3.6 (2020-06-11) - -* Don't break acorn's optional chaining support - -## 0.3.5 (2020-06-11) - -* Don't break keyword method names - -## 0.3.4 (2020-05-21) - -* Allow keyword field names - -## 0.3.3 (2020-05-20) - -* Support numeric field names - -## 0.3.2 (2020-04-24) - -* Make compatible with acorn@7 -* Use injected acorn instance if available -* Evaluate class heritage with outer private environment -* Don't allow private element access on `super` -* Uses `Object.getPrototypeOf` if available instead of `__proto__` -* Fix usage of super in field initializers - -## 0.3.1 (2019-02-09) - -* Restore compatibility with acorn-private-methods - -## 0.3.0 (2019-02-09) - -* Require acorn >= 6.1.0 - -## 0.2.1 (2018-11-06) - -* Adapt to changes in acorn 6.0.3 - -## 0.2.0 (2018-09-14) - -* Update to new acorn 6 interface -* Change license to MIT - -## 0.1.2 (2018-01-26) - -* Don't accept whitespace between hash and private name - -## 0.1.1 (2018-01-17) - -* Correctly parse all fields named `async` - -## 0.1.0 (2018-01-13) - -Initial release diff --git a/build/node_modules/acorn-class-fields/LICENSE b/build/node_modules/acorn-class-fields/LICENSE deleted file mode 100644 index 7c2b27a1..00000000 --- a/build/node_modules/acorn-class-fields/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn-class-fields/README.md b/build/node_modules/acorn-class-fields/README.md deleted file mode 100644 index f8136825..00000000 --- a/build/node_modules/acorn-class-fields/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Class fields support for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-class-fields.svg)](https://www.npmjs.org/package/acorn-class-fields) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It implements support for class fields as defined in the stage 3 proposal [Class field declarations for JavaScript](https://github.com/tc39/proposal-class-fields). The emitted AST follows the [ESTree experimental Class Features design](https://github.com/estree/estree/blob/master/experimental/class-features.md). - -## Usage - -This module provides a plugin that can be used to extend the Acorn `Parser` class: - -```javascript -const {Parser} = require('acorn'); -const classFields = require('acorn-class-fields'); -Parser.extend(classFields).parse('class X { x = 0 }'); -``` - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/build/node_modules/acorn-class-fields/index.js b/build/node_modules/acorn-class-fields/index.js deleted file mode 100644 index 2fea86be..00000000 --- a/build/node_modules/acorn-class-fields/index.js +++ /dev/null @@ -1,68 +0,0 @@ -"use strict" - -const privateClassElements = require("acorn-private-class-elements") - -module.exports = function(Parser) { - const acorn = Parser.acorn || require("acorn") - const tt = acorn.tokTypes - - Parser = privateClassElements(Parser) - return class extends Parser { - _maybeParseFieldValue(field) { - if (this.eat(tt.eq)) { - const oldInFieldValue = this._inFieldValue - this._inFieldValue = true - if (this.type === tt.name && this.value === "await" && (this.inAsync || this.options.allowAwaitOutsideFunction)) { - field.value = this.parseAwait() - } else field.value = this.parseExpression() - this._inFieldValue = oldInFieldValue - } else field.value = null - } - - // Parse fields - parseClassElement(_constructorAllowsSuper) { - if (this.options.ecmaVersion >= 8 && (this.type == tt.name || this.type.keyword || this.type == this.privateIdentifierToken || this.type == tt.bracketL || this.type == tt.string || this.type == tt.num)) { - const branch = this._branch() - if (branch.type == tt.bracketL) { - let count = 0 - do { - if (branch.eat(tt.bracketL)) ++count - else if (branch.eat(tt.bracketR)) --count - else branch.next() - } while (count > 0) - } else branch.next(true) - let isField = branch.type == tt.eq || branch.type == tt.semi - if (!isField && branch.canInsertSemicolon()) { - isField = branch.type != tt.parenL - } - if (isField) { - const node = this.startNode() - if (this.type == this.privateIdentifierToken) { - this.parsePrivateClassElementName(node) - } else { - this.parsePropertyName(node) - } - if ((node.key.type === "Identifier" && node.key.name === "constructor") || - (node.key.type === "Literal" && node.key.value === "constructor")) { - this.raise(node.key.start, "Classes may not have a field called constructor") - } - this.enterScope(64 | 2 | 1) // See acorn's scopeflags.js - this._maybeParseFieldValue(node) - this.exitScope() - this.finishNode(node, "PropertyDefinition") - this.semicolon() - return node - } - } - - return super.parseClassElement.apply(this, arguments) - } - - // Prohibit arguments in class field initializers - parseIdent(liberal, isBinding) { - const ident = super.parseIdent(liberal, isBinding) - if (this._inFieldValue && ident.name == "arguments") this.raise(ident.start, "A class field initializer may not contain arguments") - return ident - } - } -} diff --git a/build/node_modules/acorn-class-fields/package.json b/build/node_modules/acorn-class-fields/package.json deleted file mode 100644 index 2142d457..00000000 --- a/build/node_modules/acorn-class-fields/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "acorn-class-fields", - "description": "Support for class fields in acorn", - "homepage": "https://github.com/acornjs/acorn-class-fields", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-class-fields" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "test:test262": "node run_test262.js", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6 || ^7 || ^8" - }, - "version": "1.0.0", - "devDependencies": { - "acorn": "^8", - "eslint": "^7.2", - "eslint-plugin-node": "^11", - "mocha": "^8", - "test262": "git+https://github.com/tc39/test262.git#fd27d1f5d00dcccc5f763252fc11b575ee0bdd2f", - "test262-parser-runner": "^0.5.0" - }, - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - } -} diff --git a/build/node_modules/acorn-class-fields/run_test262.js b/build/node_modules/acorn-class-fields/run_test262.js deleted file mode 100644 index 85a54e84..00000000 --- a/build/node_modules/acorn-class-fields/run_test262.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict" - -const path = require("path") -const run = require("test262-parser-runner") -const acorn = require("acorn") -const Parser = acorn.Parser.extend(require(".")) - -const unsupportedFeatures = [ - "class-methods-private", - "class-static-fields-public", - "class-static-fields-private", - "class-static-methods-private" -] - -const implementedFeatures = [ "class-fields-private", "class-fields-public" ] - -run( - (content, options) => Parser.parse(content, {sourceType: options.sourceType, ecmaVersion: 11}), - { - testsDirectory: path.dirname(require.resolve("test262/package.json")), - skip: test => (!test.attrs.features || !implementedFeatures.some(f => test.attrs.features.includes(f)) || unsupportedFeatures.some(f => test.attrs.features.includes(f))), - } -) diff --git a/build/node_modules/acorn-import-assertions/README.md b/build/node_modules/acorn-import-assertions/README.md deleted file mode 100644 index 4b9b3adf..00000000 --- a/build/node_modules/acorn-import-assertions/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Support for import assertions in acorn - -## Usage - -This module provides a plugin that can be used to extend the Acorn Parser class: - -```js -const {Parser} = require('acorn'); -const {importAssertions} = require('acorn-import-assertions'); -Parser.extend(importAssertions).parse('...'); -``` - -## License - -This plugin is released under an MIT License. diff --git a/build/node_modules/acorn-import-assertions/package.json b/build/node_modules/acorn-import-assertions/package.json deleted file mode 100644 index 7a9ae8b3..00000000 --- a/build/node_modules/acorn-import-assertions/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "acorn-import-assertions", - "version": "1.9.0", - "description": "Support for import assertions in acorn", - "main": "lib/index.js", - "module": "src/index.js", - "exports": { - ".": { - "import": "./lib/index.mjs", - "require": "./lib/index.js" - }, - "./package.json": "./package.json", - "./": "./" - }, - "scripts": { - "build": "babel ./src --out-dir ./lib && node post-build.js", - "prepublishOnly": "npm run build", - "test": "mocha ./test/index.js", - "test:test262": "node run_test262.js", - "watch": "babel ./src --out-dir ./lib --watch" - }, - "author": "Sven Sauleau ", - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.14.8", - "@babel/core": "^7.15.0", - "@babel/preset-env": "^7.15.0", - "@babel/register": "^7.15.3", - "acorn": "^8.4.1", - "chai": "^4.3.4", - "mocha": "^9.1.0", - "test262": "tc39/test262#47ab262658cd97ae35c9a537808cac18fa4ab567", - "test262-parser-runner": "^0.5.0" - }, - "peerDependencies": { - "acorn": "^8" - }, - "repository": { - "type": "git", - "url": "https://github.com/xtuc/acorn-import-assertions" - }, - "browserslist": [ - "maintained node versions" - ], - "files": [ - "lib", - "src" - ] -} diff --git a/build/node_modules/acorn-jsx/LICENSE b/build/node_modules/acorn-jsx/LICENSE deleted file mode 100644 index 695d4b93..00000000 --- a/build/node_modules/acorn-jsx/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2012-2017 by Ingvar Stepanyan - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn-jsx/README.md b/build/node_modules/acorn-jsx/README.md deleted file mode 100644 index 317c3ac4..00000000 --- a/build/node_modules/acorn-jsx/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Acorn-JSX - -[![Build Status](https://travis-ci.org/acornjs/acorn-jsx.svg?branch=master)](https://travis-ci.org/acornjs/acorn-jsx) -[![NPM version](https://img.shields.io/npm/v/acorn-jsx.svg)](https://www.npmjs.org/package/acorn-jsx) - -This is plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It was created as an experimental alternative, faster [React.js JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) parser. Later, it replaced the [official parser](https://github.com/facebookarchive/esprima) and these days is used by many prominent development tools. - -## Transpiler - -Please note that this tool only parses source code to JSX AST, which is useful for various language tools and services. If you want to transpile your code to regular ES5-compliant JavaScript with source map, check out [Babel](https://babeljs.io/) and [Buble](https://buble.surge.sh/) transpilers which use `acorn-jsx` under the hood. - -## Usage - -Requiring this module provides you with an Acorn plugin that you can use like this: - -```javascript -var acorn = require("acorn"); -var jsx = require("acorn-jsx"); -acorn.Parser.extend(jsx()).parse("my(, 'code');"); -``` - -Note that official spec doesn't support mix of XML namespaces and object-style access in tag names (#27) like in ``, so it was deprecated in `acorn-jsx@3.0`. If you still want to opt-in to support of such constructions, you can pass the following option: - -```javascript -acorn.Parser.extend(jsx({ allowNamespacedObjects: true })) -``` - -Also, since most apps use pure React transformer, a new option was introduced that allows to prohibit namespaces completely: - -```javascript -acorn.Parser.extend(jsx({ allowNamespaces: false })) -``` - -Note that by default `allowNamespaces` is enabled for spec compliancy. - -## License - -This plugin is issued under the [MIT license](./LICENSE). diff --git a/build/node_modules/acorn-jsx/index.d.ts b/build/node_modules/acorn-jsx/index.d.ts deleted file mode 100644 index f37b1df4..00000000 --- a/build/node_modules/acorn-jsx/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Parser } from 'acorn' - -declare const jsx: (options?: jsx.Options) => (BaseParser: typeof Parser) => typeof Parser; - -declare namespace jsx { - interface Options { - allowNamespacedObjects?: boolean; - allowNamespaces?: boolean; - } -} - -export = jsx; diff --git a/build/node_modules/acorn-jsx/index.js b/build/node_modules/acorn-jsx/index.js deleted file mode 100644 index 004e0809..00000000 --- a/build/node_modules/acorn-jsx/index.js +++ /dev/null @@ -1,488 +0,0 @@ -'use strict'; - -const XHTMLEntities = require('./xhtml'); - -const hexNumber = /^[\da-fA-F]+$/; -const decimalNumber = /^\d+$/; - -// The map to `acorn-jsx` tokens from `acorn` namespace objects. -const acornJsxMap = new WeakMap(); - -// Get the original tokens for the given `acorn` namespace object. -function getJsxTokens(acorn) { - acorn = acorn.Parser.acorn || acorn; - let acornJsx = acornJsxMap.get(acorn); - if (!acornJsx) { - const tt = acorn.tokTypes; - const TokContext = acorn.TokContext; - const TokenType = acorn.TokenType; - const tc_oTag = new TokContext('...', true, true); - const tokContexts = { - tc_oTag: tc_oTag, - tc_cTag: tc_cTag, - tc_expr: tc_expr - }; - const tokTypes = { - jsxName: new TokenType('jsxName'), - jsxText: new TokenType('jsxText', {beforeExpr: true}), - jsxTagStart: new TokenType('jsxTagStart', {startsExpr: true}), - jsxTagEnd: new TokenType('jsxTagEnd') - }; - - tokTypes.jsxTagStart.updateContext = function() { - this.context.push(tc_expr); // treat as beginning of JSX expression - this.context.push(tc_oTag); // start opening tag context - this.exprAllowed = false; - }; - tokTypes.jsxTagEnd.updateContext = function(prevType) { - let out = this.context.pop(); - if (out === tc_oTag && prevType === tt.slash || out === tc_cTag) { - this.context.pop(); - this.exprAllowed = this.curContext() === tc_expr; - } else { - this.exprAllowed = true; - } - }; - - acornJsx = { tokContexts: tokContexts, tokTypes: tokTypes }; - acornJsxMap.set(acorn, acornJsx); - } - - return acornJsx; -} - -// Transforms JSX element name to string. - -function getQualifiedJSXName(object) { - if (!object) - return object; - - if (object.type === 'JSXIdentifier') - return object.name; - - if (object.type === 'JSXNamespacedName') - return object.namespace.name + ':' + object.name.name; - - if (object.type === 'JSXMemberExpression') - return getQualifiedJSXName(object.object) + '.' + - getQualifiedJSXName(object.property); -} - -module.exports = function(options) { - options = options || {}; - return function(Parser) { - return plugin({ - allowNamespaces: options.allowNamespaces !== false, - allowNamespacedObjects: !!options.allowNamespacedObjects - }, Parser); - }; -}; - -// This is `tokTypes` of the peer dep. -// This can be different instances from the actual `tokTypes` this plugin uses. -Object.defineProperty(module.exports, "tokTypes", { - get: function get_tokTypes() { - return getJsxTokens(require("acorn")).tokTypes; - }, - configurable: true, - enumerable: true -}); - -function plugin(options, Parser) { - const acorn = Parser.acorn || require("acorn"); - const acornJsx = getJsxTokens(acorn); - const tt = acorn.tokTypes; - const tok = acornJsx.tokTypes; - const tokContexts = acorn.tokContexts; - const tc_oTag = acornJsx.tokContexts.tc_oTag; - const tc_cTag = acornJsx.tokContexts.tc_cTag; - const tc_expr = acornJsx.tokContexts.tc_expr; - const isNewLine = acorn.isNewLine; - const isIdentifierStart = acorn.isIdentifierStart; - const isIdentifierChar = acorn.isIdentifierChar; - - return class extends Parser { - // Expose actual `tokTypes` and `tokContexts` to other plugins. - static get acornJsx() { - return acornJsx; - } - - // Reads inline JSX contents token. - jsx_readToken() { - let out = '', chunkStart = this.pos; - for (;;) { - if (this.pos >= this.input.length) - this.raise(this.start, 'Unterminated JSX contents'); - let ch = this.input.charCodeAt(this.pos); - - switch (ch) { - case 60: // '<' - case 123: // '{' - if (this.pos === this.start) { - if (ch === 60 && this.exprAllowed) { - ++this.pos; - return this.finishToken(tok.jsxTagStart); - } - return this.getTokenFromCode(ch); - } - out += this.input.slice(chunkStart, this.pos); - return this.finishToken(tok.jsxText, out); - - case 38: // '&' - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readEntity(); - chunkStart = this.pos; - break; - - case 62: // '>' - case 125: // '}' - this.raise( - this.pos, - "Unexpected token `" + this.input[this.pos] + "`. Did you mean `" + - (ch === 62 ? ">" : "}") + "` or " + "`{\"" + this.input[this.pos] + "\"}" + "`?" - ); - - default: - if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readNewLine(true); - chunkStart = this.pos; - } else { - ++this.pos; - } - } - } - } - - jsx_readNewLine(normalizeCRLF) { - let ch = this.input.charCodeAt(this.pos); - let out; - ++this.pos; - if (ch === 13 && this.input.charCodeAt(this.pos) === 10) { - ++this.pos; - out = normalizeCRLF ? '\n' : '\r\n'; - } else { - out = String.fromCharCode(ch); - } - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - - return out; - } - - jsx_readString(quote) { - let out = '', chunkStart = ++this.pos; - for (;;) { - if (this.pos >= this.input.length) - this.raise(this.start, 'Unterminated string constant'); - let ch = this.input.charCodeAt(this.pos); - if (ch === quote) break; - if (ch === 38) { // '&' - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readEntity(); - chunkStart = this.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.pos); - out += this.jsx_readNewLine(false); - chunkStart = this.pos; - } else { - ++this.pos; - } - } - out += this.input.slice(chunkStart, this.pos++); - return this.finishToken(tt.string, out); - } - - jsx_readEntity() { - let str = '', count = 0, entity; - let ch = this.input[this.pos]; - if (ch !== '&') - this.raise(this.pos, 'Entity must start with an ampersand'); - let startPos = ++this.pos; - while (this.pos < this.input.length && count++ < 10) { - ch = this.input[this.pos++]; - if (ch === ';') { - if (str[0] === '#') { - if (str[1] === 'x') { - str = str.substr(2); - if (hexNumber.test(str)) - entity = String.fromCharCode(parseInt(str, 16)); - } else { - str = str.substr(1); - if (decimalNumber.test(str)) - entity = String.fromCharCode(parseInt(str, 10)); - } - } else { - entity = XHTMLEntities[str]; - } - break; - } - str += ch; - } - if (!entity) { - this.pos = startPos; - return '&'; - } - return entity; - } - - // Read a JSX identifier (valid tag or attribute name). - // - // Optimized version since JSX identifiers can't contain - // escape characters and so can be read as single slice. - // Also assumes that first character was already checked - // by isIdentifierStart in readToken. - - jsx_readWord() { - let ch, start = this.pos; - do { - ch = this.input.charCodeAt(++this.pos); - } while (isIdentifierChar(ch) || ch === 45); // '-' - return this.finishToken(tok.jsxName, this.input.slice(start, this.pos)); - } - - // Parse next token as JSX identifier - - jsx_parseIdentifier() { - let node = this.startNode(); - if (this.type === tok.jsxName) - node.name = this.value; - else if (this.type.keyword) - node.name = this.type.keyword; - else - this.unexpected(); - this.next(); - return this.finishNode(node, 'JSXIdentifier'); - } - - // Parse namespaced identifier. - - jsx_parseNamespacedName() { - let startPos = this.start, startLoc = this.startLoc; - let name = this.jsx_parseIdentifier(); - if (!options.allowNamespaces || !this.eat(tt.colon)) return name; - var node = this.startNodeAt(startPos, startLoc); - node.namespace = name; - node.name = this.jsx_parseIdentifier(); - return this.finishNode(node, 'JSXNamespacedName'); - } - - // Parses element name in any form - namespaced, member - // or single identifier. - - jsx_parseElementName() { - if (this.type === tok.jsxTagEnd) return ''; - let startPos = this.start, startLoc = this.startLoc; - let node = this.jsx_parseNamespacedName(); - if (this.type === tt.dot && node.type === 'JSXNamespacedName' && !options.allowNamespacedObjects) { - this.unexpected(); - } - while (this.eat(tt.dot)) { - let newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsx_parseIdentifier(); - node = this.finishNode(newNode, 'JSXMemberExpression'); - } - return node; - } - - // Parses any type of JSX attribute value. - - jsx_parseAttributeValue() { - switch (this.type) { - case tt.braceL: - let node = this.jsx_parseExpressionContainer(); - if (node.expression.type === 'JSXEmptyExpression') - this.raise(node.start, 'JSX attributes must only be assigned a non-empty expression'); - return node; - - case tok.jsxTagStart: - case tt.string: - return this.parseExprAtom(); - - default: - this.raise(this.start, 'JSX value should be either an expression or a quoted JSX text'); - } - } - - // JSXEmptyExpression is unique type since it doesn't actually parse anything, - // and so it should start at the end of last read token (left brace) and finish - // at the beginning of the next one (right brace). - - jsx_parseEmptyExpression() { - let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); - return this.finishNodeAt(node, 'JSXEmptyExpression', this.start, this.startLoc); - } - - // Parses JSX expression enclosed into curly brackets. - - jsx_parseExpressionContainer() { - let node = this.startNode(); - this.next(); - node.expression = this.type === tt.braceR - ? this.jsx_parseEmptyExpression() - : this.parseExpression(); - this.expect(tt.braceR); - return this.finishNode(node, 'JSXExpressionContainer'); - } - - // Parses following JSX attribute name-value pair. - - jsx_parseAttribute() { - let node = this.startNode(); - if (this.eat(tt.braceL)) { - this.expect(tt.ellipsis); - node.argument = this.parseMaybeAssign(); - this.expect(tt.braceR); - return this.finishNode(node, 'JSXSpreadAttribute'); - } - node.name = this.jsx_parseNamespacedName(); - node.value = this.eat(tt.eq) ? this.jsx_parseAttributeValue() : null; - return this.finishNode(node, 'JSXAttribute'); - } - - // Parses JSX opening tag starting after '<'. - - jsx_parseOpeningElementAt(startPos, startLoc) { - let node = this.startNodeAt(startPos, startLoc); - node.attributes = []; - let nodeName = this.jsx_parseElementName(); - if (nodeName) node.name = nodeName; - while (this.type !== tt.slash && this.type !== tok.jsxTagEnd) - node.attributes.push(this.jsx_parseAttribute()); - node.selfClosing = this.eat(tt.slash); - this.expect(tok.jsxTagEnd); - return this.finishNode(node, nodeName ? 'JSXOpeningElement' : 'JSXOpeningFragment'); - } - - // Parses JSX closing tag starting after ''); - } - } - let fragmentOrElement = openingElement.name ? 'Element' : 'Fragment'; - - node['opening' + fragmentOrElement] = openingElement; - node['closing' + fragmentOrElement] = closingElement; - node.children = children; - if (this.type === tt.relational && this.value === "<") { - this.raise(this.start, "Adjacent JSX elements must be wrapped in an enclosing tag"); - } - return this.finishNode(node, 'JSX' + fragmentOrElement); - } - - // Parse JSX text - - jsx_parseText() { - let node = this.parseLiteral(this.value); - node.type = "JSXText"; - return node; - } - - // Parses entire JSX element from current position. - - jsx_parseElement() { - let startPos = this.start, startLoc = this.startLoc; - this.next(); - return this.jsx_parseElementAt(startPos, startLoc); - } - - parseExprAtom(refShortHandDefaultPos) { - if (this.type === tok.jsxText) - return this.jsx_parseText(); - else if (this.type === tok.jsxTagStart) - return this.jsx_parseElement(); - else - return super.parseExprAtom(refShortHandDefaultPos); - } - - readToken(code) { - let context = this.curContext(); - - if (context === tc_expr) return this.jsx_readToken(); - - if (context === tc_oTag || context === tc_cTag) { - if (isIdentifierStart(code)) return this.jsx_readWord(); - - if (code == 62) { - ++this.pos; - return this.finishToken(tok.jsxTagEnd); - } - - if ((code === 34 || code === 39) && context == tc_oTag) - return this.jsx_readString(code); - } - - if (code === 60 && this.exprAllowed && this.input.charCodeAt(this.pos + 1) !== 33) { - ++this.pos; - return this.finishToken(tok.jsxTagStart); - } - return super.readToken(code); - } - - updateContext(prevType) { - if (this.type == tt.braceL) { - var curContext = this.curContext(); - if (curContext == tc_oTag) this.context.push(tokContexts.b_expr); - else if (curContext == tc_expr) this.context.push(tokContexts.b_tmpl); - else super.updateContext(prevType); - this.exprAllowed = true; - } else if (this.type === tt.slash && prevType === tok.jsxTagStart) { - this.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore - this.context.push(tc_cTag); // reconsider as closing tag context - this.exprAllowed = false; - } else { - return super.updateContext(prevType); - } - } - }; -} diff --git a/build/node_modules/acorn-jsx/package.json b/build/node_modules/acorn-jsx/package.json deleted file mode 100644 index 6debde9c..00000000 --- a/build/node_modules/acorn-jsx/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "acorn-jsx", - "description": "Modern, fast React.js JSX parser", - "homepage": "https://github.com/acornjs/acorn-jsx", - "version": "5.3.2", - "maintainers": [ - { - "name": "Ingvar Stepanyan", - "email": "me@rreverser.com", - "web": "http://rreverser.com/" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-jsx" - }, - "license": "MIT", - "scripts": { - "test": "node test/run.js" - }, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "devDependencies": { - "acorn": "^8.0.1" - } -} diff --git a/build/node_modules/acorn-jsx/xhtml.js b/build/node_modules/acorn-jsx/xhtml.js deleted file mode 100644 index c1520092..00000000 --- a/build/node_modules/acorn-jsx/xhtml.js +++ /dev/null @@ -1,255 +0,0 @@ -module.exports = { - quot: '\u0022', - amp: '&', - apos: '\u0027', - lt: '<', - gt: '>', - nbsp: '\u00A0', - iexcl: '\u00A1', - cent: '\u00A2', - pound: '\u00A3', - curren: '\u00A4', - yen: '\u00A5', - brvbar: '\u00A6', - sect: '\u00A7', - uml: '\u00A8', - copy: '\u00A9', - ordf: '\u00AA', - laquo: '\u00AB', - not: '\u00AC', - shy: '\u00AD', - reg: '\u00AE', - macr: '\u00AF', - deg: '\u00B0', - plusmn: '\u00B1', - sup2: '\u00B2', - sup3: '\u00B3', - acute: '\u00B4', - micro: '\u00B5', - para: '\u00B6', - middot: '\u00B7', - cedil: '\u00B8', - sup1: '\u00B9', - ordm: '\u00BA', - raquo: '\u00BB', - frac14: '\u00BC', - frac12: '\u00BD', - frac34: '\u00BE', - iquest: '\u00BF', - Agrave: '\u00C0', - Aacute: '\u00C1', - Acirc: '\u00C2', - Atilde: '\u00C3', - Auml: '\u00C4', - Aring: '\u00C5', - AElig: '\u00C6', - Ccedil: '\u00C7', - Egrave: '\u00C8', - Eacute: '\u00C9', - Ecirc: '\u00CA', - Euml: '\u00CB', - Igrave: '\u00CC', - Iacute: '\u00CD', - Icirc: '\u00CE', - Iuml: '\u00CF', - ETH: '\u00D0', - Ntilde: '\u00D1', - Ograve: '\u00D2', - Oacute: '\u00D3', - Ocirc: '\u00D4', - Otilde: '\u00D5', - Ouml: '\u00D6', - times: '\u00D7', - Oslash: '\u00D8', - Ugrave: '\u00D9', - Uacute: '\u00DA', - Ucirc: '\u00DB', - Uuml: '\u00DC', - Yacute: '\u00DD', - THORN: '\u00DE', - szlig: '\u00DF', - agrave: '\u00E0', - aacute: '\u00E1', - acirc: '\u00E2', - atilde: '\u00E3', - auml: '\u00E4', - aring: '\u00E5', - aelig: '\u00E6', - ccedil: '\u00E7', - egrave: '\u00E8', - eacute: '\u00E9', - ecirc: '\u00EA', - euml: '\u00EB', - igrave: '\u00EC', - iacute: '\u00ED', - icirc: '\u00EE', - iuml: '\u00EF', - eth: '\u00F0', - ntilde: '\u00F1', - ograve: '\u00F2', - oacute: '\u00F3', - ocirc: '\u00F4', - otilde: '\u00F5', - ouml: '\u00F6', - divide: '\u00F7', - oslash: '\u00F8', - ugrave: '\u00F9', - uacute: '\u00FA', - ucirc: '\u00FB', - uuml: '\u00FC', - yacute: '\u00FD', - thorn: '\u00FE', - yuml: '\u00FF', - OElig: '\u0152', - oelig: '\u0153', - Scaron: '\u0160', - scaron: '\u0161', - Yuml: '\u0178', - fnof: '\u0192', - circ: '\u02C6', - tilde: '\u02DC', - Alpha: '\u0391', - Beta: '\u0392', - Gamma: '\u0393', - Delta: '\u0394', - Epsilon: '\u0395', - Zeta: '\u0396', - Eta: '\u0397', - Theta: '\u0398', - Iota: '\u0399', - Kappa: '\u039A', - Lambda: '\u039B', - Mu: '\u039C', - Nu: '\u039D', - Xi: '\u039E', - Omicron: '\u039F', - Pi: '\u03A0', - Rho: '\u03A1', - Sigma: '\u03A3', - Tau: '\u03A4', - Upsilon: '\u03A5', - Phi: '\u03A6', - Chi: '\u03A7', - Psi: '\u03A8', - Omega: '\u03A9', - alpha: '\u03B1', - beta: '\u03B2', - gamma: '\u03B3', - delta: '\u03B4', - epsilon: '\u03B5', - zeta: '\u03B6', - eta: '\u03B7', - theta: '\u03B8', - iota: '\u03B9', - kappa: '\u03BA', - lambda: '\u03BB', - mu: '\u03BC', - nu: '\u03BD', - xi: '\u03BE', - omicron: '\u03BF', - pi: '\u03C0', - rho: '\u03C1', - sigmaf: '\u03C2', - sigma: '\u03C3', - tau: '\u03C4', - upsilon: '\u03C5', - phi: '\u03C6', - chi: '\u03C7', - psi: '\u03C8', - omega: '\u03C9', - thetasym: '\u03D1', - upsih: '\u03D2', - piv: '\u03D6', - ensp: '\u2002', - emsp: '\u2003', - thinsp: '\u2009', - zwnj: '\u200C', - zwj: '\u200D', - lrm: '\u200E', - rlm: '\u200F', - ndash: '\u2013', - mdash: '\u2014', - lsquo: '\u2018', - rsquo: '\u2019', - sbquo: '\u201A', - ldquo: '\u201C', - rdquo: '\u201D', - bdquo: '\u201E', - dagger: '\u2020', - Dagger: '\u2021', - bull: '\u2022', - hellip: '\u2026', - permil: '\u2030', - prime: '\u2032', - Prime: '\u2033', - lsaquo: '\u2039', - rsaquo: '\u203A', - oline: '\u203E', - frasl: '\u2044', - euro: '\u20AC', - image: '\u2111', - weierp: '\u2118', - real: '\u211C', - trade: '\u2122', - alefsym: '\u2135', - larr: '\u2190', - uarr: '\u2191', - rarr: '\u2192', - darr: '\u2193', - harr: '\u2194', - crarr: '\u21B5', - lArr: '\u21D0', - uArr: '\u21D1', - rArr: '\u21D2', - dArr: '\u21D3', - hArr: '\u21D4', - forall: '\u2200', - part: '\u2202', - exist: '\u2203', - empty: '\u2205', - nabla: '\u2207', - isin: '\u2208', - notin: '\u2209', - ni: '\u220B', - prod: '\u220F', - sum: '\u2211', - minus: '\u2212', - lowast: '\u2217', - radic: '\u221A', - prop: '\u221D', - infin: '\u221E', - ang: '\u2220', - and: '\u2227', - or: '\u2228', - cap: '\u2229', - cup: '\u222A', - 'int': '\u222B', - there4: '\u2234', - sim: '\u223C', - cong: '\u2245', - asymp: '\u2248', - ne: '\u2260', - equiv: '\u2261', - le: '\u2264', - ge: '\u2265', - sub: '\u2282', - sup: '\u2283', - nsub: '\u2284', - sube: '\u2286', - supe: '\u2287', - oplus: '\u2295', - otimes: '\u2297', - perp: '\u22A5', - sdot: '\u22C5', - lceil: '\u2308', - rceil: '\u2309', - lfloor: '\u230A', - rfloor: '\u230B', - lang: '\u2329', - rang: '\u232A', - loz: '\u25CA', - spades: '\u2660', - clubs: '\u2663', - hearts: '\u2665', - diams: '\u2666' -}; diff --git a/build/node_modules/acorn-private-class-elements/.eslintrc.json b/build/node_modules/acorn-private-class-elements/.eslintrc.json deleted file mode 100644 index f683f3e7..00000000 --- a/build/node_modules/acorn-private-class-elements/.eslintrc.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": ["eslint:recommended", "plugin:node/recommended"], - "plugins": ["node"], - "rules": { - "accessor-pairs": "error", - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-callback-return": "error", - "array-element-newline": "off", - "arrow-body-style": "error", - "arrow-parens": [ - "error", - "as-needed" - ], - "arrow-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "block-scoped-var": "error", - "block-spacing": "off", - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "callback-return": "error", - "camelcase": "error", - "capitalized-comments": "off", - "class-methods-use-this": "error", - "comma-dangle": "off", - "comma-spacing": [ - "error", - { - "after": true, - "before": false - } - ], - "comma-style": [ - "error", - "last" - ], - "complexity": "off", - "computed-property-spacing": [ - "error", - "never" - ], - "consistent-return": "error", - "consistent-this": "error", - "curly": [ "error", "multi-line" ], - "default-case": "error", - "dot-location": "error", - "dot-notation": [ - "error", - { - "allowKeywords": true - } - ], - "eol-last": "error", - "eqeqeq": "off", - "for-direction": "error", - "func-call-spacing": "error", - "func-name-matching": "error", - "func-names": [ - "error", - "never" - ], - "func-style": [ - "error", - "declaration", - { "allowArrowFunctions": true } - ], - "function-paren-newline": "off", - "generator-star-spacing": "error", - "getter-return": "error", - "global-require": "warn", - "guard-for-in": "error", - "handle-callback-err": "error", - "id-blacklist": "error", - "id-length": "off", - "id-match": "error", - "implicit-arrow-linebreak": [ - "error", - "beside" - ], - "indent": ["error", 2], - "indent-legacy": "off", - "init-declarations": "off", - "jsx-quotes": "error", - "key-spacing": "error", - "keyword-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "line-comment-position": "off", - "linebreak-style": [ - "error", - "unix" - ], - "lines-around-comment": "error", - "lines-around-directive": "error", - "lines-between-class-members": "error", - "max-depth": "error", - "max-len": "off", - "max-lines": "off", - "max-nested-callbacks": "error", - "max-params": "off", - "max-statements": "off", - "max-statements-per-line": "off", - "multiline-comment-style": [ - "error", - "separate-lines" - ], - "new-cap": "error", - "new-parens": "error", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": "off", - "no-alert": "error", - "no-array-constructor": "error", - "no-await-in-loop": "error", - "no-bitwise": "error", - "no-buffer-constructor": "error", - "no-caller": "error", - "no-catch-shadow": "error", - "no-confusing-arrow": "error", - "no-continue": "off", - "no-div-regex": "error", - "no-duplicate-imports": "error", - "no-else-return": "error", - "no-empty-function": "error", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-extra-parens": "off", - "no-floating-decimal": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-inline-comments": "off", - "no-invalid-this": "off", - "no-iterator": "error", - "no-label-var": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "off", - "no-loop-func": "error", - "no-magic-numbers": "off", - "no-mixed-operators": "off", - "no-mixed-requires": "error", - "no-multi-assign": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }], - "no-native-reassign": "error", - "no-negated-condition": "off", - "no-negated-in-lhs": "error", - "no-nested-ternary": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-wrappers": "error", - "no-octal-escape": "error", - "no-param-reassign": "off", - "no-path-concat": "error", - "no-plusplus": "off", - "no-process-env": "error", - "no-process-exit": "error", - "no-proto": "error", - "no-prototype-builtins": "error", - "no-restricted-globals": "error", - "no-restricted-imports": "error", - "no-restricted-modules": "error", - "no-restricted-properties": "error", - "no-restricted-syntax": "error", - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow": "error", - "no-shadow-restricted-names": "error", - "no-spaced-func": "error", - "no-sync": [ - "error", - { - "allowAtRootLevel": true - } - ], - "no-tabs": "error", - "no-template-curly-in-string": "error", - "no-ternary": "off", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-undefined": "error", - "no-underscore-dangle": "off", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unused-expressions": "error", - "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "error", - "no-warning-comments": "warn", - "no-whitespace-before-property": "error", - "no-with": "error", - "nonblock-statement-body-position": [ - "error", - "any" - ], - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "object-shorthand": "off", - "one-var": "off", - "one-var-declaration-per-line": "off", - "operator-assignment": "error", - "operator-linebreak": "error", - "padded-blocks": "off", - "padding-line-between-statements": "error", - "prefer-arrow-callback": "off", - "prefer-const": "off", - "prefer-destructuring": "off", - "prefer-numeric-literals": "error", - "prefer-promise-reject-errors": "error", - "prefer-reflect": "off", - "prefer-rest-params": "off", - "prefer-spread": "error", - "prefer-template": "error", - "quote-props": ["error", "as-needed"], - "quotes": ["error", "double"], - "radix": "error", - "require-await": "error", - "require-jsdoc": "off", - "rest-spread-spacing": "error", - "semi": ["error", "never"], - "semi-spacing": "error", - "semi-style": [ - "error", - "last" - ], - "sort-imports": "error", - "sort-keys": "off", - "sort-vars": "off", - "space-before-blocks": "error", - "space-before-function-paren": "off", - "space-in-parens": [ - "error", - "never" - ], - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": "off", - "strict": "error", - "switch-colon-spacing": "error", - "symbol-description": "error", - "template-curly-spacing": "error", - "template-tag-spacing": "error", - "unicode-bom": [ - "error", - "never" - ], - "valid-jsdoc": "error", - "vars-on-top": "off", - "wrap-regex": "error", - "yield-star-spacing": "error", - "yoda": [ - "error", - "never" - ], - "node/no-unpublished-require": "off", - "no-proto": "warn", - "no-empty-function": "off" - } -} diff --git a/build/node_modules/acorn-private-class-elements/CHANGELOG.md b/build/node_modules/acorn-private-class-elements/CHANGELOG.md deleted file mode 100644 index f57cb529..00000000 --- a/build/node_modules/acorn-private-class-elements/CHANGELOG.md +++ /dev/null @@ -1,38 +0,0 @@ -## 1.0.0 (2021-01-27) - -* Update to ESTree consensus - -## 0.2.7 (2020-08-13) - -* Mark as compatible with acorn@8 - -## 0.2.6 (2020-06-11) - -* Don't break acorn's optional chaining support - -## 0.2.5 (2020-04-23) - -* Evaluate class heritage with outer private environment - -## 0.2.4 (2020-04-22) - -* Don't allow private element access on `super` - -## 0.2.3 (2020-04-22) - -(Skipped 0.2.1 and 0.2.2 because I accidentally called 0.2.0 0.2.2 in git) - -* Use injected acorn instance if available -* Uses `Object.getPrototypeOf` if available instead of `__proto__` - -## 0.2.0 (2020-03-07) - -* Mark as compatible with acorn v7 - -## 0.1.1 (2019-02-09) - -* Add \_branch() method - -## 0.1.0 (2019-02-09) - -Initial release diff --git a/build/node_modules/acorn-private-class-elements/LICENSE b/build/node_modules/acorn-private-class-elements/LICENSE deleted file mode 100644 index 7c2b27a1..00000000 --- a/build/node_modules/acorn-private-class-elements/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn-private-class-elements/README.md b/build/node_modules/acorn-private-class-elements/README.md deleted file mode 100644 index c4b0d7f9..00000000 --- a/build/node_modules/acorn-private-class-elements/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Helpers for supporting private class methods and fields for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-private-class-elements.svg)](https://www.npmjs.org/package/acorn-private-class-elements) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It provides helpers for implementing support for private class elements. The emitted AST follows the [ESTree experimental Class Features design](https://github.com/estree/estree/blob/master/experimental/class-features.md). - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/build/node_modules/acorn-private-class-elements/index.js b/build/node_modules/acorn-private-class-elements/index.js deleted file mode 100644 index b2a08dfb..00000000 --- a/build/node_modules/acorn-private-class-elements/index.js +++ /dev/null @@ -1,165 +0,0 @@ -"use strict" - -const getPrototype = Object.getPrototypeOf || (o => o.__proto__) - -const getAcorn = Parser => { - if (Parser.acorn) return Parser.acorn - - const acorn = require("acorn") - - if (acorn.version.indexOf("6.") != 0 && acorn.version.indexOf("6.0.") == 0 && acorn.version.indexOf("7.") != 0) { - throw new Error(`acorn-private-class-elements requires acorn@^6.1.0 or acorn@7.0.0, not ${acorn.version}`) - } - - // Make sure `Parser` comes from the same acorn as we `require`d, - // otherwise the comparisons fail. - for (let cur = Parser; cur && cur !== acorn.Parser; cur = getPrototype(cur)) { - if (cur !== acorn.Parser) { - throw new Error("acorn-private-class-elements does not support mixing different acorn copies") - } - } - return acorn -} - -module.exports = function(Parser) { - // Only load this plugin once. - if (Parser.prototype.parsePrivateName) { - return Parser - } - - const acorn = getAcorn(Parser) - - Parser = class extends Parser { - _branch() { - this.__branch = this.__branch || new Parser({ecmaVersion: this.options.ecmaVersion}, this.input) - this.__branch.end = this.end - this.__branch.pos = this.pos - this.__branch.type = this.type - this.__branch.value = this.value - this.__branch.containsEsc = this.containsEsc - return this.__branch - } - - parsePrivateClassElementName(element) { - element.computed = false - element.key = this.parsePrivateName() - if (element.key.name == "constructor") this.raise(element.key.start, "Classes may not have a private element named constructor") - const accept = {get: "set", set: "get"}[element.kind] - const privateBoundNames = this._privateBoundNames - if (Object.prototype.hasOwnProperty.call(privateBoundNames, element.key.name) && privateBoundNames[element.key.name] !== accept) { - this.raise(element.start, "Duplicate private element") - } - privateBoundNames[element.key.name] = element.kind || true - delete this._unresolvedPrivateNames[element.key.name] - return element.key - } - - parsePrivateName() { - const node = this.startNode() - node.name = this.value - this.next() - this.finishNode(node, "PrivateIdentifier") - if (this.options.allowReserved == "never") this.checkUnreserved(node) - return node - } - - // Parse # token - getTokenFromCode(code) { - if (code === 35) { - ++this.pos - const word = this.readWord1() - return this.finishToken(this.privateIdentifierToken, word) - } - return super.getTokenFromCode(code) - } - - // Manage stacks and check for undeclared private names - parseClass(node, isStatement) { - const oldOuterPrivateBoundNames = this._outerPrivateBoundNames - this._outerPrivateBoundNames = this._privateBoundNames - this._privateBoundNames = Object.create(this._privateBoundNames || null) - const oldOuterUnresolvedPrivateNames = this._outerUnresolvedPrivateNames - this._outerUnresolvedPrivateNames = this._unresolvedPrivateNames - this._unresolvedPrivateNames = Object.create(null) - - const _return = super.parseClass(node, isStatement) - - const unresolvedPrivateNames = this._unresolvedPrivateNames - this._privateBoundNames = this._outerPrivateBoundNames - this._outerPrivateBoundNames = oldOuterPrivateBoundNames - this._unresolvedPrivateNames = this._outerUnresolvedPrivateNames - this._outerUnresolvedPrivateNames = oldOuterUnresolvedPrivateNames - if (!this._unresolvedPrivateNames) { - const names = Object.keys(unresolvedPrivateNames) - if (names.length) { - names.sort((n1, n2) => unresolvedPrivateNames[n1] - unresolvedPrivateNames[n2]) - this.raise(unresolvedPrivateNames[names[0]], "Usage of undeclared private name") - } - } else Object.assign(this._unresolvedPrivateNames, unresolvedPrivateNames) - return _return - } - - // Class heritage is evaluated with outer private environment - parseClassSuper(node) { - const privateBoundNames = this._privateBoundNames - this._privateBoundNames = this._outerPrivateBoundNames - const unresolvedPrivateNames = this._unresolvedPrivateNames - this._unresolvedPrivateNames = this._outerUnresolvedPrivateNames - const _return = super.parseClassSuper(node) - this._privateBoundNames = privateBoundNames - this._unresolvedPrivateNames = unresolvedPrivateNames - return _return - } - - // Parse private element access - parseSubscript(base, startPos, startLoc, _noCalls, _maybeAsyncArrow, _optionalChained) { - const optionalSupported = this.options.ecmaVersion >= 11 && acorn.tokTypes.questionDot - const branch = this._branch() - if (!( - (branch.eat(acorn.tokTypes.dot) || (optionalSupported && branch.eat(acorn.tokTypes.questionDot))) && - branch.type == this.privateIdentifierToken - )) { - return super.parseSubscript.apply(this, arguments) - } - let optional = false - if (!this.eat(acorn.tokTypes.dot)) { - this.expect(acorn.tokTypes.questionDot) - optional = true - } - let node = this.startNodeAt(startPos, startLoc) - node.object = base - node.computed = false - if (optionalSupported) { - node.optional = optional - } - if (this.type == this.privateIdentifierToken) { - if (base.type == "Super") { - this.raise(this.start, "Cannot access private element on super") - } - node.property = this.parsePrivateName() - if (!this._privateBoundNames || !this._privateBoundNames[node.property.name]) { - if (!this._unresolvedPrivateNames) { - this.raise(node.property.start, "Usage of undeclared private name") - } - this._unresolvedPrivateNames[node.property.name] = node.property.start - } - } else { - node.property = this.parseIdent(true) - } - return this.finishNode(node, "MemberExpression") - } - - // Prohibit delete of private class elements - parseMaybeUnary(refDestructuringErrors, sawUnary) { - const _return = super.parseMaybeUnary(refDestructuringErrors, sawUnary) - if (_return.operator == "delete") { - if (_return.argument.type == "MemberExpression" && _return.argument.property.type == "PrivateIdentifier") { - this.raise(_return.start, "Private elements may not be deleted") - } - } - return _return - } - } - Parser.prototype.privateIdentifierToken = new acorn.TokenType("privateIdentifier") - return Parser -} diff --git a/build/node_modules/acorn-private-class-elements/package.json b/build/node_modules/acorn-private-class-elements/package.json deleted file mode 100644 index 7246b317..00000000 --- a/build/node_modules/acorn-private-class-elements/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "acorn-private-class-elements", - "description": "Helpers for supporting private class methods and fields in acorn", - "homepage": "https://github.com/acornjs/acorn-private-class-elements", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-private-class-elements" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7 || ^8" - }, - "version": "1.0.0", - "devDependencies": { - "acorn": "^7.0.0", - "eslint": "^7", - "eslint-plugin-node": "^11.0.0", - "mocha": "^8" - } -} diff --git a/build/node_modules/acorn-private-methods/.eslintignore b/build/node_modules/acorn-private-methods/.eslintignore deleted file mode 100644 index 849ddff3..00000000 --- a/build/node_modules/acorn-private-methods/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist/ diff --git a/build/node_modules/acorn-private-methods/.eslintrc.json b/build/node_modules/acorn-private-methods/.eslintrc.json deleted file mode 100644 index 1768c8a2..00000000 --- a/build/node_modules/acorn-private-methods/.eslintrc.json +++ /dev/null @@ -1,298 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": ["eslint:recommended", "plugin:node/recommended"], - "plugins": ["node"], - "overrides": [{ - "files": ["rollup.config.js", "index.js"], - "parserOptions": { "sourceType": "module" } - }], - "rules": { - "accessor-pairs": "error", - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-callback-return": "error", - "array-element-newline": "off", - "arrow-body-style": "error", - "arrow-parens": [ - "error", - "as-needed" - ], - "arrow-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "block-scoped-var": "error", - "block-spacing": "off", - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "callback-return": "error", - "camelcase": "error", - "capitalized-comments": "off", - "class-methods-use-this": "error", - "comma-dangle": "off", - "comma-spacing": [ - "error", - { - "after": true, - "before": false - } - ], - "comma-style": [ - "error", - "last" - ], - "complexity": "off", - "computed-property-spacing": [ - "error", - "never" - ], - "consistent-return": "error", - "consistent-this": "error", - "curly": [ "error", "multi-line" ], - "default-case": "error", - "dot-location": "error", - "dot-notation": [ - "error", - { - "allowKeywords": true - } - ], - "eol-last": "error", - "eqeqeq": "off", - "for-direction": "error", - "func-call-spacing": "error", - "func-name-matching": "error", - "func-names": [ - "error", - "never" - ], - "func-style": [ - "error", - "declaration", - { "allowArrowFunctions": true } - ], - "function-paren-newline": "off", - "generator-star-spacing": "error", - "getter-return": "error", - "global-require": "error", - "guard-for-in": "error", - "handle-callback-err": "error", - "id-blacklist": "error", - "id-length": "off", - "id-match": "error", - "implicit-arrow-linebreak": [ - "error", - "beside" - ], - "indent": ["error", 2], - "indent-legacy": "off", - "init-declarations": "off", - "jsx-quotes": "error", - "key-spacing": "error", - "keyword-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "line-comment-position": "off", - "linebreak-style": [ - "error", - "unix" - ], - "lines-around-comment": "error", - "lines-around-directive": "error", - "lines-between-class-members": "error", - "max-depth": "error", - "max-len": "off", - "max-lines": "off", - "max-nested-callbacks": "error", - "max-params": "off", - "max-statements": "off", - "max-statements-per-line": "off", - "multiline-comment-style": [ - "error", - "separate-lines" - ], - "new-cap": "error", - "new-parens": "error", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": "off", - "no-alert": "error", - "no-array-constructor": "error", - "no-await-in-loop": "error", - "no-bitwise": "error", - "no-buffer-constructor": "error", - "no-caller": "error", - "no-catch-shadow": "error", - "no-confusing-arrow": "error", - "no-continue": "off", - "no-div-regex": "error", - "no-duplicate-imports": "error", - "no-else-return": "error", - "no-empty-function": "error", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-extra-parens": "off", - "no-floating-decimal": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-inline-comments": "off", - "no-invalid-this": "off", - "no-iterator": "error", - "no-label-var": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "off", - "no-loop-func": "error", - "no-magic-numbers": "off", - "no-mixed-operators": "off", - "no-mixed-requires": "error", - "no-multi-assign": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }], - "no-native-reassign": "error", - "no-negated-condition": "off", - "no-negated-in-lhs": "error", - "no-nested-ternary": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-wrappers": "error", - "no-octal-escape": "error", - "no-param-reassign": "off", - "no-path-concat": "error", - "no-plusplus": "off", - "no-process-env": "error", - "no-process-exit": "error", - "no-proto": "error", - "no-prototype-builtins": "error", - "no-restricted-globals": "error", - "no-restricted-imports": "error", - "no-restricted-modules": "error", - "no-restricted-properties": "error", - "no-restricted-syntax": "error", - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow": "error", - "no-shadow-restricted-names": "error", - "no-spaced-func": "error", - "no-sync": [ - "error", - { - "allowAtRootLevel": true - } - ], - "no-tabs": "error", - "no-template-curly-in-string": "error", - "no-ternary": "off", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-undefined": "error", - "no-underscore-dangle": "off", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unused-expressions": "error", - "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "error", - "no-warning-comments": "warn", - "no-whitespace-before-property": "error", - "no-with": "error", - "nonblock-statement-body-position": [ - "error", - "any" - ], - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "object-shorthand": "off", - "one-var": "off", - "one-var-declaration-per-line": "off", - "operator-assignment": "error", - "operator-linebreak": "error", - "padded-blocks": "off", - "padding-line-between-statements": "error", - "prefer-arrow-callback": "off", - "prefer-const": "off", - "prefer-destructuring": "off", - "prefer-numeric-literals": "error", - "prefer-promise-reject-errors": "error", - "prefer-reflect": "off", - "prefer-rest-params": "off", - "prefer-spread": "error", - "prefer-template": "error", - "quote-props": ["error", "as-needed"], - "quotes": ["error", "double"], - "radix": "error", - "require-await": "error", - "require-jsdoc": "off", - "rest-spread-spacing": "error", - "semi": ["error", "never"], - "semi-spacing": "error", - "semi-style": [ - "error", - "last" - ], - "sort-imports": "error", - "sort-keys": "off", - "sort-vars": "off", - "space-before-blocks": "error", - "space-before-function-paren": "off", - "space-in-parens": [ - "error", - "never" - ], - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": "off", - "strict": "error", - "switch-colon-spacing": "error", - "symbol-description": "error", - "template-curly-spacing": "error", - "template-tag-spacing": "error", - "unicode-bom": [ - "error", - "never" - ], - "valid-jsdoc": "error", - "vars-on-top": "off", - "wrap-regex": "error", - "yield-star-spacing": "error", - "yoda": [ - "error", - "never" - ], - "node/no-unpublished-require": "off" - } -} diff --git a/build/node_modules/acorn-private-methods/CHANGELOG.md b/build/node_modules/acorn-private-methods/CHANGELOG.md deleted file mode 100644 index 43a36cab..00000000 --- a/build/node_modules/acorn-private-methods/CHANGELOG.md +++ /dev/null @@ -1,50 +0,0 @@ -## 1.0.0 (2021-02-08) - -* Update AST node names to match [ESTree](https://github.com/estree/estree/blob/master/experimental/class-features.md) - -## 0.3.3 (2020-08-13) - -* Migrate to ESM -* Mark as compatible with acorn@8 - -## 0.3.2 (2020-06-11) - -* Don't break acorn's optional chaining support - -## 0.3.1 (2020-04-22) - -* Don't parse static private methods -* Don't allow private method access on `super` -* Use injected acorn instance if available -* Uses `Object.getPrototypeOf` if available instead of `__proto__` -* Mark as compatible with acorn v7 - -## 0.3.0 (2019-02-09) - -* Require acorn >= 6.1.0 - -## 0.2.3 (2019-02-09) - -* Forbid binding await in async arrow function's parameter list - -## 0.2.2 (2019-01-30) - -* Fix parsing of chained subscripts - -## 0.2.1 (2018-11-06) - -* Adapt to changes in acorn 6.0.3 - -## 0.2.0 (2018-09-14) - -* Update to new acorn 6 interface -* Change license to MIT -* Don't allow direct super() calls in private methods - -## 0.1.1 (2018-02-09) - -* Don't accept whitespace between hash and private name - -## 0.1.0 (2018-01-13) - -Initial release diff --git a/build/node_modules/acorn-private-methods/LICENSE b/build/node_modules/acorn-private-methods/LICENSE deleted file mode 100644 index 7c2b27a1..00000000 --- a/build/node_modules/acorn-private-methods/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn-private-methods/README.md b/build/node_modules/acorn-private-methods/README.md deleted file mode 100644 index 3fd1805e..00000000 --- a/build/node_modules/acorn-private-methods/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Private methods and getter/setters support for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-private-methods.svg)](https://www.npmjs.org/package/acorn-private-methods) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It implements support for private methods, getters and setters as defined in the stage 3 proposal [Private methods and getter/setters for JavaScript classes](https://github.com/tc39/proposal-private-methods). The emitted AST follows the [ESTree experimental Class Features design](https://github.com/estree/estree/blob/master/experimental/class-features.md). - -## Usage - -This module provides a plugin that can be used to extend the Acorn `Parser` class: - -```javascript -const {Parser} = require('acorn'); -const privateMethods = require('acorn-private-methods'); -Parser.extend(privateMethods).parse('class X { #a() {} }'); -``` - -or as an ECMAScript Module: - -```javascript -import {Parser} from 'acorn'; -import privateMethods from 'acorn-private-methods'; -Parser.extend(privateMethods).parse('class X { #a() {} }'); -``` - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/build/node_modules/acorn-private-methods/index.js b/build/node_modules/acorn-private-methods/index.js deleted file mode 100644 index efc9896f..00000000 --- a/build/node_modules/acorn-private-methods/index.js +++ /dev/null @@ -1,25 +0,0 @@ -// eslint-disable-next-line node/no-unsupported-features/es-syntax -import privateClassElements from "acorn-private-class-elements" - -// eslint-disable-next-line node/no-unsupported-features/es-syntax -export default function privateMethods(Parser) { - const ExtendedParser = privateClassElements(Parser) - - return class extends ExtendedParser { - // Parse private methods - parseClassElement(_constructorAllowsSuper) { - const oldInClassMemberName = this._inClassMemberName - this._inClassMemberName = true - const result = super.parseClassElement.apply(this, arguments) - this._inClassMemberName = oldInClassMemberName - return result - } - - parsePropertyName(prop) { - const isPrivate = this.options.ecmaVersion >= 8 && this._inClassMemberName && this.type == this.privateIdentifierToken && !prop.static - this._inClassMemberName = false - if (!isPrivate) return super.parsePropertyName(prop) - return this.parsePrivateClassElementName(prop) - } - } -} diff --git a/build/node_modules/acorn-private-methods/package.json b/build/node_modules/acorn-private-methods/package.json deleted file mode 100644 index 1f3ac2e3..00000000 --- a/build/node_modules/acorn-private-methods/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "acorn-private-methods", - "description": "Support for private methods in acorn", - "homepage": "https://github.com/acornjs/acorn-private-methods", - "contributors": [ - "Adrian Heine " - ], - "main": "dist/acorn-private-methods.js", - "module": "dist/acorn-private-methods.mjs", - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-private-methods" - }, - "license": "MIT", - "scripts": { - "build": "rollup -c rollup.config.js", - "test": "mocha", - "test:test262": "node run_test262.js", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6 || ^7 || ^8" - }, - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - }, - "version": "1.0.0", - "devDependencies": { - "acorn": "^8", - "eslint": "^7", - "eslint-plugin-node": "^11", - "mocha": "^8", - "rollup": "^2.10.0", - "test262": "git+https://github.com/tc39/test262.git#fd27d1f5d00dcccc5f763252fc11b575ee0bdd2f", - "test262-parser-runner": "^0.5.0" - } -} diff --git a/build/node_modules/acorn-private-methods/rollup.config.js b/build/node_modules/acorn-private-methods/rollup.config.js deleted file mode 100644 index 7b8cba49..00000000 --- a/build/node_modules/acorn-private-methods/rollup.config.js +++ /dev/null @@ -1,16 +0,0 @@ -// eslint-disable-next-line node/no-unsupported-features/es-syntax -export default { - input: "index.js", - output: [ - { - file: "dist/acorn-private-methods.js", - format: "cjs", - sourcemap: true - }, - { - file: "dist/acorn-private-methods.mjs", - format: "es", - sourcemap: true - } - ] -} diff --git a/build/node_modules/acorn-private-methods/run_test262.js b/build/node_modules/acorn-private-methods/run_test262.js deleted file mode 100644 index 38f8a1e3..00000000 --- a/build/node_modules/acorn-private-methods/run_test262.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict" - -const path = require("path") -const run = require("test262-parser-runner") -const acorn = require("acorn") -const privateMethods = require(".") -const Parser = acorn.Parser.extend(privateMethods) - -const unsupportedFeatures = [ - "class-fields-private", - "class-fields-public", - "class-static-fields-public", - "class-static-fields-private", - "class-static-methods-private" -] - -const implementedFeatures = [ - "class-methods-private" -] - -run( - (content, options) => Parser.parse(content, {sourceType: options.sourceType, ecmaVersion: 11}), - { - testsDirectory: path.dirname(require.resolve("test262/package.json")), - skip: test => (!test.attrs.features || !implementedFeatures.some(f => test.attrs.features.includes(f)) || unsupportedFeatures.some(f => test.attrs.features.includes(f))), - whitelist: [], - } -) diff --git a/build/node_modules/acorn-static-class-features/.eslintrc.json b/build/node_modules/acorn-static-class-features/.eslintrc.json deleted file mode 100644 index 8574969a..00000000 --- a/build/node_modules/acorn-static-class-features/.eslintrc.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "env": { - "es6": true, - "node": true - }, - "extends": ["eslint:recommended", "plugin:node/recommended"], - "plugins": ["node"], - "rules": { - "accessor-pairs": "error", - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-callback-return": "error", - "array-element-newline": "off", - "arrow-body-style": "error", - "arrow-parens": [ - "error", - "as-needed" - ], - "arrow-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "block-scoped-var": "error", - "block-spacing": "off", - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "callback-return": "error", - "camelcase": "error", - "capitalized-comments": "off", - "class-methods-use-this": "error", - "comma-dangle": "off", - "comma-spacing": [ - "error", - { - "after": true, - "before": false - } - ], - "comma-style": [ - "error", - "last" - ], - "complexity": "off", - "computed-property-spacing": [ - "error", - "never" - ], - "consistent-return": "error", - "consistent-this": "error", - "curly": [ "error", "multi-line" ], - "default-case": "error", - "dot-location": "error", - "dot-notation": [ - "error", - { - "allowKeywords": true - } - ], - "eol-last": "error", - "eqeqeq": "off", - "for-direction": "error", - "func-call-spacing": "error", - "func-name-matching": "error", - "func-names": [ - "error", - "never" - ], - "func-style": [ - "error", - "declaration", - { "allowArrowFunctions": true } - ], - "function-paren-newline": "off", - "generator-star-spacing": "error", - "getter-return": "error", - "global-require": "warn", - "guard-for-in": "error", - "handle-callback-err": "error", - "id-blacklist": "error", - "id-length": "off", - "id-match": "error", - "implicit-arrow-linebreak": [ - "error", - "beside" - ], - "indent": ["error", 2], - "indent-legacy": "off", - "init-declarations": "off", - "jsx-quotes": "error", - "key-spacing": "error", - "keyword-spacing": [ - "error", - { - "after": true, - "before": true - } - ], - "line-comment-position": "off", - "linebreak-style": [ - "error", - "unix" - ], - "lines-around-comment": "error", - "lines-around-directive": "error", - "lines-between-class-members": "error", - "max-depth": "error", - "max-len": "off", - "max-lines": "off", - "max-nested-callbacks": "error", - "max-params": "off", - "max-statements": "off", - "max-statements-per-line": "off", - "multiline-comment-style": [ - "error", - "separate-lines" - ], - "new-cap": "error", - "new-parens": "error", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": "off", - "no-alert": "error", - "no-array-constructor": "error", - "no-await-in-loop": "error", - "no-bitwise": "off", - "no-buffer-constructor": "error", - "no-caller": "error", - "no-catch-shadow": "error", - "no-confusing-arrow": "error", - "no-continue": "off", - "no-div-regex": "error", - "no-duplicate-imports": "error", - "no-else-return": "error", - "no-empty-function": "error", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-extra-parens": "off", - "no-floating-decimal": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-inline-comments": "off", - "no-invalid-this": "off", - "no-iterator": "error", - "no-label-var": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "off", - "no-loop-func": "error", - "no-magic-numbers": "off", - "no-mixed-operators": "off", - "no-mixed-requires": "error", - "no-multi-assign": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }], - "no-native-reassign": "error", - "no-negated-condition": "off", - "no-negated-in-lhs": "error", - "no-nested-ternary": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-wrappers": "error", - "no-octal-escape": "error", - "no-param-reassign": "off", - "no-path-concat": "error", - "no-plusplus": "off", - "no-process-env": "error", - "no-process-exit": "error", - "no-proto": "error", - "no-prototype-builtins": "error", - "no-restricted-globals": "error", - "no-restricted-imports": "error", - "no-restricted-modules": "error", - "no-restricted-properties": "error", - "no-restricted-syntax": "error", - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow": "error", - "no-shadow-restricted-names": "error", - "no-spaced-func": "error", - "no-sync": [ - "error", - { - "allowAtRootLevel": true - } - ], - "no-tabs": "error", - "no-template-curly-in-string": "error", - "no-ternary": "off", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-undefined": "error", - "no-underscore-dangle": "off", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unused-expressions": "error", - "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "error", - "no-warning-comments": "warn", - "no-whitespace-before-property": "error", - "no-with": "error", - "nonblock-statement-body-position": [ - "error", - "any" - ], - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "object-shorthand": "off", - "one-var": "off", - "one-var-declaration-per-line": "off", - "operator-assignment": "error", - "operator-linebreak": "error", - "padded-blocks": "off", - "padding-line-between-statements": "error", - "prefer-arrow-callback": "off", - "prefer-const": "off", - "prefer-destructuring": "off", - "prefer-numeric-literals": "error", - "prefer-promise-reject-errors": "error", - "prefer-reflect": "off", - "prefer-rest-params": "off", - "prefer-spread": "error", - "prefer-template": "error", - "quote-props": ["error", "as-needed"], - "quotes": ["error", "double"], - "radix": "error", - "require-await": "error", - "require-jsdoc": "off", - "rest-spread-spacing": "error", - "semi": ["error", "never"], - "semi-spacing": "error", - "semi-style": [ - "error", - "first" - ], - "sort-imports": "error", - "sort-keys": "off", - "sort-vars": "off", - "space-before-blocks": "error", - "space-before-function-paren": "off", - "space-in-parens": [ - "error", - "never" - ], - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": "off", - "strict": "error", - "switch-colon-spacing": "error", - "symbol-description": "error", - "template-curly-spacing": "error", - "template-tag-spacing": "error", - "unicode-bom": [ - "error", - "never" - ], - "valid-jsdoc": "error", - "vars-on-top": "off", - "wrap-regex": "error", - "yield-star-spacing": "error", - "yoda": [ - "error", - "never" - ], - "node/no-unpublished-require": "off" - } -} diff --git a/build/node_modules/acorn-static-class-features/CHANGELOG.md b/build/node_modules/acorn-static-class-features/CHANGELOG.md deleted file mode 100644 index ca037e46..00000000 --- a/build/node_modules/acorn-static-class-features/CHANGELOG.md +++ /dev/null @@ -1,36 +0,0 @@ -## 1.0.0 (2021-02-08) - -* Update AST node names to match [ESTree](https://github.com/estree/estree/blob/master/experimental/class-features.md) - -## 0.2.4 (2020-08-13) - -* Mark as compatible with acorn@8 -* Allow super in field initializer -* Support keywords as field name - -## 0.2.3 (2020-06-11) - -* Don't break acorn's optional chaining support - -## 0.2.2 (2020-05-21) - -* Allow `arguments` usage in nested static methods -* Allow numeric class element names - -## 0.2.1 (2020-04-25) - -* Mark as compatible with acorn v7 -* Use injected acorn instance if available -* Uses `Object.getPrototypeOf` if available instead of `__proto__` - -## 0.2.0 (2019-02-09) - -* Require acorn >= 6.1.0 - -## 0.1.1 (2018-11-06) - -* Adapt to changes in acorn 6.0.3 - -## 0.1.0 (2018-09-14) - -Initial release diff --git a/build/node_modules/acorn-static-class-features/LICENSE b/build/node_modules/acorn-static-class-features/LICENSE deleted file mode 100644 index 7c2b27a1..00000000 --- a/build/node_modules/acorn-static-class-features/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2017-2018 by Adrian Heine - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn-static-class-features/README.md b/build/node_modules/acorn-static-class-features/README.md deleted file mode 100644 index acf04344..00000000 --- a/build/node_modules/acorn-static-class-features/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Static class features support for Acorn - -[![NPM version](https://img.shields.io/npm/v/acorn-class-fields.svg)](https://www.npmjs.org/package/acorn-static-class-features) - -This is a plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript. - -It implements support for static class features as defined in the stage 3 proposal [Static class features](https://github.com/tc39/proposal-static-class-features). The emitted AST follows the [ESTree experimental Class Features design](https://github.com/estree/estree/blob/master/experimental/class-features.md). - -## Usage - -This module provides a plugin that can be used to extend the Acorn `Parser` class: - -```javascript -const {Parser} = require('acorn'); -const staticClassFeatures = require('acorn-static-class-features'); -Parser.extend(staticClassFeatures).parse('class X { static x = 0 }'); -``` - -## License - -This plugin is released under an [MIT License](./LICENSE). diff --git a/build/node_modules/acorn-static-class-features/index.js b/build/node_modules/acorn-static-class-features/index.js deleted file mode 100644 index 21cccb24..00000000 --- a/build/node_modules/acorn-static-class-features/index.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict" - -const privateClassElements = require("acorn-private-class-elements") - -module.exports = function(Parser) { - const ExtendedParser = privateClassElements(Parser) - - const acorn = Parser.acorn || require("acorn") - const tt = acorn.tokTypes - - return class extends ExtendedParser { - _maybeParseFieldValue(field) { - if (this.eat(tt.eq)) { - const oldInFieldValue = this._inStaticFieldScope - this._inStaticFieldScope = this.currentThisScope() - field.value = this.parseExpression() - this._inStaticFieldScope = oldInFieldValue - } else field.value = null - } - - // Parse fields - parseClassElement(_constructorAllowsSuper) { - if (this.options.ecmaVersion < 8 || !this.isContextual("static")) { - return super.parseClassElement.apply(this, arguments) - } - - const branch = this._branch() - branch.next() - if ([tt.name, tt.bracketL, tt.string, tt.num, this.privateIdentifierToken].indexOf(branch.type) == -1 && !branch.type.keyword) { - return super.parseClassElement.apply(this, arguments) - } - if (branch.type == tt.bracketL) { - let count = 0 - do { - if (branch.eat(tt.bracketL)) ++count - else if (branch.eat(tt.bracketR)) --count - else branch.next() - } while (count > 0) - } else branch.next() - if (branch.type != tt.eq && !branch.canInsertSemicolon() && branch.type != tt.semi) { - return super.parseClassElement.apply(this, arguments) - } - - const node = this.startNode() - node.static = this.eatContextual("static") - if (this.type == this.privateIdentifierToken) { - this.parsePrivateClassElementName(node) - } else { - this.parsePropertyName(node) - } - if ((node.key.type === "Identifier" && node.key.name === "constructor") || - (node.key.type === "Literal" && !node.computed && node.key.value === "constructor")) { - this.raise(node.key.start, "Classes may not have a field called constructor") - } - if ((node.key.name || node.key.value) === "prototype" && !node.computed) { - this.raise(node.key.start, "Classes may not have a static property named prototype") - } - - this.enterScope(64 | 2 | 1) // See acorn's scopeflags.js - this._maybeParseFieldValue(node) - this.exitScope() - this.finishNode(node, "PropertyDefinition") - this.semicolon() - return node - } - - // Parse private static methods - parsePropertyName(prop) { - if (prop.static && this.type == this.privateIdentifierToken) { - this.parsePrivateClassElementName(prop) - } else { - super.parsePropertyName(prop) - } - } - - // Prohibit arguments in class field initializers - parseIdent(liberal, isBinding) { - const ident = super.parseIdent(liberal, isBinding) - if (this._inStaticFieldScope && this.currentThisScope() === this._inStaticFieldScope && ident.name == "arguments") { - this.raise(ident.start, "A static class field initializer may not contain arguments") - } - return ident - } - } -} diff --git a/build/node_modules/acorn-static-class-features/package.json b/build/node_modules/acorn-static-class-features/package.json deleted file mode 100644 index 3f1f26b5..00000000 --- a/build/node_modules/acorn-static-class-features/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "acorn-static-class-features", - "description": "Support for static class features in acorn", - "homepage": "https://github.com/acornjs/acorn-static-class-features", - "contributors": [ - "Adrian Heine " - ], - "engines": { - "node": ">=4.8.2" - }, - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn-static-class-features" - }, - "license": "MIT", - "scripts": { - "test": "mocha", - "test:test262": "node run_test262.js", - "lint": "eslint -c .eslintrc.json ." - }, - "peerDependencies": { - "acorn": "^6.1.0 || ^7 || ^8" - }, - "version": "1.0.0", - "devDependencies": { - "acorn": "^8", - "eslint": "^7", - "eslint-plugin-node": "^11", - "mocha": "^8", - "test262": "git+https://github.com/tc39/test262.git#fd27d1f5d00dcccc5f763252fc11b575ee0bdd2f", - "test262-parser-runner": "^0.5.0" - }, - "dependencies": { - "acorn-private-class-elements": "^1.0.0" - } -} diff --git a/build/node_modules/acorn-static-class-features/run_test262.js b/build/node_modules/acorn-static-class-features/run_test262.js deleted file mode 100644 index a94869d8..00000000 --- a/build/node_modules/acorn-static-class-features/run_test262.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict" - -const path = require("path") -const run = require("test262-parser-runner") -const acorn = require("acorn") -const Parser = acorn.Parser.extend(require(".")) - -const unsupportedFeatures = [ - "class-fields-public", - "class-fields-private", - "class-methods-private" -] - -const implementedFeatures = [ - "class-static-fields-public", - "class-static-fields-private", - "class-static-methods-private" -] - -run( - (content, options) => Parser.parse(content, {sourceType: options.sourceType, ecmaVersion: 11}), - { - testsDirectory: path.dirname(require.resolve("test262/package.json")), - skip: test => (!test.attrs.features || !implementedFeatures.some(f => test.attrs.features.includes(f)) || unsupportedFeatures.some(f => test.attrs.features.includes(f))), - whitelist: [], - } -) diff --git a/build/node_modules/acorn-walk/CHANGELOG.md b/build/node_modules/acorn-walk/CHANGELOG.md deleted file mode 100644 index 2f3413ca..00000000 --- a/build/node_modules/acorn-walk/CHANGELOG.md +++ /dev/null @@ -1,173 +0,0 @@ -## 8.3.0 (2023-10-26) - -### New features - -Use a set of new, much more precise, TypeScript types. - -## 8.2.0 (2021-09-06) - -### New features - -Add support for walking ES2022 class static blocks. - -## 8.1.1 (2021-06-29) - -### Bug fixes - -Include `base` in the type declarations. - -## 8.1.0 (2021-04-24) - -### New features - -Support node types for class fields and private methods. - -## 8.0.2 (2021-01-25) - -### Bug fixes - -Adjust package.json to work with Node 12.16.0 and 13.0-13.6. - -## 8.0.0 (2021-01-05) - -### Bug fixes - -Fix a bug where `full` and `fullAncestor` would skip nodes with overridden types. - -## 8.0.0 (2020-08-12) - -### New features - -The package can now be loaded directly as an ECMAScript module in node 13+. - -## 7.2.0 (2020-06-17) - -### New features - -Support optional chaining and nullish coalescing. - -Support `import.meta`. - -Add support for `export * as ns from "source"`. - -## 7.1.1 (2020-02-13) - -### Bug fixes - -Clean up the type definitions to actually work well with the main parser. - -## 7.1.0 (2020-02-11) - -### New features - -Add a TypeScript definition file for the library. - -## 7.0.0 (2017-08-12) - -### New features - -Support walking `ImportExpression` nodes. - -## 6.2.0 (2017-07-04) - -### New features - -Add support for `Import` nodes. - -## 6.1.0 (2018-09-28) - -### New features - -The walker now walks `TemplateElement` nodes. - -## 6.0.1 (2018-09-14) - -### Bug fixes - -Fix bad "main" field in package.json. - -## 6.0.0 (2018-09-14) - -### Breaking changes - -This is now a separate package, `acorn-walk`, rather than part of the main `acorn` package. - -The `ScopeBody` and `ScopeExpression` meta-node-types are no longer supported. - -## 5.7.1 (2018-06-15) - -### Bug fixes - -Make sure the walker and bin files are rebuilt on release (the previous release didn't get the up-to-date versions). - -## 5.7.0 (2018-06-15) - -### Bug fixes - -Fix crash in walker when walking a binding-less catch node. - -## 5.6.2 (2018-06-05) - -### Bug fixes - -In the walker, go back to allowing the `baseVisitor` argument to be null to default to the default base everywhere. - -## 5.6.1 (2018-06-01) - -### Bug fixes - -Fix regression when passing `null` as fourth argument to `walk.recursive`. - -## 5.6.0 (2018-05-31) - -### Bug fixes - -Fix a bug in the walker that caused a crash when walking an object pattern spread. - -## 5.5.1 (2018-03-06) - -### Bug fixes - -Fix regression in walker causing property values in object patterns to be walked as expressions. - -## 5.5.0 (2018-02-27) - -### Bug fixes - -Support object spread in the AST walker. - -## 5.4.1 (2018-02-02) - -### Bug fixes - -5.4.0 somehow accidentally included an old version of walk.js. - -## 5.2.0 (2017-10-30) - -### Bug fixes - -The `full` and `fullAncestor` walkers no longer visit nodes multiple times. - -## 5.1.0 (2017-07-05) - -### New features - -New walker functions `full` and `fullAncestor`. - -## 3.2.0 (2016-06-07) - -### New features - -Make it possible to use `visit.ancestor` with a walk state. - -## 3.1.0 (2016-04-18) - -### New features - -The walker now allows defining handlers for `CatchClause` nodes. - -## 2.5.2 (2015-10-27) - -### Fixes - -Fix bug where the walker walked an exported `let` statement as an expression. diff --git a/build/node_modules/acorn-walk/LICENSE b/build/node_modules/acorn-walk/LICENSE deleted file mode 100644 index d6be6db2..00000000 --- a/build/node_modules/acorn-walk/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (C) 2012-2020 by various contributors (see AUTHORS) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn-walk/README.md b/build/node_modules/acorn-walk/README.md deleted file mode 100644 index 3c18a2c7..00000000 --- a/build/node_modules/acorn-walk/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# Acorn AST walker - -An abstract syntax tree walker for the -[ESTree](https://github.com/estree/estree) format. - -## Community - -Acorn is open source software released under an -[MIT license](https://github.com/acornjs/acorn/blob/master/acorn-walk/LICENSE). - -You are welcome to -[report bugs](https://github.com/acornjs/acorn/issues) or create pull -requests on [github](https://github.com/acornjs/acorn). - -## Installation - -The easiest way to install acorn is from [`npm`](https://www.npmjs.com/): - -```sh -npm install acorn-walk -``` - -Alternately, you can download the source and build acorn yourself: - -```sh -git clone https://github.com/acornjs/acorn.git -cd acorn -npm install -``` - -## Interface - -An algorithm for recursing through a syntax tree is stored as an -object, with a property for each tree node type holding a function -that will recurse through such a node. There are several ways to run -such a walker. - -**simple**`(node, visitors, base, state)` does a 'simple' walk over a -tree. `node` should be the AST node to walk, and `visitors` an object -with properties whose names correspond to node types in the [ESTree -spec](https://github.com/estree/estree). The properties should contain -functions that will be called with the node object and, if applicable -the state at that point. The last two arguments are optional. `base` -is a walker algorithm, and `state` is a start state. The default -walker will simply visit all statements and expressions and not -produce a meaningful state. (An example of a use of state is to track -scope at each point in the tree.) - -```js -const acorn = require("acorn") -const walk = require("acorn-walk") - -walk.simple(acorn.parse("let x = 10"), { - Literal(node) { - console.log(`Found a literal: ${node.value}`) - } -}) -``` - -**ancestor**`(node, visitors, base, state)` does a 'simple' walk over -a tree, building up an array of ancestor nodes (including the current node) -and passing the array to the callbacks as a third parameter. - -```js -const acorn = require("acorn") -const walk = require("acorn-walk") - -walk.ancestor(acorn.parse("foo('hi')"), { - Literal(_node, _state, ancestors) { - console.log("This literal's ancestors are:", ancestors.map(n => n.type)) - } -}) -``` - -**recursive**`(node, state, functions, base)` does a 'recursive' -walk, where the walker functions are responsible for continuing the -walk on the child nodes of their target node. `state` is the start -state, and `functions` should contain an object that maps node types -to walker functions. Such functions are called with `(node, state, c)` -arguments, and can cause the walk to continue on a sub-node by calling -the `c` argument on it with `(node, state)` arguments. The optional -`base` argument provides the fallback walker functions for node types -that aren't handled in the `functions` object. If not given, the -default walkers will be used. - -**make**`(functions, base)` builds a new walker object by using the -walker functions in `functions` and filling in the missing ones by -taking defaults from `base`. - -**full**`(node, callback, base, state)` does a 'full' walk over a -tree, calling the callback with the arguments (node, state, type) for -each node - -**fullAncestor**`(node, callback, base, state)` does a 'full' walk -over a tree, building up an array of ancestor nodes (including the -current node) and passing the array to the callbacks as a third -parameter. - -```js -const acorn = require("acorn") -const walk = require("acorn-walk") - -walk.full(acorn.parse("1 + 1"), node => { - console.log(`There's a ${node.type} node at ${node.ch}`) -}) -``` - -**findNodeAt**`(node, start, end, test, base, state)` tries to locate -a node in a tree at the given start and/or end offsets, which -satisfies the predicate `test`. `start` and `end` can be either `null` -(as wildcard) or a number. `test` may be a string (indicating a node -type) or a function that takes `(nodeType, node)` arguments and -returns a boolean indicating whether this node is interesting. `base` -and `state` are optional, and can be used to specify a custom walker. -Nodes are tested from inner to outer, so if two nodes match the -boundaries, the inner one will be preferred. - -**findNodeAround**`(node, pos, test, base, state)` is a lot like -`findNodeAt`, but will match any node that exists 'around' (spanning) -the given position. - -**findNodeAfter**`(node, pos, test, base, state)` is similar to -`findNodeAround`, but will match all nodes *after* the given position -(testing outer nodes before inner nodes). diff --git a/build/node_modules/acorn-walk/package.json b/build/node_modules/acorn-walk/package.json deleted file mode 100644 index b2d385d8..00000000 --- a/build/node_modules/acorn-walk/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "acorn-walk", - "description": "ECMAScript (ESTree) AST walker", - "homepage": "https://github.com/acornjs/acorn", - "main": "dist/walk.js", - "types": "dist/walk.d.ts", - "module": "dist/walk.mjs", - "exports": { - ".": [ - { - "import": "./dist/walk.mjs", - "require": "./dist/walk.js", - "default": "./dist/walk.js" - }, - "./dist/walk.js" - ], - "./package.json": "./package.json" - }, - "version": "8.3.0", - "engines": { - "node": ">=0.4.0" - }, - "maintainers": [ - { - "name": "Marijn Haverbeke", - "email": "marijnh@gmail.com", - "web": "https://marijnhaverbeke.nl" - }, - { - "name": "Ingvar Stepanyan", - "email": "me@rreverser.com", - "web": "https://rreverser.com/" - }, - { - "name": "Adrian Heine", - "web": "http://adrianheine.de" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn.git" - }, - "scripts": { - "prepare": "cd ..; npm run build:walk" - }, - "license": "MIT" -} diff --git a/build/node_modules/acorn/CHANGELOG.md b/build/node_modules/acorn/CHANGELOG.md deleted file mode 100644 index 02a4b546..00000000 --- a/build/node_modules/acorn/CHANGELOG.md +++ /dev/null @@ -1,870 +0,0 @@ -## 8.11.2 (2023-10-27) - -### Bug fixes - -Fix a bug that caused regular expressions after colon tokens to not be properly tokenized in some circumstances. - -## 8.11.1 (2023-10-26) - -### Bug fixes - -Fix a regression where `onToken` would receive 'name' tokens for 'new' keyword tokens. - -## 8.11.0 (2023-10-26) - -### Bug fixes - -Fix an issue where tokenizing (without parsing) an object literal with a property named `class` or `function` could, in some circumstance, put the tokenizer into an invalid state. - -Fix an issue where a slash after a call to a propery named the same as some keywords would be tokenized as a regular expression. - -### New features - -Upgrade to Unicode 15.1. - -Use a set of new, much more precise, TypeScript types. - -## 8.10.0 (2023-07-05) - -### New features - -Add a `checkPrivateFields` option that disables strict checking of private property use. - -## 8.9.0 (2023-06-16) - -### Bug fixes - -Forbid dynamic import after `new`, even when part of a member expression. - -### New features - -Add Unicode properties for ES2023. - -Add support for the `v` flag to regular expressions. - -## 8.8.2 (2023-01-23) - -### Bug fixes - -Fix a bug that caused `allowHashBang` to be set to false when not provided, even with `ecmaVersion >= 14`. - -Fix an exception when passing no option object to `parse` or `new Parser`. - -Fix incorrect parse error on `if (0) let\n[astral identifier char]`. - -## 8.8.1 (2022-10-24) - -### Bug fixes - -Make type for `Comment` compatible with estree types. - -## 8.8.0 (2022-07-21) - -### Bug fixes - -Allow parentheses around spread args in destructuring object assignment. - -Fix an issue where the tree contained `directive` properties in when parsing with a language version that doesn't support them. - -### New features - -Support hashbang comments by default in ECMAScript 2023 and later. - -## 8.7.1 (2021-04-26) - -### Bug fixes - -Stop handling `"use strict"` directives in ECMAScript versions before 5. - -Fix an issue where duplicate quoted export names in `export *` syntax were incorrectly checked. - -Add missing type for `tokTypes`. - -## 8.7.0 (2021-12-27) - -### New features - -Support quoted export names. - -Upgrade to Unicode 14. - -Add support for Unicode 13 properties in regular expressions. - -### Bug fixes - -Use a loop to find line breaks, because the existing regexp search would overrun the end of the searched range and waste a lot of time in minified code. - -## 8.6.0 (2021-11-18) - -### Bug fixes - -Fix a bug where an object literal with multiple `__proto__` properties would incorrectly be accepted if a later property value held an assigment. - -### New features - -Support class private fields with the `in` operator. - -## 8.5.0 (2021-09-06) - -### Bug fixes - -Improve context-dependent tokenization in a number of corner cases. - -Fix location tracking after a 0x2028 or 0x2029 character in a string literal (which before did not increase the line number). - -Fix an issue where arrow function bodies in for loop context would inappropriately consume `in` operators. - -Fix wrong end locations stored on SequenceExpression nodes. - -Implement restriction that `for`/`of` loop LHS can't start with `let`. - -### New features - -Add support for ES2022 class static blocks. - -Allow multiple input files to be passed to the CLI tool. - -## 8.4.1 (2021-06-24) - -### Bug fixes - -Fix a bug where `allowAwaitOutsideFunction` would allow `await` in class field initializers, and setting `ecmaVersion` to 13 or higher would allow top-level await in non-module sources. - -## 8.4.0 (2021-06-11) - -### New features - -A new option, `allowSuperOutsideMethod`, can be used to suppress the error when `super` is used in the wrong context. - -## 8.3.0 (2021-05-31) - -### New features - -Default `allowAwaitOutsideFunction` to true for ECMAScript 2022 an higher. - -Add support for the `d` ([indices](https://github.com/tc39/proposal-regexp-match-indices)) regexp flag. - -## 8.2.4 (2021-05-04) - -### Bug fixes - -Fix spec conformity in corner case 'for await (async of ...)'. - -## 8.2.3 (2021-05-04) - -### Bug fixes - -Fix an issue where the library couldn't parse 'for (async of ...)'. - -Fix a bug in UTF-16 decoding that would read characters incorrectly in some circumstances. - -## 8.2.2 (2021-04-29) - -### Bug fixes - -Fix a bug where a class field initialized to an async arrow function wouldn't allow await inside it. Same issue existed for generator arrow functions with yield. - -## 8.2.1 (2021-04-24) - -### Bug fixes - -Fix a regression introduced in 8.2.0 where static or async class methods with keyword names fail to parse. - -## 8.2.0 (2021-04-24) - -### New features - -Add support for ES2022 class fields and private methods. - -## 8.1.1 (2021-04-12) - -### Various - -Stop shipping source maps in the NPM package. - -## 8.1.0 (2021-03-09) - -### Bug fixes - -Fix a spurious error in nested destructuring arrays. - -### New features - -Expose `allowAwaitOutsideFunction` in CLI interface. - -Make `allowImportExportAnywhere` also apply to `import.meta`. - -## 8.0.5 (2021-01-25) - -### Bug fixes - -Adjust package.json to work with Node 12.16.0 and 13.0-13.6. - -## 8.0.4 (2020-10-05) - -### Bug fixes - -Make `await x ** y` an error, following the spec. - -Fix potentially exponential regular expression. - -## 8.0.3 (2020-10-02) - -### Bug fixes - -Fix a wasteful loop during `Parser` creation when setting `ecmaVersion` to `"latest"`. - -## 8.0.2 (2020-09-30) - -### Bug fixes - -Make the TypeScript types reflect the current allowed values for `ecmaVersion`. - -Fix another regexp/division tokenizer issue. - -## 8.0.1 (2020-08-12) - -### Bug fixes - -Provide the correct value in the `version` export. - -## 8.0.0 (2020-08-12) - -### Bug fixes - -Disallow expressions like `(a = b) = c`. - -Make non-octal escape sequences a syntax error in strict mode. - -### New features - -The package can now be loaded directly as an ECMAScript module in node 13+. - -Update to the set of Unicode properties from ES2021. - -### Breaking changes - -The `ecmaVersion` option is now required. For the moment, omitting it will still work with a warning, but that will change in a future release. - -Some changes to method signatures that may be used by plugins. - -## 7.4.0 (2020-08-03) - -### New features - -Add support for logical assignment operators. - -Add support for numeric separators. - -## 7.3.1 (2020-06-11) - -### Bug fixes - -Make the string in the `version` export match the actual library version. - -## 7.3.0 (2020-06-11) - -### Bug fixes - -Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail. - -### New features - -Add support for optional chaining (`?.`). - -## 7.2.0 (2020-05-09) - -### Bug fixes - -Fix precedence issue in parsing of async arrow functions. - -### New features - -Add support for nullish coalescing. - -Add support for `import.meta`. - -Support `export * as ...` syntax. - -Upgrade to Unicode 13. - -## 6.4.1 (2020-03-09) - -### Bug fixes - -More carefully check for valid UTF16 surrogate pairs in regexp validator. - -## 7.1.1 (2020-03-01) - -### Bug fixes - -Treat `\8` and `\9` as invalid escapes in template strings. - -Allow unicode escapes in property names that are keywords. - -Don't error on an exponential operator expression as argument to `await`. - -More carefully check for valid UTF16 surrogate pairs in regexp validator. - -## 7.1.0 (2019-09-24) - -### Bug fixes - -Disallow trailing object literal commas when ecmaVersion is less than 5. - -### New features - -Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on. - -## 7.0.0 (2019-08-13) - -### Breaking changes - -Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression). - -Makes 10 (ES2019) the default value for the `ecmaVersion` option. - -## 6.3.0 (2019-08-12) - -### New features - -`sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard. - -## 6.2.1 (2019-07-21) - -### Bug fixes - -Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such. - -Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances. - -## 6.2.0 (2019-07-04) - -### Bug fixes - -Improve valid assignment checking in `for`/`in` and `for`/`of` loops. - -Disallow binding `let` in patterns. - -### New features - -Support bigint syntax with `ecmaVersion` >= 11. - -Support dynamic `import` syntax with `ecmaVersion` >= 11. - -Upgrade to Unicode version 12. - -## 6.1.1 (2019-02-27) - -### Bug fixes - -Fix bug that caused parsing default exports of with names to fail. - -## 6.1.0 (2019-02-08) - -### Bug fixes - -Fix scope checking when redefining a `var` as a lexical binding. - -### New features - -Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins. - -## 6.0.7 (2019-02-04) - -### Bug fixes - -Check that exported bindings are defined. - -Don't treat `\u180e` as a whitespace character. - -Check for duplicate parameter names in methods. - -Don't allow shorthand properties when they are generators or async methods. - -Forbid binding `await` in async arrow function's parameter list. - -## 6.0.6 (2019-01-30) - -### Bug fixes - -The content of class declarations and expressions is now always parsed in strict mode. - -Don't allow `let` or `const` to bind the variable name `let`. - -Treat class declarations as lexical. - -Don't allow a generator function declaration as the sole body of an `if` or `else`. - -Ignore `"use strict"` when after an empty statement. - -Allow string line continuations with special line terminator characters. - -Treat `for` bodies as part of the `for` scope when checking for conflicting bindings. - -Fix bug with parsing `yield` in a `for` loop initializer. - -Implement special cases around scope checking for functions. - -## 6.0.5 (2019-01-02) - -### Bug fixes - -Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type. - -Don't treat `let` as a keyword when the next token is `{` on the next line. - -Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on. - -## 6.0.4 (2018-11-05) - -### Bug fixes - -Further improvements to tokenizing regular expressions in corner cases. - -## 6.0.3 (2018-11-04) - -### Bug fixes - -Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression. - -Remove stray symlink in the package tarball. - -## 6.0.2 (2018-09-26) - -### Bug fixes - -Fix bug where default expressions could fail to parse inside an object destructuring assignment expression. - -## 6.0.1 (2018-09-14) - -### Bug fixes - -Fix wrong value in `version` export. - -## 6.0.0 (2018-09-14) - -### Bug fixes - -Better handle variable-redefinition checks for catch bindings and functions directly under if statements. - -Forbid `new.target` in top-level arrow functions. - -Fix issue with parsing a regexp after `yield` in some contexts. - -### New features - -The package now comes with TypeScript definitions. - -### Breaking changes - -The default value of the `ecmaVersion` option is now 9 (2018). - -Plugins work differently, and will have to be rewritten to work with this version. - -The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`). - -## 5.7.3 (2018-09-10) - -### Bug fixes - -Fix failure to tokenize regexps after expressions like `x.of`. - -Better error message for unterminated template literals. - -## 5.7.2 (2018-08-24) - -### Bug fixes - -Properly handle `allowAwaitOutsideFunction` in for statements. - -Treat function declarations at the top level of modules like let bindings. - -Don't allow async function declarations as the only statement under a label. - -## 5.7.0 (2018-06-15) - -### New features - -Upgraded to Unicode 11. - -## 5.6.0 (2018-05-31) - -### New features - -Allow U+2028 and U+2029 in string when ECMAVersion >= 10. - -Allow binding-less catch statements when ECMAVersion >= 10. - -Add `allowAwaitOutsideFunction` option for parsing top-level `await`. - -## 5.5.3 (2018-03-08) - -### Bug fixes - -A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps. - -## 5.5.2 (2018-03-08) - -### Bug fixes - -A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0. - -## 5.5.1 (2018-03-06) - -### Bug fixes - -Fix misleading error message for octal escapes in template strings. - -## 5.5.0 (2018-02-27) - -### New features - -The identifier character categorization is now based on Unicode version 10. - -Acorn will now validate the content of regular expressions, including new ES9 features. - -## 5.4.0 (2018-02-01) - -### Bug fixes - -Disallow duplicate or escaped flags on regular expressions. - -Disallow octal escapes in strings in strict mode. - -### New features - -Add support for async iteration. - -Add support for object spread and rest. - -## 5.3.0 (2017-12-28) - -### Bug fixes - -Fix parsing of floating point literals with leading zeroes in loose mode. - -Allow duplicate property names in object patterns. - -Don't allow static class methods named `prototype`. - -Disallow async functions directly under `if` or `else`. - -Parse right-hand-side of `for`/`of` as an assignment expression. - -Stricter parsing of `for`/`in`. - -Don't allow unicode escapes in contextual keywords. - -### New features - -Parsing class members was factored into smaller methods to allow plugins to hook into it. - -## 5.2.1 (2017-10-30) - -### Bug fixes - -Fix a token context corruption bug. - -## 5.2.0 (2017-10-30) - -### Bug fixes - -Fix token context tracking for `class` and `function` in property-name position. - -Make sure `%*` isn't parsed as a valid operator. - -Allow shorthand properties `get` and `set` to be followed by default values. - -Disallow `super` when not in callee or object position. - -### New features - -Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements. - -## 5.1.2 (2017-09-04) - -### Bug fixes - -Disable parsing of legacy HTML-style comments in modules. - -Fix parsing of async methods whose names are keywords. - -## 5.1.1 (2017-07-06) - -### Bug fixes - -Fix problem with disambiguating regexp and division after a class. - -## 5.1.0 (2017-07-05) - -### Bug fixes - -Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`. - -Parse zero-prefixed numbers with non-octal digits as decimal. - -Allow object/array patterns in rest parameters. - -Don't error when `yield` is used as a property name. - -Allow `async` as a shorthand object property. - -### New features - -Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9. - -## 5.0.3 (2017-04-01) - -### Bug fixes - -Fix spurious duplicate variable definition errors for named functions. - -## 5.0.2 (2017-03-30) - -### Bug fixes - -A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error. - -## 5.0.0 (2017-03-28) - -### Bug fixes - -Raise an error for duplicated lexical bindings. - -Fix spurious error when an assignement expression occurred after a spread expression. - -Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions. - -Allow labels in front or `var` declarations, even in strict mode. - -### Breaking changes - -Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`. - -## 4.0.11 (2017-02-07) - -### Bug fixes - -Allow all forms of member expressions to be parenthesized as lvalue. - -## 4.0.10 (2017-02-07) - -### Bug fixes - -Don't expect semicolons after default-exported functions or classes, even when they are expressions. - -Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode. - -## 4.0.9 (2017-02-06) - -### Bug fixes - -Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again. - -## 4.0.8 (2017-02-03) - -### Bug fixes - -Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet. - -## 4.0.7 (2017-02-02) - -### Bug fixes - -Accept invalidly rejected code like `(x).y = 2` again. - -Don't raise an error when a function _inside_ strict code has a non-simple parameter list. - -## 4.0.6 (2017-02-02) - -### Bug fixes - -Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check. - -## 4.0.5 (2017-02-02) - -### Bug fixes - -Disallow parenthesized pattern expressions. - -Allow keywords as export names. - -Don't allow the `async` keyword to be parenthesized. - -Properly raise an error when a keyword contains a character escape. - -Allow `"use strict"` to appear after other string literal expressions. - -Disallow labeled declarations. - -## 4.0.4 (2016-12-19) - -### Bug fixes - -Fix crash when `export` was followed by a keyword that can't be -exported. - -## 4.0.3 (2016-08-16) - -### Bug fixes - -Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode. - -Properly parse properties named `async` in ES2017 mode. - -Fix bug where reserved words were broken in ES2017 mode. - -## 4.0.2 (2016-08-11) - -### Bug fixes - -Don't ignore period or 'e' characters after octal numbers. - -Fix broken parsing for call expressions in default parameter values of arrow functions. - -## 4.0.1 (2016-08-08) - -### Bug fixes - -Fix false positives in duplicated export name errors. - -## 4.0.0 (2016-08-07) - -### Breaking changes - -The default `ecmaVersion` option value is now 7. - -A number of internal method signatures changed, so plugins might need to be updated. - -### Bug fixes - -The parser now raises errors on duplicated export names. - -`arguments` and `eval` can now be used in shorthand properties. - -Duplicate parameter names in non-simple argument lists now always produce an error. - -### New features - -The `ecmaVersion` option now also accepts year-style version numbers -(2015, etc). - -Support for `async`/`await` syntax when `ecmaVersion` is >= 8. - -Support for trailing commas in call expressions when `ecmaVersion` is >= 8. - -## 3.3.0 (2016-07-25) - -### Bug fixes - -Fix bug in tokenizing of regexp operator after a function declaration. - -Fix parser crash when parsing an array pattern with a hole. - -### New features - -Implement check against complex argument lists in functions that enable strict mode in ES7. - -## 3.2.0 (2016-06-07) - -### Bug fixes - -Improve handling of lack of unicode regexp support in host -environment. - -Properly reject shorthand properties whose name is a keyword. - -### New features - -Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object. - -## 3.1.0 (2016-04-18) - -### Bug fixes - -Properly tokenize the division operator directly after a function expression. - -Allow trailing comma in destructuring arrays. - -## 3.0.4 (2016-02-25) - -### Fixes - -Allow update expressions as left-hand-side of the ES7 exponential operator. - -## 3.0.2 (2016-02-10) - -### Fixes - -Fix bug that accidentally made `undefined` a reserved word when parsing ES7. - -## 3.0.0 (2016-02-10) - -### Breaking changes - -The default value of the `ecmaVersion` option is now 6 (used to be 5). - -Support for comprehension syntax (which was dropped from the draft spec) has been removed. - -### Fixes - -`let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code. - -A parenthesized class or function expression after `export default` is now parsed correctly. - -### New features - -When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`). - -The identifier character ranges are now based on Unicode 8.0.0. - -Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled. - -## 2.7.0 (2016-01-04) - -### Fixes - -Stop allowing rest parameters in setters. - -Disallow `y` rexexp flag in ES5. - -Disallow `\00` and `\000` escapes in strict mode. - -Raise an error when an import name is a reserved word. - -## 2.6.2 (2015-11-10) - -### Fixes - -Don't crash when no options object is passed. - -## 2.6.0 (2015-11-09) - -### Fixes - -Add `await` as a reserved word in module sources. - -Disallow `yield` in a parameter default value for a generator. - -Forbid using a comma after a rest pattern in an array destructuring. - -### New features - -Support parsing stdin in command-line tool. - -## 2.5.0 (2015-10-27) - -### Fixes - -Fix tokenizer support in the command-line tool. - -Stop allowing `new.target` outside of functions. - -Remove legacy `guard` and `guardedHandler` properties from try nodes. - -Stop allowing multiple `__proto__` properties on an object literal in strict mode. - -Don't allow rest parameters to be non-identifier patterns. - -Check for duplicate paramter names in arrow functions. diff --git a/build/node_modules/acorn/LICENSE b/build/node_modules/acorn/LICENSE deleted file mode 100644 index 9d71cc63..00000000 --- a/build/node_modules/acorn/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (C) 2012-2022 by various contributors (see AUTHORS) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/acorn/README.md b/build/node_modules/acorn/README.md deleted file mode 100644 index cfc51b38..00000000 --- a/build/node_modules/acorn/README.md +++ /dev/null @@ -1,283 +0,0 @@ -# Acorn - -A tiny, fast JavaScript parser written in JavaScript. - -## Community - -Acorn is open source software released under an -[MIT license](https://github.com/acornjs/acorn/blob/master/acorn/LICENSE). - -You are welcome to -[report bugs](https://github.com/acornjs/acorn/issues) or create pull -requests on [github](https://github.com/acornjs/acorn). - -## Installation - -The easiest way to install acorn is from [`npm`](https://www.npmjs.com/): - -```sh -npm install acorn -``` - -Alternately, you can download the source and build acorn yourself: - -```sh -git clone https://github.com/acornjs/acorn.git -cd acorn -npm install -``` - -## Interface - -**parse**`(input, options)` is the main interface to the library. The -`input` parameter is a string, `options` must be an object setting -some of the options listed below. The return value will be an abstract -syntax tree object as specified by the [ESTree -spec](https://github.com/estree/estree). - -```javascript -let acorn = require("acorn"); -console.log(acorn.parse("1 + 1", {ecmaVersion: 2020})); -``` - -When encountering a syntax error, the parser will raise a -`SyntaxError` object with a meaningful message. The error object will -have a `pos` property that indicates the string offset at which the -error occurred, and a `loc` object that contains a `{line, column}` -object referring to that same position. - -Options are provided by in a second argument, which should be an -object containing any of these fields (only `ecmaVersion` is -required): - -- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be - either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 (2019), - 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"` (the - latest the library supports). This influences support for strict - mode, the set of reserved words, and support for new syntax - features. - - **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being - implemented by Acorn. Other proposed new features must be - implemented through plugins. - -- **sourceType**: Indicate the mode the code should be parsed in. Can be - either `"script"` or `"module"`. This influences global strict mode - and parsing of `import` and `export` declarations. - - **NOTE**: If set to `"module"`, then static `import` / `export` syntax - will be valid, even if `ecmaVersion` is less than 6. - -- **onInsertedSemicolon**: If given a callback, that callback will be - called whenever a missing semicolon is inserted by the parser. The - callback will be given the character offset of the point where the - semicolon is inserted as argument, and if `locations` is on, also a - `{line, column}` object representing this position. - -- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing - commas. - -- **allowReserved**: If `false`, using a reserved word will generate - an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher - versions. When given the value `"never"`, reserved words and - keywords can also not be used as property names (as in Internet - Explorer's old parser). - -- **allowReturnOutsideFunction**: By default, a return statement at - the top level raises an error. Set this to `true` to accept such - code. - -- **allowImportExportEverywhere**: By default, `import` and `export` - declarations can only appear at a program's top level. Setting this - option to `true` allows them anywhere where a statement is allowed, - and also allows `import.meta` expressions to appear in scripts - (when `sourceType` is not `"module"`). - -- **allowAwaitOutsideFunction**: If `false`, `await` expressions can - only appear inside `async` functions. Defaults to `true` in modules - for `ecmaVersion` 2022 and later, `false` for lower versions. - Setting this option to `true` allows to have top-level `await` - expressions. They are still not allowed in non-`async` functions, - though. - -- **allowSuperOutsideMethod**: By default, `super` outside a method - raises an error. Set this to `true` to accept such code. - -- **allowHashBang**: When this is enabled, if the code starts with the - characters `#!` (as in a shellscript), the first line will be - treated as a comment. Defaults to true when `ecmaVersion` >= 2023. - -- **checkPrivateFields**: By default, the parser will verify that - private properties are only used in places where they are valid and - have been declared. Set this to false to turn such checks off. - -- **locations**: When `true`, each node has a `loc` object attached - with `start` and `end` subobjects, each of which contains the - one-based line and zero-based column numbers in `{line, column}` - form. Default is `false`. - -- **onToken**: If a function is passed for this option, each found - token will be passed in same format as tokens returned from - `tokenizer().getToken()`. - - If array is passed, each found token is pushed to it. - - Note that you are not allowed to call the parser from the - callback—that will corrupt its internal state. - -- **onComment**: If a function is passed for this option, whenever a - comment is encountered the function will be called with the - following parameters: - - - `block`: `true` if the comment is a block comment, false if it - is a line comment. - - `text`: The content of the comment. - - `start`: Character offset of the start of the comment. - - `end`: Character offset of the end of the comment. - - When the `locations` options is on, the `{line, column}` locations - of the comment’s start and end are passed as two additional - parameters. - - If array is passed for this option, each found comment is pushed - to it as object in Esprima format: - - ```javascript - { - "type": "Line" | "Block", - "value": "comment text", - "start": Number, - "end": Number, - // If `locations` option is on: - "loc": { - "start": {line: Number, column: Number} - "end": {line: Number, column: Number} - }, - // If `ranges` option is on: - "range": [Number, Number] - } - ``` - - Note that you are not allowed to call the parser from the - callback—that will corrupt its internal state. - -- **ranges**: Nodes have their start and end characters offsets - recorded in `start` and `end` properties (directly on the node, - rather than the `loc` object, which holds line/column data. To also - add a - [semi-standardized](https://bugzilla.mozilla.org/show_bug.cgi?id=745678) - `range` property holding a `[start, end]` array with the same - numbers, set the `ranges` option to `true`. - -- **program**: It is possible to parse multiple files into a single - AST by passing the tree produced by parsing the first file as the - `program` option in subsequent parses. This will add the toplevel - forms of the parsed file to the "Program" (top) node of an existing - parse tree. - -- **sourceFile**: When the `locations` option is `true`, you can pass - this option to add a `source` attribute in every node’s `loc` - object. Note that the contents of this option are not examined or - processed in any way; you are free to use whatever format you - choose. - -- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property - will be added (regardless of the `location` option) directly to the - nodes, rather than the `loc` object. - -- **preserveParens**: If this option is `true`, parenthesized expressions - are represented by (non-standard) `ParenthesizedExpression` nodes - that have a single `expression` property containing the expression - inside parentheses. - -**parseExpressionAt**`(input, offset, options)` will parse a single -expression in a string, and return its AST. It will not complain if -there is more of the string left after the expression. - -**tokenizer**`(input, options)` returns an object with a `getToken` -method that can be called repeatedly to get the next token, a `{start, -end, type, value}` object (with added `loc` property when the -`locations` option is enabled and `range` property when the `ranges` -option is enabled). When the token's type is `tokTypes.eof`, you -should stop calling the method, since it will keep returning that same -token forever. - -Note that tokenizing JavaScript without parsing it is, in modern -versions of the language, not really possible due to the way syntax is -overloaded in ways that can only be disambiguated by the parse -context. This package applies a bunch of heuristics to try and do a -reasonable job, but you are advised to use `parse` with the `onToken` -option instead of this. - -In ES6 environment, returned result can be used as any other -protocol-compliant iterable: - -```javascript -for (let token of acorn.tokenizer(str)) { - // iterate over the tokens -} - -// transform code to array of tokens: -var tokens = [...acorn.tokenizer(str)]; -``` - -**tokTypes** holds an object mapping names to the token type objects -that end up in the `type` properties of tokens. - -**getLineInfo**`(input, offset)` can be used to get a `{line, -column}` object for a given program string and offset. - -### The `Parser` class - -Instances of the **`Parser`** class contain all the state and logic -that drives a parse. It has static methods `parse`, -`parseExpressionAt`, and `tokenizer` that match the top-level -functions by the same name. - -When extending the parser with plugins, you need to call these methods -on the extended version of the class. To extend a parser with plugins, -you can use its static `extend` method. - -```javascript -var acorn = require("acorn"); -var jsx = require("acorn-jsx"); -var JSXParser = acorn.Parser.extend(jsx()); -JSXParser.parse("foo()", {ecmaVersion: 2020}); -``` - -The `extend` method takes any number of plugin values, and returns a -new `Parser` class that includes the extra parser logic provided by -the plugins. - -## Command line interface - -The `bin/acorn` utility can be used to parse a file from the command -line. It accepts as arguments its input file and the following -options: - -- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version - to parse. Default is version 9. - -- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise. - -- `--locations`: Attaches a "loc" object to each node with "start" and - "end" subobjects, each of which contains the one-based line and - zero-based column numbers in `{line, column}` form. - -- `--allow-hash-bang`: If the code starts with the characters #! (as - in a shellscript), the first line will be treated as a comment. - -- `--allow-await-outside-function`: Allows top-level `await` expressions. - See the `allowAwaitOutsideFunction` option for more information. - -- `--compact`: No whitespace is used in the AST output. - -- `--silent`: Do not output the AST, just return the exit status. - -- `--help`: Print the usage information and quit. - -The utility spits out the syntax tree as JSON data. - -## Existing plugins - - - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx) diff --git a/build/node_modules/acorn/package.json b/build/node_modules/acorn/package.json deleted file mode 100644 index 430603dc..00000000 --- a/build/node_modules/acorn/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "acorn", - "description": "ECMAScript parser", - "homepage": "https://github.com/acornjs/acorn", - "main": "dist/acorn.js", - "types": "dist/acorn.d.ts", - "module": "dist/acorn.mjs", - "exports": { - ".": [ - { - "import": "./dist/acorn.mjs", - "require": "./dist/acorn.js", - "default": "./dist/acorn.js" - }, - "./dist/acorn.js" - ], - "./package.json": "./package.json" - }, - "version": "8.11.2", - "engines": { - "node": ">=0.4.0" - }, - "maintainers": [ - { - "name": "Marijn Haverbeke", - "email": "marijnh@gmail.com", - "web": "https://marijnhaverbeke.nl" - }, - { - "name": "Ingvar Stepanyan", - "email": "me@rreverser.com", - "web": "https://rreverser.com/" - }, - { - "name": "Adrian Heine", - "web": "http://adrianheine.de" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/acornjs/acorn.git" - }, - "license": "MIT", - "scripts": { - "prepare": "cd ..; npm run build:main" - }, - "bin": { - "acorn": "./bin/acorn" - } -} diff --git a/build/node_modules/adjust-sourcemap-loader/.jshintrc b/build/node_modules/adjust-sourcemap-loader/.jshintrc deleted file mode 100644 index 78468e0f..00000000 --- a/build/node_modules/adjust-sourcemap-loader/.jshintrc +++ /dev/null @@ -1,28 +0,0 @@ -{ - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "forin": false, - "freeze": false, - "immed": true, - "indent": 2, - "latedef": "nofunc", - "newcap": true, - "noarg": true, - "noempty": true, - "nonbsp": true, - "nonew": true, - "plusplus": false, - "quotmark": "single", - "undef": true, - "unused": true, - "strict": true, - "maxparams": 20, - "maxdepth": 5, - "maxlen": 120, - "scripturl": true, - "node": true, - "esnext": true, - "jasmine": true -} \ No newline at end of file diff --git a/build/node_modules/adjust-sourcemap-loader/.nvmrc b/build/node_modules/adjust-sourcemap-loader/.nvmrc deleted file mode 100644 index f7b1c8ff..00000000 --- a/build/node_modules/adjust-sourcemap-loader/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -8.9 \ No newline at end of file diff --git a/build/node_modules/adjust-sourcemap-loader/LICENSE b/build/node_modules/adjust-sourcemap-loader/LICENSE deleted file mode 100644 index 75bc33ea..00000000 --- a/build/node_modules/adjust-sourcemap-loader/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019 Ben Holloway - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/adjust-sourcemap-loader/index.js b/build/node_modules/adjust-sourcemap-loader/index.js deleted file mode 100644 index 2ba372aa..00000000 --- a/build/node_modules/adjust-sourcemap-loader/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * MIT License http://opensource.org/licenses/MIT - * Author: Ben Holloway @bholloway - */ -'use strict'; - -module.exports = Object.assign(require('./lib/loader'), { - moduleFilenameTemplate: require('./lib/module-filename-template'), - codec : require('./codec') -}); \ No newline at end of file diff --git a/build/node_modules/adjust-sourcemap-loader/package.json b/build/node_modules/adjust-sourcemap-loader/package.json deleted file mode 100644 index 6ec99a8d..00000000 --- a/build/node_modules/adjust-sourcemap-loader/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "adjust-sourcemap-loader", - "version": "4.0.0", - "description": "Webpack loader that adjusts source maps", - "main": "index.js", - "engines": { - "node": ">=8.9" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/bholloway/adjust-sourcemap-loader.git" - }, - "keywords": [ - "webpack", - "loader", - "source-map", - "sourcemap", - "sources", - "resolve", - "adjust" - ], - "author": "bholloway", - "license": "MIT", - "bugs": { - "url": "https://github.com/bholloway/adjust-sourcemap-loader/issues" - }, - "homepage": "https://github.com/bholloway/adjust-sourcemap-loader", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "devDependencies": { - "jshint": "^2.12.0" - }, - "scripts": { - "lint": "jshint index.js lib codec" - } -} diff --git a/build/node_modules/adjust-sourcemap-loader/readme.md b/build/node_modules/adjust-sourcemap-loader/readme.md deleted file mode 100644 index a4182634..00000000 --- a/build/node_modules/adjust-sourcemap-loader/readme.md +++ /dev/null @@ -1,143 +0,0 @@ -# Adjust Source-map Loader - -[![NPM](https://nodei.co/npm/adjust-sourcemap-loader.png)](http://github.com/bholloway/adjust-sourcemap-loader) - -Webpack loader that adjusts source maps. - -Use as a **loader** to debug source-maps or to adjust source-maps between other loaders. - -Use as a **module filename template** to ensure the final source-map are to your liking. - -## Usage : Loader - -``` javascript -require('adjust-sourcemap?format=absolute!babel?sourceMap'); -``` - -### Source maps required - -Note that **source maps** must be enabled on any preceding loader. In the above example we use `babel?sourceMap`. - -### Apply via webpack config - -It is preferable to adjust your `webpack.config` so to avoid having to prefix every `require()` statement: - -``` javascript -module.exports = { - module: { - loaders: [ - { - test : /\.js/, - loaders: ['adjust-sourcemap?format=absolute', 'babel?sourceMap'] - } - ] - } -}; -``` - -## Usage : Module filename template - -Specifying a certain format as the final step in a loader chain will **not** influence the final source format that Webpack will output. Instead the format is determined by the **module filename template**. - -There are limitations to the filename templating that Webpack provides. This package may also operate as a custom template function that will convert output source-map sources to the desired `format`. - -In the following example we ensure project-relative source-map sources are output. - -```javascript -var templateFn = require('adjust-sourcemap-loader') - .moduleFilenameTemplate({ - format: 'projectRelative' - }); - -module.exports = { - output: { - ... - devtoolModuleFilenameTemplate : templateFn, - devtoolFallbackModuleFilenameTemplate: templateFn - } -}; -``` - -## Options - -As a loader, options may be set using [query parameters](https://webpack.github.io/docs/using-loaders.html#query-parameters) or by using [programmatic parameters](https://webpack.github.io/docs/how-to-write-a-loader.html#programmable-objects-as-query-option). Programmatic means the following in your `webpack.config`. - -```javascript -module.exports = { - adjustSourcemapLoader: { - ... - } -} -``` - -Where `...` is a hash of any of the following options. - -* **`debug`** : `boolean|RegExp` May be used alone (boolean) or with a `RegExp` to match the resource(s) you are interested in debugging. - -* **`fail`** : `boolean` Implies an **Error** if a source-map source cannot be decoded. - -* **`format`** : `string` Optional output format for source-map `sources`. Must be the name of one of the available `codecs`. Omitting the format will result in **no change** and the outgoing source-map will match the incomming one. - -* **`root`** : `boolean` A boolean flag that indices that a `sourceRoot` path sould be included in the output map. This is contingent on a `format` being specified. - -* **`codecs`** : `Array.<{name:string, decode:function, encode:function, root:function}>` Optional Array of codecs. There are a number of built-in codecs available. If you specify you own codecs you will loose those that are built-in. However you can include them from the `codec/` directory. - -Note that **query** parameters take precedence over **programmatic** parameters. - -### Changing the format - -Built-in codecs that may be specified as a `format` include: - -* `absolute` -* `outputRelative` -* `projectRelative` -* `webpackProtocol` -* `sourceRelative` (works for loader only, **not** Module filename template) - -### Specifying codecs - -There are additional built-in codecs that do not support encoding. These are still necessary to decode source-map sources. If you specify your own `options.codecs` then you should **also include the built-in codecs**. Otherwise you will find that some sources cannot be decoded. - -The existing codecs may be found in `/codec`, or on the loader itself: - -```javascript -var inBuiltCodecs = require('adjust-sourcemap-loader').codecs, - myCodecs = [ - { - name : 'foo', - decode: function(uri) {...}, - encode: function(absolute) {...}, - root : function() {...} - }, - ... - ]; - -module.exports = { - adjustSourcemapLoader: { - codecs: inBuiltCodecs.concat(myCodecs) - } -} -``` - -The codec **order is important**. Those that come first have precedence. Any codec that detects a distinct URI should be foremost so that illegal paths are not encountered by successive codecs. - -### Abstract codecs - -A codec that detects generated code and cannot `decode()` a URI to an absolute file path. - -Instead of implementing `encode()` or `root()` it should instead specify `abstract:true`. Its `decode()` function then may return `boolean` where it detects such generated sources. - -For example, a built-in abstract codec will match the **Webpack bootstrap** code and ensure that its illegal source uri is not encountered by later coders. - -## How it works - -The loader will receive a source map as its second parameter, so long as the preceding loader was using source-maps. - -The exception is the **css-loader** where the source-map is in the content, which is **not currently supported** . - -The source-map `sources` are parsed by applying **codec.decode()** functions until one of them returns an absolute path to a file that exists. The exception is abstract codecs, where the source with remain unchanged. - -If a format is specified then the source-map `sources` are recreated by applying the **codec.encode()** function for the stated `format` and (where the `root` option is specified) the **codec.root()** function will set the source-map `sourceRoot`. - -If a codec does not specify **codec.encode()** or **codec.root()** then it may **not** be used as the `format`. - diff --git a/build/node_modules/adonis-preset-ts/README.md b/build/node_modules/adonis-preset-ts/README.md deleted file mode 100644 index e62f0710..00000000 --- a/build/node_modules/adonis-preset-ts/README.md +++ /dev/null @@ -1,39 +0,0 @@ -
- -
- -
-
- -# Adonis Preset Typescript - -This module contains the base config files **(recommended by the core team)** for `typescript` to be extended by your AdonisJS typescript projects. - -## Usage -Install the package from npm registry as follows - -```sh -npm i -D adonis-preset-ts - -# yarn -yarn add -D adonis-preset-ts -``` - -and then setup your config file to extend the base config - -**tsconfig.json** - -```json -{ - "extends": "./node_modules/adonis-preset-ts/tsconfig", - "compilerOptions": { - "types": [ - "@adonisjs/core" - ], - "paths": { - "App/*": [ "./app/*" ], - "Contracts/*": [ "./contracts/*" ] - } - } -} -``` \ No newline at end of file diff --git a/build/node_modules/adonis-preset-ts/package.json b/build/node_modules/adonis-preset-ts/package.json deleted file mode 100644 index 42c8ddb5..00000000 --- a/build/node_modules/adonis-preset-ts/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "adonis-preset-ts", - "version": "2.1.0", - "description": "Preset files to be extended by tsconfig and tslint.json", - "files": [ - "tsconfig.json", - "tslint.js", - "README.md" - ], - "scripts": { - "release": "np" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/AdonisCommunity/adonis-preset-ts.git" - }, - "keywords": [ - "typescript", - "tslint", - "adonisjs" - ], - "author": "virk,adonisjs", - "license": "MIT", - "bugs": { - "url": "https://github.com/AdonisCommunity/adonis-preset-ts/issues" - }, - "homepage": "https://github.com/AdonisCommunity/adonis-preset-ts#readme", - "devDependencies": { - "np": "^7.4.0" - } -} diff --git a/build/node_modules/adonis-preset-ts/tsconfig.json b/build/node_modules/adonis-preset-ts/tsconfig.json deleted file mode 100644 index 50d7ccb5..00000000 --- a/build/node_modules/adonis-preset-ts/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "module": "commonjs", - "lib": [ - "ES2020" - ], - "noUnusedLocals": true, - "skipLibCheck": true, - "incremental": true, - "noUnusedParameters": true, - "removeComments": true, - "declaration": false, - "moduleResolution": "node", - "outDir": "../../build", - "strictNullChecks": true, - "allowSyntheticDefaultImports": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "esModuleInterop": true, - "rootDir": "../../", - "baseUrl": "../../" - }, - "include": [ - "**/*" - ], - "exclude": [ - "node_modules", - "build" - ] -} \ No newline at end of file diff --git a/build/node_modules/agent-base/README.md b/build/node_modules/agent-base/README.md deleted file mode 100644 index 256f1f32..00000000 --- a/build/node_modules/agent-base/README.md +++ /dev/null @@ -1,145 +0,0 @@ -agent-base -========== -### Turn a function into an [`http.Agent`][http.Agent] instance -[![Build Status](https://github.com/TooTallNate/node-agent-base/workflows/Node%20CI/badge.svg)](https://github.com/TooTallNate/node-agent-base/actions?workflow=Node+CI) - -This module provides an `http.Agent` generator. That is, you pass it an async -callback function, and it returns a new `http.Agent` instance that will invoke the -given callback function when sending outbound HTTP requests. - -#### Some subclasses: - -Here's some more interesting uses of `agent-base`. -Send a pull request to list yours! - - * [`http-proxy-agent`][http-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTP endpoints - * [`https-proxy-agent`][https-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTPS endpoints - * [`pac-proxy-agent`][pac-proxy-agent]: A PAC file proxy `http.Agent` implementation for HTTP and HTTPS - * [`socks-proxy-agent`][socks-proxy-agent]: A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS - - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install agent-base -``` - - -Example -------- - -Here's a minimal example that creates a new `net.Socket` connection to the server -for every HTTP request (i.e. the equivalent of `agent: false` option): - -```js -var net = require('net'); -var tls = require('tls'); -var url = require('url'); -var http = require('http'); -var agent = require('agent-base'); - -var endpoint = 'http://nodejs.org/api/'; -var parsed = url.parse(endpoint); - -// This is the important part! -parsed.agent = agent(function (req, opts) { - var socket; - // `secureEndpoint` is true when using the https module - if (opts.secureEndpoint) { - socket = tls.connect(opts); - } else { - socket = net.connect(opts); - } - return socket; -}); - -// Everything else works just like normal... -http.get(parsed, function (res) { - console.log('"response" event!', res.headers); - res.pipe(process.stdout); -}); -``` - -Returning a Promise or using an `async` function is also supported: - -```js -agent(async function (req, opts) { - await sleep(1000); - // etc… -}); -``` - -Return another `http.Agent` instance to "pass through" the responsibility -for that HTTP request to that agent: - -```js -agent(function (req, opts) { - return opts.secureEndpoint ? https.globalAgent : http.globalAgent; -}); -``` - - -API ---- - -## Agent(Function callback[, Object options]) → [http.Agent][] - -Creates a base `http.Agent` that will execute the callback function `callback` -for every HTTP request that it is used as the `agent` for. The callback function -is responsible for creating a `stream.Duplex` instance of some kind that will be -used as the underlying socket in the HTTP request. - -The `options` object accepts the following properties: - - * `timeout` - Number - Timeout for the `callback()` function in milliseconds. Defaults to Infinity (optional). - -The callback function should have the following signature: - -### callback(http.ClientRequest req, Object options, Function cb) → undefined - -The ClientRequest `req` can be accessed to read request headers and -and the path, etc. The `options` object contains the options passed -to the `http.request()`/`https.request()` function call, and is formatted -to be directly passed to `net.connect()`/`tls.connect()`, or however -else you want a Socket to be created. Pass the created socket to -the callback function `cb` once created, and the HTTP request will -continue to proceed. - -If the `https` module is used to invoke the HTTP request, then the -`secureEndpoint` property on `options` _will be set to `true`_. - - -License -------- - -(The MIT License) - -Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -[http-proxy-agent]: https://github.com/TooTallNate/node-http-proxy-agent -[https-proxy-agent]: https://github.com/TooTallNate/node-https-proxy-agent -[pac-proxy-agent]: https://github.com/TooTallNate/node-pac-proxy-agent -[socks-proxy-agent]: https://github.com/TooTallNate/node-socks-proxy-agent -[http.Agent]: https://nodejs.org/api/http.html#http_class_http_agent diff --git a/build/node_modules/agent-base/package.json b/build/node_modules/agent-base/package.json deleted file mode 100644 index fadce3ad..00000000 --- a/build/node_modules/agent-base/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "agent-base", - "version": "6.0.2", - "description": "Turn a function into an `http.Agent` instance", - "main": "dist/src/index", - "typings": "dist/src/index", - "files": [ - "dist/src", - "src" - ], - "scripts": { - "prebuild": "rimraf dist", - "build": "tsc", - "postbuild": "cpy --parents src test '!**/*.ts' dist", - "test": "mocha --reporter spec dist/test/*.js", - "test-lint": "eslint src --ext .js,.ts", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-agent-base.git" - }, - "keywords": [ - "http", - "agent", - "base", - "barebones", - "https" - ], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/node-agent-base/issues" - }, - "dependencies": { - "debug": "4" - }, - "devDependencies": { - "@types/debug": "4", - "@types/mocha": "^5.2.7", - "@types/node": "^14.0.20", - "@types/semver": "^7.1.0", - "@types/ws": "^6.0.3", - "@typescript-eslint/eslint-plugin": "1.6.0", - "@typescript-eslint/parser": "1.1.0", - "async-listen": "^1.2.0", - "cpy-cli": "^2.0.0", - "eslint": "5.16.0", - "eslint-config-airbnb": "17.1.0", - "eslint-config-prettier": "4.1.0", - "eslint-import-resolver-typescript": "1.1.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-react": "7.12.4", - "mocha": "^6.2.0", - "rimraf": "^3.0.0", - "semver": "^7.1.2", - "typescript": "^3.5.3", - "ws": "^3.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } -} diff --git a/build/node_modules/agentkeepalive/History.md b/build/node_modules/agentkeepalive/History.md deleted file mode 100644 index 6877834d..00000000 --- a/build/node_modules/agentkeepalive/History.md +++ /dev/null @@ -1,268 +0,0 @@ - -4.5.0 / 2023-08-06 -================== - -**others** - * [[`1e5e312`](http://github.com/node-modules/agentkeepalive/commit/1e5e312f36491243372dbfee0dd47607e7b3d94a)] - deps: remove debug and depd (#114) (fengmk2 <>) - -4.4.0 / 2023-08-05 -================== - -**features** - * [[`c7c1e93`](http://github.com/node-modules/agentkeepalive/commit/c7c1e93beba7310d7c2cc9647dd211a686d21cac)] - feat: return socket from createConnection (#113) (Nabeel Bukhari <>) - -4.3.0 / 2023-03-06 -================== - -**others** - * [[`6f9852b`](http://github.com/node-modules/agentkeepalive/commit/6f9852bf6f674846103e403fd9c84e92fc24f820)] - deps: depd@2.0.0 (#109) (Brian DeHamer <>) - * [[`fd4bd9b`](http://github.com/node-modules/agentkeepalive/commit/fd4bd9b0e0f051de3cb49559d1b0d534a0ded18c)] - test: use npm install (#110) (fengmk2 <>) - * [[`d52822c`](http://github.com/node-modules/agentkeepalive/commit/d52822c1243c689df1c8232a3bb14139cf87fae5)] - chore: update contributors (fengmk2 <>) - -4.2.1 / 2022-02-21 -================== - -**fixes** - * [[`8b13b5c`](http://github.com/node-modules/agentkeepalive/commit/8b13b5ca797f4779a0a8d393ad8ecb622cd27987)] - fix: explicitly set `| undefined` in type definitions (#99) (Benoit Lemoine <>) - -4.2.0 / 2021-12-31 -================== - -**fixes** - * [[`f418c67`](http://github.com/node-modules/agentkeepalive/commit/f418c67a63c061c7261592d4553bc455e0b0d306)] - fix: change `freeSocketTimeout` default value to 4000 (#102) (fengmk2 <>) - -**others** - * [[`bc2a1ce`](http://github.com/node-modules/agentkeepalive/commit/bc2a1cea0884b4d18b0d244bf00006d9107963df)] - doc(readme): making `timeout`'s default clear (#100) (Aaron <>) - -4.1.4 / 2021-02-05 -================== - -**fixes** - * [[`4d04794`](http://github.com/node-modules/agentkeepalive/commit/4d047946b1547b4edff92ea40205aee4f0c8aa46)] - fix(types): correct `Https` constructor argument (#89) (Simen Bekkhus <>) - -4.1.3 / 2020-06-15 -================== - -**fixes** - * [[`4ba9f9c`](http://github.com/node-modules/agentkeepalive/commit/4ba9f9c844f2a6b8037ce56599d25c69ef054d91)] - fix: compatible with node v12.16.3 (#91) (killa <>) - -4.1.2 / 2020-04-25 -================== - -**fixes** - * [[`de66b02`](http://github.com/node-modules/agentkeepalive/commit/de66b0206d064a97129c2c31bcdabd4d64557b91)] - fix: detect http request timeout handler (#88) (fengmk2 <>) - -4.1.1 / 2020-04-25 -================== - -**fixes** - * [[`bbd20c0`](http://github.com/node-modules/agentkeepalive/commit/bbd20c03b8cf7dfb00b3aad1ada26d4ab90d2d6e)] - fix: definition error (#87) (吖猩 <>) - -**others** - * [[`3b01699`](http://github.com/node-modules/agentkeepalive/commit/3b01699b8e90022d5f56898dd709e4fe7ee7cdaa)] - test: run test on node 12 (#84) (Igor Savin <>) - -4.1.0 / 2019-10-12 -================== - -**features** - * [[`fe33b80`](http://github.com/node-modules/agentkeepalive/commit/fe33b800acc09109388bfe65107550952b6fc7b0)] - feat: Add `reusedSocket` property on client request (#82) (Weijia Wang <>) - -**others** - * [[`77ba744`](http://github.com/node-modules/agentkeepalive/commit/77ba744667bb6b9e5986a53e5222f62094db12b9)] - docs: fix grammar in readme (#81) (Herrington Darkholme <<2883231+HerringtonDarkholme@users.noreply.github.com>>) - -4.0.2 / 2019-02-19 -================== - -**fixes** - * [[`56d4a9b`](http://github.com/node-modules/agentkeepalive/commit/56d4a9b2a4499ea28943ddb590358d7831a02cb1)] - fix: HttpAgent export = internal (#74) (Andrew Leedham <>) - -4.0.1 / 2019-02-19 -================== - -**fixes** - * [[`bad1ac0`](http://github.com/node-modules/agentkeepalive/commit/bad1ac0e710fbc486717e14e68c59266d35df6a8)] - fix: HttpsAgent Type Definition (#71) (#72) (Andrew Leedham <>) - * [[`f48a4a7`](http://github.com/node-modules/agentkeepalive/commit/f48a4a701ea6fbe43781c91e1c0aaad6e328ac7f)] - fix: export interface (#70) (Vinay <>) - -**others** - * [[`9124343`](http://github.com/node-modules/agentkeepalive/commit/91243437cfdd324cb97f39dee76746d5e5f4cd72)] - chore: add agent.options.keepAlive instead agent.keepAlive (fengmk2 <>) - * [[`d177d40`](http://github.com/node-modules/agentkeepalive/commit/d177d40422fe7296990b4e270cf498e3f33c18fa)] - test: add request timeout bigger than agent timeout cases (fengmk2 <>) - -4.0.0 / 2018-10-23 -================== - -**features** - * [[`5c9f3bb`](http://github.com/node-modules/agentkeepalive/commit/5c9f3bbd60555744edcf777105b148982a1a42b6)] - feat: impl the new Agent extend http.Agent (fengmk2 <>) - -**others** - * [[`498c8f1`](http://github.com/node-modules/agentkeepalive/commit/498c8f13cf76600d3dd6e1c91cdf2d8292355dff)] - chore: move LICENSE from readme to file (fengmk2 <>) - * [[`4f39894`](http://github.com/node-modules/agentkeepalive/commit/4f398942ba2f90cf4501239e56ac4e6344931a01)] - bugfix: support agent.options.timeout on https agent (fengmk2 <>) - -3.5.2 / 2018-10-19 -================== - -**fixes** - * [[`5751fc1`](http://github.com/node-modules/agentkeepalive/commit/5751fc1180ed6544602c681ffbd08ca66a0cb12c)] - fix: sockLen being miscalculated when removing sockets (#60) (Ehden Sinai <>) - -3.5.1 / 2018-07-31 -================== - -**fixes** - * [[`495f1ab`](http://github.com/node-modules/agentkeepalive/commit/495f1ab625d43945d72f68096b97db723d4f0657)] - fix: add the lost npm files (#66) (Henry Zhuang <>) - -3.5.0 / 2018-07-31 -================== - -**features** - * [[`16f5aea`](http://github.com/node-modules/agentkeepalive/commit/16f5aeadfda57f1c602652f1472a63cc83cd05bf)] - feat: add typing define. (#65) (Henry Zhuang <>) - -**others** - * [[`28fa062`](http://github.com/node-modules/agentkeepalive/commit/28fa06246fb5103f88ebeeb8563757a9078b8157)] - docs: add "per host" to description of maxFreeSockets (tony-gutierrez <>) - * [[`7df2577`](http://github.com/node-modules/agentkeepalive/commit/7df25774f00a1031ca4daad2878a17e0539072a2)] - test: run test on node 10 (#63) (fengmk2 <>) - -3.4.1 / 2018-03-08 -================== - -**fixes** - * [[`4d3a3b1`](http://github.com/node-modules/agentkeepalive/commit/4d3a3b1f7b16595febbbd39eeed72b2663549014)] - fix: Handle ipv6 addresses in host-header correctly with TLS (#53) (Mattias Holmlund <>) - -**others** - * [[`55a7a5c`](http://github.com/node-modules/agentkeepalive/commit/55a7a5cd33e97f9a8370083dcb041c5552f10ac9)] - test: stop timer after test end (fengmk2 <>) - -3.4.0 / 2018-02-27 -================== - -**features** - * [[`bc7cadb`](http://github.com/node-modules/agentkeepalive/commit/bc7cadb30ecd2071e2b341ac53ae1a2b8155c43d)] - feat: use socket custom freeSocketKeepAliveTimeout first (#59) (fengmk2 <>) - -**others** - * [[`138eda8`](http://github.com/node-modules/agentkeepalive/commit/138eda81e10b632aaa87bea0cb66d8667124c4e8)] - doc: fix `keepAliveMsecs` params description (#55) (Hongcai Deng <>) - -3.3.0 / 2017-06-20 -================== - - * feat: add statusChanged getter (#51) - * chore: format License - -3.2.0 / 2017-06-10 -================== - - * feat: add expiring active sockets - * test: add node 8 (#49) - -3.1.0 / 2017-02-20 -================== - - * feat: timeout support humanize ms (#48) - -3.0.0 / 2016-12-20 -================== - - * fix: emit agent socket close event - * test: add remove excess calls to removeSocket - * test: use egg-ci - * test: refactor test with eslint rules - * feat: merge _http_agent.js from 7.2.1 - -2.2.0 / 2016-06-26 -================== - - * feat: Add browser shim (noop) for isomorphic use. (#39) - * chore: add security check badge - -2.1.1 / 2016-04-06 -================== - - * https: fix ssl socket leak when keepalive is used - * chore: remove circle ci image - -2.1.0 / 2016-04-02 -================== - - * fix: opened sockets number overflow maxSockets - -2.0.5 / 2016-03-16 -================== - - * fix: pick _evictSession to httpsAgent - -2.0.4 / 2016-03-13 -================== - - * test: add Circle ci - * test: add appveyor ci build - * refactor: make sure only one error listener - * chore: use codecov - * fix: handle idle socket error - * test: run on more node versions - -2.0.3 / 2015-08-03 -================== - - * fix: add default error handler to avoid Unhandled error event throw - -2.0.2 / 2015-04-25 -================== - - * fix: remove socket from freeSockets on 'timeout' (@pmalouin) - -2.0.1 / 2015-04-19 -================== - - * fix: add timeoutSocketCount to getCurrentStatus() - * feat(getCurrentStatus): add getCurrentStatus - -2.0.0 / 2015-04-01 -================== - - * fix: socket.destroyed always be undefined on 0.10.x - * Make it compatible with node v0.10.x (@lattmann) - -1.2.1 / 2015-03-23 -================== - - * patch from iojs: don't overwrite servername option - * patch commits from joyent/node - * add max sockets test case - * add nagle algorithm delayed link - -1.2.0 / 2014-09-02 -================== - - * allow set keepAliveTimeout = 0 - * support timeout on working socket. fixed #6 - -1.1.0 / 2014-08-28 -================== - - * add some socket counter for deep monitor - -1.0.0 / 2014-08-13 -================== - - * update _http_agent, only support 0.11+, only support node 0.11.0+ - -0.2.2 / 2013-11-19 -================== - - * support node 0.8 and node 0.10 - -0.2.1 / 2013-11-08 -================== - - * fix socket does not timeout bug, it will hang on life, must use 0.2.x on node 0.11 - -0.2.0 / 2013-11-06 -================== - - * use keepalive agent on node 0.11+ impl - -0.1.5 / 2013-06-24 -================== - - * support coveralls - * add node 0.10 test - * add 0.8.22 original https.js - * add original http.js module to diff - * update jscover - * mv pem to fixtures - * add https agent usage diff --git a/build/node_modules/agentkeepalive/LICENSE b/build/node_modules/agentkeepalive/LICENSE deleted file mode 100644 index 941258ca..00000000 --- a/build/node_modules/agentkeepalive/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License - -Copyright(c) node-modules and other contributors. -Copyright(c) 2012 - 2015 fengmk2 - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/agentkeepalive/README.md b/build/node_modules/agentkeepalive/README.md deleted file mode 100644 index 91bd68c7..00000000 --- a/build/node_modules/agentkeepalive/README.md +++ /dev/null @@ -1,256 +0,0 @@ -# agentkeepalive - -[![NPM version][npm-image]][npm-url] -[![Known Vulnerabilities][snyk-image]][snyk-url] -[![Node.js CI](https://github.com/node-modules/agentkeepalive/actions/workflows/nodejs.yml/badge.svg)](https://github.com/node-modules/agentkeepalive/actions/workflows/nodejs.yml) -[![npm download][download-image]][download-url] - -[npm-image]: https://img.shields.io/npm/v/agentkeepalive.svg?style=flat -[npm-url]: https://npmjs.org/package/agentkeepalive -[snyk-image]: https://snyk.io/test/npm/agentkeepalive/badge.svg?style=flat-square -[snyk-url]: https://snyk.io/test/npm/agentkeepalive -[download-image]: https://img.shields.io/npm/dm/agentkeepalive.svg?style=flat-square -[download-url]: https://npmjs.org/package/agentkeepalive - -The enhancement features `keep alive` `http.Agent`. Support `http` and `https`. - -## What's different from original `http.Agent`? - -- `keepAlive=true` by default -- Disable Nagle's algorithm: `socket.setNoDelay(true)` -- Add free socket timeout: avoid long time inactivity socket leak in the free-sockets queue. -- Add active socket timeout: avoid long time inactivity socket leak in the active-sockets queue. -- TTL for active socket. - -## Node.js version required - -Support Node.js >= `8.0.0` - -## Install - -```bash -$ npm install agentkeepalive --save -``` - -## new Agent([options]) - -* `options` {Object} Set of configurable options to set on the agent. - Can have the following fields: - * `keepAlive` {Boolean} Keep sockets around in a pool to be used by - other requests in the future. Default = `true`. - * `keepAliveMsecs` {Number} When using the keepAlive option, specifies the initial delay - for TCP Keep-Alive packets. Ignored when the keepAlive option is false or undefined. Defaults to 1000. - Default = `1000`. Only relevant if `keepAlive` is set to `true`. - * `freeSocketTimeout`: {Number} Sets the free socket to timeout - after `freeSocketTimeout` milliseconds of inactivity on the free socket. - The default [server-side timeout](https://nodejs.org/api/http.html#serverkeepalivetimeout) is 5000 milliseconds, to [avoid ECONNRESET exceptions](https://medium.com/ssense-tech/reduce-networking-errors-in-nodejs-23b4eb9f2d83), we set the default value to `4000` milliseconds. - Only relevant if `keepAlive` is set to `true`. - * `timeout`: {Number} Sets the working socket to timeout - after `timeout` milliseconds of inactivity on the working socket. - Default is `freeSocketTimeout * 2` so long as that value is greater than or equal to 8 seconds, otherwise the default is 8 seconds. - * `maxSockets` {Number} Maximum number of sockets to allow per - host. Default = `Infinity`. - * `maxFreeSockets` {Number} Maximum number of sockets (per host) to leave open - in a free state. Only relevant if `keepAlive` is set to `true`. - Default = `256`. - * `socketActiveTTL` {Number} Sets the socket active time to live, even if it's in use. - If not set, the behaviour keeps the same (the socket will be released only when free) - Default = `null`. - -## Usage - -```js -const http = require('http'); -const Agent = require('agentkeepalive'); - -const keepaliveAgent = new Agent({ - maxSockets: 100, - maxFreeSockets: 10, - timeout: 60000, // active socket keepalive for 60 seconds - freeSocketTimeout: 30000, // free socket keepalive for 30 seconds -}); - -const options = { - host: 'cnodejs.org', - port: 80, - path: '/', - method: 'GET', - agent: keepaliveAgent, -}; - -const req = http.request(options, res => { - console.log('STATUS: ' + res.statusCode); - console.log('HEADERS: ' + JSON.stringify(res.headers)); - res.setEncoding('utf8'); - res.on('data', function (chunk) { - console.log('BODY: ' + chunk); - }); -}); -req.on('error', e => { - console.log('problem with request: ' + e.message); -}); -req.end(); - -setTimeout(() => { - if (keepaliveAgent.statusChanged) { - console.log('[%s] agent status changed: %j', Date(), keepaliveAgent.getCurrentStatus()); - } -}, 2000); - -``` - -### `getter agent.statusChanged` - -counters have change or not after last checkpoint. - -### `agent.getCurrentStatus()` - -`agent.getCurrentStatus()` will return a object to show the status of this agent: - -```js -{ - createSocketCount: 10, - closeSocketCount: 5, - timeoutSocketCount: 0, - requestCount: 5, - freeSockets: { 'localhost:57479:': 3 }, - sockets: { 'localhost:57479:': 5 }, - requests: {} -} -``` - -### Support `https` - -```js -const https = require('https'); -const HttpsAgent = require('agentkeepalive').HttpsAgent; - -const keepaliveAgent = new HttpsAgent(); -// https://www.google.com/search?q=nodejs&sugexp=chrome,mod=12&sourceid=chrome&ie=UTF-8 -const options = { - host: 'www.google.com', - port: 443, - path: '/search?q=nodejs&sugexp=chrome,mod=12&sourceid=chrome&ie=UTF-8', - method: 'GET', - agent: keepaliveAgent, -}; - -const req = https.request(options, res => { - console.log('STATUS: ' + res.statusCode); - console.log('HEADERS: ' + JSON.stringify(res.headers)); - res.setEncoding('utf8'); - res.on('data', chunk => { - console.log('BODY: ' + chunk); - }); -}); - -req.on('error', e => { - console.log('problem with request: ' + e.message); -}); -req.end(); - -setTimeout(() => { - console.log('agent status: %j', keepaliveAgent.getCurrentStatus()); -}, 2000); -``` - -### Support `req.reusedSocket` - -This agent implements the `req.reusedSocket` to determine whether a request is send through a reused socket. - -When server closes connection at unfortunate time ([keep-alive race](https://code-examples.net/en/q/28a8069)), the http client will throw a `ECONNRESET` error. Under this circumstance, `req.reusedSocket` is useful when we want to retry the request automatically. - -```js -const http = require('http'); -const Agent = require('agentkeepalive'); -const agent = new Agent(); - -const req = http - .get('http://localhost:3000', { agent }, (res) => { - // ... - }) - .on('error', (err) => { - if (req.reusedSocket && err.code === 'ECONNRESET') { - // retry the request or anything else... - } - }) -``` - -This behavior is consistent with Node.js core. But through `agentkeepalive`, you can use this feature in older Node.js version. - -## [Benchmark](https://github.com/node-modules/agentkeepalive/tree/master/benchmark) - -run the benchmark: - -```bash -cd benchmark -sh start.sh -``` - -Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz - -node@v0.8.9 - -50 maxSockets, 60 concurrent, 1000 requests per concurrent, 5ms delay - -Keep alive agent (30 seconds): - -```js -Transactions: 60000 hits -Availability: 100.00 % -Elapsed time: 29.70 secs -Data transferred: 14.88 MB -Response time: 0.03 secs -Transaction rate: 2020.20 trans/sec -Throughput: 0.50 MB/sec -Concurrency: 59.84 -Successful transactions: 60000 -Failed transactions: 0 -Longest transaction: 0.15 -Shortest transaction: 0.01 -``` - -Normal agent: - -```js -Transactions: 60000 hits -Availability: 100.00 % -Elapsed time: 46.53 secs -Data transferred: 14.88 MB -Response time: 0.05 secs -Transaction rate: 1289.49 trans/sec -Throughput: 0.32 MB/sec -Concurrency: 59.81 -Successful transactions: 60000 -Failed transactions: 0 -Longest transaction: 0.45 -Shortest transaction: 0.00 -``` - -Socket created: - -```bash -[proxy.js:120000] keepalive, 50 created, 60000 requestFinished, 1200 req/socket, 0 requests, 0 sockets, 0 unusedSockets, 50 timeout -{" <10ms":662," <15ms":17825," <20ms":20552," <30ms":17646," <40ms":2315," <50ms":567," <100ms":377," <150ms":56," <200ms":0," >=200ms+":0} ----------------------------------------------------------------- -[proxy.js:120000] normal , 53866 created, 84260 requestFinished, 1.56 req/socket, 0 requests, 0 sockets -{" <10ms":75," <15ms":1112," <20ms":10947," <30ms":32130," <40ms":8228," <50ms":3002," <100ms":4274," <150ms":181," <200ms":18," >=200ms+":33} -``` - -## License - -[MIT](LICENSE) - - - -## Contributors - -|[
fengmk2](https://github.com/fengmk2)
|[
dead-horse](https://github.com/dead-horse)
|[
AndrewLeedham](https://github.com/AndrewLeedham)
|[
ngot](https://github.com/ngot)
|[
wrynearson](https://github.com/wrynearson)
|[
aaronArinder](https://github.com/aaronArinder)
| -| :---: | :---: | :---: | :---: | :---: | :---: | -|[
alexpenev-s](https://github.com/alexpenev-s)
|[
blemoine](https://github.com/blemoine)
|[
bdehamer](https://github.com/bdehamer)
|[
DylanPiercey](https://github.com/DylanPiercey)
|[
cixel](https://github.com/cixel)
|[
HerringtonDarkholme](https://github.com/HerringtonDarkholme)
| -|[
denghongcai](https://github.com/denghongcai)
|[
kibertoad](https://github.com/kibertoad)
|[
pangorgo](https://github.com/pangorgo)
|[
mattiash](https://github.com/mattiash)
|[
nabeelbukhari](https://github.com/nabeelbukhari)
|[
pmalouin](https://github.com/pmalouin)
| -[
SimenB](https://github.com/SimenB)
|[
vinaybedre](https://github.com/vinaybedre)
|[
starkwang](https://github.com/starkwang)
|[
killagu](https://github.com/killagu)
|[
tony-gutierrez](https://github.com/tony-gutierrez)
|[
whxaxes](https://github.com/whxaxes)
- -This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Sat Aug 05 2023 02:36:31 GMT+0800`. - - diff --git a/build/node_modules/agentkeepalive/browser.js b/build/node_modules/agentkeepalive/browser.js deleted file mode 100644 index 29c9398a..00000000 --- a/build/node_modules/agentkeepalive/browser.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = noop; -module.exports.HttpsAgent = noop; - -// Noop function for browser since native api's don't use agents. -function noop () {} diff --git a/build/node_modules/agentkeepalive/index.d.ts b/build/node_modules/agentkeepalive/index.d.ts deleted file mode 100644 index 2bc70a60..00000000 --- a/build/node_modules/agentkeepalive/index.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -import * as http from 'http'; -import * as https from 'https'; -import * as net from 'net'; - -interface PlainObject { - [key: string]: any; -} - -declare class HttpAgent extends http.Agent { - constructor(opts?: AgentKeepAlive.HttpOptions); - readonly statusChanged: boolean; - createConnection(options: net.NetConnectOpts, cb?: Function): net.Socket; - createSocket(req: http.IncomingMessage, options: http.RequestOptions, cb: Function): void; - getCurrentStatus(): AgentKeepAlive.AgentStatus; -} - -interface Constants { - CURRENT_ID: Symbol; - CREATE_ID: Symbol; - INIT_SOCKET: Symbol; - CREATE_HTTPS_CONNECTION: Symbol; - SOCKET_CREATED_TIME: Symbol; - SOCKET_NAME: Symbol; - SOCKET_REQUEST_COUNT: Symbol; - SOCKET_REQUEST_FINISHED_COUNT: Symbol; -} - -declare class AgentKeepAlive extends HttpAgent {} - -declare namespace AgentKeepAlive { - export interface AgentStatus { - createSocketCount: number; - createSocketErrorCount: number; - closeSocketCount: number; - errorSocketCount: number; - timeoutSocketCount: number; - requestCount: number; - freeSockets: PlainObject; - sockets: PlainObject; - requests: PlainObject; - } - - interface CommonHttpOption { - keepAlive?: boolean | undefined; - freeSocketTimeout?: number | undefined; - freeSocketKeepAliveTimeout?: number | undefined; - timeout?: number | undefined; - socketActiveTTL?: number | undefined; - } - - export interface HttpOptions extends http.AgentOptions, CommonHttpOption { } - export interface HttpsOptions extends https.AgentOptions, CommonHttpOption { } - - export class HttpsAgent extends https.Agent { - constructor(opts?: HttpsOptions); - readonly statusChanged: boolean; - createConnection(options: net.NetConnectOpts, cb?: Function): net.Socket; - createSocket(req: http.IncomingMessage, options: http.RequestOptions, cb: Function): void; - getCurrentStatus(): AgentStatus; - } - - export const constants: Constants; -} - -export = AgentKeepAlive; diff --git a/build/node_modules/agentkeepalive/index.js b/build/node_modules/agentkeepalive/index.js deleted file mode 100644 index 6ca15134..00000000 --- a/build/node_modules/agentkeepalive/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./lib/agent'); -module.exports.HttpsAgent = require('./lib/https_agent'); -module.exports.constants = require('./lib/constants'); diff --git a/build/node_modules/agentkeepalive/package.json b/build/node_modules/agentkeepalive/package.json deleted file mode 100644 index d8e9aa71..00000000 --- a/build/node_modules/agentkeepalive/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "agentkeepalive", - "version": "4.5.0", - "description": "Missing keepalive http.Agent", - "main": "index.js", - "browser": "browser.js", - "files": [ - "index.js", - "index.d.ts", - "browser.js", - "lib" - ], - "scripts": { - "contributor": "git-contributor", - "test": "npm run lint && egg-bin test --full-trace", - "test-local": "egg-bin test --full-trace", - "cov": "cross-env NODE_DEBUG=agentkeepalive egg-bin cov --full-trace", - "ci": "npm run lint && npm run cov", - "lint": "eslint lib test index.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/node-modules/agentkeepalive.git" - }, - "bugs": { - "url": "https://github.com/node-modules/agentkeepalive/issues" - }, - "keywords": [ - "http", - "https", - "agent", - "keepalive", - "agentkeepalive", - "HttpAgent", - "HttpsAgent" - ], - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "devDependencies": { - "coffee": "^5.3.0", - "cross-env": "^6.0.3", - "egg-bin": "^4.9.0", - "eslint": "^5.7.0", - "eslint-config-egg": "^7.1.0", - "git-contributor": "^2.0.0", - "mm": "^2.4.1", - "pedding": "^1.1.0", - "typescript": "^3.8.3" - }, - "engines": { - "node": ">= 8.0.0" - }, - "author": "fengmk2 (https://github.com/fengmk2)", - "license": "MIT" -} diff --git a/build/node_modules/aggregate-error/index.d.ts b/build/node_modules/aggregate-error/index.d.ts deleted file mode 100644 index 502bf7ad..00000000 --- a/build/node_modules/aggregate-error/index.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** -Create an error from multiple errors. -*/ -declare class AggregateError extends Error implements Iterable { - readonly name: 'AggregateError'; - - /** - @param errors - If a string, a new `Error` is created with the string as the error message. If a non-Error object, a new `Error` is created with all properties from the object copied over. - @returns An Error that is also an [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Iterables) for the individual errors. - - @example - ``` - import AggregateError = require('aggregate-error'); - - const error = new AggregateError([new Error('foo'), 'bar', {message: 'baz'}]); - - throw error; - - // AggregateError: - // Error: foo - // at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:33) - // Error: bar - // at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13) - // Error: baz - // at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13) - // at AggregateError (/Users/sindresorhus/dev/aggregate-error/index.js:19:3) - // at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13) - // at Module._compile (module.js:556:32) - // at Object.Module._extensions..js (module.js:565:10) - // at Module.load (module.js:473:32) - // at tryModuleLoad (module.js:432:12) - // at Function.Module._load (module.js:424:3) - // at Module.runMain (module.js:590:10) - // at run (bootstrap_node.js:394:7) - // at startup (bootstrap_node.js:149:9) - - - for (const individualError of error) { - console.log(individualError); - } - //=> [Error: foo] - //=> [Error: bar] - //=> [Error: baz] - ``` - */ - constructor(errors: ReadonlyArray); - - [Symbol.iterator](): IterableIterator; -} - -export = AggregateError; diff --git a/build/node_modules/aggregate-error/index.js b/build/node_modules/aggregate-error/index.js deleted file mode 100644 index ba5bf022..00000000 --- a/build/node_modules/aggregate-error/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; -const indentString = require('indent-string'); -const cleanStack = require('clean-stack'); - -const cleanInternalStack = stack => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, ''); - -class AggregateError extends Error { - constructor(errors) { - if (!Array.isArray(errors)) { - throw new TypeError(`Expected input to be an Array, got ${typeof errors}`); - } - - errors = [...errors].map(error => { - if (error instanceof Error) { - return error; - } - - if (error !== null && typeof error === 'object') { - // Handle plain error objects with message property and/or possibly other metadata - return Object.assign(new Error(error.message), error); - } - - return new Error(error); - }); - - let message = errors - .map(error => { - // The `stack` property is not standardized, so we can't assume it exists - return typeof error.stack === 'string' ? cleanInternalStack(cleanStack(error.stack)) : String(error); - }) - .join('\n'); - message = '\n' + indentString(message, 4); - super(message); - - this.name = 'AggregateError'; - - Object.defineProperty(this, '_errors', {value: errors}); - } - - * [Symbol.iterator]() { - for (const error of this._errors) { - yield error; - } - } -} - -module.exports = AggregateError; diff --git a/build/node_modules/aggregate-error/license b/build/node_modules/aggregate-error/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/aggregate-error/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/aggregate-error/package.json b/build/node_modules/aggregate-error/package.json deleted file mode 100644 index 74fcc376..00000000 --- a/build/node_modules/aggregate-error/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "aggregate-error", - "version": "3.1.0", - "description": "Create an error from multiple errors", - "license": "MIT", - "repository": "sindresorhus/aggregate-error", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "aggregate", - "error", - "combine", - "multiple", - "many", - "collection", - "iterable", - "iterator" - ], - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.7.1", - "xo": "^0.25.3" - } -} diff --git a/build/node_modules/aggregate-error/readme.md b/build/node_modules/aggregate-error/readme.md deleted file mode 100644 index 850de98a..00000000 --- a/build/node_modules/aggregate-error/readme.md +++ /dev/null @@ -1,61 +0,0 @@ -# aggregate-error [![Build Status](https://travis-ci.org/sindresorhus/aggregate-error.svg?branch=master)](https://travis-ci.org/sindresorhus/aggregate-error) - -> Create an error from multiple errors - - -## Install - -``` -$ npm install aggregate-error -``` - - -## Usage - -```js -const AggregateError = require('aggregate-error'); - -const error = new AggregateError([new Error('foo'), 'bar', {message: 'baz'}]); - -throw error; -/* -AggregateError: - Error: foo - at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:33) - Error: bar - at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13) - Error: baz - at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13) - at AggregateError (/Users/sindresorhus/dev/aggregate-error/index.js:19:3) - at Object. (/Users/sindresorhus/dev/aggregate-error/example.js:3:13) - at Module._compile (module.js:556:32) - at Object.Module._extensions..js (module.js:565:10) - at Module.load (module.js:473:32) - at tryModuleLoad (module.js:432:12) - at Function.Module._load (module.js:424:3) - at Module.runMain (module.js:590:10) - at run (bootstrap_node.js:394:7) - at startup (bootstrap_node.js:149:9) -*/ - -for (const individualError of error) { - console.log(individualError); -} -//=> [Error: foo] -//=> [Error: bar] -//=> [Error: baz] -``` - - -## API - -### AggregateError(errors) - -Returns an `Error` that is also an [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Iterables) for the individual errors. - -#### errors - -Type: `Array` - -If a string, a new `Error` is created with the string as the error message.
-If a non-Error object, a new `Error` is created with all properties from the object copied over. diff --git a/build/node_modules/ajv-formats/LICENSE b/build/node_modules/ajv-formats/LICENSE deleted file mode 100644 index a3f8ba02..00000000 --- a/build/node_modules/ajv-formats/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Evgeny Poberezkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/ajv-formats/README.md b/build/node_modules/ajv-formats/README.md deleted file mode 100644 index 5b4706dc..00000000 --- a/build/node_modules/ajv-formats/README.md +++ /dev/null @@ -1,123 +0,0 @@ -# ajv-formats - -JSON Schema formats for Ajv - -[![Build Status](https://travis-ci.org/ajv-validator/ajv-formats.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv-formats) -[![npm](https://img.shields.io/npm/v/ajv-formats.svg)](https://www.npmjs.com/package/ajv-formats) -[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) -[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin) - -## Usage - -```javascript -// ESM/TypeScript import -import Ajv from "ajv" -import addFormats from "ajv-formats" -// Node.js require: -const Ajv = require("ajv") -const addFormats = require("ajv-formats") - -const ajv = new Ajv() -addFormats(ajv) -``` - -## Formats - -The package defines these formats: - -- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). -- _time_: time with optional time-zone. -- _date-time_: date-time from the same source (time-zone is mandatory). -- _duration_: duration from [RFC3339](https://tools.ietf.org/html/rfc3339#appendix-A) -- _uri_: full URI. -- _uri-reference_: URI reference, including full and relative URIs. -- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570) -- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url). -- _email_: email address. -- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5). -- _ipv4_: IP address v4. -- _ipv6_: IP address v6. -- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor. -- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122). -- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901). -- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00). -- _byte_: base64 encoded data according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) -- _int32_: signed 32 bits integer according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) -- _int64_: signed 64 bits according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) -- _float_: float according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) -- _double_: double according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) -- _password_: password string according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) -- _binary_: binary string according to the [openApi 3.0.0 specification](https://spec.openapis.org/oas/v3.0.0#data-types) - -See regular expressions used for format validation and the sources that were used in [formats.ts](https://github.com/ajv-validator/ajv-formats/blob/master/src/formats.ts). - -**Please note**: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. These formats are available in [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) plugin. - -## Keywords to compare values: `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` - -These keywords allow to define minimum/maximum constraints when the format keyword defines ordering (`compare` function in format definition). - -These keywords are added to ajv instance when ajv-formats is used without options or with option `keywords: true`. - -These keywords apply only to strings. If the data is not a string, the validation succeeds. - -The value of keywords `formatMaximum`/`formatMinimum` and `formatExclusiveMaximum`/`formatExclusiveMinimum` should be a string or [\$data reference](https://github.com/ajv-validator/ajv/blob/master/docs/validation.md#data-reference). This value is the maximum (minimum) allowed value for the data to be valid as determined by `format` keyword. If `format` keyword is not present schema compilation will throw exception. - -When these keyword are added, they also add comparison functions to formats `"date"`, `"time"` and `"date-time"`. User-defined formats also can have comparison functions. See [addFormat](https://github.com/ajv-validator/ajv/blob/master/docs/api.md#api-addformat) method. - -```javascript -require("ajv-formats")(ajv) - -const schema = { - type: "string", - format: "date", - formatMinimum: "2016-02-06", - formatExclusiveMaximum: "2016-12-27", -} - -const validDataList = ["2016-02-06", "2016-12-26"] - -const invalidDataList = ["2016-02-05", "2016-12-27", "abc"] -``` - -## Options - -Options can be passed via the second parameter. Options value can be - -1. The list of format names that will be added to ajv instance: - -```javascript -addFormats(ajv, ["date", "time"]) -``` - -**Please note**: when ajv encounters an undefined format it throws exception (unless ajv instance was configured with `strict: false` option). To allow specific undefined formats they have to be passed to ajv instance via `formats` option with `true` value: - -```javascript -const ajv = new Ajv((formats: {date: true, time: true})) // to ignore "date" and "time" formats in schemas. -``` - -2. Format validation mode (default is `"full"`) with optional list of format names and `keywords` option to add additional format comparison keywords: - -```javascript -addFormats(ajv, {mode: "fast"}) -``` - -or - -```javascript -addFormats(ajv, {mode: "fast", formats: ["date", "time"], keywords: true}) -``` - -In `"fast"` mode the following formats are simplified: `"date"`, `"time"`, `"date-time"`, `"uri"`, `"uri-reference"`, `"email"`. For example `"date"`, `"time"` and `"date-time"` do not validate ranges in `"fast"` mode, only string structure, and other formats have simplified regular expressions. - -## Tests - -```bash -npm install -git submodule update --init -npm test -``` - -## License - -[MIT](https://github.com/ajv-validator/ajv-formats/blob/master/LICENSE) diff --git a/build/node_modules/ajv-formats/package.json b/build/node_modules/ajv-formats/package.json deleted file mode 100644 index 13e70a24..00000000 --- a/build/node_modules/ajv-formats/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "ajv-formats", - "version": "2.1.1", - "description": "Format validation for Ajv v7+", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "files": [ - "src/", - "dist/" - ], - "scripts": { - "build": "tsc", - "prettier:write": "prettier --write \"./**/*.{md,json,yaml,js,ts}\"", - "prettier:check": "prettier --list-different \"./**/*.{md,json,yaml,js,ts}\"", - "eslint": "eslint --ext .ts ./src/**/*", - "test-spec": "jest", - "test-cov": "jest --coverage", - "test": "npm run prettier:check && npm run build && npm run eslint && npm run test-cov", - "ci-test": "npm run test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ajv-validator/ajv-formats.git" - }, - "keywords": [ - "Ajv", - "JSON-Schema", - "format", - "validation" - ], - "author": "Evgeny Poberezkin", - "license": "MIT", - "bugs": { - "url": "https://github.com/ajv-validator/ajv-formats/issues" - }, - "homepage": "https://github.com/ajv-validator/ajv-formats#readme", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - }, - "devDependencies": { - "@ajv-validator/config": "^0.3.0", - "@types/jest": "^26.0.5", - "@types/node": "^14.10.1", - "@typescript-eslint/eslint-plugin": "^3.7.0", - "@typescript-eslint/parser": "^3.7.0", - "ajv": "^8.0.0", - "eslint": "^7.5.0", - "eslint-config-prettier": "^6.11.0", - "husky": "^4.2.5", - "jest": "^26.1.0", - "json-schema-test": "^2.0.0", - "lint-staged": "^10.2.11", - "prettier": "^2.3.2", - "ts-jest": "^26.1.3", - "typescript": "^4.0.0" - }, - "prettier": "@ajv-validator/config/prettierrc.json", - "husky": { - "hooks": { - "pre-commit": "lint-staged && npm test" - } - }, - "lint-staged": { - "*.{md,json,yaml,js,ts}": "prettier --write" - } -} diff --git a/build/node_modules/ajv-keywords/LICENSE b/build/node_modules/ajv-keywords/LICENSE deleted file mode 100644 index 90139aa7..00000000 --- a/build/node_modules/ajv-keywords/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Evgeny Poberezkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/ajv-keywords/README.md b/build/node_modules/ajv-keywords/README.md deleted file mode 100644 index 1964a220..00000000 --- a/build/node_modules/ajv-keywords/README.md +++ /dev/null @@ -1,836 +0,0 @@ -# ajv-keywords - -Custom JSON-Schema keywords for [Ajv](https://github.com/epoberezkin/ajv) validator - -[![Build Status](https://travis-ci.org/ajv-validator/ajv-keywords.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv-keywords) -[![npm](https://img.shields.io/npm/v/ajv-keywords.svg)](https://www.npmjs.com/package/ajv-keywords) -[![npm downloads](https://img.shields.io/npm/dm/ajv-keywords.svg)](https://www.npmjs.com/package/ajv-keywords) -[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv-keywords/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv-keywords?branch=master) -[![Dependabot](https://api.dependabot.com/badges/status?host=github&repo=ajv-validator/ajv-keywords)](https://app.dependabot.com/accounts/ajv-validator/repos/60477053) -[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) - - -## Contents - -- [Install](#install) -- [Usage](#usage) -- [Keywords](#keywords) - - [Types](#types) - - [typeof](#typeof) - - [instanceof](#instanceof) - - [Keywords for numbers](#keywords-for-numbers) - - [range and exclusiveRange](#range-and-exclusiverange) - - [Keywords for strings](#keywords-for-strings) - - [regexp](#regexp) - - [formatMaximum / formatMinimum and formatExclusiveMaximum / formatExclusiveMinimum](#formatmaximum--formatminimum-and-formatexclusivemaximum--formatexclusiveminimum) - - [transform](#transform)\* - - [Keywords for arrays](#keywords-for-arrays) - - [uniqueItemProperties](#uniqueitemproperties) - - [Keywords for objects](#keywords-for-objects) - - [allRequired](#allrequired) - - [anyRequired](#anyrequired) - - [oneRequired](#onerequired) - - [patternRequired](#patternrequired) - - [prohibited](#prohibited) - - [deepProperties](#deepproperties) - - [deepRequired](#deeprequired) - - [Compound keywords](#compound-keywords) - - [switch](#switch) (deprecated) - - [select/selectCases/selectDefault](#selectselectcasesselectdefault) (BETA) - - [Keywords for all types](#keywords-for-all-types) - - [dynamicDefaults](#dynamicdefaults)\* -- [Security contact](#security-contact) -- [Open-source software support](#open-source-software-support) -- [License](#license) - -\* - keywords that modify data - - -## Install - -``` -npm install ajv-keywords -``` - - -## Usage - -To add all available keywords: - -```javascript -var Ajv = require('ajv'); -var ajv = new Ajv; -require('ajv-keywords')(ajv); - -ajv.validate({ instanceof: 'RegExp' }, /.*/); // true -ajv.validate({ instanceof: 'RegExp' }, '.*'); // false -``` - -To add a single keyword: - -```javascript -require('ajv-keywords')(ajv, 'instanceof'); -``` - -To add multiple keywords: - -```javascript -require('ajv-keywords')(ajv, ['typeof', 'instanceof']); -``` - -To add a single keyword in browser (to avoid adding unused code): - -```javascript -require('ajv-keywords/keywords/instanceof')(ajv); -``` - - -## Keywords - -### Types - -#### `typeof` - -Based on JavaScript `typeof` operation. - -The value of the keyword should be a string (`"undefined"`, `"string"`, `"number"`, `"object"`, `"function"`, `"boolean"` or `"symbol"`) or array of strings. - -To pass validation the result of `typeof` operation on the value should be equal to the string (or one of the strings in the array). - -``` -ajv.validate({ typeof: 'undefined' }, undefined); // true -ajv.validate({ typeof: 'undefined' }, null); // false -ajv.validate({ typeof: ['undefined', 'object'] }, null); // true -``` - - -#### `instanceof` - -Based on JavaScript `instanceof` operation. - -The value of the keyword should be a string (`"Object"`, `"Array"`, `"Function"`, `"Number"`, `"String"`, `"Date"`, `"RegExp"`, `"Promise"` or `"Buffer"`) or array of strings. - -To pass validation the result of `data instanceof ...` operation on the value should be true: - -``` -ajv.validate({ instanceof: 'Array' }, []); // true -ajv.validate({ instanceof: 'Array' }, {}); // false -ajv.validate({ instanceof: ['Array', 'Function'] }, function(){}); // true -``` - -You can add your own constructor function to be recognised by this keyword: - -```javascript -function MyClass() {} -var instanceofDefinition = require('ajv-keywords').get('instanceof').definition; -// or require('ajv-keywords/keywords/instanceof').definition; -instanceofDefinition.CONSTRUCTORS.MyClass = MyClass; - -ajv.validate({ instanceof: 'MyClass' }, new MyClass); // true -``` - - -### Keywords for numbers - -#### `range` and `exclusiveRange` - -Syntax sugar for the combination of minimum and maximum keywords, also fails schema compilation if there are no numbers in the range. - -The value of this keyword must be the array consisting of two numbers, the second must be greater or equal than the first one. - -If the validated value is not a number the validation passes, otherwise to pass validation the value should be greater (or equal) than the first number and smaller (or equal) than the second number in the array. If `exclusiveRange` keyword is present in the same schema and its value is true, the validated value must not be equal to the range boundaries. - -```javascript -var schema = { range: [1, 3] }; -ajv.validate(schema, 1); // true -ajv.validate(schema, 2); // true -ajv.validate(schema, 3); // true -ajv.validate(schema, 0.99); // false -ajv.validate(schema, 3.01); // false - -var schema = { range: [1, 3], exclusiveRange: true }; -ajv.validate(schema, 1.01); // true -ajv.validate(schema, 2); // true -ajv.validate(schema, 2.99); // true -ajv.validate(schema, 1); // false -ajv.validate(schema, 3); // false -``` - - -### Keywords for strings - -#### `regexp` - -This keyword allows to use regular expressions with flags in schemas (the standard `pattern` keyword does not support flags). - -This keyword applies only to strings. If the data is not a string, the validation succeeds. - -The value of this keyword can be either a string (the result of `regexp.toString()`) or an object with the properties `pattern` and `flags` (the same strings that should be passed to RegExp constructor). - -```javascript -var schema = { - type: 'object', - properties: { - foo: { regexp: '/foo/i' }, - bar: { regexp: { pattern: 'bar', flags: 'i' } } - } -}; - -var validData = { - foo: 'Food', - bar: 'Barmen' -}; - -var invalidData = { - foo: 'fog', - bar: 'bad' -}; -``` - - -#### `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` - -These keywords allow to define minimum/maximum constraints when the format keyword defines ordering. - -These keywords apply only to strings. If the data is not a string, the validation succeeds. - -The value of keyword `formatMaximum` (`formatMinimum`) should be a string. This value is the maximum (minimum) allowed value for the data to be valid as determined by `format` keyword. If `format` is not present schema compilation will throw exception. - -When this keyword is added, it defines comparison rules for formats `"date"`, `"time"` and `"date-time"`. Custom formats also can have comparison rules. See [addFormat](https://github.com/epoberezkin/ajv#api-addformat) method. - -The value of keyword `formatExclusiveMaximum` (`formatExclusiveMinimum`) should be a boolean value. These keyword cannot be used without `formatMaximum` (`formatMinimum`). If this keyword value is equal to `true`, the data to be valid should not be equal to the value in `formatMaximum` (`formatMinimum`) keyword. - -```javascript -require('ajv-keywords')(ajv, ['formatMinimum', 'formatMaximum']); - -var schema = { - format: 'date', - formatMinimum: '2016-02-06', - formatMaximum: '2016-12-27', - formatExclusiveMaximum: true -} - -var validDataList = ['2016-02-06', '2016-12-26', 1]; - -var invalidDataList = ['2016-02-05', '2016-12-27', 'abc']; -``` - - -#### `transform` - -This keyword allows a string to be modified before validation. - -These keywords apply only to strings. If the data is not a string, the transform is skipped. - -There are limitation due to how ajv is written: -- a stand alone string cannot be transformed. ie `data = 'a'; ajv.validate(schema, data);` -- currently cannot work with `ajv-pack` - -**Supported options:** -- `trim`: remove whitespace from start and end -- `trimLeft`: remove whitespace from start -- `trimRight`: remove whitespace from end -- `toLowerCase`: case string to all lower case -- `toUpperCase`: case string to all upper case -- `toEnumCase`: case string to match case in schema - -Options are applied in the order they are listed. - -Note: `toEnumCase` requires that all allowed values are unique when case insensitive. - -**Example: multiple options** -```javascript -require('ajv-keywords')(ajv, ['transform']); - -var schema = { - type: 'array', - items: { - type:'string', - transform:['trim','toLowerCase'] - } -}; - -var data = [' MixCase ']; -ajv.validate(schema, data); -console.log(data); // ['mixcase'] - -``` - -**Example: `enumcase`** -```javascript -require('ajv-keywords')(ajv, ['transform']); - -var schema = { - type: 'array', - items: { - type:'string', - transform:['trim','toEnumCase'], - enum:['pH'] - } -}; - -var data = ['ph',' Ph','PH','pH ']; -ajv.validate(schema, data); -console.log(data); // ['pH','pH','pH','pH'] -``` - - -### Keywords for arrays - -#### `uniqueItemProperties` - -The keyword allows to check that some properties in array items are unique. - -This keyword applies only to arrays. If the data is not an array, the validation succeeds. - -The value of this keyword must be an array of strings - property names that should have unique values across all items. - -```javascript -var schema = { uniqueItemProperties: [ "id", "name" ] }; - -var validData = [ - { id: 1 }, - { id: 2 }, - { id: 3 } -]; - -var invalidData1 = [ - { id: 1 }, - { id: 1 }, // duplicate "id" - { id: 3 } -]; - -var invalidData2 = [ - { id: 1, name: "taco" }, - { id: 2, name: "taco" }, // duplicate "name" - { id: 3, name: "salsa" } -]; -``` - -This keyword is contributed by [@blainesch](https://github.com/blainesch). - - -### Keywords for objects - -#### `allRequired` - -This keyword allows to require the presence of all properties used in `properties` keyword in the same schema object. - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value of this keyword must be boolean. - -If the value of the keyword is `false`, the validation succeeds. - -If the value of the keyword is `true`, the validation succeeds if the data contains all properties defined in `properties` keyword (in the same schema object). - -If the `properties` keyword is not present in the same schema object, schema compilation will throw exception. - -```javascript -var schema = { - properties: { - foo: {type: 'number'}, - bar: {type: 'number'} - } - allRequired: true -}; - -var validData = { foo: 1, bar: 2 }; -var alsoValidData = { foo: 1, bar: 2, baz: 3 }; - -var invalidDataList = [ {}, { foo: 1 }, { bar: 2 } ]; -``` - - -#### `anyRequired` - -This keyword allows to require the presence of any (at least one) property from the list. - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value of this keyword must be an array of strings, each string being a property name. For data object to be valid at least one of the properties in this array should be present in the object. - -```javascript -var schema = { - anyRequired: ['foo', 'bar'] -}; - -var validData = { foo: 1 }; -var alsoValidData = { foo: 1, bar: 2 }; - -var invalidDataList = [ {}, { baz: 3 } ]; -``` - - -#### `oneRequired` - -This keyword allows to require the presence of only one property from the list. - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value of this keyword must be an array of strings, each string being a property name. For data object to be valid exactly one of the properties in this array should be present in the object. - -```javascript -var schema = { - oneRequired: ['foo', 'bar'] -}; - -var validData = { foo: 1 }; -var alsoValidData = { bar: 2, baz: 3 }; - -var invalidDataList = [ {}, { baz: 3 }, { foo: 1, bar: 2 } ]; -``` - - -#### `patternRequired` - -This keyword allows to require the presence of properties that match some pattern(s). - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value of this keyword should be an array of strings, each string being a regular expression. For data object to be valid each regular expression in this array should match at least one property name in the data object. - -If the array contains multiple regular expressions, more than one expression can match the same property name. - -```javascript -var schema = { patternRequired: [ 'f.*o', 'b.*r' ] }; - -var validData = { foo: 1, bar: 2 }; -var alsoValidData = { foobar: 3 }; - -var invalidDataList = [ {}, { foo: 1 }, { bar: 2 } ]; -``` - - -#### `prohibited` - -This keyword allows to prohibit that any of the properties in the list is present in the object. - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value of this keyword should be an array of strings, each string being a property name. For data object to be valid none of the properties in this array should be present in the object. - -``` -var schema = { prohibited: ['foo', 'bar']}; - -var validData = { baz: 1 }; -var alsoValidData = {}; - -var invalidDataList = [ - { foo: 1 }, - { bar: 2 }, - { foo: 1, bar: 2} -]; -``` - -__Please note__: `{prohibited: ['foo', 'bar']}` is equivalent to `{not: {anyRequired: ['foo', 'bar']}}` (i.e. it has the same validation result for any data). - - -#### `deepProperties` - -This keyword allows to validate deep properties (identified by JSON pointers). - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value should be an object, where keys are JSON pointers to the data, starting from the current position in data, and the values are JSON schemas. For data object to be valid the value of each JSON pointer should be valid according to the corresponding schema. - -```javascript -var schema = { - type: 'object', - deepProperties: { - "/users/1/role": { "enum": ["admin"] } - } -}; - -var validData = { - users: [ - {}, - { - id: 123, - role: 'admin' - } - ] -}; - -var alsoValidData = { - users: { - "1": { - id: 123, - role: 'admin' - } - } -}; - -var invalidData = { - users: [ - {}, - { - id: 123, - role: 'user' - } - ] -}; - -var alsoInvalidData = { - users: { - "1": { - id: 123, - role: 'user' - } - } -}; -``` - - -#### `deepRequired` - -This keyword allows to check that some deep properties (identified by JSON pointers) are available. - -This keyword applies only to objects. If the data is not an object, the validation succeeds. - -The value should be an array of JSON pointers to the data, starting from the current position in data. For data object to be valid each JSON pointer should be some existing part of the data. - -```javascript -var schema = { - type: 'object', - deepRequired: ["/users/1/role"] -}; - -var validData = { - users: [ - {}, - { - id: 123, - role: 'admin' - } - ] -}; - -var invalidData = { - users: [ - {}, - { - id: 123 - } - ] -}; -``` - -See [json-schema-org/json-schema-spec#203](https://github.com/json-schema-org/json-schema-spec/issues/203#issue-197211916) for an example of the equivalent schema without `deepRequired` keyword. - - -### Compound keywords - -#### `switch` (deprecated) - -__Please note__: this keyword is provided to preserve backward compatibility with previous versions of Ajv. It is strongly recommended to use `if`/`then`/`else` keywords instead, as they have been added to the draft-07 of JSON Schema specification. - -This keyword allows to perform advanced conditional validation. - -The value of the keyword is the array of if/then clauses. Each clause is the object with the following properties: - -- `if` (optional) - the value is JSON-schema -- `then` (required) - the value is JSON-schema or boolean -- `continue` (optional) - the value is boolean - -The validation process is dynamic; all clauses are executed sequentially in the following way: - -1. `if`: - 1. `if` property is JSON-schema according to which the data is: - 1. valid => go to step 2. - 2. invalid => go to the NEXT clause, if this was the last clause the validation of `switch` SUCCEEDS. - 2. `if` property is absent => go to step 2. -2. `then`: - 1. `then` property is `true` or it is JSON-schema according to which the data is valid => go to step 3. - 2. `then` property is `false` or it is JSON-schema according to which the data is invalid => the validation of `switch` FAILS. -3. `continue`: - 1. `continue` property is `true` => go to the NEXT clause, if this was the last clause the validation of `switch` SUCCEEDS. - 2. `continue` property is `false` or absent => validation of `switch` SUCCEEDS. - -```javascript -require('ajv-keywords')(ajv, 'switch'); - -var schema = { - type: 'array', - items: { - type: 'integer', - 'switch': [ - { if: { not: { minimum: 1 } }, then: false }, - { if: { maximum: 10 }, then: true }, - { if: { maximum: 100 }, then: { multipleOf: 10 } }, - { if: { maximum: 1000 }, then: { multipleOf: 100 } }, - { then: false } - ] - } -}; - -var validItems = [1, 5, 10, 20, 50, 100, 200, 500, 1000]; - -var invalidItems = [1, 0, 2000, 11, 57, 123, 'foo']; -``` - -The above schema is equivalent to (for example): - -```javascript -{ - type: 'array', - items: { - type: 'integer', - if: { minimum: 1, maximum: 10 }, - then: true, - else: { - if: { maximum: 100 }, - then: { multipleOf: 10 }, - else: { - if: { maximum: 1000 }, - then: { multipleOf: 100 }, - else: false - } - } - } -} -``` - - -#### `select`/`selectCases`/`selectDefault` - -These keywords allow to choose the schema to validate the data based on the value of some property in the validated data. - -These keywords must be present in the same schema object (`selectDefault` is optional). - -The value of `select` keyword should be a [$data reference](https://github.com/epoberezkin/ajv/tree/5.0.2-beta.0#data-reference) that points to any primitive JSON type (string, number, boolean or null) in the data that is validated. You can also use a constant of primitive type as the value of this keyword (e.g., for debugging purposes). - -The value of `selectCases` keyword must be an object where each property name is a possible string representation of the value of `select` keyword and each property value is a corresponding schema (from draft-06 it can be boolean) that must be used to validate the data. - -The value of `selectDefault` keyword is a schema (from draft-06 it can be boolean) that must be used to validate the data in case `selectCases` has no key equal to the stringified value of `select` keyword. - -The validation succeeds in one of the following cases: -- the validation of data using selected schema succeeds, -- none of the schemas is selected for validation, -- the value of select is undefined (no property in the data that the data reference points to). - -If `select` value (in data) is not a primitive type the validation fails. - -__Please note__: these keywords require Ajv `$data` option to support [$data reference](https://github.com/epoberezkin/ajv/tree/5.0.2-beta.0#data-reference). - - -```javascript -require('ajv-keywords')(ajv, 'select'); - -var schema = { - type: object, - required: ['kind'], - properties: { - kind: { type: 'string' } - }, - select: { $data: '0/kind' }, - selectCases: { - foo: { - required: ['foo'], - properties: { - kind: {}, - foo: { type: 'string' } - }, - additionalProperties: false - }, - bar: { - required: ['bar'], - properties: { - kind: {}, - bar: { type: 'number' } - }, - additionalProperties: false - } - }, - selectDefault: { - propertyNames: { - not: { enum: ['foo', 'bar'] } - } - } -}; - -var validDataList = [ - { kind: 'foo', foo: 'any' }, - { kind: 'bar', bar: 1 }, - { kind: 'anything_else', not_bar_or_foo: 'any value' } -]; - -var invalidDataList = [ - { kind: 'foo' }, // no propery foo - { kind: 'bar' }, // no propery bar - { kind: 'foo', foo: 'any', another: 'any value' }, // additional property - { kind: 'bar', bar: 1, another: 'any value' }, // additional property - { kind: 'anything_else', foo: 'any' } // property foo not allowed - { kind: 'anything_else', bar: 1 } // property bar not allowed -]; -``` - -__Please note__: the current implementation is BETA. It does not allow using relative URIs in $ref keywords in schemas in `selectCases` and `selectDefault` that point outside of these schemas. The workaround is to use absolute URIs (that can point to any (sub-)schema added to Ajv, including those inside the current root schema where `select` is used). See [tests](https://github.com/epoberezkin/ajv-keywords/blob/v2.0.0/spec/tests/select.json#L314). - - -### Keywords for all types - -#### `dynamicDefaults` - -This keyword allows to assign dynamic defaults to properties, such as timestamps, unique IDs etc. - -This keyword only works if `useDefaults` options is used and not inside `anyOf` keywords etc., in the same way as [default keyword treated by Ajv](https://github.com/epoberezkin/ajv#assigning-defaults). - -The keyword should be added on the object level. Its value should be an object with each property corresponding to a property name, in the same way as in standard `properties` keyword. The value of each property can be: - -- an identifier of default function (a string) -- an object with properties `func` (an identifier) and `args` (an object with parameters that will be passed to this function during schema compilation - see examples). - -The properties used in `dynamicDefaults` should not be added to `required` keyword (or validation will fail), because unlike `default` this keyword is processed after validation. - -There are several predefined dynamic default functions: - -- `"timestamp"` - current timestamp in milliseconds -- `"datetime"` - current date and time as string (ISO, valid according to `date-time` format) -- `"date"` - current date as string (ISO, valid according to `date` format) -- `"time"` - current time as string (ISO, valid according to `time` format) -- `"random"` - pseudo-random number in [0, 1) interval -- `"randomint"` - pseudo-random integer number. If string is used as a property value, the function will randomly return 0 or 1. If object `{ func: 'randomint', args: { max: N } }` is used then the default will be an integer number in [0, N) interval. -- `"seq"` - sequential integer number starting from 0. If string is used as a property value, the default sequence will be used. If object `{ func: 'seq', args: { name: 'foo'} }` is used then the sequence with name `"foo"` will be used. Sequences are global, even if different ajv instances are used. - -```javascript -var schema = { - type: 'object', - dynamicDefaults: { - ts: 'datetime', - r: { func: 'randomint', args: { max: 100 } }, - id: { func: 'seq', args: { name: 'id' } } - }, - properties: { - ts: { - type: 'string', - format: 'date-time' - }, - r: { - type: 'integer', - minimum: 0, - exclusiveMaximum: 100 - }, - id: { - type: 'integer', - minimum: 0 - } - } -}; - -var data = {}; -ajv.validate(data); // true -data; // { ts: '2016-12-01T22:07:28.829Z', r: 25, id: 0 } - -var data1 = {}; -ajv.validate(data1); // true -data1; // { ts: '2016-12-01T22:07:29.832Z', r: 68, id: 1 } - -ajv.validate(data1); // true -data1; // didn't change, as all properties were defined -``` - -When using the `useDefaults` option value `"empty"`, properties and items equal to `null` or `""` (empty string) will be considered missing and assigned defaults. Use the `allOf` [compound keyword](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#compound-keywords) to execute `dynamicDefaults` before validation. - -```javascript -var schema = { - allOf: [ - { - dynamicDefaults: { - ts: 'datetime', - r: { func: 'randomint', args: { min: 5, max: 100 } }, - id: { func: 'seq', args: { name: 'id' } } - } - }, - { - type: 'object', - properties: { - ts: { - type: 'string' - }, - r: { - type: 'number', - minimum: 5, - exclusiveMaximum: 100 - }, - id: { - type: 'integer', - minimum: 0 - } - } - } - ] -}; - -var data = { ts: '', r: null }; -ajv.validate(data); // true -data; // { ts: '2016-12-01T22:07:28.829Z', r: 25, id: 0 } -``` - -You can add your own dynamic default function to be recognised by this keyword: - -```javascript -var uuid = require('uuid'); - -function uuidV4() { return uuid.v4(); } - -var definition = require('ajv-keywords').get('dynamicDefaults').definition; -// or require('ajv-keywords/keywords/dynamicDefaults').definition; -definition.DEFAULTS.uuid = uuidV4; - -var schema = { - dynamicDefaults: { id: 'uuid' }, - properties: { id: { type: 'string', format: 'uuid' } } -}; - -var data = {}; -ajv.validate(schema, data); // true -data; // { id: 'a1183fbe-697b-4030-9bcc-cfeb282a9150' }; - -var data1 = {}; -ajv.validate(schema, data1); // true -data1; // { id: '5b008de7-1669-467a-a5c6-70fa244d7209' } -``` - -You also can define dynamic default that accepts parameters, e.g. version of uuid: - -```javascript -var uuid = require('uuid'); - -function getUuid(args) { - var version = 'v' + (arvs && args.v || 4); - return function() { - return uuid[version](); - }; -} - -var definition = require('ajv-keywords').get('dynamicDefaults').definition; -definition.DEFAULTS.uuid = getUuid; - -var schema = { - dynamicDefaults: { - id1: 'uuid', // v4 - id2: { func: 'uuid', v: 4 }, // v4 - id3: { func: 'uuid', v: 1 } // v1 - } -}; -``` - - -## Security contact - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. - -Please do NOT report security vulnerabilities via GitHub issues. - - -## Open-source software support - -Ajv-keywords is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv-keywords?utm_source=npm-ajv-keywords&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers. - - -## License - -[MIT](https://github.com/epoberezkin/ajv-keywords/blob/master/LICENSE) diff --git a/build/node_modules/ajv-keywords/ajv-keywords.d.ts b/build/node_modules/ajv-keywords/ajv-keywords.d.ts deleted file mode 100644 index 2d562ee4..00000000 --- a/build/node_modules/ajv-keywords/ajv-keywords.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module 'ajv-keywords' { - import { Ajv } from 'ajv'; - - function keywords(ajv: Ajv, include?: string | string[]): Ajv; - - export = keywords; -} diff --git a/build/node_modules/ajv-keywords/index.js b/build/node_modules/ajv-keywords/index.js deleted file mode 100644 index 07a8edab..00000000 --- a/build/node_modules/ajv-keywords/index.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var KEYWORDS = require('./keywords'); - -module.exports = defineKeywords; - - -/** - * Defines one or several keywords in ajv instance - * @param {Ajv} ajv validator instance - * @param {String|Array|undefined} keyword keyword(s) to define - * @return {Ajv} ajv instance (for chaining) - */ -function defineKeywords(ajv, keyword) { - if (Array.isArray(keyword)) { - for (var i=0; i - -# Ajv: Another JSON Schema Validator - -The fastest JSON Schema validator for Node.js and browser. Supports draft-04/06/07. - -[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv) -[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv) -[![npm (beta)](https://img.shields.io/npm/v/ajv/beta)](https://www.npmjs.com/package/ajv/v/7.0.0-beta.0) -[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv) -[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master) -[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) -[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin) - - -## Ajv v7 beta is released - -[Ajv version 7.0.0-beta.0](https://github.com/ajv-validator/ajv/tree/v7-beta) is released with these changes: - -- to reduce the mistakes in JSON schemas and unexpected validation results, [strict mode](./docs/strict-mode.md) is added - it prohibits ignored or ambiguous JSON Schema elements. -- to make code injection from untrusted schemas impossible, [code generation](./docs/codegen.md) is fully re-written to be safe. -- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas. -- schemas are compiled to ES6 code (ES5 code generation is supported with an option). -- to improve reliability and maintainability the code is migrated to TypeScript. - -**Please note**: - -- the support for JSON-Schema draft-04 is removed - if you have schemas using "id" attributes you have to replace them with "\$id" (or continue using version 6 that will be supported until 02/28/2021). -- all formats are separated to ajv-formats package - they have to be explicitely added if you use them. - -See [release notes](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) for the details. - -To install the new version: - -```bash -npm install ajv@beta -``` - -See [Getting started with v7](https://github.com/ajv-validator/ajv/tree/v7-beta#usage) for code example. - - -## Mozilla MOSS grant and OpenJS Foundation - -[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/) - -Ajv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04). - -Ajv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users. - -This [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details. - -I am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a "maintainer" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community. - - -## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin) - -Since I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant! - -Your continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released. - -Please sponsor Ajv via: -- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it) -- [Ajv Open Collective️](https://opencollective.com/ajv) - -Thank you. - - -#### Open Collective sponsors - - - - - - - - - - - - - - - -## Using version 6 - -[JSON Schema draft-07](http://json-schema.org/latest/json-schema-validation.html) is published. - -[Ajv version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0) that supports draft-07 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas, draft-06 schemas will be supported without changes). - -__Please note__: To use Ajv with draft-06 schemas you need to explicitly add the meta-schema to the validator instance: - -```javascript -ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json')); -``` - -To use Ajv with draft-04 schemas in addition to explicitly adding meta-schema you also need to use option schemaId: - -```javascript -var ajv = new Ajv({schemaId: 'id'}); -// If you want to use both draft-04 and draft-06/07 schemas: -// var ajv = new Ajv({schemaId: 'auto'}); -ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); -``` - - -## Contents - -- [Performance](#performance) -- [Features](#features) -- [Getting started](#getting-started) -- [Frequently Asked Questions](https://github.com/ajv-validator/ajv/blob/master/FAQ.md) -- [Using in browser](#using-in-browser) - - [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp) -- [Command line interface](#command-line-interface) -- Validation - - [Keywords](#validation-keywords) - - [Annotation keywords](#annotation-keywords) - - [Formats](#formats) - - [Combining schemas with $ref](#ref) - - [$data reference](#data-reference) - - NEW: [$merge and $patch keywords](#merge-and-patch-keywords) - - [Defining custom keywords](#defining-custom-keywords) - - [Asynchronous schema compilation](#asynchronous-schema-compilation) - - [Asynchronous validation](#asynchronous-validation) -- [Security considerations](#security-considerations) - - [Security contact](#security-contact) - - [Untrusted schemas](#untrusted-schemas) - - [Circular references in objects](#circular-references-in-javascript-objects) - - [Trusted schemas](#security-risks-of-trusted-schemas) - - [ReDoS attack](#redos-attack) -- Modifying data during validation - - [Filtering data](#filtering-data) - - [Assigning defaults](#assigning-defaults) - - [Coercing data types](#coercing-data-types) -- API - - [Methods](#api) - - [Options](#options) - - [Validation errors](#validation-errors) -- [Plugins](#plugins) -- [Related packages](#related-packages) -- [Some packages using Ajv](#some-packages-using-ajv) -- [Tests, Contributing, Changes history](#tests) -- [Support, Code of conduct, License](#open-source-software-support) - - -## Performance - -Ajv generates code using [doT templates](https://github.com/olado/doT) to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization. - -Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks: - -- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place -- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster -- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html) -- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html) - - -Performance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark): - -[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance) - - -## Features - -- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) and draft-04 standards: - - all validation keywords (see [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md)) - - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available) - - support of circular references between schemas - - correct string lengths for strings with unicode pairs (can be turned off) - - [formats](#formats) defined by JSON Schema draft-07 standard and custom formats (can be turned off) - - [validates schemas against meta-schema](#api-validateschema) -- supports [browsers](#using-in-browser) and Node.js 0.10-14.x -- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation -- "All errors" validation mode with [option allErrors](#options) -- [error messages with parameters](#validation-errors) describing error reasons to allow creating custom error messages -- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package -- [filtering data](#filtering-data) from additional properties -- [assigning defaults](#assigning-defaults) to missing properties and items -- [coercing data](#coercing-data-types) to the types specified in `type` keywords -- [custom keywords](#defining-custom-keywords) -- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else` -- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail). -- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package -- [$data reference](#data-reference) to use values from the validated data as values for the schema keywords -- [asynchronous validation](#asynchronous-validation) of custom formats and keywords - - -## Install - -``` -npm install ajv -``` - - -## Getting started - -Try it in the Node.js REPL: https://tonicdev.com/npm/ajv - - -The fastest validation call: - -```javascript -// Node.js require: -var Ajv = require('ajv'); -// or ESM/TypeScript import -import Ajv from 'ajv'; - -var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true} -var validate = ajv.compile(schema); -var valid = validate(data); -if (!valid) console.log(validate.errors); -``` - -or with less code - -```javascript -// ... -var valid = ajv.validate(schema, data); -if (!valid) console.log(ajv.errors); -// ... -``` - -or - -```javascript -// ... -var valid = ajv.addSchema(schema, 'mySchema') - .validate('mySchema', data); -if (!valid) console.log(ajv.errorsText()); -// ... -``` - -See [API](#api) and [Options](#options) for more details. - -Ajv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or a custom function as a key), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again. - -The best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call). - -__Please note__: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors) - -__Note for TypeScript users__: `ajv` provides its own TypeScript declarations -out of the box, so you don't need to install the deprecated `@types/ajv` -module. - - -## Using in browser - -You can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle. - -If you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)). - -Then you need to load Ajv in the browser: -```html - -``` - -This bundle can be used with different module systems; it creates global `Ajv` if no module system is found. - -The browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv). - -Ajv is tested with these browsers: - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin) - -__Please note__: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)). - - -### Ajv and Content Security Policies (CSP) - -If you're using Ajv to compile a schema (the typical use) in a browser document that is loaded with a Content Security Policy (CSP), that policy will require a `script-src` directive that includes the value `'unsafe-eval'`. -:warning: NOTE, however, that `unsafe-eval` is NOT recommended in a secure CSP[[1]](https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval), as it has the potential to open the document to cross-site scripting (XSS) attacks. - -In order to make use of Ajv without easing your CSP, you can [pre-compile a schema using the CLI](https://github.com/ajv-validator/ajv-cli#compile-schemas). This will transpile the schema JSON into a JavaScript file that exports a `validate` function that works simlarly to a schema compiled at runtime. - -Note that pre-compilation of schemas is performed using [ajv-pack](https://github.com/ajv-validator/ajv-pack) and there are [some limitations to the schema features it can compile](https://github.com/ajv-validator/ajv-pack#limitations). A successfully pre-compiled schema is equivalent to the same schema compiled at runtime. - - -## Command line interface - -CLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports: - -- compiling JSON Schemas to test their validity -- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack)) -- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate)) -- validating data file(s) against JSON Schema -- testing expected validity of data against JSON Schema -- referenced schemas -- custom meta-schemas -- files in JSON, JSON5, YAML, and JavaScript format -- all Ajv options -- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format - - -## Validation keywords - -Ajv supports all validation keywords from draft-07 of JSON Schema standard: - -- [type](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#type) -- [for numbers](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf -- [for strings](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format -- [for arrays](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#contains) -- [for objects](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#propertynames) -- [for all types](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#const) -- [compound keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf, [if/then/else](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#ifthenelse) - -With [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON Schema standard: - -- [patternRequired](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match. -- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc. - -See [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md) for more details. - - -## Annotation keywords - -JSON Schema specification defines several annotation keywords that describe schema itself but do not perform any validation. - -- `title` and `description`: information about the data represented by that schema -- `$comment` (NEW in draft-07): information for developers. With option `$comment` Ajv logs or passes the comment string to the user-supplied function. See [Options](#options). -- `default`: a default value of the data instance, see [Assigning defaults](#assigning-defaults). -- `examples` (NEW in draft-06): an array of data instances. Ajv does not check the validity of these instances against the schema. -- `readOnly` and `writeOnly` (NEW in draft-07): marks data-instance as read-only or write-only in relation to the source of the data (database, api, etc.). -- `contentEncoding`: [RFC 2045](https://tools.ietf.org/html/rfc2045#section-6.1 ), e.g., "base64". -- `contentMediaType`: [RFC 2046](https://tools.ietf.org/html/rfc2046), e.g., "image/png". - -__Please note__: Ajv does not implement validation of the keywords `examples`, `contentEncoding` and `contentMediaType` but it reserves them. If you want to create a plugin that implements some of them, it should remove these keywords from the instance. - - -## Formats - -Ajv implements formats defined by JSON Schema specification and several other formats. It is recommended NOT to use "format" keyword implementations with untrusted data, as they use potentially unsafe regular expressions - see [ReDoS attack](#redos-attack). - -__Please note__: if you need to use "format" keyword to validate untrusted data, you MUST assess their suitability and safety for your validation scenarios. - -The following formats are implemented for string validation with "format" keyword: - -- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). -- _time_: time with optional time-zone. -- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)). -- _uri_: full URI. -- _uri-reference_: URI reference, including full and relative URIs. -- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570) -- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url). -- _email_: email address. -- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5). -- _ipv4_: IP address v4. -- _ipv6_: IP address v6. -- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor. -- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122). -- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901). -- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00). - -__Please note__: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. Ajv does not implement these formats. If you create Ajv plugin that implements them please make a PR to mention this plugin here. - -There are two modes of format validation: `fast` and `full`. This mode affects formats `date`, `time`, `date-time`, `uri`, `uri-reference`, and `email`. See [Options](#options) for details. - -You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method. - -The option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can allow specific format(s) that will be ignored. See [Options](#options) for details. - -You can find regular expressions used for format validation and the sources that were used in [formats.js](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js). - - -## Combining schemas with $ref - -You can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword. - -Example: - -```javascript -var schema = { - "$id": "http://example.com/schemas/schema.json", - "type": "object", - "properties": { - "foo": { "$ref": "defs.json#/definitions/int" }, - "bar": { "$ref": "defs.json#/definitions/str" } - } -}; - -var defsSchema = { - "$id": "http://example.com/schemas/defs.json", - "definitions": { - "int": { "type": "integer" }, - "str": { "type": "string" } - } -}; -``` - -Now to compile your schema you can either pass all schemas to Ajv instance: - -```javascript -var ajv = new Ajv({schemas: [schema, defsSchema]}); -var validate = ajv.getSchema('http://example.com/schemas/schema.json'); -``` - -or use `addSchema` method: - -```javascript -var ajv = new Ajv; -var validate = ajv.addSchema(defsSchema) - .compile(schema); -``` - -See [Options](#options) and [addSchema](#api) method. - -__Please note__: -- `$ref` is resolved as the uri-reference using schema $id as the base URI (see the example). -- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.). -- You don't have to host your schema files at the URIs that you use as schema $id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs. -- The actual location of the schema file in the file system is not used. -- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema $id. -- You cannot have the same $id (or the schema identifier) used for more than one schema - the exception will be thrown. -- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation). - - -## $data reference - -With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works. - -`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems. - -The value of "$data" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the $data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema). - -Examples. - -This schema requires that the value in property `smaller` is less or equal than the value in the property larger: - -```javascript -var ajv = new Ajv({$data: true}); - -var schema = { - "properties": { - "smaller": { - "type": "number", - "maximum": { "$data": "1/larger" } - }, - "larger": { "type": "number" } - } -}; - -var validData = { - smaller: 5, - larger: 7 -}; - -ajv.validate(schema, validData); // true -``` - -This schema requires that the properties have the same format as their field names: - -```javascript -var schema = { - "additionalProperties": { - "type": "string", - "format": { "$data": "0#" } - } -}; - -var validData = { - 'date-time': '1963-06-19T08:30:06.283185Z', - email: 'joe.bloggs@example.com' -} -``` - -`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails. - - -## $merge and $patch keywords - -With the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON Schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902). - -To add keywords `$merge` and `$patch` to Ajv instance use this code: - -```javascript -require('ajv-merge-patch')(ajv); -``` - -Examples. - -Using `$merge`: - -```json -{ - "$merge": { - "source": { - "type": "object", - "properties": { "p": { "type": "string" } }, - "additionalProperties": false - }, - "with": { - "properties": { "q": { "type": "number" } } - } - } -} -``` - -Using `$patch`: - -```json -{ - "$patch": { - "source": { - "type": "object", - "properties": { "p": { "type": "string" } }, - "additionalProperties": false - }, - "with": [ - { "op": "add", "path": "/properties/q", "value": { "type": "number" } } - ] - } -} -``` - -The schemas above are equivalent to this schema: - -```json -{ - "type": "object", - "properties": { - "p": { "type": "string" }, - "q": { "type": "number" } - }, - "additionalProperties": false -} -``` - -The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema. - -See the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) for more information. - - -## Defining custom keywords - -The advantages of using custom keywords are: - -- allow creating validation scenarios that cannot be expressed using JSON Schema -- simplify your schemas -- help bringing a bigger part of the validation logic to your schemas -- make your schemas more expressive, less verbose and closer to your application domain -- implement custom data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated - -If a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result). - -The concerns you have to be aware of when extending JSON Schema standard with custom keywords are the portability and understanding of your schemas. You will have to support these custom keywords on other platforms and to properly document these keywords so that everybody can understand them in your schemas. - -You can define custom keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords. - -Ajv allows defining keywords with: -- validation function -- compilation function -- macro function -- inline compilation function that should return code (as string) that will be inlined in the currently compiled schema. - -Example. `range` and `exclusiveRange` keywords using compiled schema: - -```javascript -ajv.addKeyword('range', { - type: 'number', - compile: function (sch, parentSchema) { - var min = sch[0]; - var max = sch[1]; - - return parentSchema.exclusiveRange === true - ? function (data) { return data > min && data < max; } - : function (data) { return data >= min && data <= max; } - } -}); - -var schema = { "range": [2, 4], "exclusiveRange": true }; -var validate = ajv.compile(schema); -console.log(validate(2.01)); // true -console.log(validate(3.99)); // true -console.log(validate(2)); // false -console.log(validate(4)); // false -``` - -Several custom keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package - they can be used for your schemas and as a starting point for your own custom keywords. - -See [Defining custom keywords](https://github.com/ajv-validator/ajv/blob/master/CUSTOM.md) for more details. - - -## Asynchronous schema compilation - -During asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options). - -Example: - -```javascript -var ajv = new Ajv({ loadSchema: loadSchema }); - -ajv.compileAsync(schema).then(function (validate) { - var valid = validate(data); - // ... -}); - -function loadSchema(uri) { - return request.json(uri).then(function (res) { - if (res.statusCode >= 400) - throw new Error('Loading error: ' + res.statusCode); - return res.body; - }); -} -``` - -__Please note__: [Option](#options) `missingRefs` should NOT be set to `"ignore"` or `"fail"` for asynchronous compilation to work. - - -## Asynchronous validation - -Example in Node.js REPL: https://tonicdev.com/esp/ajv-asynchronous-validation - -You can define custom formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [Defining custom keywords](#defining-custom-keywords)). - -If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation. - -__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail. - -Validation function for an asynchronous custom format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return custom errors from the keyword function). - -Ajv compiles asynchronous schemas to [es7 async functions](http://tc39.github.io/ecmascript-asyncawait/) that can optionally be transpiled with [nodent](https://github.com/MatAtBread/nodent). Async functions are supported in Node.js 7+ and all modern browsers. You can also supply any other transpiler as a function via `processCode` option. See [Options](#options). - -The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas. - -Validation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property. - - -Example: - -```javascript -var ajv = new Ajv; -// require('ajv-async')(ajv); - -ajv.addKeyword('idExists', { - async: true, - type: 'number', - validate: checkIdExists -}); - - -function checkIdExists(schema, data) { - return knex(schema.table) - .select('id') - .where('id', data) - .then(function (rows) { - return !!rows.length; // true if record is found - }); -} - -var schema = { - "$async": true, - "properties": { - "userId": { - "type": "integer", - "idExists": { "table": "users" } - }, - "postId": { - "type": "integer", - "idExists": { "table": "posts" } - } - } -}; - -var validate = ajv.compile(schema); - -validate({ userId: 1, postId: 19 }) -.then(function (data) { - console.log('Data is valid', data); // { userId: 1, postId: 19 } -}) -.catch(function (err) { - if (!(err instanceof Ajv.ValidationError)) throw err; - // data is invalid - console.log('Validation errors:', err.errors); -}); -``` - -### Using transpilers with asynchronous validation functions. - -[ajv-async](https://github.com/ajv-validator/ajv-async) uses [nodent](https://github.com/MatAtBread/nodent) to transpile async functions. To use another transpiler you should separately install it (or load its bundle in the browser). - - -#### Using nodent - -```javascript -var ajv = new Ajv; -require('ajv-async')(ajv); -// in the browser if you want to load ajv-async bundle separately you can: -// window.ajvAsync(ajv); -var validate = ajv.compile(schema); // transpiled es7 async function -validate(data).then(successFunc).catch(errorFunc); -``` - - -#### Using other transpilers - -```javascript -var ajv = new Ajv({ processCode: transpileFunc }); -var validate = ajv.compile(schema); // transpiled es7 async function -validate(data).then(successFunc).catch(errorFunc); -``` - -See [Options](#options). - - -## Security considerations - -JSON Schema, if properly used, can replace data sanitisation. It doesn't replace other API security considerations. It also introduces additional security aspects to consider. - - -##### Security contact - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues. - - -##### Untrusted schemas - -Ajv treats JSON schemas as trusted as your application code. This security model is based on the most common use case, when the schemas are static and bundled together with the application. - -If your schemas are received from untrusted sources (or generated from untrusted data) there are several scenarios you need to prevent: -- compiling schemas can cause stack overflow (if they are too deep) -- compiling schemas can be slow (e.g. [#557](https://github.com/ajv-validator/ajv/issues/557)) -- validating certain data can be slow - -It is difficult to predict all the scenarios, but at the very least it may help to limit the size of untrusted schemas (e.g. limit JSON string length) and also the maximum schema object depth (that can be high for relatively small JSON strings). You also may want to mitigate slow regular expressions in `pattern` and `patternProperties` keywords. - -Regardless the measures you take, using untrusted schemas increases security risks. - - -##### Circular references in JavaScript objects - -Ajv does not support schemas and validated data that have circular references in objects. See [issue #802](https://github.com/ajv-validator/ajv/issues/802). - -An attempt to compile such schemas or validate such data would cause stack overflow (or will not complete in case of asynchronous validation). Depending on the parser you use, untrusted data can lead to circular references. - - -##### Security risks of trusted schemas - -Some keywords in JSON Schemas can lead to very slow validation for certain data. These keywords include (but may be not limited to): - -- `pattern` and `format` for large strings - in some cases using `maxLength` can help mitigate it, but certain regular expressions can lead to exponential validation time even with relatively short strings (see [ReDoS attack](#redos-attack)). -- `patternProperties` for large property names - use `propertyNames` to mitigate, but some regular expressions can have exponential evaluation time as well. -- `uniqueItems` for large non-scalar arrays - use `maxItems` to mitigate - -__Please note__: The suggestions above to prevent slow validation would only work if you do NOT use `allErrors: true` in production code (using it would continue validation after validation errors). - -You can validate your JSON schemas against [this meta-schema](https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-secure.json) to check that these recommendations are followed: - -```javascript -const isSchemaSecure = ajv.compile(require('ajv/lib/refs/json-schema-secure.json')); - -const schema1 = {format: 'email'}; -isSchemaSecure(schema1); // false - -const schema2 = {format: 'email', maxLength: MAX_LENGTH}; -isSchemaSecure(schema2); // true -``` - -__Please note__: following all these recommendation is not a guarantee that validation of untrusted data is safe - it can still lead to some undesirable results. - - -##### Content Security Policies (CSP) -See [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp) - - -## ReDoS attack - -Certain regular expressions can lead to the exponential evaluation time even with relatively short strings. - -Please assess the regular expressions you use in the schemas on their vulnerability to this attack - see [safe-regex](https://github.com/substack/safe-regex), for example. - -__Please note__: some formats that Ajv implements use [regular expressions](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js) that can be vulnerable to ReDoS attack, so if you use Ajv to validate data from untrusted sources __it is strongly recommended__ to consider the following: - -- making assessment of "format" implementations in Ajv. -- using `format: 'fast'` option that simplifies some of the regular expressions (although it does not guarantee that they are safe). -- replacing format implementations provided by Ajv with your own implementations of "format" keyword that either uses different regular expressions or another approach to format validation. Please see [addFormat](#api-addformat) method. -- disabling format validation by ignoring "format" keyword with option `format: false` - -Whatever mitigation you choose, please assume all formats provided by Ajv as potentially unsafe and make your own assessment of their suitability for your validation scenarios. - - -## Filtering data - -With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation. - -This option modifies original data. - -Example: - -```javascript -var ajv = new Ajv({ removeAdditional: true }); -var schema = { - "additionalProperties": false, - "properties": { - "foo": { "type": "number" }, - "bar": { - "additionalProperties": { "type": "number" }, - "properties": { - "baz": { "type": "string" } - } - } - } -} - -var data = { - "foo": 0, - "additional1": 1, // will be removed; `additionalProperties` == false - "bar": { - "baz": "abc", - "additional2": 2 // will NOT be removed; `additionalProperties` != false - }, -} - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": 0, "bar": { "baz": "abc", "additional2": 2 } -``` - -If `removeAdditional` option in the example above were `"all"` then both `additional1` and `additional2` properties would have been removed. - -If the option were `"failing"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed). - -__Please note__: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example: - -```json -{ - "type": "object", - "oneOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "required": [ "foo" ], - "additionalProperties": false - }, - { - "properties": { - "bar": { "type": "integer" } - }, - "required": [ "bar" ], - "additionalProperties": false - } - ] -} -``` - -The intention of the schema above is to allow objects with either the string property "foo" or the integer property "bar", but not with both and not with any other properties. - -With the option `removeAdditional: true` the validation will pass for the object `{ "foo": "abc"}` but will fail for the object `{"bar": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema). - -While this behaviour is unexpected (issues [#129](https://github.com/ajv-validator/ajv/issues/129), [#134](https://github.com/ajv-validator/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way: - -```json -{ - "type": "object", - "properties": { - "foo": { "type": "string" }, - "bar": { "type": "integer" } - }, - "additionalProperties": false, - "oneOf": [ - { "required": [ "foo" ] }, - { "required": [ "bar" ] } - ] -} -``` - -The schema above is also more efficient - it will compile into a faster function. - - -## Assigning defaults - -With [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items. - -With the option value `"empty"` properties and items equal to `null` or `""` (empty string) will be considered missing and assigned defaults. - -This option modifies original data. - -__Please note__: the default value is inserted in the generated validation code as a literal, so the value inserted in the data will be the deep clone of the default in the schema. - - -Example 1 (`default` in `properties`): - -```javascript -var ajv = new Ajv({ useDefaults: true }); -var schema = { - "type": "object", - "properties": { - "foo": { "type": "number" }, - "bar": { "type": "string", "default": "baz" } - }, - "required": [ "foo", "bar" ] -}; - -var data = { "foo": 1 }; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": 1, "bar": "baz" } -``` - -Example 2 (`default` in `items`): - -```javascript -var schema = { - "type": "array", - "items": [ - { "type": "number" }, - { "type": "string", "default": "foo" } - ] -} - -var data = [ 1 ]; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // [ 1, "foo" ] -``` - -`default` keywords in other cases are ignored: - -- not in `properties` or `items` subschemas -- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/ajv-validator/ajv/issues/42)) -- in `if` subschema of `switch` keyword -- in schemas generated by custom macro keywords - -The [`strictDefaults` option](#options) customizes Ajv's behavior for the defaults that Ajv ignores (`true` raises an error, and `"log"` outputs a warning). - - -## Coercing data types - -When you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards. - -This option modifies original data. - -__Please note__: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value. - - -Example 1: - -```javascript -var ajv = new Ajv({ coerceTypes: true }); -var schema = { - "type": "object", - "properties": { - "foo": { "type": "number" }, - "bar": { "type": "boolean" } - }, - "required": [ "foo", "bar" ] -}; - -var data = { "foo": "1", "bar": "false" }; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": 1, "bar": false } -``` - -Example 2 (array coercions): - -```javascript -var ajv = new Ajv({ coerceTypes: 'array' }); -var schema = { - "properties": { - "foo": { "type": "array", "items": { "type": "number" } }, - "bar": { "type": "boolean" } - } -}; - -var data = { "foo": "1", "bar": ["false"] }; - -var validate = ajv.compile(schema); - -console.log(validate(data)); // true -console.log(data); // { "foo": [1], "bar": false } -``` - -The coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of "anyOf" and other compound keywords). - -See [Coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md) for details. - - -## API - -##### new Ajv(Object options) -> Object - -Create Ajv instance. - - -##### .compile(Object schema) -> Function<Object data> - -Generate validating function and cache the compiled schema for future use. - -Validating function returns a boolean value. This function has properties `errors` and `schema`. Errors encountered during the last validation are assigned to `errors` property (it is assigned `null` if there was no errors). `schema` property contains the reference to the original schema. - -The schema passed to this method will be validated against meta-schema unless `validateSchema` option is false. If schema is invalid, an error will be thrown. See [options](#options). - - -##### .compileAsync(Object schema [, Boolean meta] [, Function callback]) -> Promise - -Asynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when: - -- missing schema can't be loaded (`loadSchema` returns a Promise that rejects). -- a schema containing a missing reference is loaded, but the reference cannot be resolved. -- schema (or some loaded/referenced schema) is invalid. - -The function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded. - -You can asynchronously compile meta-schema by passing `true` as the second parameter. - -See example in [Asynchronous compilation](#asynchronous-schema-compilation). - - -##### .validate(Object schema|String key|String ref, data) -> Boolean - -Validate data using passed schema (it will be compiled and cached). - -Instead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference. - -Validation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors). - -__Please note__: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later. - -If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation). - - -##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv - -Add schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole. - -Array of schemas can be passed (schemas should have ids), the second parameter will be ignored. - -Key can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key. - - -Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data. - -Although `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time. - -By default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option. - -__Please note__: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`. -This allows you to do nice things like the following. - -```javascript -var validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri); -``` - -##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv - -Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option). - -There is no need to explicitly add draft-07 meta schema (http://json-schema.org/draft-07/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`. - - -##### .validateSchema(Object schema) -> Boolean - -Validates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard. - -By default this method is called automatically when the schema is added, so you rarely need to use it directly. - -If schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false). - -If schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema. - -Errors will be available at `ajv.errors`. - - -##### .getSchema(String key) -> Function<Object data> - -Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema. - - -##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv - -Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references. - -Schema can be removed using: -- key passed to `addSchema` -- it's full reference (id) -- RegExp that should match schema id or key (meta-schemas won't be removed) -- actual schema object that will be stable-stringified to remove schema from cache - -If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared. - - -##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv - -Add custom format to validate strings or numbers. It can also be used to replace pre-defined formats for Ajv instance. - -Strings are converted to RegExp. - -Function should return validation result as `true` or `false`. - -If object is passed it should have properties `validate`, `compare` and `async`: - -- _validate_: a string, RegExp or a function as described above. -- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal. -- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`. -- _type_: an optional type of data that the format applies to. It can be `"string"` (default) or `"number"` (see https://github.com/ajv-validator/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass. - -Custom formats can be also added via `formats` option. - - -##### .addKeyword(String keyword, Object definition) -> Ajv - -Add custom validation keyword to Ajv instance. - -Keyword should be different from all standard JSON Schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance. - -Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`. -It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions. - -Example Keywords: -- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions. -- `"example"`: valid, but not recommended as it could collide with future versions of JSON Schema etc. -- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword - -Keyword definition is an object with the following properties: - -- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types. -- _validate_: validating function -- _compile_: compiling function -- _macro_: macro function -- _inline_: compiling function that returns code (as string) -- _schema_: an optional `false` value used with "validate" keyword to not pass schema -- _metaSchema_: an optional meta-schema for keyword schema -- _dependencies_: an optional list of properties that must be present in the parent schema - it will be checked during schema compilation -- _modifying_: `true` MUST be passed if keyword modifies data -- _statements_: `true` can be passed in case inline keyword generates statements (as opposed to expression) -- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords. -- _$data_: an optional `true` value to support [$data reference](#data-reference) as the value of custom keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has validating function (as the only option or in addition to compile, macro or inline function). -- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of "macro" and "inline" keywords. -- _errors_: an optional boolean or string `"full"` indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation. - -_compile_, _macro_ and _inline_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to them to support $data reference. - -__Please note__: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed. - -See [Defining custom keywords](#defining-custom-keywords) for more details. - - -##### .getKeyword(String keyword) -> Object|Boolean - -Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown. - - -##### .removeKeyword(String keyword) -> Ajv - -Removes custom or pre-defined keyword so you can redefine them. - -While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results. - -__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again. - - -##### .errorsText([Array<Object> errors [, Object options]]) -> String - -Returns the text with all errors in a String. - -Options can have properties `separator` (string used to separate errors, ", " by default) and `dataVar` (the variable name that dataPaths are prefixed with, "data" by default). - - -## Options - -Defaults: - -```javascript -{ - // validation and reporting options: - $data: false, - allErrors: false, - verbose: false, - $comment: false, // NEW in Ajv version 6.0 - jsonPointers: false, - uniqueItems: true, - unicode: true, - nullable: false, - format: 'fast', - formats: {}, - unknownFormats: true, - schemas: {}, - logger: undefined, - // referenced schema options: - schemaId: '$id', - missingRefs: true, - extendRefs: 'ignore', // recommended 'fail' - loadSchema: undefined, // function(uri: string): Promise {} - // options to modify validated data: - removeAdditional: false, - useDefaults: false, - coerceTypes: false, - // strict mode options - strictDefaults: false, - strictKeywords: false, - strictNumbers: false, - // asynchronous validation options: - transpile: undefined, // requires ajv-async package - // advanced options: - meta: true, - validateSchema: true, - addUsedSchema: true, - inlineRefs: true, - passContext: false, - loopRequired: Infinity, - ownProperties: false, - multipleOfPrecision: false, - errorDataPath: 'object', // deprecated - messages: true, - sourceCode: false, - processCode: undefined, // function (str: string, schema: object): string {} - cache: new Cache, - serialize: undefined -} -``` - -##### Validation and reporting options - -- _$data_: support [$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api). -- _allErrors_: check all rules collecting all errors. Default is to return after the first error. -- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default). -- _$comment_ (NEW in Ajv version 6.0): log or pass the value of `$comment` keyword to a function. Option values: - - `false` (default): ignore $comment keyword. - - `true`: log the keyword value to console. - - function: pass the keyword value, its schema path and root schema to the specified function -- _jsonPointers_: set `dataPath` property of errors using [JSON Pointers](https://tools.ietf.org/html/rfc6901) instead of JavaScript property access notation. -- _uniqueItems_: validate `uniqueItems` keyword (true by default). -- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters. -- _nullable_: support keyword "nullable" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/). -- _format_: formats validation mode. Option values: - - `"fast"` (default) - simplified and fast validation (see [Formats](#formats) for details of which formats are available and affected by this option). - - `"full"` - more restrictive and slow validation. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode. - - `false` - ignore all format keywords. -- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method. -- _keywords_: an object with custom keywords. Keys and values will be passed to `addKeyword` method. -- _unknownFormats_: handling of unknown formats. Option values: - - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [$data reference](#data-reference) and it is unknown the validation will fail. - - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [$data reference](#data-reference) and it is not in this array the validation will fail. - - `"ignore"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON Schema specification. -- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object. -- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. See [Error logging](#error-logging). Option values: - - custom logger - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown. - - `false` - logging is disabled. - - -##### Referenced schema options - -- _schemaId_: this option defines which keywords are used as schema URI. Option value: - - `"$id"` (default) - only use `$id` keyword as schema URI (as specified in JSON Schema draft-06/07), ignore `id` keyword (if it is present a warning will be logged). - - `"id"` - only use `id` keyword as schema URI (as specified in JSON Schema draft-04), ignore `$id` keyword (if it is present a warning will be logged). - - `"auto"` - use both `$id` and `id` keywords as schema URI. If both are present (in the same schema object) and different the exception will be thrown during schema compilation. -- _missingRefs_: handling of missing referenced schemas. Option values: - - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted). - - `"ignore"` - to log error during compilation and always pass validation. - - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked. -- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values: - - `"ignore"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation. - - `"fail"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing. - - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0). -- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation). - - -##### Options to modify validated data - -- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values: - - `false` (default) - not to remove additional properties - - `"all"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them). - - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed. - - `"failing"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema). -- _useDefaults_: replace missing or undefined properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values: - - `false` (default) - do not use defaults - - `true` - insert defaults by value (object literal is used). - - `"empty"` - in addition to missing or undefined, use defaults for properties and items that are equal to `null` or `""` (an empty string). - - `"shared"` (deprecated) - insert defaults by reference. If the default is an object, it will be shared by all instances of validated data. If you modify the inserted default in the validated data, it will be modified in the schema as well. -- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md). Option values: - - `false` (default) - no type coercion. - - `true` - coerce scalar data types. - - `"array"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema). - - -##### Strict mode options - -- _strictDefaults_: report ignored `default` keywords in schemas. Option values: - - `false` (default) - ignored defaults are not reported - - `true` - if an ignored default is present, throw an error - - `"log"` - if an ignored default is present, log warning -- _strictKeywords_: report unknown keywords in schemas. Option values: - - `false` (default) - unknown keywords are not reported - - `true` - if an unknown keyword is present, throw an error - - `"log"` - if an unknown keyword is present, log warning -- _strictNumbers_: validate numbers strictly, failing validation for NaN and Infinity. Option values: - - `false` (default) - NaN or Infinity will pass validation for numeric types - - `true` - NaN or Infinity will not pass validation for numeric types - -##### Asynchronous validation options - -- _transpile_: Requires [ajv-async](https://github.com/ajv-validator/ajv-async) package. It determines whether Ajv transpiles compiled asynchronous validation function. Option values: - - `undefined` (default) - transpile with [nodent](https://github.com/MatAtBread/nodent) if async functions are not supported. - - `true` - always transpile with nodent. - - `false` - do not transpile; if async functions are not supported an exception will be thrown. - - -##### Advanced options - -- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword. -- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can be http://json-schema.org/draft-07/schema or absent (draft-07 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values: - - `true` (default) - if the validation fails, throw the exception. - - `"log"` - if the validation fails, log error. - - `false` - skip schema validation. -- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with "#". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method. -- _inlineRefs_: Affects compilation of referenced schemas. Option values: - - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions. - - `false` - to not inline referenced schemas (they will be compiled as separate functions). - - integer number - to limit the maximum number of keywords of the schema that will be inlined. -- _passContext_: pass validation context to custom keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your custom keywords. By default `this` is Ajv instance. -- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance. -- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst. -- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/ajv-validator/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations). -- _errorDataPath_ (deprecated): set `dataPath` to point to 'object' (default) or to 'property' when validating keywords `required`, `additionalProperties` and `dependencies`. -- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when custom messages are used (e.g. with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n)). -- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call). -- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code. Starting from version 5.0.0 this option replaced options: - - `beautify` that formatted the generated function using [js-beautify](https://github.com/beautify-web/js-beautify). If you want to beautify the generated code pass a function calling `require('js-beautify').js_beautify` as `processCode: code => js_beautify(code)`. - - `transpile` that transpiled asynchronous validation function. You can still use `transpile` option with [ajv-async](https://github.com/ajv-validator/ajv-async) package. See [Asynchronous validation](#asynchronous-validation) for more information. -- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`. -- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used. - - -## Validation errors - -In case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property. - - -### Error objects - -Each error is an object with the following properties: - -- _keyword_: validation keyword. -- _dataPath_: the path to the part of the data that was validated. By default `dataPath` uses JavaScript property access notation (e.g., `".prop[1].subProp"`). When the option `jsonPointers` is true (see [Options](#options)) `dataPath` will be set using JSON pointer standard (e.g., `"/prop/1/subProp"`). -- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation. -- _params_: the object with the additional information about error that can be used to create custom error messages (e.g., using [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package). See below for parameters set by all keywords. -- _message_: the standard error message (can be excluded with option `messages` set to false). -- _schema_: the schema of the keyword (added with `verbose` option). -- _parentSchema_: the schema containing the keyword (added with `verbose` option) -- _data_: the data validated by the keyword (added with `verbose` option). - -__Please note__: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `"propertyNames"`. - - -### Error parameters - -Properties of `params` object in errors depend on the keyword that failed validation. - -- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword). -- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false). -- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords). -- `dependencies` - properties: - - `property` (dependent property), - - `missingProperty` (required missing dependency - only the first one is reported currently) - - `deps` (required dependencies, comma separated list as a string), - - `depsCount` (the number of required dependencies). -- `format` - property `format` (the schema of the keyword). -- `maximum`, `minimum` - properties: - - `limit` (number, the schema of the keyword), - - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`), - - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be "<", "<=", ">", ">=") -- `multipleOf` - property `multipleOf` (the schema of the keyword) -- `pattern` - property `pattern` (the schema of the keyword) -- `required` - property `missingProperty` (required property that is missing). -- `propertyNames` - property `propertyName` (an invalid property name). -- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property). -- `type` - property `type` (required type(s), a string, can be a comma-separated list) -- `uniqueItems` - properties `i` and `j` (indices of duplicate items). -- `const` - property `allowedValue` pointing to the value (the schema of the keyword). -- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword). -- `$ref` - property `ref` with the referenced schema URI. -- `oneOf` - property `passingSchemas` (array of indices of passing schemas, null if no schema passes). -- custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name). - - -### Error logging - -Using the `logger` option when initiallizing Ajv will allow you to define custom logging. Here you can build upon the exisiting logging. The use of other logging packages is supported as long as the package or its associated wrapper exposes the required methods. If any of the required methods are missing an exception will be thrown. -- **Required Methods**: `log`, `warn`, `error` - -```javascript -var otherLogger = new OtherLogger(); -var ajv = new Ajv({ - logger: { - log: console.log.bind(console), - warn: function warn() { - otherLogger.logWarn.apply(otherLogger, arguments); - }, - error: function error() { - otherLogger.logError.apply(otherLogger, arguments); - console.error.apply(console, arguments); - } - } -}); -``` - - -## Plugins - -Ajv can be extended with plugins that add custom keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions: - -- it exports a function -- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining -- this function can accept an optional configuration as the second parameter - -If you have published a useful plugin please submit a PR to add it to the next section. - - -## Related packages - -- [ajv-async](https://github.com/ajv-validator/ajv-async) - plugin to configure async validation mode -- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats -- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface -- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for custom error messages -- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages -- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas -- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with custom validation keywords (select, typeof, etc.) -- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch -- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions -- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't already included in ajv (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`). - -## Some packages using Ajv - -- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser -- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services -- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition -- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator -- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org -- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com -- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js -- [table](https://github.com/gajus/table) - formats data into a string table -- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser -- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content -- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation -- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation -- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages -- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema -- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests -- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema -- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file -- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app -- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter -- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages -- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX - - -## Tests - -``` -npm install -git submodule update --init -npm test -``` - -## Contributing - -All validation functions are generated using doT templates in [dot](https://github.com/ajv-validator/ajv/tree/master/lib/dot) folder. Templates are precompiled so doT is not a run-time dependency. - -`npm run build` - compiles templates to [dotjs](https://github.com/ajv-validator/ajv/tree/master/lib/dotjs) folder. - -`npm run watch` - automatically compiles templates when files in dot folder change - -Please see [Contributing guidelines](https://github.com/ajv-validator/ajv/blob/master/CONTRIBUTING.md) - - -## Changes history - -See https://github.com/ajv-validator/ajv/releases - -__Please note__: [Changes in version 7.0.0-beta](https://github.com/ajv-validator/ajv/releases/tag/v7.0.0-beta.0) - -[Version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0). - -## Code of conduct - -Please review and follow the [Code of conduct](https://github.com/ajv-validator/ajv/blob/master/CODE_OF_CONDUCT.md). - -Please report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team. - - -## Open-source software support - -Ajv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers. - - -## License - -[MIT](https://github.com/ajv-validator/ajv/blob/master/LICENSE) diff --git a/build/node_modules/ajv/package.json b/build/node_modules/ajv/package.json deleted file mode 100644 index 559a933c..00000000 --- a/build/node_modules/ajv/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "name": "ajv", - "version": "6.12.6", - "description": "Another JSON Schema Validator", - "main": "lib/ajv.js", - "typings": "lib/ajv.d.ts", - "files": [ - "lib/", - "dist/", - "scripts/", - "LICENSE", - ".tonic_example.js" - ], - "scripts": { - "eslint": "eslint lib/{compile/,}*.js spec/{**/,}*.js scripts --ignore-pattern spec/JSON-Schema-Test-Suite", - "jshint": "jshint lib/{compile/,}*.js", - "lint": "npm run jshint && npm run eslint", - "test-spec": "mocha spec/{**/,}*.spec.js -R spec", - "test-fast": "AJV_FAST_TEST=true npm run test-spec", - "test-debug": "npm run test-spec -- --inspect-brk", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny --noEmit spec/typescript/index.ts", - "bundle": "del-cli dist && node ./scripts/bundle.js . Ajv pure_getters", - "bundle-beautify": "node ./scripts/bundle.js js-beautify", - "build": "del-cli lib/dotjs/*.js \"!lib/dotjs/index.js\" && node scripts/compile-dots.js", - "test-karma": "karma start", - "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", - "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", - "test": "npm run lint && npm run build && npm run test-all", - "prepublish": "npm run build && npm run bundle", - "watch": "watch \"npm run build\" ./lib/dot" - }, - "nyc": { - "exclude": [ - "**/spec/**", - "node_modules" - ], - "reporter": [ - "lcov", - "text-summary" - ] - }, - "repository": { - "type": "git", - "url": "https://github.com/ajv-validator/ajv.git" - }, - "keywords": [ - "JSON", - "schema", - "validator", - "validation", - "jsonschema", - "json-schema", - "json-schema-validator", - "json-schema-validation" - ], - "author": "Evgeny Poberezkin", - "license": "MIT", - "bugs": { - "url": "https://github.com/ajv-validator/ajv/issues" - }, - "homepage": "https://github.com/ajv-validator/ajv", - "tonicExampleFilename": ".tonic_example.js", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "devDependencies": { - "ajv-async": "^1.0.0", - "bluebird": "^3.5.3", - "brfs": "^2.0.0", - "browserify": "^16.2.0", - "chai": "^4.0.1", - "coveralls": "^3.0.1", - "del-cli": "^3.0.0", - "dot": "^1.0.3", - "eslint": "^7.3.1", - "gh-pages-generator": "^0.2.3", - "glob": "^7.0.0", - "if-node-version": "^1.0.0", - "js-beautify": "^1.7.3", - "jshint": "^2.10.2", - "json-schema-test": "^2.0.0", - "karma": "^5.0.0", - "karma-chrome-launcher": "^3.0.0", - "karma-mocha": "^2.0.0", - "karma-sauce-launcher": "^4.1.3", - "mocha": "^8.0.1", - "nyc": "^15.0.0", - "pre-commit": "^1.1.1", - "require-globify": "^1.3.0", - "typescript": "^3.9.5", - "uglify-js": "^3.6.9", - "watch": "^1.0.0" - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/ajv" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } -} diff --git a/build/node_modules/ansi-colors/LICENSE b/build/node_modules/ansi-colors/LICENSE deleted file mode 100644 index 8749cc75..00000000 --- a/build/node_modules/ansi-colors/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-present, Brian Woodward. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/ansi-colors/README.md b/build/node_modules/ansi-colors/README.md deleted file mode 100644 index dcdbcb50..00000000 --- a/build/node_modules/ansi-colors/README.md +++ /dev/null @@ -1,315 +0,0 @@ -# ansi-colors [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/ansi-colors.svg?style=flat)](https://www.npmjs.com/package/ansi-colors) [![NPM monthly downloads](https://img.shields.io/npm/dm/ansi-colors.svg?style=flat)](https://npmjs.org/package/ansi-colors) [![NPM total downloads](https://img.shields.io/npm/dt/ansi-colors.svg?style=flat)](https://npmjs.org/package/ansi-colors) [![Linux Build Status](https://img.shields.io/travis/doowb/ansi-colors.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/ansi-colors) - -> Easily add ANSI colors to your text and symbols in the terminal. A faster drop-in replacement for chalk, kleur and turbocolor (without the dependencies and rendering bugs). - -Please consider following this project's author, [Brian Woodward](https://github.com/doowb), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save ansi-colors -``` - -![image](https://user-images.githubusercontent.com/383994/39635445-8a98a3a6-4f8b-11e8-89c1-068c45d4fff8.png) - -## Why use this? - -ansi-colors is _the fastest Node.js library for terminal styling_. A more performant drop-in replacement for chalk, with no dependencies. - -* _Blazing fast_ - Fastest terminal styling library in node.js, 10-20x faster than chalk! - -* _Drop-in replacement_ for [chalk](https://github.com/chalk/chalk). -* _No dependencies_ (Chalk has 7 dependencies in its tree!) - -* _Safe_ - Does not modify the `String.prototype` like [colors](https://github.com/Marak/colors.js). -* Supports [nested colors](#nested-colors), **and does not have the [nested styling bug](#nested-styling-bug) that is present in [colorette](https://github.com/jorgebucaran/colorette), [chalk](https://github.com/chalk/chalk), and [kleur](https://github.com/lukeed/kleur)**. -* Supports [chained colors](#chained-colors). -* [Toggle color support](#toggle-color-support) on or off. - -## Usage - -```js -const c = require('ansi-colors'); - -console.log(c.red('This is a red string!')); -console.log(c.green('This is a red string!')); -console.log(c.cyan('This is a cyan string!')); -console.log(c.yellow('This is a yellow string!')); -``` - -![image](https://user-images.githubusercontent.com/383994/39653848-a38e67da-4fc0-11e8-89ae-98c65ebe9dcf.png) - -## Chained colors - -```js -console.log(c.bold.red('this is a bold red message')); -console.log(c.bold.yellow.italic('this is a bold yellow italicized message')); -console.log(c.green.bold.underline('this is a bold green underlined message')); -``` - -![image](https://user-images.githubusercontent.com/383994/39635780-7617246a-4f8c-11e8-89e9-05216cc54e38.png) - -## Nested colors - -```js -console.log(c.yellow(`foo ${c.red.bold('red')} bar ${c.cyan('cyan')} baz`)); -``` - -![image](https://user-images.githubusercontent.com/383994/39635817-8ed93d44-4f8c-11e8-8afd-8c3ea35f5fbe.png) - -### Nested styling bug - -`ansi-colors` does not have the nested styling bug found in [colorette](https://github.com/jorgebucaran/colorette), [chalk](https://github.com/chalk/chalk), and [kleur](https://github.com/lukeed/kleur). - -```js -const { bold, red } = require('ansi-styles'); -console.log(bold(`foo ${red.dim('bar')} baz`)); - -const colorette = require('colorette'); -console.log(colorette.bold(`foo ${colorette.red(colorette.dim('bar'))} baz`)); - -const kleur = require('kleur'); -console.log(kleur.bold(`foo ${kleur.red.dim('bar')} baz`)); - -const chalk = require('chalk'); -console.log(chalk.bold(`foo ${chalk.red.dim('bar')} baz`)); -``` - -**Results in the following** - -(sans icons and labels) - -![image](https://user-images.githubusercontent.com/383994/47280326-d2ee0580-d5a3-11e8-9611-ea6010f0a253.png) - -## Toggle color support - -Easily enable/disable colors. - -```js -const c = require('ansi-colors'); - -// disable colors manually -c.enabled = false; - -// or use a library to automatically detect support -c.enabled = require('color-support').hasBasic; - -console.log(c.red('I will only be colored red if the terminal supports colors')); -``` - -## Strip ANSI codes - -Use the `.unstyle` method to strip ANSI codes from a string. - -```js -console.log(c.unstyle(c.blue.bold('foo bar baz'))); -//=> 'foo bar baz' -``` - -## Available styles - -**Note** that bright and bright-background colors are not always supported. - -| Colors | Background Colors | Bright Colors | Bright Background Colors | -| ------- | ----------------- | ------------- | ------------------------ | -| black | bgBlack | blackBright | bgBlackBright | -| red | bgRed | redBright | bgRedBright | -| green | bgGreen | greenBright | bgGreenBright | -| yellow | bgYellow | yellowBright | bgYellowBright | -| blue | bgBlue | blueBright | bgBlueBright | -| magenta | bgMagenta | magentaBright | bgMagentaBright | -| cyan | bgCyan | cyanBright | bgCyanBright | -| white | bgWhite | whiteBright | bgWhiteBright | -| gray | | | | -| grey | | | | - -_(`gray` is the U.S. spelling, `grey` is more commonly used in the Canada and U.K.)_ - -### Style modifiers - -* dim -* **bold** - -* hidden -* _italic_ - -* underline -* inverse -* ~~strikethrough~~ - -* reset - -## Aliases - -Create custom aliases for styles. - -```js -const colors = require('ansi-colors'); - -colors.alias('primary', colors.yellow); -colors.alias('secondary', colors.bold); - -console.log(colors.primary.secondary('Foo')); -``` - -## Themes - -A theme is an object of custom aliases. - -```js -const colors = require('ansi-colors'); - -colors.theme({ - danger: colors.red, - dark: colors.dim.gray, - disabled: colors.gray, - em: colors.italic, - heading: colors.bold.underline, - info: colors.cyan, - muted: colors.dim, - primary: colors.blue, - strong: colors.bold, - success: colors.green, - underline: colors.underline, - warning: colors.yellow -}); - -// Now, we can use our custom styles alongside the built-in styles! -console.log(colors.danger.strong.em('Error!')); -console.log(colors.warning('Heads up!')); -console.log(colors.info('Did you know...')); -console.log(colors.success.bold('It worked!')); -``` - -## Performance - -**Libraries tested** - -* ansi-colors v3.0.4 -* chalk v2.4.1 - -### Mac - -> MacBook Pro, Intel Core i7, 2.3 GHz, 16 GB. - -**Load time** - -Time it takes to load the first time `require()` is called: - -* ansi-colors - `1.915ms` -* chalk - `12.437ms` - -**Benchmarks** - -``` -# All Colors - ansi-colors x 173,851 ops/sec ±0.42% (91 runs sampled) - chalk x 9,944 ops/sec ±2.53% (81 runs sampled))) - -# Chained colors - ansi-colors x 20,791 ops/sec ±0.60% (88 runs sampled) - chalk x 2,111 ops/sec ±2.34% (83 runs sampled) - -# Nested colors - ansi-colors x 59,304 ops/sec ±0.98% (92 runs sampled) - chalk x 4,590 ops/sec ±2.08% (82 runs sampled) -``` - -### Windows - -> Windows 10, Intel Core i7-7700k CPU @ 4.2 GHz, 32 GB - -**Load time** - -Time it takes to load the first time `require()` is called: - -* ansi-colors - `1.494ms` -* chalk - `11.523ms` - -**Benchmarks** - -``` -# All Colors - ansi-colors x 193,088 ops/sec ±0.51% (95 runs sampled)) - chalk x 9,612 ops/sec ±3.31% (77 runs sampled))) - -# Chained colors - ansi-colors x 26,093 ops/sec ±1.13% (94 runs sampled) - chalk x 2,267 ops/sec ±2.88% (80 runs sampled)) - -# Nested colors - ansi-colors x 67,747 ops/sec ±0.49% (93 runs sampled) - chalk x 4,446 ops/sec ±3.01% (82 runs sampled)) -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Related projects - -You might also be interested in these projects: - -* [ansi-wrap](https://www.npmjs.com/package/ansi-wrap): Create ansi colors by passing the open and close codes. | [homepage](https://github.com/jonschlinkert/ansi-wrap "Create ansi colors by passing the open and close codes.") -* [strip-color](https://www.npmjs.com/package/strip-color): Strip ANSI color codes from a string. No dependencies. | [homepage](https://github.com/jonschlinkert/strip-color "Strip ANSI color codes from a string. No dependencies.") - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 48 | [jonschlinkert](https://github.com/jonschlinkert) | -| 42 | [doowb](https://github.com/doowb) | -| 6 | [lukeed](https://github.com/lukeed) | -| 2 | [Silic0nS0ldier](https://github.com/Silic0nS0ldier) | -| 1 | [dwieeb](https://github.com/dwieeb) | -| 1 | [jorgebucaran](https://github.com/jorgebucaran) | -| 1 | [madhavarshney](https://github.com/madhavarshney) | -| 1 | [chapterjason](https://github.com/chapterjason) | - -### Author - -**Brian Woodward** - -* [GitHub Profile](https://github.com/doowb) -* [Twitter Profile](https://twitter.com/doowb) -* [LinkedIn Profile](https://linkedin.com/in/woodwardbrian) - -### License - -Copyright © 2019, [Brian Woodward](https://github.com/doowb). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on July 01, 2019._ \ No newline at end of file diff --git a/build/node_modules/ansi-colors/index.js b/build/node_modules/ansi-colors/index.js deleted file mode 100644 index d80fe2b7..00000000 --- a/build/node_modules/ansi-colors/index.js +++ /dev/null @@ -1,184 +0,0 @@ -'use strict'; - -const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); - -/* eslint-disable no-control-regex */ -// this is a modified version of https://github.com/chalk/ansi-regex (MIT License) -const ANSI_REGEX = /[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g; - -const hasColor = () => { - if (typeof process !== 'undefined') { - return process.env.FORCE_COLOR !== '0'; - } - return false; -}; - -const create = () => { - const colors = { - enabled: hasColor(), - visible: true, - styles: {}, - keys: {} - }; - - const ansi = style => { - let open = style.open = `\u001b[${style.codes[0]}m`; - let close = style.close = `\u001b[${style.codes[1]}m`; - let regex = style.regex = new RegExp(`\\u001b\\[${style.codes[1]}m`, 'g'); - style.wrap = (input, newline) => { - if (input.includes(close)) input = input.replace(regex, close + open); - let output = open + input + close; - // see https://github.com/chalk/chalk/pull/92, thanks to the - // chalk contributors for this fix. However, we've confirmed that - // this issue is also present in Windows terminals - return newline ? output.replace(/\r*\n/g, `${close}$&${open}`) : output; - }; - return style; - }; - - const wrap = (style, input, newline) => { - return typeof style === 'function' ? style(input) : style.wrap(input, newline); - }; - - const style = (input, stack) => { - if (input === '' || input == null) return ''; - if (colors.enabled === false) return input; - if (colors.visible === false) return ''; - let str = '' + input; - let nl = str.includes('\n'); - let n = stack.length; - if (n > 0 && stack.includes('unstyle')) { - stack = [...new Set(['unstyle', ...stack])].reverse(); - } - while (n-- > 0) str = wrap(colors.styles[stack[n]], str, nl); - return str; - }; - - const define = (name, codes, type) => { - colors.styles[name] = ansi({ name, codes }); - let keys = colors.keys[type] || (colors.keys[type] = []); - keys.push(name); - - Reflect.defineProperty(colors, name, { - configurable: true, - enumerable: true, - set(value) { - colors.alias(name, value); - }, - get() { - let color = input => style(input, color.stack); - Reflect.setPrototypeOf(color, colors); - color.stack = this.stack ? this.stack.concat(name) : [name]; - return color; - } - }); - }; - - define('reset', [0, 0], 'modifier'); - define('bold', [1, 22], 'modifier'); - define('dim', [2, 22], 'modifier'); - define('italic', [3, 23], 'modifier'); - define('underline', [4, 24], 'modifier'); - define('inverse', [7, 27], 'modifier'); - define('hidden', [8, 28], 'modifier'); - define('strikethrough', [9, 29], 'modifier'); - - define('black', [30, 39], 'color'); - define('red', [31, 39], 'color'); - define('green', [32, 39], 'color'); - define('yellow', [33, 39], 'color'); - define('blue', [34, 39], 'color'); - define('magenta', [35, 39], 'color'); - define('cyan', [36, 39], 'color'); - define('white', [37, 39], 'color'); - define('gray', [90, 39], 'color'); - define('grey', [90, 39], 'color'); - - define('bgBlack', [40, 49], 'bg'); - define('bgRed', [41, 49], 'bg'); - define('bgGreen', [42, 49], 'bg'); - define('bgYellow', [43, 49], 'bg'); - define('bgBlue', [44, 49], 'bg'); - define('bgMagenta', [45, 49], 'bg'); - define('bgCyan', [46, 49], 'bg'); - define('bgWhite', [47, 49], 'bg'); - - define('blackBright', [90, 39], 'bright'); - define('redBright', [91, 39], 'bright'); - define('greenBright', [92, 39], 'bright'); - define('yellowBright', [93, 39], 'bright'); - define('blueBright', [94, 39], 'bright'); - define('magentaBright', [95, 39], 'bright'); - define('cyanBright', [96, 39], 'bright'); - define('whiteBright', [97, 39], 'bright'); - - define('bgBlackBright', [100, 49], 'bgBright'); - define('bgRedBright', [101, 49], 'bgBright'); - define('bgGreenBright', [102, 49], 'bgBright'); - define('bgYellowBright', [103, 49], 'bgBright'); - define('bgBlueBright', [104, 49], 'bgBright'); - define('bgMagentaBright', [105, 49], 'bgBright'); - define('bgCyanBright', [106, 49], 'bgBright'); - define('bgWhiteBright', [107, 49], 'bgBright'); - - colors.ansiRegex = ANSI_REGEX; - colors.hasColor = colors.hasAnsi = str => { - colors.ansiRegex.lastIndex = 0; - return typeof str === 'string' && str !== '' && colors.ansiRegex.test(str); - }; - - colors.alias = (name, color) => { - let fn = typeof color === 'string' ? colors[color] : color; - - if (typeof fn !== 'function') { - throw new TypeError('Expected alias to be the name of an existing color (string) or a function'); - } - - if (!fn.stack) { - Reflect.defineProperty(fn, 'name', { value: name }); - colors.styles[name] = fn; - fn.stack = [name]; - } - - Reflect.defineProperty(colors, name, { - configurable: true, - enumerable: true, - set(value) { - colors.alias(name, value); - }, - get() { - let color = input => style(input, color.stack); - Reflect.setPrototypeOf(color, colors); - color.stack = this.stack ? this.stack.concat(fn.stack) : fn.stack; - return color; - } - }); - }; - - colors.theme = custom => { - if (!isObject(custom)) throw new TypeError('Expected theme to be an object'); - for (let name of Object.keys(custom)) { - colors.alias(name, custom[name]); - } - return colors; - }; - - colors.alias('unstyle', str => { - if (typeof str === 'string' && str !== '') { - colors.ansiRegex.lastIndex = 0; - return str.replace(colors.ansiRegex, ''); - } - return ''; - }); - - colors.alias('noop', str => str); - colors.none = colors.clear = colors.noop; - - colors.stripColor = colors.unstyle; - colors.symbols = require('./symbols'); - colors.define = define; - return colors; -}; - -module.exports = create(); -module.exports.create = create; diff --git a/build/node_modules/ansi-colors/package.json b/build/node_modules/ansi-colors/package.json deleted file mode 100644 index 74459d18..00000000 --- a/build/node_modules/ansi-colors/package.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "name": "ansi-colors", - "description": "Easily add ANSI colors to your text and symbols in the terminal. A faster drop-in replacement for chalk, kleur and turbocolor (without the dependencies and rendering bugs).", - "version": "4.1.3", - "homepage": "https://github.com/doowb/ansi-colors", - "author": "Brian Woodward (https://github.com/doowb)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jason Schilling (https://sourecode.de)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Jordan (https://github.com/Silic0nS0ldier)" - ], - "repository": "doowb/ansi-colors", - "bugs": { - "url": "https://github.com/doowb/ansi-colors/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "symbols.js", - "types/index.d.ts" - ], - "main": "index.js", - "types": "./types/index.d.ts", - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "decache": "^4.5.1", - "gulp-format-md": "^2.0.0", - "justified": "^1.0.1", - "mocha": "^6.1.4", - "text-table": "^0.2.0" - }, - "keywords": [ - "256", - "ansi", - "bgblack", - "bgBlack", - "bgblue", - "bgBlue", - "bgcyan", - "bgCyan", - "bggreen", - "bgGreen", - "bgmagenta", - "bgMagenta", - "bgred", - "bgRed", - "bgwhite", - "bgWhite", - "bgyellow", - "bgYellow", - "black", - "blue", - "bold", - "cli", - "clorox", - "color", - "colors", - "colour", - "command line", - "command-line", - "console", - "cyan", - "dim", - "formatting", - "gray", - "green", - "grey", - "hidden", - "inverse", - "italic", - "kleur", - "log", - "logging", - "magenta", - "red", - "reset", - "rgb", - "shell", - "str", - "strikethrough", - "string", - "style", - "styles", - "terminal", - "text", - "tty", - "underline", - "white", - "xterm", - "yellow" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "data": { - "author": { - "linkedin": "woodwardbrian", - "twitter": "doowb" - } - }, - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - }, - "related": { - "list": [ - "ansi-wrap", - "strip-color" - ] - }, - "reflinks": [ - "chalk", - "colorette", - "colors", - "kleur" - ] - } -} diff --git a/build/node_modules/ansi-colors/symbols.js b/build/node_modules/ansi-colors/symbols.js deleted file mode 100644 index 02ab2579..00000000 --- a/build/node_modules/ansi-colors/symbols.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; - -const isHyper = typeof process !== 'undefined' && process.env.TERM_PROGRAM === 'Hyper'; -const isWindows = typeof process !== 'undefined' && process.platform === 'win32'; -const isLinux = typeof process !== 'undefined' && process.platform === 'linux'; - -const common = { - ballotDisabled: '☒', - ballotOff: '☐', - ballotOn: '☑', - bullet: '•', - bulletWhite: '◦', - fullBlock: '█', - heart: '❤', - identicalTo: '≡', - line: '─', - mark: '※', - middot: '·', - minus: '-', - multiplication: '×', - obelus: '÷', - pencilDownRight: '✎', - pencilRight: '✏', - pencilUpRight: '✐', - percent: '%', - pilcrow2: '❡', - pilcrow: '¶', - plusMinus: '±', - question: '?', - section: '§', - starsOff: '☆', - starsOn: '★', - upDownArrow: '↕' -}; - -const windows = Object.assign({}, common, { - check: '√', - cross: '×', - ellipsisLarge: '...', - ellipsis: '...', - info: 'i', - questionSmall: '?', - pointer: '>', - pointerSmall: '»', - radioOff: '( )', - radioOn: '(*)', - warning: '‼' -}); - -const other = Object.assign({}, common, { - ballotCross: '✘', - check: '✔', - cross: '✖', - ellipsisLarge: '⋯', - ellipsis: '…', - info: 'ℹ', - questionFull: '?', - questionSmall: '﹖', - pointer: isLinux ? '▸' : '❯', - pointerSmall: isLinux ? '‣' : '›', - radioOff: '◯', - radioOn: '◉', - warning: '⚠' -}); - -module.exports = (isWindows && !isHyper) ? windows : other; -Reflect.defineProperty(module.exports, 'common', { enumerable: false, value: common }); -Reflect.defineProperty(module.exports, 'windows', { enumerable: false, value: windows }); -Reflect.defineProperty(module.exports, 'other', { enumerable: false, value: other }); diff --git a/build/node_modules/ansi-escapes/index.d.ts b/build/node_modules/ansi-escapes/index.d.ts deleted file mode 100644 index 5201942e..00000000 --- a/build/node_modules/ansi-escapes/index.d.ts +++ /dev/null @@ -1,248 +0,0 @@ -/// -import {LiteralUnion} from 'type-fest'; - -declare namespace ansiEscapes { - interface ImageOptions { - /** - The width is given as a number followed by a unit, or the word `'auto'`. - - - `N`: N character cells. - - `Npx`: N pixels. - - `N%`: N percent of the session's width or height. - - `auto`: The image's inherent size will be used to determine an appropriate dimension. - */ - readonly width?: LiteralUnion<'auto', number | string>; - - /** - The height is given as a number followed by a unit, or the word `'auto'`. - - - `N`: N character cells. - - `Npx`: N pixels. - - `N%`: N percent of the session's width or height. - - `auto`: The image's inherent size will be used to determine an appropriate dimension. - */ - readonly height?: LiteralUnion<'auto', number | string>; - - readonly preserveAspectRatio?: boolean; - } - - interface AnnotationOptions { - /** - Nonzero number of columns to annotate. - - Default: The remainder of the line. - */ - readonly length?: number; - - /** - Starting X coordinate. - - Must be used with `y` and `length`. - - Default: The cursor position - */ - readonly x?: number; - - /** - Starting Y coordinate. - - Must be used with `x` and `length`. - - Default: Cursor position. - */ - readonly y?: number; - - /** - Create a "hidden" annotation. - - Annotations created this way can be shown using the "Show Annotations" iTerm command. - */ - readonly isHidden?: boolean; - } -} - -declare const ansiEscapes: { - /** - Set the absolute position of the cursor. `x0` `y0` is the top left of the screen. - */ - cursorTo(x: number, y?: number): string; - - /** - Set the position of the cursor relative to its current position. - */ - cursorMove(x: number, y?: number): string; - - /** - Move cursor up a specific amount of rows. - - @param count - Count of rows to move up. Default is `1`. - */ - cursorUp(count?: number): string; - - /** - Move cursor down a specific amount of rows. - - @param count - Count of rows to move down. Default is `1`. - */ - cursorDown(count?: number): string; - - /** - Move cursor forward a specific amount of rows. - - @param count - Count of rows to move forward. Default is `1`. - */ - cursorForward(count?: number): string; - - /** - Move cursor backward a specific amount of rows. - - @param count - Count of rows to move backward. Default is `1`. - */ - cursorBackward(count?: number): string; - - /** - Move cursor to the left side. - */ - cursorLeft: string; - - /** - Save cursor position. - */ - cursorSavePosition: string; - - /** - Restore saved cursor position. - */ - cursorRestorePosition: string; - - /** - Get cursor position. - */ - cursorGetPosition: string; - - /** - Move cursor to the next line. - */ - cursorNextLine: string; - - /** - Move cursor to the previous line. - */ - cursorPrevLine: string; - - /** - Hide cursor. - */ - cursorHide: string; - - /** - Show cursor. - */ - cursorShow: string; - - /** - Erase from the current cursor position up the specified amount of rows. - - @param count - Count of rows to erase. - */ - eraseLines(count: number): string; - - /** - Erase from the current cursor position to the end of the current line. - */ - eraseEndLine: string; - - /** - Erase from the current cursor position to the start of the current line. - */ - eraseStartLine: string; - - /** - Erase the entire current line. - */ - eraseLine: string; - - /** - Erase the screen from the current line down to the bottom of the screen. - */ - eraseDown: string; - - /** - Erase the screen from the current line up to the top of the screen. - */ - eraseUp: string; - - /** - Erase the screen and move the cursor the top left position. - */ - eraseScreen: string; - - /** - Scroll display up one line. - */ - scrollUp: string; - - /** - Scroll display down one line. - */ - scrollDown: string; - - /** - Clear the terminal screen. (Viewport) - */ - clearScreen: string; - - /** - Clear the whole terminal, including scrollback buffer. (Not just the visible part of it) - */ - clearTerminal: string; - - /** - Output a beeping sound. - */ - beep: string; - - /** - Create a clickable link. - - [Supported terminals.](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda) Use [`supports-hyperlinks`](https://github.com/jamestalmage/supports-hyperlinks) to detect link support. - */ - link(text: string, url: string): string; - - /** - Display an image. - - _Currently only supported on iTerm2 >=3_ - - See [term-img](https://github.com/sindresorhus/term-img) for a higher-level module. - - @param buffer - Buffer of an image. Usually read in with `fs.readFile()`. - */ - image(buffer: Buffer, options?: ansiEscapes.ImageOptions): string; - - iTerm: { - /** - [Inform iTerm2](https://www.iterm2.com/documentation-escape-codes.html) of the current directory to help semantic history and enable [Cmd-clicking relative paths](https://coderwall.com/p/b7e82q/quickly-open-files-in-iterm-with-cmd-click). - - @param cwd - Current directory. Default: `process.cwd()`. - */ - setCwd(cwd?: string): string; - - /** - An annotation looks like this when shown: - - ![screenshot of iTerm annotation](https://user-images.githubusercontent.com/924465/64382136-b60ac700-cfe9-11e9-8a35-9682e8dc4b72.png) - - See the [iTerm Proprietary Escape Codes documentation](https://iterm2.com/documentation-escape-codes.html) for more information. - - @param message - The message to display within the annotation. The `|` character is disallowed and will be stripped. - @returns An escape code which will create an annotation when printed in iTerm2. - */ - annotation(message: string, options?: ansiEscapes.AnnotationOptions): string; - }; - - // TODO: remove this in the next major version - default: typeof ansiEscapes; -}; - -export = ansiEscapes; diff --git a/build/node_modules/ansi-escapes/index.js b/build/node_modules/ansi-escapes/index.js deleted file mode 100644 index 28333185..00000000 --- a/build/node_modules/ansi-escapes/index.js +++ /dev/null @@ -1,157 +0,0 @@ -'use strict'; -const ansiEscapes = module.exports; -// TODO: remove this in the next major version -module.exports.default = ansiEscapes; - -const ESC = '\u001B['; -const OSC = '\u001B]'; -const BEL = '\u0007'; -const SEP = ';'; -const isTerminalApp = process.env.TERM_PROGRAM === 'Apple_Terminal'; - -ansiEscapes.cursorTo = (x, y) => { - if (typeof x !== 'number') { - throw new TypeError('The `x` argument is required'); - } - - if (typeof y !== 'number') { - return ESC + (x + 1) + 'G'; - } - - return ESC + (y + 1) + ';' + (x + 1) + 'H'; -}; - -ansiEscapes.cursorMove = (x, y) => { - if (typeof x !== 'number') { - throw new TypeError('The `x` argument is required'); - } - - let ret = ''; - - if (x < 0) { - ret += ESC + (-x) + 'D'; - } else if (x > 0) { - ret += ESC + x + 'C'; - } - - if (y < 0) { - ret += ESC + (-y) + 'A'; - } else if (y > 0) { - ret += ESC + y + 'B'; - } - - return ret; -}; - -ansiEscapes.cursorUp = (count = 1) => ESC + count + 'A'; -ansiEscapes.cursorDown = (count = 1) => ESC + count + 'B'; -ansiEscapes.cursorForward = (count = 1) => ESC + count + 'C'; -ansiEscapes.cursorBackward = (count = 1) => ESC + count + 'D'; - -ansiEscapes.cursorLeft = ESC + 'G'; -ansiEscapes.cursorSavePosition = isTerminalApp ? '\u001B7' : ESC + 's'; -ansiEscapes.cursorRestorePosition = isTerminalApp ? '\u001B8' : ESC + 'u'; -ansiEscapes.cursorGetPosition = ESC + '6n'; -ansiEscapes.cursorNextLine = ESC + 'E'; -ansiEscapes.cursorPrevLine = ESC + 'F'; -ansiEscapes.cursorHide = ESC + '?25l'; -ansiEscapes.cursorShow = ESC + '?25h'; - -ansiEscapes.eraseLines = count => { - let clear = ''; - - for (let i = 0; i < count; i++) { - clear += ansiEscapes.eraseLine + (i < count - 1 ? ansiEscapes.cursorUp() : ''); - } - - if (count) { - clear += ansiEscapes.cursorLeft; - } - - return clear; -}; - -ansiEscapes.eraseEndLine = ESC + 'K'; -ansiEscapes.eraseStartLine = ESC + '1K'; -ansiEscapes.eraseLine = ESC + '2K'; -ansiEscapes.eraseDown = ESC + 'J'; -ansiEscapes.eraseUp = ESC + '1J'; -ansiEscapes.eraseScreen = ESC + '2J'; -ansiEscapes.scrollUp = ESC + 'S'; -ansiEscapes.scrollDown = ESC + 'T'; - -ansiEscapes.clearScreen = '\u001Bc'; - -ansiEscapes.clearTerminal = process.platform === 'win32' ? - `${ansiEscapes.eraseScreen}${ESC}0f` : - // 1. Erases the screen (Only done in case `2` is not supported) - // 2. Erases the whole screen including scrollback buffer - // 3. Moves cursor to the top-left position - // More info: https://www.real-world-systems.com/docs/ANSIcode.html - `${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`; - -ansiEscapes.beep = BEL; - -ansiEscapes.link = (text, url) => { - return [ - OSC, - '8', - SEP, - SEP, - url, - BEL, - text, - OSC, - '8', - SEP, - SEP, - BEL - ].join(''); -}; - -ansiEscapes.image = (buffer, options = {}) => { - let ret = `${OSC}1337;File=inline=1`; - - if (options.width) { - ret += `;width=${options.width}`; - } - - if (options.height) { - ret += `;height=${options.height}`; - } - - if (options.preserveAspectRatio === false) { - ret += ';preserveAspectRatio=0'; - } - - return ret + ':' + buffer.toString('base64') + BEL; -}; - -ansiEscapes.iTerm = { - setCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`, - - annotation: (message, options = {}) => { - let ret = `${OSC}1337;`; - - const hasX = typeof options.x !== 'undefined'; - const hasY = typeof options.y !== 'undefined'; - if ((hasX || hasY) && !(hasX && hasY && typeof options.length !== 'undefined')) { - throw new Error('`x`, `y` and `length` must be defined when `x` or `y` is defined'); - } - - message = message.replace(/\|/g, ''); - - ret += options.isHidden ? 'AddHiddenAnnotation=' : 'AddAnnotation='; - - if (options.length > 0) { - ret += - (hasX ? - [message, options.length, options.x, options.y] : - [options.length, message]).join('|'); - } else { - ret += message; - } - - return ret + BEL; - } -}; diff --git a/build/node_modules/ansi-escapes/license b/build/node_modules/ansi-escapes/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/ansi-escapes/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/ansi-escapes/package.json b/build/node_modules/ansi-escapes/package.json deleted file mode 100644 index 88a9356c..00000000 --- a/build/node_modules/ansi-escapes/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "ansi-escapes", - "version": "4.3.2", - "description": "ANSI escape codes for manipulating the terminal", - "license": "MIT", - "repository": "sindresorhus/ansi-escapes", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "escapes", - "formatting", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text", - "vt100", - "sequence", - "control", - "code", - "codes", - "cursor", - "iterm", - "iterm2" - ], - "dependencies": { - "type-fest": "^0.21.3" - }, - "devDependencies": { - "@types/node": "^13.7.7", - "ava": "^2.1.0", - "tsd": "^0.14.0", - "xo": "^0.25.3" - } -} diff --git a/build/node_modules/ansi-escapes/readme.md b/build/node_modules/ansi-escapes/readme.md deleted file mode 100644 index 9fbfec99..00000000 --- a/build/node_modules/ansi-escapes/readme.md +++ /dev/null @@ -1,245 +0,0 @@ -# ansi-escapes - -> [ANSI escape codes](http://www.termsys.demon.co.uk/vtansi.htm) for manipulating the terminal - -## Install - -``` -$ npm install ansi-escapes -``` - -## Usage - -```js -const ansiEscapes = require('ansi-escapes'); - -// Moves the cursor two rows up and to the left -process.stdout.write(ansiEscapes.cursorUp(2) + ansiEscapes.cursorLeft); -//=> '\u001B[2A\u001B[1000D' -``` - -## API - -### cursorTo(x, y?) - -Set the absolute position of the cursor. `x0` `y0` is the top left of the screen. - -### cursorMove(x, y?) - -Set the position of the cursor relative to its current position. - -### cursorUp(count) - -Move cursor up a specific amount of rows. Default is `1`. - -### cursorDown(count) - -Move cursor down a specific amount of rows. Default is `1`. - -### cursorForward(count) - -Move cursor forward a specific amount of columns. Default is `1`. - -### cursorBackward(count) - -Move cursor backward a specific amount of columns. Default is `1`. - -### cursorLeft - -Move cursor to the left side. - -### cursorSavePosition - -Save cursor position. - -### cursorRestorePosition - -Restore saved cursor position. - -### cursorGetPosition - -Get cursor position. - -### cursorNextLine - -Move cursor to the next line. - -### cursorPrevLine - -Move cursor to the previous line. - -### cursorHide - -Hide cursor. - -### cursorShow - -Show cursor. - -### eraseLines(count) - -Erase from the current cursor position up the specified amount of rows. - -### eraseEndLine - -Erase from the current cursor position to the end of the current line. - -### eraseStartLine - -Erase from the current cursor position to the start of the current line. - -### eraseLine - -Erase the entire current line. - -### eraseDown - -Erase the screen from the current line down to the bottom of the screen. - -### eraseUp - -Erase the screen from the current line up to the top of the screen. - -### eraseScreen - -Erase the screen and move the cursor the top left position. - -### scrollUp - -Scroll display up one line. - -### scrollDown - -Scroll display down one line. - -### clearScreen - -Clear the terminal screen. (Viewport) - -### clearTerminal - -Clear the whole terminal, including scrollback buffer. (Not just the visible part of it) - -### beep - -Output a beeping sound. - -### link(text, url) - -Create a clickable link. - -[Supported terminals.](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda) Use [`supports-hyperlinks`](https://github.com/jamestalmage/supports-hyperlinks) to detect link support. - -### image(filePath, options?) - -Display an image. - -*Currently only supported on iTerm2 >=3* - -See [term-img](https://github.com/sindresorhus/term-img) for a higher-level module. - -#### input - -Type: `Buffer` - -Buffer of an image. Usually read in with `fs.readFile()`. - -#### options - -Type: `object` - -##### width -##### height - -Type: `string | number` - -The width and height are given as a number followed by a unit, or the word "auto". - -- `N`: N character cells. -- `Npx`: N pixels. -- `N%`: N percent of the session's width or height. -- `auto`: The image's inherent size will be used to determine an appropriate dimension. - -##### preserveAspectRatio - -Type: `boolean`\ -Default: `true` - -### iTerm.setCwd(path?) - -Type: `string`\ -Default: `process.cwd()` - -[Inform iTerm2](https://www.iterm2.com/documentation-escape-codes.html) of the current directory to help semantic history and enable [Cmd-clicking relative paths](https://coderwall.com/p/b7e82q/quickly-open-files-in-iterm-with-cmd-click). - -### iTerm.annotation(message, options?) - -Creates an escape code to display an "annotation" in iTerm2. - -An annotation looks like this when shown: - - - -See the [iTerm Proprietary Escape Codes documentation](https://iterm2.com/documentation-escape-codes.html) for more information. - -#### message - -Type: `string` - -The message to display within the annotation. - -The `|` character is disallowed and will be stripped. - -#### options - -Type: `object` - -##### length - -Type: `number`\ -Default: The remainder of the line - -Nonzero number of columns to annotate. - -##### x - -Type: `number`\ -Default: Cursor position - -Starting X coordinate. - -Must be used with `y` and `length`. - -##### y - -Type: `number`\ -Default: Cursor position - -Starting Y coordinate. - -Must be used with `x` and `length`. - -##### isHidden - -Type: `boolean`\ -Default: `false` - -Create a "hidden" annotation. - -Annotations created this way can be shown using the "Show Annotations" iTerm command. - -## Related - -- [ansi-styles](https://github.com/chalk/ansi-styles) - ANSI escape codes for styling strings in the terminal - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/ansi-html-community/LICENSE b/build/node_modules/ansi-html-community/LICENSE deleted file mode 100644 index e06d2081..00000000 --- a/build/node_modules/ansi-html-community/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/build/node_modules/ansi-html-community/README.md b/build/node_modules/ansi-html-community/README.md deleted file mode 100644 index e80188e9..00000000 --- a/build/node_modules/ansi-html-community/README.md +++ /dev/null @@ -1,62 +0,0 @@ -ansi-html [![NPM version](https://badge.fury.io/js/ansi-html-community.svg)](http://badge.fury.io/js/ansi-html) [![Build Status](https://app.travis-ci.com/mahdyar/ansi-html-community.svg?branch=master)](https://app.travis-ci.com/mahdyar/ansi-html-community) -========= -An elegant lib that converts the chalked (ANSI) text to HTML. - -# Coverage -- All styles of [chalk](https://github.com/sindresorhus/chalk) (100%) and [colors](https://github.com/Marak/colors.js). -- There are over **150** randomized test cases under `test`. - -# Installation -``` -$ npm install ansi-html-community -``` - -# Usage -```javascript -var ansiHTML = require('ansi-html-community'); -var str = ansiHTML('[ANSI_TEXT]'); -``` - -e.g.: -```javascript -var chalk = require('chalk'); - -var str = chalk.bold.red('foo') + ' bar'; -console.log('[ANSI]', str) -console.log('[HTML]', ansiHTML(str)); -``` - -See complete examples under `test` / `examples` directory. - -# Set Colors -```javascript -ansiHTML.setColors({ - reset: ['555', '666'], // FOREGROUND-COLOR or [FOREGROUND-COLOR] or [, BACKGROUND-COLOR] or [FOREGROUND-COLOR, BACKGROUND-COLOR] - black: 'aaa', // String - red: 'bbb', - green: 'ccc', - yellow: 'ddd', - blue: 'eee', - magenta: 'fff', - cyan: '999', - lightgrey: '888', - darkgrey: '777' -}); -``` - -# Reset -```javascript -ansiHTML.reset(); -``` - -# Exposed Tags -```javascript -var openTags = ansiHTML.tags.open; -var closeTags = ansiHTML.tags.close; -``` - -# Test -``` -$ npm install -l -$ npm test -``` diff --git a/build/node_modules/ansi-html-community/index.js b/build/node_modules/ansi-html-community/index.js deleted file mode 100644 index 1f65826e..00000000 --- a/build/node_modules/ansi-html-community/index.js +++ /dev/null @@ -1,176 +0,0 @@ -'use strict' - -module.exports = ansiHTML - -// Reference to https://github.com/sindresorhus/ansi-regex -var _regANSI = /(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\u001b[A-M]/ - -var _defColors = { - reset: ['fff', '000'], // [FOREGROUD_COLOR, BACKGROUND_COLOR] - black: '000', - red: 'ff0000', - green: '209805', - yellow: 'e8bf03', - blue: '0000ff', - magenta: 'ff00ff', - cyan: '00ffee', - lightgrey: 'f0f0f0', - darkgrey: '888' -} -var _styles = { - 30: 'black', - 31: 'red', - 32: 'green', - 33: 'yellow', - 34: 'blue', - 35: 'magenta', - 36: 'cyan', - 37: 'lightgrey' -} -var _openTags = { - '1': 'font-weight:bold', // bold - '2': 'opacity:0.5', // dim - '3': '', // italic - '4': '', // underscore - '8': 'display:none', // hidden - '9': '' // delete -} -var _closeTags = { - '23': '', // reset italic - '24': '', // reset underscore - '29': '' // reset delete -} - -;[0, 21, 22, 27, 28, 39, 49].forEach(function (n) { - _closeTags[n] = '' -}) - -/** - * Converts text with ANSI color codes to HTML markup. - * @param {String} text - * @returns {*} - */ -function ansiHTML (text) { - // Returns the text if the string has no ANSI escape code. - if (!_regANSI.test(text)) { - return text - } - - // Cache opened sequence. - var ansiCodes = [] - // Replace with markup. - var ret = text.replace(/\033\[(\d+)m/g, function (match, seq) { - var ot = _openTags[seq] - if (ot) { - // If current sequence has been opened, close it. - if (!!~ansiCodes.indexOf(seq)) { // eslint-disable-line no-extra-boolean-cast - ansiCodes.pop() - return '' - } - // Open tag. - ansiCodes.push(seq) - return ot[0] === '<' ? ot : '' - } - - var ct = _closeTags[seq] - if (ct) { - // Pop sequence - ansiCodes.pop() - return ct - } - return '' - }) - - // Make sure tags are closed. - var l = ansiCodes.length - ;(l > 0) && (ret += Array(l + 1).join('')) - - return ret -} - -/** - * Customize colors. - * @param {Object} colors reference to _defColors - */ -ansiHTML.setColors = function (colors) { - if (typeof colors !== 'object') { - throw new Error('`colors` parameter must be an Object.') - } - - var _finalColors = {} - for (var key in _defColors) { - var hex = colors.hasOwnProperty(key) ? colors[key] : null - if (!hex) { - _finalColors[key] = _defColors[key] - continue - } - if ('reset' === key) { - if (typeof hex === 'string') { - hex = [hex] - } - if (!Array.isArray(hex) || hex.length === 0 || hex.some(function (h) { - return typeof h !== 'string' - })) { - throw new Error('The value of `' + key + '` property must be an Array and each item could only be a hex string, e.g.: FF0000') - } - var defHexColor = _defColors[key] - if (!hex[0]) { - hex[0] = defHexColor[0] - } - if (hex.length === 1 || !hex[1]) { - hex = [hex[0]] - hex.push(defHexColor[1]) - } - - hex = hex.slice(0, 2) - } else if (typeof hex !== 'string') { - throw new Error('The value of `' + key + '` property must be a hex string, e.g.: FF0000') - } - _finalColors[key] = hex - } - _setTags(_finalColors) -} - -/** - * Reset colors. - */ -ansiHTML.reset = function () { - _setTags(_defColors) -} - -/** - * Expose tags, including open and close. - * @type {Object} - */ -ansiHTML.tags = {} - -if (Object.defineProperty) { - Object.defineProperty(ansiHTML.tags, 'open', { - get: function () { return _openTags } - }) - Object.defineProperty(ansiHTML.tags, 'close', { - get: function () { return _closeTags } - }) -} else { - ansiHTML.tags.open = _openTags - ansiHTML.tags.close = _closeTags -} - -function _setTags (colors) { - // reset all - _openTags['0'] = 'font-weight:normal;opacity:1;color:#' + colors.reset[0] + ';background:#' + colors.reset[1] - // inverse - _openTags['7'] = 'color:#' + colors.reset[1] + ';background:#' + colors.reset[0] - // dark grey - _openTags['90'] = 'color:#' + colors.darkgrey - - for (var code in _styles) { - var color = _styles[code] - var oriColor = colors[color] || '000' - _openTags[code] = 'color:#' + oriColor - code = parseInt(code) - _openTags[(code + 10).toString()] = 'background:#' + oriColor - } -} - -ansiHTML.reset() diff --git a/build/node_modules/ansi-html-community/package.json b/build/node_modules/ansi-html-community/package.json deleted file mode 100644 index 10b6e001..00000000 --- a/build/node_modules/ansi-html-community/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "ansi-html-community", - "version": "0.0.8", - "description": "An elegant lib that converts the chalked (ANSI) text to HTML. (Community)", - "main": "index.js", - "scripts": { - "test": "./node_modules/.bin/mocha -R spec -t 5000" - }, - "bin": { - "ansi-html": "./bin/ansi-html" - }, - "repository": { - "type": "git", - "url": "git://github.com/mahdyar/ansi-html-community.git" - }, - "keywords": [ - "ansi", - "ansi html", - "chalk html" - ], - "author": { - "name": "mahdyar" - }, - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/mahdyar/ansi-html-community/issues" - }, - "engines": [ - "node >= 0.8.0" - ], - "dependencies": { - }, - "devDependencies": { - "mocha": "^1.21.4", - "chai": "^1.9.1", - "chalk": "^1.1.3", - "lodash": "^2.4.2" - }, - "readmeFilename": "README.md", - "homepage": "https://github.com/mahdyar/ansi-html-community", - "standard": { - "ignore": [], - "globals": [ - "describe", - "it", - "before", - "after" - ] - } -} diff --git a/build/node_modules/ansi-regex/index.d.ts b/build/node_modules/ansi-regex/index.d.ts deleted file mode 100644 index 2dbf6af2..00000000 --- a/build/node_modules/ansi-regex/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -declare namespace ansiRegex { - interface Options { - /** - Match only the first ANSI escape. - - @default false - */ - onlyFirst: boolean; - } -} - -/** -Regular expression for matching ANSI escape codes. - -@example -``` -import ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001B[4mcake\u001B[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001B[4mcake\u001B[0m'.match(ansiRegex()); -//=> ['\u001B[4m', '\u001B[0m'] - -'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); -//=> ['\u001B[4m'] - -'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); -//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] -``` -*/ -declare function ansiRegex(options?: ansiRegex.Options): RegExp; - -export = ansiRegex; diff --git a/build/node_modules/ansi-regex/index.js b/build/node_modules/ansi-regex/index.js deleted file mode 100644 index 616ff837..00000000 --- a/build/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = ({onlyFirst = false} = {}) => { - const pattern = [ - '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', - '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' - ].join('|'); - - return new RegExp(pattern, onlyFirst ? undefined : 'g'); -}; diff --git a/build/node_modules/ansi-regex/license b/build/node_modules/ansi-regex/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/ansi-regex/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/ansi-regex/package.json b/build/node_modules/ansi-regex/package.json deleted file mode 100644 index 017f5311..00000000 --- a/build/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "ansi-regex", - "version": "5.0.1", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.9.0", - "xo": "^0.25.3" - } -} diff --git a/build/node_modules/ansi-regex/readme.md b/build/node_modules/ansi-regex/readme.md deleted file mode 100644 index 4d848bc3..00000000 --- a/build/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,78 +0,0 @@ -# ansi-regex - -> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install ansi-regex -``` - - -## Usage - -```js -const ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001B[4mcake\u001B[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001B[4mcake\u001B[0m'.match(ansiRegex()); -//=> ['\u001B[4m', '\u001B[0m'] - -'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); -//=> ['\u001B[4m'] - -'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); -//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] -``` - - -## API - -### ansiRegex(options?) - -Returns a regex for matching ANSI escape codes. - -#### options - -Type: `object` - -##### onlyFirst - -Type: `boolean`
-Default: `false` *(Matches any ANSI escape codes in a string)* - -Match only the first ANSI escape. - - -## FAQ - -### Why do you test for codes not in the ECMA 48 standard? - -Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. - -On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. - - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Josh Junon](https://github.com/qix-) - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/ansi-styles/index.d.ts b/build/node_modules/ansi-styles/index.d.ts deleted file mode 100644 index 44a907e5..00000000 --- a/build/node_modules/ansi-styles/index.d.ts +++ /dev/null @@ -1,345 +0,0 @@ -declare type CSSColor = - | 'aliceblue' - | 'antiquewhite' - | 'aqua' - | 'aquamarine' - | 'azure' - | 'beige' - | 'bisque' - | 'black' - | 'blanchedalmond' - | 'blue' - | 'blueviolet' - | 'brown' - | 'burlywood' - | 'cadetblue' - | 'chartreuse' - | 'chocolate' - | 'coral' - | 'cornflowerblue' - | 'cornsilk' - | 'crimson' - | 'cyan' - | 'darkblue' - | 'darkcyan' - | 'darkgoldenrod' - | 'darkgray' - | 'darkgreen' - | 'darkgrey' - | 'darkkhaki' - | 'darkmagenta' - | 'darkolivegreen' - | 'darkorange' - | 'darkorchid' - | 'darkred' - | 'darksalmon' - | 'darkseagreen' - | 'darkslateblue' - | 'darkslategray' - | 'darkslategrey' - | 'darkturquoise' - | 'darkviolet' - | 'deeppink' - | 'deepskyblue' - | 'dimgray' - | 'dimgrey' - | 'dodgerblue' - | 'firebrick' - | 'floralwhite' - | 'forestgreen' - | 'fuchsia' - | 'gainsboro' - | 'ghostwhite' - | 'gold' - | 'goldenrod' - | 'gray' - | 'green' - | 'greenyellow' - | 'grey' - | 'honeydew' - | 'hotpink' - | 'indianred' - | 'indigo' - | 'ivory' - | 'khaki' - | 'lavender' - | 'lavenderblush' - | 'lawngreen' - | 'lemonchiffon' - | 'lightblue' - | 'lightcoral' - | 'lightcyan' - | 'lightgoldenrodyellow' - | 'lightgray' - | 'lightgreen' - | 'lightgrey' - | 'lightpink' - | 'lightsalmon' - | 'lightseagreen' - | 'lightskyblue' - | 'lightslategray' - | 'lightslategrey' - | 'lightsteelblue' - | 'lightyellow' - | 'lime' - | 'limegreen' - | 'linen' - | 'magenta' - | 'maroon' - | 'mediumaquamarine' - | 'mediumblue' - | 'mediumorchid' - | 'mediumpurple' - | 'mediumseagreen' - | 'mediumslateblue' - | 'mediumspringgreen' - | 'mediumturquoise' - | 'mediumvioletred' - | 'midnightblue' - | 'mintcream' - | 'mistyrose' - | 'moccasin' - | 'navajowhite' - | 'navy' - | 'oldlace' - | 'olive' - | 'olivedrab' - | 'orange' - | 'orangered' - | 'orchid' - | 'palegoldenrod' - | 'palegreen' - | 'paleturquoise' - | 'palevioletred' - | 'papayawhip' - | 'peachpuff' - | 'peru' - | 'pink' - | 'plum' - | 'powderblue' - | 'purple' - | 'rebeccapurple' - | 'red' - | 'rosybrown' - | 'royalblue' - | 'saddlebrown' - | 'salmon' - | 'sandybrown' - | 'seagreen' - | 'seashell' - | 'sienna' - | 'silver' - | 'skyblue' - | 'slateblue' - | 'slategray' - | 'slategrey' - | 'snow' - | 'springgreen' - | 'steelblue' - | 'tan' - | 'teal' - | 'thistle' - | 'tomato' - | 'turquoise' - | 'violet' - | 'wheat' - | 'white' - | 'whitesmoke' - | 'yellow' - | 'yellowgreen'; - -declare namespace ansiStyles { - interface ColorConvert { - /** - The RGB color space. - - @param red - (`0`-`255`) - @param green - (`0`-`255`) - @param blue - (`0`-`255`) - */ - rgb(red: number, green: number, blue: number): string; - - /** - The RGB HEX color space. - - @param hex - A hexadecimal string containing RGB data. - */ - hex(hex: string): string; - - /** - @param keyword - A CSS color name. - */ - keyword(keyword: CSSColor): string; - - /** - The HSL color space. - - @param hue - (`0`-`360`) - @param saturation - (`0`-`100`) - @param lightness - (`0`-`100`) - */ - hsl(hue: number, saturation: number, lightness: number): string; - - /** - The HSV color space. - - @param hue - (`0`-`360`) - @param saturation - (`0`-`100`) - @param value - (`0`-`100`) - */ - hsv(hue: number, saturation: number, value: number): string; - - /** - The HSV color space. - - @param hue - (`0`-`360`) - @param whiteness - (`0`-`100`) - @param blackness - (`0`-`100`) - */ - hwb(hue: number, whiteness: number, blackness: number): string; - - /** - Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. - */ - ansi(ansi: number): string; - - /** - Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. - */ - ansi256(ansi: number): string; - } - - interface CSPair { - /** - The ANSI terminal control sequence for starting this style. - */ - readonly open: string; - - /** - The ANSI terminal control sequence for ending this style. - */ - readonly close: string; - } - - interface ColorBase { - readonly ansi: ColorConvert; - readonly ansi256: ColorConvert; - readonly ansi16m: ColorConvert; - - /** - The ANSI terminal control sequence for ending this color. - */ - readonly close: string; - } - - interface Modifier { - /** - Resets the current color chain. - */ - readonly reset: CSPair; - - /** - Make text bold. - */ - readonly bold: CSPair; - - /** - Emitting only a small amount of light. - */ - readonly dim: CSPair; - - /** - Make text italic. (Not widely supported) - */ - readonly italic: CSPair; - - /** - Make text underline. (Not widely supported) - */ - readonly underline: CSPair; - - /** - Inverse background and foreground colors. - */ - readonly inverse: CSPair; - - /** - Prints the text, but makes it invisible. - */ - readonly hidden: CSPair; - - /** - Puts a horizontal line through the center of the text. (Not widely supported) - */ - readonly strikethrough: CSPair; - } - - interface ForegroundColor { - readonly black: CSPair; - readonly red: CSPair; - readonly green: CSPair; - readonly yellow: CSPair; - readonly blue: CSPair; - readonly cyan: CSPair; - readonly magenta: CSPair; - readonly white: CSPair; - - /** - Alias for `blackBright`. - */ - readonly gray: CSPair; - - /** - Alias for `blackBright`. - */ - readonly grey: CSPair; - - readonly blackBright: CSPair; - readonly redBright: CSPair; - readonly greenBright: CSPair; - readonly yellowBright: CSPair; - readonly blueBright: CSPair; - readonly cyanBright: CSPair; - readonly magentaBright: CSPair; - readonly whiteBright: CSPair; - } - - interface BackgroundColor { - readonly bgBlack: CSPair; - readonly bgRed: CSPair; - readonly bgGreen: CSPair; - readonly bgYellow: CSPair; - readonly bgBlue: CSPair; - readonly bgCyan: CSPair; - readonly bgMagenta: CSPair; - readonly bgWhite: CSPair; - - /** - Alias for `bgBlackBright`. - */ - readonly bgGray: CSPair; - - /** - Alias for `bgBlackBright`. - */ - readonly bgGrey: CSPair; - - readonly bgBlackBright: CSPair; - readonly bgRedBright: CSPair; - readonly bgGreenBright: CSPair; - readonly bgYellowBright: CSPair; - readonly bgBlueBright: CSPair; - readonly bgCyanBright: CSPair; - readonly bgMagentaBright: CSPair; - readonly bgWhiteBright: CSPair; - } -} - -declare const ansiStyles: { - readonly modifier: ansiStyles.Modifier; - readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; - readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; - readonly codes: ReadonlyMap; -} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; - -export = ansiStyles; diff --git a/build/node_modules/ansi-styles/index.js b/build/node_modules/ansi-styles/index.js deleted file mode 100644 index 5d82581a..00000000 --- a/build/node_modules/ansi-styles/index.js +++ /dev/null @@ -1,163 +0,0 @@ -'use strict'; - -const wrapAnsi16 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${code + offset}m`; -}; - -const wrapAnsi256 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${38 + offset};5;${code}m`; -}; - -const wrapAnsi16m = (fn, offset) => (...args) => { - const rgb = fn(...args); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; -}; - -const ansi2ansi = n => n; -const rgb2rgb = (r, g, b) => [r, g, b]; - -const setLazyProperty = (object, property, get) => { - Object.defineProperty(object, property, { - get: () => { - const value = get(); - - Object.defineProperty(object, property, { - value, - enumerable: true, - configurable: true - }); - - return value; - }, - enumerable: true, - configurable: true - }); -}; - -/** @type {typeof import('color-convert')} */ -let colorConvert; -const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = require('color-convert'); - } - - const offset = isBackground ? 10 : 0; - const styles = {}; - - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { - const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; - if (sourceSpace === targetSpace) { - styles[name] = wrap(identity, offset); - } else if (typeof suite === 'object') { - styles[name] = wrap(suite[targetSpace], offset); - } - } - - return styles; -}; - -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - - // Bright color - blackBright: [90, 39], - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - - // Alias bright black as gray (and grey) - styles.color.gray = styles.color.blackBright; - styles.bgColor.bgGray = styles.bgColor.bgBlackBright; - styles.color.grey = styles.color.blackBright; - styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; - - for (const [groupName, group] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group)) { - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - - group[styleName] = styles[styleName]; - - codes.set(style[0], style[1]); - } - - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - } - - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - - setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); - setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); - - return styles; -} - -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); diff --git a/build/node_modules/ansi-styles/license b/build/node_modules/ansi-styles/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/ansi-styles/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/ansi-styles/package.json b/build/node_modules/ansi-styles/package.json deleted file mode 100644 index 75393284..00000000 --- a/build/node_modules/ansi-styles/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "ansi-styles", - "version": "4.3.0", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^2.0.1" - }, - "devDependencies": { - "@types/color-convert": "^1.9.0", - "ava": "^2.3.0", - "svg-term-cli": "^2.1.1", - "tsd": "^0.11.0", - "xo": "^0.25.3" - } -} diff --git a/build/node_modules/ansi-styles/readme.md b/build/node_modules/ansi-styles/readme.md deleted file mode 100644 index 24883de8..00000000 --- a/build/node_modules/ansi-styles/readme.md +++ /dev/null @@ -1,152 +0,0 @@ -# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) - -> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal - -You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. - - - -## Install - -``` -$ npm install ansi-styles -``` - -## Usage - -```js -const style = require('ansi-styles'); - -console.log(`${style.green.open}Hello world!${style.green.close}`); - - -// Color conversion between 16/256/truecolor -// NOTE: If conversion goes to 16 colors or 256 colors, the original color -// may be degraded to fit that color palette. This means terminals -// that do not support 16 million colors will best-match the -// original color. -console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); -console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); -console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); -``` - -## API - -Each style has an `open` and `close` property. - -## Styles - -### Modifiers - -- `reset` -- `bold` -- `dim` -- `italic` *(Not widely supported)* -- `underline` -- `inverse` -- `hidden` -- `strikethrough` *(Not widely supported)* - -### Colors - -- `black` -- `red` -- `green` -- `yellow` -- `blue` -- `magenta` -- `cyan` -- `white` -- `blackBright` (alias: `gray`, `grey`) -- `redBright` -- `greenBright` -- `yellowBright` -- `blueBright` -- `magentaBright` -- `cyanBright` -- `whiteBright` - -### Background colors - -- `bgBlack` -- `bgRed` -- `bgGreen` -- `bgYellow` -- `bgBlue` -- `bgMagenta` -- `bgCyan` -- `bgWhite` -- `bgBlackBright` (alias: `bgGray`, `bgGrey`) -- `bgRedBright` -- `bgGreenBright` -- `bgYellowBright` -- `bgBlueBright` -- `bgMagentaBright` -- `bgCyanBright` -- `bgWhiteBright` - -## Advanced usage - -By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. - -- `style.modifier` -- `style.color` -- `style.bgColor` - -###### Example - -```js -console.log(style.color.green.open); -``` - -Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. - -###### Example - -```js -console.log(style.codes.get(36)); -//=> 39 -``` - -## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) - -`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. - -The following color spaces from `color-convert` are supported: - -- `rgb` -- `hex` -- `keyword` -- `hsl` -- `hsv` -- `hwb` -- `ansi` -- `ansi256` - -To use these, call the associated conversion function with the intended output, for example: - -```js -style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code -style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code - -style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code -style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code - -style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code -style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code -``` - -## Related - -- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Josh Junon](https://github.com/qix-) - -## For enterprise - -Available as part of the Tidelift Subscription. - -The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/build/node_modules/ansicolors/LICENSE b/build/node_modules/ansicolors/LICENSE deleted file mode 100644 index 41702c50..00000000 --- a/build/node_modules/ansicolors/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2013 Thorsten Lorenz. -All rights reserved. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/ansicolors/README.md b/build/node_modules/ansicolors/README.md deleted file mode 100644 index f3e9d070..00000000 --- a/build/node_modules/ansicolors/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# ansicolors [![build status](https://secure.travis-ci.org/thlorenz/ansicolors.png)](http://next.travis-ci.org/thlorenz/ansicolors) - -Functions that surround a string with ansicolor codes so it prints in color. - -In case you need styles, like `bold`, have a look at [ansistyles](https://github.com/thlorenz/ansistyles). - -## Installation - - npm install ansicolors - -## Usage - -```js -var colors = require('ansicolors'); - -// foreground colors -var redHerring = colors.red('herring'); -var blueMoon = colors.blue('moon'); -var brighBlueMoon = colors.brightBlue('moon'); - -console.log(redHerring); // this will print 'herring' in red -console.log(blueMoon); // this 'moon' in blue -console.log(brightBlueMoon); // I think you got the idea - -// background colors -console.log(colors.bgYellow('printed on yellow background')); -console.log(colors.bgBrightBlue('printed on bright blue background')); - -// mixing background and foreground colors -// below two lines have same result (order in which bg and fg are combined doesn't matter) -console.log(colors.bgYellow(colors.blue('printed on yellow background in blue'))); -console.log(colors.blue(colors.bgYellow('printed on yellow background in blue'))); -``` - -## Advanced API - -**ansicolors** allows you to access opening and closing escape sequences separately. - -```js -var colors = require('ansicolors'); - -function inspect(obj, depth) { - return require('util').inspect(obj, false, depth || 5, true); -} - -console.log('open blue', inspect(colors.open.blue)); -console.log('close bgBlack', inspect(colors.close.bgBlack)); - -// => open blue '\u001b[34m' -// close bgBlack '\u001b[49m' -``` - -## Tests - -Look at the [tests](https://github.com/thlorenz/ansicolors/blob/master/test/ansicolors.js) to see more examples and/or run them via: - - npm explore ansicolors && npm test - -## Alternatives - -**ansicolors** tries to meet simple use cases with a very simple API. However, if you need a more powerful ansi formatting tool, -I'd suggest to look at the [features](https://github.com/TooTallNate/ansi.js#features) of the [ansi module](https://github.com/TooTallNate/ansi.js). diff --git a/build/node_modules/ansicolors/ansicolors.js b/build/node_modules/ansicolors/ansicolors.js deleted file mode 100644 index 16b2586f..00000000 --- a/build/node_modules/ansicolors/ansicolors.js +++ /dev/null @@ -1,65 +0,0 @@ -// ColorCodes explained: http://www.termsys.demon.co.uk/vtansi.htm -'use strict'; - -var colorNums = { - white : 37 - , black : 30 - , blue : 34 - , cyan : 36 - , green : 32 - , magenta : 35 - , red : 31 - , yellow : 33 - , brightBlack : 90 - , brightRed : 91 - , brightGreen : 92 - , brightYellow : 93 - , brightBlue : 94 - , brightMagenta : 95 - , brightCyan : 96 - , brightWhite : 97 - } - , backgroundColorNums = { - bgBlack : 40 - , bgRed : 41 - , bgGreen : 42 - , bgYellow : 43 - , bgBlue : 44 - , bgMagenta : 45 - , bgCyan : 46 - , bgWhite : 47 - , bgBrightBlack : 100 - , bgBrightRed : 101 - , bgBrightGreen : 102 - , bgBrightYellow : 103 - , bgBrightBlue : 104 - , bgBrightMagenta : 105 - , bgBrightCyan : 106 - , bgBrightWhite : 107 - } - , open = {} - , close = {} - , colors = {} - ; - -Object.keys(colorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + colorNums[k] + 'm'; - var c = close[k] = '\u001b[39m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -Object.keys(backgroundColorNums).forEach(function (k) { - var o = open[k] = '\u001b[' + backgroundColorNums[k] + 'm'; - var c = close[k] = '\u001b[49m'; - - colors[k] = function (s) { - return o + s + c; - }; -}); - -module.exports = colors; -colors.open = open; -colors.close = close; diff --git a/build/node_modules/ansicolors/package.json b/build/node_modules/ansicolors/package.json deleted file mode 100644 index cda0c75b..00000000 --- a/build/node_modules/ansicolors/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "ansicolors", - "version": "0.3.2", - "description": "Functions that surround a string with ansicolor codes so it prints in color.", - "main": "ansicolors.js", - "scripts": { - "test": "node test/*.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/ansicolors.git" - }, - "keywords": [ - "ansi", - "colors", - "highlight", - "string" - ], - "author": "Thorsten Lorenz (thlorenz.com)", - "license": "MIT", - "readmeFilename": "README.md", - "gitHead": "858847ca28e8b360d9b70eee0592700fa2ab087d" -} diff --git a/build/node_modules/anymatch/LICENSE b/build/node_modules/anymatch/LICENSE deleted file mode 100644 index 491766ca..00000000 --- a/build/node_modules/anymatch/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/anymatch/README.md b/build/node_modules/anymatch/README.md deleted file mode 100644 index 1dd67f53..00000000 --- a/build/node_modules/anymatch/README.md +++ /dev/null @@ -1,87 +0,0 @@ -anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) -====== -Javascript module to match a string against a regular expression, glob, string, -or function that takes the string as an argument and returns a truthy or falsy -value. The matcher can also be an array of any or all of these. Useful for -allowing a very flexible user-defined config to define things like file paths. - -__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ - - -Usage ------ -```sh -npm install anymatch -``` - -#### anymatch(matchers, testString, [returnIndex], [options]) -* __matchers__: (_Array|String|RegExp|Function_) -String to be directly matched, string with glob patterns, regular expression -test, function that takes the testString as an argument and returns a truthy -value if it should be matched, or an array of any number and mix of these types. -* __testString__: (_String|Array_) The string to test against the matchers. If -passed as an array, the first element of the array will be used as the -`testString` for non-function matchers, while the entire array will be applied -as the arguments for function matchers. -* __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. - * __returnIndex__: (_Boolean [optional]_) If true, return the array index of -the first matcher that that testString matched, or -1 if no match, instead of a -boolean result. - -```js -const anymatch = require('anymatch'); - -const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; - -anymatch(matchers, 'path/to/file.js'); // true -anymatch(matchers, 'path/anyjs/baz.js'); // true -anymatch(matchers, 'path/to/foo.js'); // true -anymatch(matchers, 'path/to/bar.js'); // true -anymatch(matchers, 'bar.js'); // false - -// returnIndex = true -anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 -anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 - -// any picomatc - -// using globs to match directories and their children -anymatch('node_modules', 'node_modules'); // true -anymatch('node_modules', 'node_modules/somelib/index.js'); // false -anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true -anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false -anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true - -const matcher = anymatch(matchers); -['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] -anymatch master* ❯ - -``` - -#### anymatch(matchers) -You can also pass in only your matcher(s) to get a curried function that has -already been bound to the provided matching criteria. This can be used as an -`Array#filter` callback. - -```js -var matcher = anymatch(matchers); - -matcher('path/to/file.js'); // true -matcher('path/anyjs/baz.js', true); // 1 - -['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] -``` - -Changelog ----------- -[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) - -- **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. -- **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). -- **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) -for glob pattern matching. Issues with glob pattern matching should be -reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). - -License -------- -[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) diff --git a/build/node_modules/anymatch/index.d.ts b/build/node_modules/anymatch/index.d.ts deleted file mode 100644 index 3ef7eaad..00000000 --- a/build/node_modules/anymatch/index.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -type AnymatchFn = (testString: string) => boolean; -type AnymatchPattern = string|RegExp|AnymatchFn; -type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] -type AnymatchTester = { - (testString: string|any[], returnIndex: true): number; - (testString: string|any[]): boolean; -} - -type PicomatchOptions = {dot: boolean}; - -declare const anymatch: { - (matchers: AnymatchMatcher): AnymatchTester; - (matchers: AnymatchMatcher, testString: null, returnIndex: true | PicomatchOptions): AnymatchTester; - (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; - (matchers: AnymatchMatcher, testString: string|any[]): boolean; -} - -export {AnymatchMatcher as Matcher} -export {AnymatchTester as Tester} -export default anymatch diff --git a/build/node_modules/anymatch/index.js b/build/node_modules/anymatch/index.js deleted file mode 100644 index 8eb73e9c..00000000 --- a/build/node_modules/anymatch/index.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { value: true }); - -const picomatch = require('picomatch'); -const normalizePath = require('normalize-path'); - -/** - * @typedef {(testString: string) => boolean} AnymatchFn - * @typedef {string|RegExp|AnymatchFn} AnymatchPattern - * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher - */ -const BANG = '!'; -const DEFAULT_OPTIONS = {returnIndex: false}; -const arrify = (item) => Array.isArray(item) ? item : [item]; - -/** - * @param {AnymatchPattern} matcher - * @param {object} options - * @returns {AnymatchFn} - */ -const createPattern = (matcher, options) => { - if (typeof matcher === 'function') { - return matcher; - } - if (typeof matcher === 'string') { - const glob = picomatch(matcher, options); - return (string) => matcher === string || glob(string); - } - if (matcher instanceof RegExp) { - return (string) => matcher.test(string); - } - return (string) => false; -}; - -/** - * @param {Array} patterns - * @param {Array} negPatterns - * @param {String|Array} args - * @param {Boolean} returnIndex - * @returns {boolean|number} - */ -const matchPatterns = (patterns, negPatterns, args, returnIndex) => { - const isList = Array.isArray(args); - const _path = isList ? args[0] : args; - if (!isList && typeof _path !== 'string') { - throw new TypeError('anymatch: second argument must be a string: got ' + - Object.prototype.toString.call(_path)) - } - const path = normalizePath(_path, false); - - for (let index = 0; index < negPatterns.length; index++) { - const nglob = negPatterns[index]; - if (nglob(path)) { - return returnIndex ? -1 : false; - } - } - - const applied = isList && [path].concat(args.slice(1)); - for (let index = 0; index < patterns.length; index++) { - const pattern = patterns[index]; - if (isList ? pattern(...applied) : pattern(path)) { - return returnIndex ? index : true; - } - } - - return returnIndex ? -1 : false; -}; - -/** - * @param {AnymatchMatcher} matchers - * @param {Array|string} testString - * @param {object} options - * @returns {boolean|number|Function} - */ -const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { - if (matchers == null) { - throw new TypeError('anymatch: specify first argument'); - } - const opts = typeof options === 'boolean' ? {returnIndex: options} : options; - const returnIndex = opts.returnIndex || false; - - // Early cache for matchers. - const mtchers = arrify(matchers); - const negatedGlobs = mtchers - .filter(item => typeof item === 'string' && item.charAt(0) === BANG) - .map(item => item.slice(1)) - .map(item => picomatch(item, opts)); - const patterns = mtchers - .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG)) - .map(matcher => createPattern(matcher, opts)); - - if (testString == null) { - return (testString, ri = false) => { - const returnIndex = typeof ri === 'boolean' ? ri : false; - return matchPatterns(patterns, negatedGlobs, testString, returnIndex); - } - } - - return matchPatterns(patterns, negatedGlobs, testString, returnIndex); -}; - -anymatch.default = anymatch; -module.exports = anymatch; diff --git a/build/node_modules/anymatch/package.json b/build/node_modules/anymatch/package.json deleted file mode 100644 index 2cb2307e..00000000 --- a/build/node_modules/anymatch/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "anymatch", - "version": "3.1.3", - "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", - "files": [ - "index.js", - "index.d.ts" - ], - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "author": { - "name": "Elan Shanker", - "url": "https://github.com/es128" - }, - "license": "ISC", - "homepage": "https://github.com/micromatch/anymatch", - "repository": { - "type": "git", - "url": "https://github.com/micromatch/anymatch" - }, - "keywords": [ - "match", - "any", - "string", - "file", - "fs", - "list", - "glob", - "regex", - "regexp", - "regular", - "expression", - "function" - ], - "scripts": { - "test": "nyc mocha", - "mocha": "mocha" - }, - "devDependencies": { - "mocha": "^6.1.3", - "nyc": "^14.0.0" - }, - "engines": { - "node": ">= 8" - } -} diff --git a/build/node_modules/api-contract-validator/CHANGELOG.md b/build/node_modules/api-contract-validator/CHANGELOG.md deleted file mode 100644 index 2c0d1e87..00000000 --- a/build/node_modules/api-contract-validator/CHANGELOG.md +++ /dev/null @@ -1,37 +0,0 @@ -# Master - -2.2.4 - 15 March, 2021 - -#### Fixes -- Prioritize exact path segment matching - - -# 2.2.3 - 23 January 2021 - - a fixed bug: when response is with additionalProperties false, - The error was not shown or was not fit to specific field. - -# 2.2.2 - 13 December, 2020 - - update "api-schema-builder" package to latest - -# 2.2.1 - 9 December, 2020 - - Update types to reflect the support of multiple definitions files paths - -# 2.2.0 - 3 December, 2020 - -### New features - -- Support multiple yaml documents #52 -- Support using nullable - -# 2.1.0 - 15 May, 2020 - -### New features - -- Support response format from fastify inject() #44 - -# 2.0.0 - 5 May, 2020 - -### Breaking changes - -- Validate loaded OpenAPI specification (throws an error if it's not a valid OpenAPI 3.0 document) #42 -- If your OpenAPI 3.x specification includes servers definition, some of the endpoints that weren't being matched for validation in the past can start getting validated (if any of servers + path combination matches) #42 diff --git a/build/node_modules/api-contract-validator/LICENSE b/build/node_modules/api-contract-validator/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/build/node_modules/api-contract-validator/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/api-contract-validator/README.md b/build/node_modules/api-contract-validator/README.md deleted file mode 100644 index fab79981..00000000 --- a/build/node_modules/api-contract-validator/README.md +++ /dev/null @@ -1,174 +0,0 @@ -[![npm](https://img.shields.io/npm/v/api-contract-validator.svg)](https://www.npmjs.com/package/api-contract-validator) -[![npm](https://img.shields.io/npm/dm/api-contract-validator)](https://www.npmjs.com/package/api-contract-validator) -[![Build Status](https://travis-ci.com/PayU/api-contract-validator.svg?branch=master)](https://travis-ci.com/PayU/api-contract-validator) -[![Coverage Status](https://coveralls.io/repos/github/PayU/api-contract-validator/badge.svg?branch=master)](https://coveralls.io/github/PayU/api-contract-validator?branch=master) -[![Known Vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/PayU/api-contract-validator.svg)](https://snyk.io/test/github/PayU/api-contract-validator?targetFile=package.json) -![style](https://img.shields.io/badge/code%20style-airbnb-ff5a5f.svg) -![NPM](https://img.shields.io/npm/l/api-contract-validator.svg) - - -# api-contract-validator -This plugin for assertion libraries is for validating API response schemas against Swagger/OpenAPI definition. - -Using the plugin is easy. Simply point the plugin to your API definitions file path and add one line to your integration test to validate that your application adheres to its design contract. - -## Highlights -- Asserts according to API definitions document -- Descriptive assertion failures -- Simple and concise usage -- Coverage report (can be printed to your terminal or exported to a json file) -- Supports response format from `axios`, `superagent`, `supertest`, `request` and `light-my-request` (used by `fastify`) -- Supports OpenAPI 3.0 -- Supports multiple definition files - - -## How does it work? -The api-contract-validator transforms your API definition into a json-schema based on the provided API documentation file. Then whenever the `matchApiSchema` assertion is called, it automatically extracts the method, path and status code from the response object returned by the API request that you invoked and validates the response object. Both the response headers and body are validated. - -## How to use? -***Installation*** -```bash -> npm i --save-dev api-contract-validator -``` - -### ***Chai.js*** -```js -const matchApiSchema = require('api-contract-validator').chaiPlugin; -const path = require('path'); -const { expect, use } = require('chai'); - -// API definitions path -const apiDefinitionsPath = path.join(__dirname, 'myApp.yaml'); - -// add as chai plugin -use(matchApiSchema({ apiDefinitionsPath })); - -it('GET /pets/123', async () => { - const response = await request.get('/pet/123'); - expect(response).to.have.status(200).and.to.matchApiSchema(); - - // alternatively pass - const { statusCode, headers, body } = response - expect({ - path: '/pet/123', - method: 'get', - status: statusCode, - body: body, - headers: headers, - }).to.have.status(200).and.to.matchApiSchema(); -}) -``` - -### ***Should.js*** -```js -const matchApiSchema = require('api-contract-validator').shouldPlugin; - -// API definitions path -const apiDefinitionsPath = path.join(__dirname, 'myApp.yaml'); - -// add as should plugin -matchApiSchema(should, { apiDefinitionsPath }); - -it('GET /pets/123', async () => { - const response = await request.get('/pet/123'); - should(response).have.status(200).and.matchApiSchema(); -}) -``` - -### ***Jest*** -```js -const matchApiSchema = require('api-contract-validator').jestPlugin; - -// API definitions path -const apiDefinitionsPath = path.join(__dirname, 'myApp.yaml'); - -// add as jest plugin -matchApiSchema({ apiDefinitionsPath }); - -it('GET /pets/123', async () => { - const response = await request.get('/pet/123'); - expect(response).toHaveStatus(200); - expect(response).toMatchApiSchema(); -}) -``` -## ***Multiple api definitions files*** -use apiDefinitionsPath option with an array of files paths -```js -const apiDefinitionsPath = [path.join(__dirname, 'myApp.yaml'), path.join(__dirname, 'myApp2.yaml')]; -``` - -## Descriptive assertion failures -```js -AssertionError: expected response to match API schema -+ expected - actual - -{ - "body": { -- "age": -1 -+ "age": "should be >= 0" -+ "name": "should have required property" - } - "headers": { -- "x-expires-after": [] -- "x-rate-limit": -5 -+ "x-expires-after": "should be string" -+ "x-rate-limit": "should be >= 0" - } -} -``` - -## Coverage report -By providing in the plugin options, the flag `reportCoverage:true`, the plugin generates a report of all uncovered API definitions. -```js -use(matchApiSchema({ - apiDefinitionsPath, - reportCoverage: true -})); -``` - -```bash -* API definitions coverage report * - -Uncovered API definitions found: -*ROUTE* | *METHOD* | *STATUSES* -/v2/pet | POST | 405 -/v2/pet | PUT | 400,404,405 -/v2/pet/findByStatus | GET | 200,400 -/v2/pet/findByTags | GET | 200,400 -/v2/pet/:petId | GET | 400,404 -/v2/pet/:petId | POST | 405 -/v2/pet/:petId | DELETE | 400,404 -/v2/pet/:petId/uploadImage | POST | 200 -``` - -# Exporting the report: -When providing `exportCoverage: true` a `coverage.json` file will be created in your cwd with following structure: -```js -use(matchApiSchema({ - apiDefinitionsPath, - exportCoverage: true -})); -``` -coverage.json: -```js -[{"route":"/v2/pet","method":"POST","statuses":"405"}, -{"route":"/v2/pet","method":"PUT","statuses":"400,404,405"}, -{"route":"/v2/pet/:petId","method":"GET","statuses":"200"}, -{"route":"/v2/pet/:petId","method":"POST","statuses":"405"}, -{"route":"/v2/pet/:petId","method":"DELETE","statuses":"404"}] -``` -## Supported request libraries -- supertest -- axios -- request-promise* -- more to come - -*\* When using request-promise `resolveWithFullResponse:true` must be added to the request options, in order to properly extract the request details* - -## Supported assertion libraries -- chai.js -- should.js -- jest -- more to come - - diff --git a/build/node_modules/api-contract-validator/package.json b/build/node_modules/api-contract-validator/package.json deleted file mode 100644 index 31827814..00000000 --- a/build/node_modules/api-contract-validator/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "name": "api-contract-validator", - "version": "2.2.8", - "description": "Plugin for validating API schemas from API documentation", - "main": "lib/index.js", - "types": "types/index.d.ts", - "scripts": { - "test": "mocha", - "test:ci": "npm run lint && npm run lint:types && npm run test:coverage", - "test:coverage": "nyc npm test && npm run test:jest", - "test:jest": "jest --runInBand --config=jest.config.json", - "lint": "eslint lib", - "lint:fix": "eslint --fix lib", - "lint:types": "dtslint types && eslint types/index.d.ts", - "coveralls": "cat ./coverage/lcov.info | ./node_modules/.bin/coveralls" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/PayU/api-contract-validator.git" - }, - "files": [ - "lib", - "types/index.d.ts" - ], - "directories": { - "lib": "lib", - "test": "test" - }, - "keywords": [ - "chai", - "chai-plugin", - "should", - "plugin", - "api", - "openapi", - "swagger", - "response", - "contract", - "testing", - "validator", - "rest", - "restapi", - "assert", - "assertion", - "jest" - ], - "author": "Kobi Carmeli", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/PayU/api-contract-validator/issues" - }, - "homepage": "git+https://github.com/PayU/api-contract-validator#readme", - "dependencies": { - "api-schema-builder": "^2.0.10", - "chalk": "^3.0.0", - "columnify": "^1.5.4", - "jest-diff": "^25.5.0", - "jest-matcher-utils": "^25.5.0", - "lodash.flatten": "^4.4.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "uri-js": "^4.4.1" - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^2.34.0", - "@typescript-eslint/parser": "^2.34.0", - "axios": "^0.21.1", - "chai": "^4.3.4", - "chai-like": "^1.1.1", - "coveralls": "^3.1.1", - "dtslint": "^4.1.3", - "eslint": "^6.8.0", - "eslint-config-airbnb": "^18.2.1", - "eslint-config-airbnb-base": "^14.2.1", - "eslint-plugin-import": "^2.23.4", - "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", - "fastify": "^3.20.0", - "jest": "^25.5.4", - "mocha": "^7.2.0", - "nock": "^12.0.3", - "nyc": "^15.1.0", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", - "should": "^13.2.3", - "sinon": "^9.2.4", - "supertest": "^4.0.2", - "typescript": "3.8.3" - }, - "nyc": { - "check-coverage": true, - "exclude": [ - "lib/plugins/jest/**/*", - "node_modules", - "coverage", - ".nyc_output", - "test" - ], - "lines": 95, - "statements": 95, - "functions": 95, - "branches": 95, - "reporter": [ - "lcov", - "text" - ], - "cache": true, - "all": true - }, - "engines": { - "node": ">=8" - } -} diff --git a/build/node_modules/api-schema-builder/CHANGELOG.md b/build/node_modules/api-schema-builder/CHANGELOG.md deleted file mode 100644 index e0be0b46..00000000 --- a/build/node_modules/api-schema-builder/CHANGELOG.md +++ /dev/null @@ -1,41 +0,0 @@ -# Master - -# 2.0.5 - 1 February, 2021 -### Improvements -- Added basic support for relative URLs #59 -- Update dependencies to fix security vulnerabilities - -# 2.0.4 - 26 Nov, 2020 -### Improvements -- Nullable is now fully supported -- Update dependencies to fix security vulnerabilities - -# 2.0.2 - 7 July, 2020 - -### Improvements - -- Speed-up `api-schema-builder` import by lazy loading required dependencies #54 - - -# 2.0.1 - 13 May, 2020 - -### Improvements - -- Support empty servers in OpenAPI 3.0 spec #50 - - -# 2.0.0 - 23 April, 2020 - -### New features - -- Support for servers and base path in OAS 3 #46 - -### Improvements - -- Speed-up import of `api-schema-builder` and reduce total bundle size by removing polyfills #45 - -### Breaking changes - -- Validate loaded OpenAPI specification (throws an error if it's not a valid OpenAPI 3.0 document) #47 -- Drop Node 6 support #45 -- If your OpenAPI 3.x specification includes servers definition, some of the endpoints that weren't being matched for validation in the past can start getting validated (if any of servers + path combination matches) #46 diff --git a/build/node_modules/api-schema-builder/LICENSE b/build/node_modules/api-schema-builder/LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/build/node_modules/api-schema-builder/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/api-schema-builder/README.md b/build/node_modules/api-schema-builder/README.md deleted file mode 100644 index 7152e81e..00000000 --- a/build/node_modules/api-schema-builder/README.md +++ /dev/null @@ -1,175 +0,0 @@ - -# api-schema-builder -[![NPM Version](https://img.shields.io/npm/v/api-schema-builder.svg?style=flat)](https://npmjs.org/package/api-schema-builder) -[![Build Status](https://travis-ci.org/payu/api-schema-builder.svg?branch=master)](https://travis-ci.org/payu/api-schema-builder) -[![Coverage Status](https://coveralls.io/repos/github/PayU/api-schema-builder/badge.svg?branch=master)](https://coveralls.io/github/PayU/api-schema-builder?branch=master) -[![Known Vulnerabilities](https://snyk.io/test/npm/api-schema-builder/badge.svg)](https://snyk.io/test/npm/api-schema-builder) -[![Apache 2.0 License](https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat)](LICENSE) - -This package is used to build schema for input validation base on openapi doc [Swagger (Open API)](https://swagger.io/specification/) definition and [ajv](https://www.npmjs.com/package/ajv) - - - -**Table of Contents** - - - -- [Install](#install) -- [API](#api) - - [How to use](#how-to-use) - - [api-schema-builder.buildSchemaSync(PathToSwaggerFile, options)](#api-schema-buildergetSchemapathtoswaggerfile-options) - - [Arguments](#arguments) - - [Options](#options) - - [Response](#response) - - [api-schema-builder.buildSchemaSync(jsonSchema, options)](#api-schema-buildergetSchemajsonSchema-options) - - [api-schema-builder.buildSchema(PathToSwaggerFile, options)](#api-schema-buildergetSchemaAsyncpathtoswaggerfile-options) -- [Usage Example](#usage-example) -- [Important Notes](#important-notes) -- [Open api 3 - known issues](#open-api-3---known-issues) -- [Running Tests](#running-tests) - - - -## Install -```bash -npm install --save api-schema-builder -``` - -## API - -### How to use - -```js -const apiSchemaBuilder = require('api-schema-builder'); -``` - -### api-schema-builder.buildSchemaSync(PathToSwaggerFile, options) - -Synchronously build schema that would contain ajv validators for each endpoint, based on swagger definition. - -The function returns schema object. - -#### Arguments - -* `PathToSwaggerFile` – Path to the swagger definition -* `options` – Additional options for build the schema. - -#### Response -Array that contains: -* `path_name`: the paths it written in the api doc, for example `/pet`. - * `method`: the relevant method it written in the api doc, for example `get`. - * `parameters`: - * `validate`: ajv validator that check: paths, files, queries and headers. - * `errors`: in case of fail validation it return array of errors, otherwise return null - * `body`: - * `validate`: ajv validator that check: body only. - * `errors`: in case of fail validation it return array of errors, otherwise return null - * `responses`: contain array of statusCodes - * `statusCode`: - * `validate`: ajv validator that check body and headers. - * `errors`: in case of fail validation it return array of errors, otherwise return null - - -##### Options - -Options currently supports:. -- `keywords` - Array of keywords that can be added to `ajv` configuration, each element in the array can be either an object or a function. -If the element is an object, it must include `name` and `definition`. If the element is a function, it should accept `ajv` as its first argument and inside the function you need to call `ajv.addKeyword` to add your custom keyword -- `makeOptionalAttributesNullable` - Boolean that forces preprocessing of Swagger schema to include 'null' as possible type for all non-required properties. Main use-case for this is to ensure correct handling of null values when Ajv type coercion is enabled -- `ajvConfigBody` - Object that will be passed as config to new Ajv instance which will be used for validating request body. Can be useful to e. g. enable type coercion (to automatically convert strings to numbers etc). See Ajv documentation for supported values. -- `ajvConfigParams` - Object that will be passed as config to new Ajv instance which will be used for validating request headers and parameters. See Ajv documentation for supported values. -- `contentTypeValidation` - Boolean that indicates if to perform content type validation in case `consume` field is specified and the request body is not empty. -- `expectFormFieldsInBody` - Boolean that indicates whether form fields of non-file type that are specified in the schema should be validated against request body (e. g. Multer is copying text form fields to body) -- `buildRequests` - Boolean that indicates whether if create validators for requests, default is true. -- `buildResponses` - Boolean that indicates whether if create validators for responses, default is false. -- `basePath` - Base path of the external definition files referenced in the given schema. This is required whenever passing json schema instead of `PathToSwaggerFile` to the constructor or the external files are not stored in the same path of `PathToSwaggerFile` -- `formats` - Array of formats that can be added to `ajv` configuration, each element in the array should include `name` and `pattern`. - - ```js - formats: [ - { name: 'double', pattern: /\d+\.(\d+)+/ }, - { name: 'int64', pattern: /^\d{1,19}$/ }, - { name: 'int32', pattern: /^\d{1,10}$/ } - ] - ``` - -### api-schema-builder.buildSchema(jsonSchema, options) - -Synchronously build schema that would contain ajv validators for each endpoint, based on given OpenAPI specification as json schema. - -The function returns schema object. - - -### api-schema-builder.buildSchema(PathToSwaggerFile, options) - -Asynchronously build schema that would contain ajv validators for each endpoint, based on swagger definition. - -The function returns Promise that resolves with a schema object. -s -Arguments, options and response are the same as for the `buildSchemaSync` method. - -## Usage Example - -### Validate request -```js - const schema = apiSchemaBuilder.buildSchemaSync('test/unit-tests/input-validation/pet-store-swagger.yaml'); - let schemaEndpoint = schema['/pet']['post']; - - //validate request's parameters - let isParametersMatch = schemaEndpoint.parameters.validate({ query: {}, - headers: { 'public-key': '1.0'},path: {},files: undefined }); - expect(schemaEndpoint.parameters.errors).to.be.equal(null); - expect(isParametersMatch).to.be.true; - - //validate request's body - let isBodysMatch =schemaEndpoint.body.validate({'bark': 111}); - expect(schemaEndpoint.body.errors).to.be.eql([{ - 'dataPath': '.bark', - 'keyword': 'type', - 'message': 'should be string', - 'params': { - 'type': 'string' - }, - 'schemaPath': '#/properties/bark/type'} - ]) - expect(isBodysMatch).to.be.false; -``` -### Validate response -```js - const schema = apiSchemaBuilder.buildSchemaSync('test/unit-tests/input-validation/pet-store-swagger.yaml'); - let schemaEndpoint = schema['/pet']['post'].responses['201']; - //validate response's body and headers - let isValid = schemaEndpoint.validate({ - body :{ id:11, 'name': 111}, - headers:{'x-next': '321'} - }) - expect(schemaEndpoint.errors).to.be.eql([ - { - 'dataPath': '.body.name', - 'keyword': 'type', - 'message': 'should be string', - 'params': { - 'type': 'string' - }, - 'schemaPath': '#/body/properties/name/type' - }]) - expect(isValid).to.be.false; -``` - -## Important Notes - -- Objects - it is important to set any objects with the property `type: object` inside your swagger file, although it isn't a must in the Swagger (OpenAPI) spec in order to validate it accurately with [ajv](https://www.npmjs.com/package/ajv) it must be marked as `object` -- Response validator does not support readOnly attribute - -## Open api 3 - known issues -- supporting inheritance with discriminator , only if the ancestor object is the discriminator. -- The discriminator supports in the inheritance chain stop when getting to a child with no discriminator (a leaf in the inheritance tree), meaning a leaf can't have a field which starts a new inheritance tree. - so child with no discriminator cant point to other child with discriminator, -- Response validator support only application/json content type -- Response validator does not support links and writeOnly attribute - -## Running Tests -Using mocha and istanbul -```bash -npm run test -``` \ No newline at end of file diff --git a/build/node_modules/api-schema-builder/package.json b/build/node_modules/api-schema-builder/package.json deleted file mode 100644 index f3a57ee1..00000000 --- a/build/node_modules/api-schema-builder/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "api-schema-builder", - "version": "2.0.11", - "description": "build schema with validators for each endpoint", - "main": "src/index.js", - "files": [ - "src" - ], - "nyc": { - "report-dir": "./coverage", - "lines": 95, - "statements": 95, - "functions": 100, - "branches": 90, - "reporter": [ - "lcov", - "text" - ], - "cache": true, - "all": true - }, - "license": "Apache-2.0", - "scripts": { - "test": "mocha", - "test:coverage": "nyc npm test", - "lint": "eslint src", - "lint:fix": "eslint src --fix" - }, - "repository": { - "type": "git", - "url": "https://github.com/PayU/api-schema-builder.git" - }, - "keywords": [ - "ajv", - "swagger", - "OpenAPI", - "open api", - "validation", - "validator" - ], - "bugs": { - "url": "https://github.com/PayU/api-schema-builder/issues" - }, - "homepage": "git+https://github.com/PayU/api-schema-builder.git", - "author": "Idan Tovi", - "contributors": [ - "Igor Savin", - "Kobi Carmeli", - "Gal Cohen" - ], - "dependencies": { - "ajv": "^6.12.6", - "clone-deep": "^4.0.1", - "decimal.js": "^10.3.1", - "js-yaml": "^3.14.1", - "json-schema-deref-sync": "^0.14.0", - "lodash.get": "^4.4.2", - "openapi-schema-validator": "^3.0.3", - "swagger-parser": "^10.0.3" - }, - "devDependencies": { - "ajv-keywords": "^3.5.2", - "chai": "^4.3.4", - "chai-as-promised": "^7.1.1", - "eslint": "^8.5.0", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-chai-friendly": "^0.6.0", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.3.1", - "eslint-plugin-standard": "^4.1.0", - "mocha": "^8.4.0", - "nyc": "^15.1.0", - "snyk": "^1.812.0", - "uuid": "^8.3.2" - }, - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "engines": { - "node": ">=8" - } -} diff --git a/build/node_modules/aproba/CHANGELOG.md b/build/node_modules/aproba/CHANGELOG.md deleted file mode 100644 index bab30ecb..00000000 --- a/build/node_modules/aproba/CHANGELOG.md +++ /dev/null @@ -1,4 +0,0 @@ -2.0.0 - * Drop support for 0.10 and 0.12. They haven't been in travis but still, - since we _know_ we'll break with them now it's only polite to do a - major bump. diff --git a/build/node_modules/aproba/LICENSE b/build/node_modules/aproba/LICENSE deleted file mode 100644 index f4be44d8..00000000 --- a/build/node_modules/aproba/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/build/node_modules/aproba/README.md b/build/node_modules/aproba/README.md deleted file mode 100644 index 0bfc594c..00000000 --- a/build/node_modules/aproba/README.md +++ /dev/null @@ -1,94 +0,0 @@ -aproba -====== - -A ridiculously light-weight function argument validator - -``` -var validate = require("aproba") - -function myfunc(a, b, c) { - // `a` must be a string, `b` a number, `c` a function - validate('SNF', arguments) // [a,b,c] is also valid -} - -myfunc('test', 23, function () {}) // ok -myfunc(123, 23, function () {}) // type error -myfunc('test', 23) // missing arg error -myfunc('test', 23, function () {}, true) // too many args error - -``` - -Valid types are: - -| type | description -| :--: | :---------- -| * | matches any type -| A | `Array.isArray` OR an `arguments` object -| S | typeof == string -| N | typeof == number -| F | typeof == function -| O | typeof == object and not type A and not type E -| B | typeof == boolean -| E | `instanceof Error` OR `null` **(special: see below)** -| Z | == `null` - -Validation failures throw one of three exception types, distinguished by a -`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`. - -If you pass in an invalid type then it will throw with a code of -`EUNKNOWNTYPE`. - -If an **error** argument is found and is not null then the remaining -arguments are optional. That is, if you say `ESO` then that's like using a -non-magical `E` in: `E|ESO|ZSO`. - -### But I have optional arguments?! - -You can provide more than one signature by separating them with pipes `|`. -If any signature matches the arguments then they'll be considered valid. - -So for example, say you wanted to write a signature for -`fs.createWriteStream`. The docs for it describe it thusly: - -``` -fs.createWriteStream(path[, options]) -``` - -This would be a signature of `SO|S`. That is, a string and and object, or -just a string. - -Now, if you read the full `fs` docs, you'll see that actually path can ALSO -be a buffer. And options can be a string, that is: -``` -path | -options | -``` - -To reproduce this you have to fully enumerate all of the possible -combinations and that implies a signature of `SO|SS|OO|OS|S|O`. The -awkwardness is a feature: It reminds you of the complexity you're adding to -your API when you do this sort of thing. - - -### Browser support - -This has no dependencies and should work in browsers, though you'll have -noisier stack traces. - -### Why this exists - -I wanted a very simple argument validator. It needed to do two things: - -1. Be more concise and easier to use than assertions - -2. Not encourage an infinite bikeshed of DSLs - -This is why types are specified by a single character and there's no such -thing as an optional argument. - -This is not intended to validate user data. This is specifically about -asserting the interface of your functions. - -If you need greater validation, I encourage you to write them by hand or -look elsewhere. - diff --git a/build/node_modules/aproba/index.js b/build/node_modules/aproba/index.js deleted file mode 100644 index fd947481..00000000 --- a/build/node_modules/aproba/index.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict' -module.exports = validate - -function isArguments (thingy) { - return thingy != null && typeof thingy === 'object' && thingy.hasOwnProperty('callee') -} - -const types = { - '*': {label: 'any', check: () => true}, - A: {label: 'array', check: _ => Array.isArray(_) || isArguments(_)}, - S: {label: 'string', check: _ => typeof _ === 'string'}, - N: {label: 'number', check: _ => typeof _ === 'number'}, - F: {label: 'function', check: _ => typeof _ === 'function'}, - O: {label: 'object', check: _ => typeof _ === 'object' && _ != null && !types.A.check(_) && !types.E.check(_)}, - B: {label: 'boolean', check: _ => typeof _ === 'boolean'}, - E: {label: 'error', check: _ => _ instanceof Error}, - Z: {label: 'null', check: _ => _ == null} -} - -function addSchema (schema, arity) { - const group = arity[schema.length] = arity[schema.length] || [] - if (group.indexOf(schema) === -1) group.push(schema) -} - -function validate (rawSchemas, args) { - if (arguments.length !== 2) throw wrongNumberOfArgs(['SA'], arguments.length) - if (!rawSchemas) throw missingRequiredArg(0, 'rawSchemas') - if (!args) throw missingRequiredArg(1, 'args') - if (!types.S.check(rawSchemas)) throw invalidType(0, ['string'], rawSchemas) - if (!types.A.check(args)) throw invalidType(1, ['array'], args) - const schemas = rawSchemas.split('|') - const arity = {} - - schemas.forEach(schema => { - for (let ii = 0; ii < schema.length; ++ii) { - const type = schema[ii] - if (!types[type]) throw unknownType(ii, type) - } - if (/E.*E/.test(schema)) throw moreThanOneError(schema) - addSchema(schema, arity) - if (/E/.test(schema)) { - addSchema(schema.replace(/E.*$/, 'E'), arity) - addSchema(schema.replace(/E/, 'Z'), arity) - if (schema.length === 1) addSchema('', arity) - } - }) - let matching = arity[args.length] - if (!matching) { - throw wrongNumberOfArgs(Object.keys(arity), args.length) - } - for (let ii = 0; ii < args.length; ++ii) { - let newMatching = matching.filter(schema => { - const type = schema[ii] - const typeCheck = types[type].check - return typeCheck(args[ii]) - }) - if (!newMatching.length) { - const labels = matching.map(_ => types[_[ii]].label).filter(_ => _ != null) - throw invalidType(ii, labels, args[ii]) - } - matching = newMatching - } -} - -function missingRequiredArg (num) { - return newException('EMISSINGARG', 'Missing required argument #' + (num + 1)) -} - -function unknownType (num, type) { - return newException('EUNKNOWNTYPE', 'Unknown type ' + type + ' in argument #' + (num + 1)) -} - -function invalidType (num, expectedTypes, value) { - let valueType - Object.keys(types).forEach(typeCode => { - if (types[typeCode].check(value)) valueType = types[typeCode].label - }) - return newException('EINVALIDTYPE', 'Argument #' + (num + 1) + ': Expected ' + - englishList(expectedTypes) + ' but got ' + valueType) -} - -function englishList (list) { - return list.join(', ').replace(/, ([^,]+)$/, ' or $1') -} - -function wrongNumberOfArgs (expected, got) { - const english = englishList(expected) - const args = expected.every(ex => ex.length === 1) - ? 'argument' - : 'arguments' - return newException('EWRONGARGCOUNT', 'Expected ' + english + ' ' + args + ' but got ' + got) -} - -function moreThanOneError (schema) { - return newException('ETOOMANYERRORTYPES', - 'Only one error type per argument signature is allowed, more than one found in "' + schema + '"') -} - -function newException (code, msg) { - const err = new Error(msg) - err.code = code - /* istanbul ignore else */ - if (Error.captureStackTrace) Error.captureStackTrace(err, validate) - return err -} diff --git a/build/node_modules/aproba/package.json b/build/node_modules/aproba/package.json deleted file mode 100644 index d2212d30..00000000 --- a/build/node_modules/aproba/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "aproba", - "version": "2.0.0", - "description": "A ridiculously light-weight argument validator (now browser friendly)", - "main": "index.js", - "directories": { - "test": "test" - }, - "dependencies": {}, - "devDependencies": { - "standard": "^11.0.1", - "tap": "^12.0.1" - }, - "files": [ - "index.js" - ], - "scripts": { - "pretest": "standard", - "test": "tap --100 -J test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/aproba" - }, - "keywords": [ - "argument", - "validate" - ], - "author": "Rebecca Turner ", - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/aproba/issues" - }, - "homepage": "https://github.com/iarna/aproba" -} diff --git a/build/node_modules/are-we-there-yet/LICENSE.md b/build/node_modules/are-we-there-yet/LICENSE.md deleted file mode 100644 index 845be76f..00000000 --- a/build/node_modules/are-we-there-yet/LICENSE.md +++ /dev/null @@ -1,18 +0,0 @@ -ISC License - -Copyright npm, Inc. - -Permission to use, copy, modify, and/or distribute this -software for any purpose with or without fee is hereby -granted, provided that the above copyright notice and this -permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND NPM DISCLAIMS ALL -WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO -EVENT SHALL NPM BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/are-we-there-yet/README.md b/build/node_modules/are-we-there-yet/README.md deleted file mode 100644 index caae19b0..00000000 --- a/build/node_modules/are-we-there-yet/README.md +++ /dev/null @@ -1,208 +0,0 @@ -are-we-there-yet ----------------- - -Track complex hierarchies of asynchronous task completion statuses. This is -intended to give you a way of recording and reporting the progress of the big -recursive fan-out and gather type workflows that are so common in async. - -What you do with this completion data is up to you, but the most common use case is to -feed it to one of the many progress bar modules. - -Most progress bar modules include a rudimentary version of this, but my -needs were more complex. - -Usage -===== - -```javascript -var TrackerGroup = require("are-we-there-yet").TrackerGroup - -var top = new TrackerGroup("program") - -var single = top.newItem("one thing", 100) -single.completeWork(20) - -console.log(top.completed()) // 0.2 - -fs.stat("file", function(er, stat) { - if (er) throw er - var stream = top.newStream("file", stat.size) - console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete - // and 50% * 20% == 10% - fs.createReadStream("file").pipe(stream).on("data", function (chunk) { - // do stuff with chunk - }) - top.on("change", function (name) { - // called each time a chunk is read from "file" - // top.completed() will start at 0.1 and fill up to 0.6 as the file is read - }) -}) -``` - -Shared Methods -============== - -* var completed = tracker.completed() - -Implemented in: `Tracker`, `TrackerGroup`, `TrackerStream` - -Returns the ratio of completed work to work to be done. Range of 0 to 1. - -* tracker.finish() - -Implemented in: `Tracker`, `TrackerGroup` - -Marks the tracker as completed. With a TrackerGroup this marks all of its -components as completed. - -Marks all of the components of this tracker as finished, which in turn means -that `tracker.completed()` for this will now be 1. - -This will result in one or more `change` events being emitted. - -Events -====== - -All tracker objects emit `change` events with the following arguments: - -``` -function (name, completed, tracker) -``` - -`name` is the name of the tracker that originally emitted the event, -or if it didn't have one, the first containing tracker group that had one. - -`completed` is the percent complete (as returned by `tracker.completed()` method). - -`tracker` is the tracker object that you are listening for events on. - -TrackerGroup -============ - -* var tracker = new TrackerGroup(**name**) - - * **name** *(optional)* - The name of this tracker group, used in change - notifications if the component updating didn't have a name. Defaults to undefined. - -Creates a new empty tracker aggregation group. These are trackers whose -completion status is determined by the completion status of other trackers added to this aggregation group. - -Ex. - -```javascript -var tracker = new TrackerGroup("parent") -var foo = tracker.newItem("firstChild", 100) -var bar = tracker.newItem("secondChild", 100) - -foo.finish() -console.log(tracker.completed()) // 0.5 -bar.finish() -console.log(tracker.completed()) // 1 -``` - -* tracker.addUnit(**otherTracker**, **weight**) - - * **otherTracker** - Any of the other are-we-there-yet tracker objects - * **weight** *(optional)* - The weight to give the tracker, defaults to 1. - -Adds the **otherTracker** to this aggregation group. The weight determines -how long you expect this tracker to take to complete in proportion to other -units. So for instance, if you add one tracker with a weight of 1 and -another with a weight of 2, you're saying the second will take twice as long -to complete as the first. As such, the first will account for 33% of the -completion of this tracker and the second will account for the other 67%. - -Returns **otherTracker**. - -* var subGroup = tracker.newGroup(**name**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subGroup = tracker.addUnit(new TrackerGroup(name), weight) -``` - -* var subItem = tracker.newItem(**name**, **todo**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subItem = tracker.addUnit(new Tracker(name, todo), weight) -``` - -* var subStream = tracker.newStream(**name**, **todo**, **weight**) - -The above is exactly equivalent to: - -```javascript - var subStream = tracker.addUnit(new TrackerStream(name, todo), weight) -``` - -* console.log( tracker.debug() ) - -Returns a tree showing the completion of this tracker group and all of its -children, including recursively entering all of the children. - -Tracker -======= - -* var tracker = new Tracker(**name**, **todo**) - - * **name** *(optional)* The name of this counter to report in change - events. Defaults to undefined. - * **todo** *(optional)* The amount of work todo (a number). Defaults to 0. - -Ordinarily these are constructed as a part of a tracker group (via -`newItem`). - -* var completed = tracker.completed() - -Returns the ratio of completed work to work to be done. Range of 0 to 1. If -total work to be done is 0 then it will return 0. - -* tracker.addWork(**todo**) - - * **todo** A number to add to the amount of work to be done. - -Increases the amount of work to be done, thus decreasing the completion -percentage. Triggers a `change` event. - -* tracker.completeWork(**completed**) - - * **completed** A number to add to the work complete - -Increase the amount of work complete, thus increasing the completion percentage. -Will never increase the work completed past the amount of work todo. That is, -percentages > 100% are not allowed. Triggers a `change` event. - -* tracker.finish() - -Marks this tracker as finished, tracker.completed() will now be 1. Triggers -a `change` event. - -TrackerStream -============= - -* var tracker = new TrackerStream(**name**, **size**, **options**) - - * **name** *(optional)* The name of this counter to report in change - events. Defaults to undefined. - * **size** *(optional)* The number of bytes being sent through this stream. - * **options** *(optional)* A hash of stream options - -The tracker stream object is a pass through stream that updates an internal -tracker object each time a block passes through. It's intended to track -downloads, file extraction and other related activities. You use it by piping -your data source into it and then using it as your data source. - -If your data has a length attribute then that's used as the amount of work -completed when the chunk is passed through. If it does not (eg, object -streams) then each chunk counts as completing 1 unit of work, so your size -should be the total number of objects being streamed. - -* tracker.addWork(**todo**) - - * **todo** Increase the expected overall size by **todo** bytes. - -Increases the amount of work to be done, thus decreasing the completion -percentage. Triggers a `change` event. diff --git a/build/node_modules/are-we-there-yet/package.json b/build/node_modules/are-we-there-yet/package.json deleted file mode 100644 index 5714e09c..00000000 --- a/build/node_modules/are-we-there-yet/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "are-we-there-yet", - "version": "2.0.0", - "description": "Keep track of the overall completion of many disparate processes", - "main": "lib/index.js", - "scripts": { - "test": "tap", - "npmclilint": "npmcli-lint", - "lint": "eslint '**/*.js'", - "lintfix": "npm run lint -- --fix", - "posttest": "npm run lint", - "postsnap": "npm run lintfix --", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags", - "snap": "tap" - }, - "repository": { - "type": "git", - "url": "https://github.com/npm/are-we-there-yet.git" - }, - "author": "GitHub Inc.", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/are-we-there-yet/issues" - }, - "homepage": "https://github.com/npm/are-we-there-yet", - "devDependencies": { - "@npmcli/eslint-config": "^1.0.0", - "@npmcli/template-oss": "^1.0.2", - "eslint": "^7.32.0", - "eslint-plugin-node": "^11.1.0", - "tap": "^15.0.9" - }, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "files": [ - "bin", - "lib" - ], - "engines": { - "node": ">=10" - }, - "tap": { - "branches": 68, - "statements": 92, - "functions": 86, - "lines": 92 - }, - "templateVersion": "1.0.2" -} diff --git a/build/node_modules/argon2/LICENSE b/build/node_modules/argon2/LICENSE deleted file mode 100644 index f7dab3e5..00000000 --- a/build/node_modules/argon2/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Ranieri Althoff - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/argon2/README.md b/build/node_modules/argon2/README.md deleted file mode 100644 index d1588040..00000000 --- a/build/node_modules/argon2/README.md +++ /dev/null @@ -1,218 +0,0 @@ -# node-argon2 - -[![Financial contributors on Open Collective][opencollective-image]][opencollective-url] -[![Build status][actions-image]][actions-url] -[![NPM package][npm-image]][npm-url] -[![Coverage status][coverage-image]][coverage-url] -[![Code Quality][codequality-image]][codequality-url] - -Bindings to the reference [Argon2](https://github.com/P-H-C/phc-winner-argon2) -implementation. - -**Want to use it on the command line? Instead check -[node-argon2-cli](https://github.com/ranisalt/node-argon2-cli).** - -## Usage -It's possible to hash using either Argon2i, Argon2d or Argon2id (default), and -verify if a password matches a hash. - -To hash a password: -```js -const argon2 = require('argon2'); - -try { - const hash = await argon2.hash("password"); -} catch (err) { - //... -} -``` - -To see how you can modify the output (hash length, encoding) and parameters -(time cost, memory cost and parallelism), -[read the wiki](https://github.com/ranisalt/node-argon2/wiki/Options) - -To verify a password: -```js -try { - if (await argon2.verify("", "password")) { - // password match - } else { - // password did not match - } -} catch (err) { - // internal failure -} -``` - -### Migrating from another hash function -See [this article on the wiki](https://github.com/ranisalt/node-argon2/wiki/Migrating-from-another-hash-function) for steps on how to migrate your existing code to Argon2. It's easy! - -### TypeScript usage -A TypeScript type declaration file is published with this module. If you are -using TypeScript 2.0.0 or later, that means you do not need to install any -additional typings in order to get access to the strongly typed interface. -Simply use the library as mentioned above. - -```ts -import * as argon2 from "argon2"; - -const hash = await argon2.hash(..); -``` - -## Prebuilt binaries -**node-argon2** provides prebuilt binaries from `v0.26.0` onwards. They are -built every release using GitHub Actions. - -The current prebuilt binaries are built and tested with the following systems: -- Ubuntu 20.04 (x86-64; ARM64 from v0.28.2) -- MacOS 11 (x86-64) -- MacOS 12 (ARM64 from v0.29.0) -- Windows Server 2019 (x86-64) -- Alpine Linux 3.13 (x86-64 from v0.28.1; ARM64 from v0.28.2) -- FreeBSD 13.1 (x86-64 from v0.29.1) - -Binaries should also work for any version more recent than the ones listed -above. For example, the binary for Ubuntu 20.04 also works on Ubuntu 22.04, or -any other Linux system that ships a newer version of glibc; the binary for -MacOS 11 also works on MacOS 12. If your platform is below the above -requirements, you can follow the [Before installing](#before-installing) -section below to manually compile from source. It is also always recommended to -build from source to ensure consistency of the compiled module. - -## Before installing -*You can skip this section if the [prebuilt binaries](#prebuilt-binaries) work for you.* - -You **MUST** have a **node-gyp** global install before proceeding with the install, -along with GCC >= 5 / Clang >= 3.3. On Windows, you must compile under Visual -Studio 2015 or newer. - -**node-argon2** works only and is tested against Node >=14.0.0. - -### OSX -To install GCC >= 5 on OSX, use [homebrew](http://brew.sh/): -```console -$ brew install gcc -``` - -Once you've got GCC installed and ready to run, you then need to install -node-gyp, you must do this globally: -```console -$ npm install -g node-gyp -``` - -Finally, once node-gyp is installed and ready to go, you can install this -library, specifying the GCC or Clang binary to use: - -```console -$ CXX=g++-12 npm install argon2 -``` - -**NOTE**: If your GCC or Clang binary is named something different than `g++-12`, -you'll need to specify that in the command. - -## FAQ -
- How do I manually rebuild the binaries? - - ```bash - $ npx @mapbox/node-pre-gyp rebuild -C ./node_modules/argon2 - ``` - - Run `@mapbox/node-pre-gyp` instead of `node-gyp` because node-argon2's - `binding.gyp` file relies on variables from `@mapbox/node-pre-gyp`. - - You can omit `npx @mapbox` and use just `node-pre-gyp` if you have a global - installation of `@mapbox/node-pre-gyp`, otherwise prefixing `npx` will use - the local one in `./node_modules/.bin` -
- -
- - How do I skip installing prebuilt binaries and manually compile from source? - - - You can do either of the two methods below: - - 1. Force build from source on install. - ```bash - $ npm install argon2 --build-from-source - ``` - - 2. Ignore `node-argon2` install script and build manually. - ```bash - $ npm install argon2 --ignore-scripts - $ npx @mapbox/node-pre-gyp rebuild -C ./node_modules/argon2 - ``` -
- -
- - I installed Node as a snap, and I can't install node-argon2. - - - This seems to be an issue related to snap (see [#345 (comment)](https://github.com/ranisalt/node-argon2/issues/345#issuecomment-1164178674)). Installing Node with another package manager, such as [asdf](https://asdf-vm.com/) or [nvm](https://github.com/nvm-sh/nvm), is a possible workaround. -
- -### Differences from [node-argon2-ffi](https://github.com/cjlarose/argon2-ffi) -The interface of both are very similar, notably, node-argon2-ffi splits the -argon2i and argon2d function set, but this module also has the argon2id option, -which node-argon2-ffi **does not support**. Also, while node-argon2-ffi -suggests you promisify `crypto.randomBytes`, node-argon2 library does that -internally. - -**node-argon2** is much lighter than **node-argon2-ffi**, at 184 KB for -argon2@0.29.1 against 2.56 MB for argon2-ffi@1.2.0. Performance-wise, the -libraries are equal. You can run the same benchmark suite if you are curious, -but both can perform around 130 hashes/second on an Intel Core i5-4460 @ 3.2GHz -with default options. - -This library is implemented natively, meaning it is an extension to the node -engine. Thus, half of the code is C++ bindings, the other half is Javascript -functions. node-argon2-ffi uses ffi, a mechanism to call functions from one -language in another, and handles the type bindings (e.g. JS Number -> C++ int). - -## Contributors - -### Code contributors - -This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. - - -### Financial contributors - -Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/node-argon2/contribute)] - -#### Individuals - - - -#### Organizations - -Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/node-argon2/contribute)] - - - - - - - - - - - - -## License -Work licensed under the [MIT License](LICENSE). Please check -[P-H-C/phc-winner-argon2](https://github.com/P-H-C/phc-winner-argon2) for -license over Argon2 and the reference implementation. - -[opencollective-image]: https://img.shields.io/opencollective/all/node-argon2.svg?style=flat-square -[opencollective-url]: https://opencollective.com/node-argon2 -[npm-image]: https://img.shields.io/npm/v/argon2.svg?style=flat-square -[npm-url]: https://www.npmjs.com/package/argon2 -[actions-image]: https://img.shields.io/github/workflow/status/ranisalt/node-argon2/CI/master?style=flat-square -[actions-url]: https://github.com/ranisalt/node-argon2/actions -[coverage-image]: https://img.shields.io/codacy/coverage/3aa6daee00154e1492660ecb2f788f73/master.svg?style=flat-square -[coverage-url]: https://app.codacy.com/gh/ranisalt/node-argon2 -[codequality-image]: https://img.shields.io/codacy/grade/3aa6daee00154e1492660ecb2f788f73/master.svg?style=flat-square -[codequality-url]: https://app.codacy.com/gh/ranisalt/node-argon2 diff --git a/build/node_modules/argon2/argon2.cpp b/build/node_modules/argon2/argon2.cpp deleted file mode 100644 index 8b43233d..00000000 --- a/build/node_modules/argon2/argon2.cpp +++ /dev/null @@ -1,127 +0,0 @@ - -#include "argon2/include/argon2.h" -#include -#include -#include -#include - -using namespace Napi; -using ustring = std::vector; - -static ustring from_buffer(const Value &value) { - const auto &buf = value.As>(); - const auto &data = buf.Data(); - return {data, data + buf.Length()}; -} - -static Buffer to_buffer(const Env &env, const ustring &str) { - return Buffer::Copy(env, str.data(), str.size()); -} - -struct Options { - ustring secret; - ustring ad; - - uint32_t hash_length; - uint32_t time_cost; - uint32_t memory_cost; - uint32_t parallelism; - uint32_t version; - - argon2_type type; -}; - -static argon2_context make_context(uint8_t *buf, ustring &plain, ustring &salt, - Options &opts) { - argon2_context ctx; - - ctx.out = buf; - ctx.outlen = opts.hash_length; - ctx.pwd = plain.data(); - ctx.pwdlen = plain.size(); - ctx.salt = salt.data(); - ctx.saltlen = salt.size(); - ctx.secret = opts.secret.empty() ? nullptr : opts.secret.data(); - ctx.secretlen = opts.secret.size(); - ctx.ad = opts.ad.empty() ? nullptr : opts.ad.data(); - ctx.adlen = opts.ad.size(); - ctx.t_cost = opts.time_cost; - ctx.m_cost = opts.memory_cost; - ctx.lanes = opts.parallelism; - ctx.threads = opts.parallelism; - ctx.allocate_cbk = nullptr; - ctx.free_cbk = nullptr; - ctx.flags = ARGON2_FLAG_CLEAR_PASSWORD | ARGON2_FLAG_CLEAR_SECRET; - ctx.version = opts.version; - - return ctx; -} - -class HashWorker final : public AsyncWorker { -public: - HashWorker(const Function &callback, ustring &&plain, ustring &&salt, - Options &&opts) - : AsyncWorker{callback, "argon2:HashWorker"}, plain{std::move(plain)}, - salt{std::move(salt)}, opts{std::move(opts)} {} - - void Execute() override { - auto buf = std::make_unique(opts.hash_length); - - auto ctx = make_context(buf.get(), plain, salt, opts); - int result = argon2_ctx(&ctx, opts.type); - - if (result != ARGON2_OK) { - /* LCOV_EXCL_START */ - SetError(argon2_error_message(result)); - /* LCOV_EXCL_STOP */ - } else { - hash.assign(buf.get(), buf.get() + opts.hash_length); - } - } - - void OnOK() override { - const auto &env = Env(); - HandleScope scope{env}; - Callback()({env.Undefined(), to_buffer(env, hash)}); - } - -private: - ustring plain; - ustring salt; - Options opts; - - ustring hash; -}; - -static Options extract_opts(const Object &opts) { - return { - opts.Has("secret") ? from_buffer(opts["secret"]) : ustring{}, - opts.Has("associatedData") ? from_buffer(opts["associatedData"]) - : ustring{}, - opts["hashLength"].ToNumber(), - opts["timeCost"].ToNumber(), - opts["memoryCost"].ToNumber(), - opts["parallelism"].ToNumber(), - opts["version"].ToNumber(), - argon2_type(int(opts["type"].ToNumber())), - }; -} - -static Value Hash(const CallbackInfo &info) { - assert(info.Length() == 4 && info[0].IsBuffer() && info[1].IsBuffer() && - info[2].IsObject() && info[3].IsFunction()); - - auto worker = new HashWorker{info[3].As(), from_buffer(info[0]), - from_buffer(info[1]), - extract_opts(info[2].As())}; - - worker->Queue(); - return info.Env().Undefined(); -} - -static Object init(Env env, Object exports) { - exports["hash"] = Function::New(env, Hash); - return exports; -} - -NODE_API_MODULE(argon2_lib, init); diff --git a/build/node_modules/argon2/argon2.d.ts b/build/node_modules/argon2/argon2.d.ts deleted file mode 100644 index 9b75849e..00000000 --- a/build/node_modules/argon2/argon2.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Type definitions for argon2 v0.19.2 - -/// - -export interface Options { - hashLength?: number; - timeCost?: number; - memoryCost?: number; - parallelism?: number; - type?: 0 | 1 | 2; - version?: number; - salt?: Buffer; - saltLength?: number; - raw?: boolean; - secret?: Buffer; - associatedData?: Buffer; -} - -export interface NumericLimit { - max: number; - min: number; -} - -export interface OptionLimits { - hashLength: NumericLimit; - memoryCost: NumericLimit; - timeCost: NumericLimit; - parallelism: NumericLimit; -} - -export const argon2d: 0; -export const argon2i: 1; -export const argon2id: 2; - -export const defaults: Options; -export const limits: OptionLimits; -export function hash( - plain: Buffer | string, - options: Options & { raw: true } -): Promise; -export function hash( - plain: Buffer | string, - options?: Options & { raw?: false } -): Promise; -export function verify( - hash: string, - plain: Buffer | string, - options?: Options -): Promise; -export function needsRehash(hash: string, options?: Options): boolean; diff --git a/build/node_modules/argon2/argon2.js b/build/node_modules/argon2/argon2.js deleted file mode 100644 index 65ac4b1f..00000000 --- a/build/node_modules/argon2/argon2.js +++ /dev/null @@ -1,121 +0,0 @@ -"use strict"; -const assert = require("assert"); -const { randomBytes, timingSafeEqual } = require("crypto"); -const path = require("path"); -const { promisify } = require("util"); -const binary = require("@mapbox/node-pre-gyp"); - -const bindingPath = binary.find(path.resolve(__dirname, "./package.json")); -const { hash: _hash } = require(bindingPath); - -const { deserialize, serialize } = require("@phc/format"); - -const types = Object.freeze({ argon2d: 0, argon2i: 1, argon2id: 2 }); - -const defaults = Object.freeze({ - hashLength: 32, - saltLength: 16, - timeCost: 3, - memoryCost: 1 << 16, - parallelism: 4, - type: types.argon2id, - version: 0x13, -}); - -const limits = Object.freeze({ - hashLength: { min: 4, max: 2 ** 32 - 1 }, - memoryCost: { min: 1 << 10, max: 2 ** 32 - 1 }, - timeCost: { min: 2, max: 2 ** 32 - 1 }, - parallelism: { min: 1, max: 2 ** 24 - 1 }, -}); - -const names = Object.freeze({ - [types.argon2d]: "argon2d", - [types.argon2i]: "argon2i", - [types.argon2id]: "argon2id", -}); - -const bindingsHash = promisify(_hash); -const generateSalt = promisify(randomBytes); - -const assertLimits = - (options) => - ([key, { max, min }]) => { - const value = options[key]; - assert( - min <= value && value <= max, - `Invalid ${key}, must be between ${min} and ${max}.` - ); - }; - -const hash = async (plain, { raw, salt, ...options } = {}) => { - options = { ...defaults, ...options }; - - Object.entries(limits).forEach(assertLimits(options)); - - salt = salt || (await generateSalt(options.saltLength)); - - const hash = await bindingsHash(Buffer.from(plain), salt, options); - if (raw) { - return hash; - } - - const { - type, - version, - memoryCost: m, - timeCost: t, - parallelism: p, - associatedData: data, - } = options; - return serialize({ - id: names[type], - version, - params: { m, t, p, ...(data ? { data } : {}) }, - salt, - hash, - }); -}; - -const needsRehash = (digest, options) => { - const { memoryCost, timeCost, version } = { ...defaults, ...options }; - - const { - version: v, - params: { m, t }, - } = deserialize(digest); - return +v !== +version || +m !== +memoryCost || +t !== +timeCost; -}; - -const verify = async (digest, plain, options) => { - const obj = deserialize(digest); - // Only these have the "params" key, so if the password was encoded - // using any other method, the destructuring throws an error - if (!(obj.id in types)) { - return false; - } - - const { - id, - version = 0x10, - params: { m, t, p, data }, - salt, - hash, - } = obj; - - return timingSafeEqual( - await bindingsHash(Buffer.from(plain), salt, { - ...options, - type: types[id], - version: +version, - hashLength: hash.length, - memoryCost: +m, - timeCost: +t, - parallelism: +p, - ...(data ? { associatedData: Buffer.from(data, "base64") } : {}), - }), - hash - ); -}; - -module.exports = { defaults, limits, hash, needsRehash, verify, ...types }; diff --git a/build/node_modules/argon2/binding.gyp b/build/node_modules/argon2/binding.gyp deleted file mode 100644 index 6c81fadf..00000000 --- a/build/node_modules/argon2/binding.gyp +++ /dev/null @@ -1,81 +0,0 @@ -{ - "target_defaults": { - "include_dirs": ["argon2/include"], - "target_conditions": [ - ["OS == 'mac'", { - "xcode_settings": { - "CLANG_CXX_LIBRARY": "libc++", - "MACOSX_DEPLOYMENT_TARGET": "10.7", - } - }], - ], - "configurations": { - "Release": { - "target_conditions": [ - ["OS != 'win'", { - "cflags+": ["-fdata-sections", "-ffunction-sections", "-fvisibility=hidden"], - "ldflags+": ["-Wl,--gc-sections"] - }] - ], - "defines+": ["_FORTIFY_SOURCE=2", "NDEBUG"] - } - } - }, - "targets": [ - { - "target_name": "libargon2", - "sources": [ - "argon2/src/argon2.c", - "argon2/src/core.c", - "argon2/src/blake2/blake2b.c", - "argon2/src/thread.c", - "argon2/src/encoding.c", - ], - "cflags+": ["-Wno-type-limits"], - "conditions": [ - ["target_arch == 'ia32' or target_arch == 'x64'", { - "cflags+": ["-msse", "-msse2"], - "sources+": ["argon2/src/opt.c"] - }, { - "sources+": ["argon2/src/ref.c"] - }] - ], - "type": "static_library" - }, { - "target_name": "<(module_name)", - "xcode_settings": { - "GCC_ENABLE_CPP_EXCEPTIONS": "YES", - }, - "msvs_settings": { - "VCCLCompilerTool": { "ExceptionHandling": 1 }, - }, - "defines": [ - "NAPI_VERSION=<(napi_build_version)", - ], - "sources": [ - "argon2.cpp" - ], - "cflags_cc!": ["-fno-exceptions"], - "include_dirs": ["", - "license": "MIT", - "bugs": { - "url": "https://github.com/ranisalt/node-argon2/issues" - }, - "homepage": "https://github.com/ranisalt/node-argon2#readme", - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.10", - "@phc/format": "^1.0.0", - "node-addon-api": "^5.0.0" - }, - "devDependencies": { - "@types/node": "^18.11.18", - "c8": "^7.12.0", - "mocha": "^10.2.0", - "node-gyp": "^9.3.1", - "prettier": "^2.8.1", - "typescript": "^4.9.4" - }, - "binary": { - "module_name": "argon2", - "module_path": "./lib/binding/napi-v{napi_build_version}", - "host": "https://github.com", - "remote_path": "./ranisalt/node-argon2/releases/download/v{version}", - "package_name": "{module_name}-v{version}-napi-v{napi_build_version}-{platform}-{arch}-{libc}.tar.gz", - "napi_versions": [ - 3 - ] - }, - "engines": { - "node": ">=14.0.0" - }, - "standard": { - "env": "mocha", - "ignore": [ - "test/test-d.js" - ] - }, - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/node-argon2" - } -} diff --git a/build/node_modules/argparse/CHANGELOG.md b/build/node_modules/argparse/CHANGELOG.md deleted file mode 100644 index dc39ed69..00000000 --- a/build/node_modules/argparse/CHANGELOG.md +++ /dev/null @@ -1,216 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - - -## [2.0.1] - 2020-08-29 -### Fixed -- Fix issue with `process.argv` when used with interpreters (`coffee`, `ts-node`, etc.), #150. - - -## [2.0.0] - 2020-08-14 -### Changed -- Full rewrite. Now port from python 3.9.0 & more precise following. - See [doc](./doc) for difference and migration info. -- node.js 10+ required -- Removed most of local docs in favour of original ones. - - -## [1.0.10] - 2018-02-15 -### Fixed -- Use .concat instead of + for arrays, #122. - - -## [1.0.9] - 2016-09-29 -### Changed -- Rerelease after 1.0.8 - deps cleanup. - - -## [1.0.8] - 2016-09-29 -### Changed -- Maintenance (deps bump, fix node 6.5+ tests, coverage report). - - -## [1.0.7] - 2016-03-17 -### Changed -- Teach `addArgument` to accept string arg names. #97, @tomxtobin. - - -## [1.0.6] - 2016-02-06 -### Changed -- Maintenance: moved to eslint & updated CS. - - -## [1.0.5] - 2016-02-05 -### Changed -- Removed lodash dependency to significantly reduce install size. - Thanks to @mourner. - - -## [1.0.4] - 2016-01-17 -### Changed -- Maintenance: lodash update to 4.0.0. - - -## [1.0.3] - 2015-10-27 -### Fixed -- Fix parse `=` in args: `--examplepath="C:\myfolder\env=x64"`. #84, @CatWithApple. - - -## [1.0.2] - 2015-03-22 -### Changed -- Relaxed lodash version dependency. - - -## [1.0.1] - 2015-02-20 -### Changed -- Changed dependencies to be compatible with ancient nodejs. - - -## [1.0.0] - 2015-02-19 -### Changed -- Maintenance release. -- Replaced `underscore` with `lodash`. -- Bumped version to 1.0.0 to better reflect semver meaning. -- HISTORY.md -> CHANGELOG.md - - -## [0.1.16] - 2013-12-01 -### Changed -- Maintenance release. Updated dependencies and docs. - - -## [0.1.15] - 2013-05-13 -### Fixed -- Fixed #55, @trebor89 - - -## [0.1.14] - 2013-05-12 -### Fixed -- Fixed #62, @maxtaco - - -## [0.1.13] - 2013-04-08 -### Changed -- Added `.npmignore` to reduce package size - - -## [0.1.12] - 2013-02-10 -### Fixed -- Fixed conflictHandler (#46), @hpaulj - - -## [0.1.11] - 2013-02-07 -### Added -- Added 70+ tests (ported from python), @hpaulj -- Added conflictHandler, @applepicke -- Added fromfilePrefixChar, @hpaulj - -### Fixed -- Multiple bugfixes, @hpaulj - - -## [0.1.10] - 2012-12-30 -### Added -- Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion) - support, thanks to @hpaulj - -### Fixed -- Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj - - -## [0.1.9] - 2012-12-27 -### Fixed -- Fixed option dest interferens with other options (issue #23), thanks to @hpaulj -- Fixed default value behavior with `*` positionals, thanks to @hpaulj -- Improve `getDefault()` behavior, thanks to @hpaulj -- Improve negative argument parsing, thanks to @hpaulj - - -## [0.1.8] - 2012-12-01 -### Fixed -- Fixed parser parents (issue #19), thanks to @hpaulj -- Fixed negative argument parse (issue #20), thanks to @hpaulj - - -## [0.1.7] - 2012-10-14 -### Fixed -- Fixed 'choices' argument parse (issue #16) -- Fixed stderr output (issue #15) - - -## [0.1.6] - 2012-09-09 -### Fixed -- Fixed check for conflict of options (thanks to @tomxtobin) - - -## [0.1.5] - 2012-09-03 -### Fixed -- Fix parser #setDefaults method (thanks to @tomxtobin) - - -## [0.1.4] - 2012-07-30 -### Fixed -- Fixed pseudo-argument support (thanks to @CGamesPlay) -- Fixed addHelp default (should be true), if not set (thanks to @benblank) - - -## [0.1.3] - 2012-06-27 -### Fixed -- Fixed formatter api name: Formatter -> HelpFormatter - - -## [0.1.2] - 2012-05-29 -### Fixed -- Removed excess whitespace in help -- Fixed error reporting, when parcer with subcommands - called with empty arguments - -### Added -- Added basic tests - - -## [0.1.1] - 2012-05-23 -### Fixed -- Fixed line wrapping in help formatter -- Added better error reporting on invalid arguments - - -## [0.1.0] - 2012-05-16 -### Added -- First release. - - -[2.0.1]: https://github.com/nodeca/argparse/compare/2.0.0...2.0.1 -[2.0.0]: https://github.com/nodeca/argparse/compare/1.0.10...2.0.0 -[1.0.10]: https://github.com/nodeca/argparse/compare/1.0.9...1.0.10 -[1.0.9]: https://github.com/nodeca/argparse/compare/1.0.8...1.0.9 -[1.0.8]: https://github.com/nodeca/argparse/compare/1.0.7...1.0.8 -[1.0.7]: https://github.com/nodeca/argparse/compare/1.0.6...1.0.7 -[1.0.6]: https://github.com/nodeca/argparse/compare/1.0.5...1.0.6 -[1.0.5]: https://github.com/nodeca/argparse/compare/1.0.4...1.0.5 -[1.0.4]: https://github.com/nodeca/argparse/compare/1.0.3...1.0.4 -[1.0.3]: https://github.com/nodeca/argparse/compare/1.0.2...1.0.3 -[1.0.2]: https://github.com/nodeca/argparse/compare/1.0.1...1.0.2 -[1.0.1]: https://github.com/nodeca/argparse/compare/1.0.0...1.0.1 -[1.0.0]: https://github.com/nodeca/argparse/compare/0.1.16...1.0.0 -[0.1.16]: https://github.com/nodeca/argparse/compare/0.1.15...0.1.16 -[0.1.15]: https://github.com/nodeca/argparse/compare/0.1.14...0.1.15 -[0.1.14]: https://github.com/nodeca/argparse/compare/0.1.13...0.1.14 -[0.1.13]: https://github.com/nodeca/argparse/compare/0.1.12...0.1.13 -[0.1.12]: https://github.com/nodeca/argparse/compare/0.1.11...0.1.12 -[0.1.11]: https://github.com/nodeca/argparse/compare/0.1.10...0.1.11 -[0.1.10]: https://github.com/nodeca/argparse/compare/0.1.9...0.1.10 -[0.1.9]: https://github.com/nodeca/argparse/compare/0.1.8...0.1.9 -[0.1.8]: https://github.com/nodeca/argparse/compare/0.1.7...0.1.8 -[0.1.7]: https://github.com/nodeca/argparse/compare/0.1.6...0.1.7 -[0.1.6]: https://github.com/nodeca/argparse/compare/0.1.5...0.1.6 -[0.1.5]: https://github.com/nodeca/argparse/compare/0.1.4...0.1.5 -[0.1.4]: https://github.com/nodeca/argparse/compare/0.1.3...0.1.4 -[0.1.3]: https://github.com/nodeca/argparse/compare/0.1.2...0.1.3 -[0.1.2]: https://github.com/nodeca/argparse/compare/0.1.1...0.1.2 -[0.1.1]: https://github.com/nodeca/argparse/compare/0.1.0...0.1.1 -[0.1.0]: https://github.com/nodeca/argparse/releases/tag/0.1.0 diff --git a/build/node_modules/argparse/LICENSE b/build/node_modules/argparse/LICENSE deleted file mode 100644 index 66a3ac80..00000000 --- a/build/node_modules/argparse/LICENSE +++ /dev/null @@ -1,254 +0,0 @@ -A. HISTORY OF THE SOFTWARE -========================== - -Python was created in the early 1990s by Guido van Rossum at Stichting -Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands -as a successor of a language called ABC. Guido remains Python's -principal author, although it includes many contributions from others. - -In 1995, Guido continued his work on Python at the Corporation for -National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) -in Reston, Virginia where he released several versions of the -software. - -In May 2000, Guido and the Python core development team moved to -BeOpen.com to form the BeOpen PythonLabs team. In October of the same -year, the PythonLabs team moved to Digital Creations, which became -Zope Corporation. In 2001, the Python Software Foundation (PSF, see -https://www.python.org/psf/) was formed, a non-profit organization -created specifically to own Python-related Intellectual Property. -Zope Corporation was a sponsoring member of the PSF. - -All Python releases are Open Source (see http://www.opensource.org for -the Open Source Definition). Historically, most, but not all, Python -releases have also been GPL-compatible; the table below summarizes -the various releases. - - Release Derived Year Owner GPL- - from compatible? (1) - - 0.9.0 thru 1.2 1991-1995 CWI yes - 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes - 1.6 1.5.2 2000 CNRI no - 2.0 1.6 2000 BeOpen.com no - 1.6.1 1.6 2001 CNRI yes (2) - 2.1 2.0+1.6.1 2001 PSF no - 2.0.1 2.0+1.6.1 2001 PSF yes - 2.1.1 2.1+2.0.1 2001 PSF yes - 2.1.2 2.1.1 2002 PSF yes - 2.1.3 2.1.2 2002 PSF yes - 2.2 and above 2.1.1 2001-now PSF yes - -Footnotes: - -(1) GPL-compatible doesn't mean that we're distributing Python under - the GPL. All Python licenses, unlike the GPL, let you distribute - a modified version without making your changes open source. The - GPL-compatible licenses make it possible to combine Python with - other software that is released under the GPL; the others don't. - -(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, - because its license has a choice of law clause. According to - CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 - is "not incompatible" with the GPL. - -Thanks to the many outside volunteers who have worked under Guido's -direction to make these releases possible. - - -B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON -=============================================================== - -PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 --------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation -("PSF"), and the Individual or Organization ("Licensee") accessing and -otherwise using this software ("Python") in source or binary form and -its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, PSF hereby -grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, -analyze, test, perform and/or display publicly, prepare derivative works, -distribute, and otherwise use Python alone or in any derivative version, -provided, however, that PSF's License Agreement and PSF's notice of copyright, -i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation; -All Rights Reserved" are retained in Python alone or in any derivative version -prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python. - -4. PSF is making Python available to Licensee on an "AS IS" -basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 -------------------------------------------- - -BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 - -1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an -office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the -Individual or Organization ("Licensee") accessing and otherwise using -this software in source or binary form and its associated -documentation ("the Software"). - -2. Subject to the terms and conditions of this BeOpen Python License -Agreement, BeOpen hereby grants Licensee a non-exclusive, -royalty-free, world-wide license to reproduce, analyze, test, perform -and/or display publicly, prepare derivative works, distribute, and -otherwise use the Software alone or in any derivative version, -provided, however, that the BeOpen Python License is retained in the -Software, alone or in any derivative version prepared by Licensee. - -3. BeOpen is making the Software available to Licensee on an "AS IS" -basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE -SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS -AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY -DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -5. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -6. This License Agreement shall be governed by and interpreted in all -respects by the law of the State of California, excluding conflict of -law provisions. Nothing in this License Agreement shall be deemed to -create any relationship of agency, partnership, or joint venture -between BeOpen and Licensee. This License Agreement does not grant -permission to use BeOpen trademarks or trade names in a trademark -sense to endorse or promote products or services of Licensee, or any -third party. As an exception, the "BeOpen Python" logos available at -http://www.pythonlabs.com/logos.html may be used according to the -permissions granted on that web page. - -7. By copying, installing or otherwise using the software, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 ---------------------------------------- - -1. This LICENSE AGREEMENT is between the Corporation for National -Research Initiatives, having an office at 1895 Preston White Drive, -Reston, VA 20191 ("CNRI"), and the Individual or Organization -("Licensee") accessing and otherwise using Python 1.6.1 software in -source or binary form and its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, CNRI -hereby grants Licensee a nonexclusive, royalty-free, world-wide -license to reproduce, analyze, test, perform and/or display publicly, -prepare derivative works, distribute, and otherwise use Python 1.6.1 -alone or in any derivative version, provided, however, that CNRI's -License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) -1995-2001 Corporation for National Research Initiatives; All Rights -Reserved" are retained in Python 1.6.1 alone or in any derivative -version prepared by Licensee. Alternately, in lieu of CNRI's License -Agreement, Licensee may substitute the following text (omitting the -quotes): "Python 1.6.1 is made available subject to the terms and -conditions in CNRI's License Agreement. This Agreement together with -Python 1.6.1 may be located on the Internet using the following -unique, persistent identifier (known as a handle): 1895.22/1013. This -Agreement may also be obtained from a proxy server on the Internet -using the following URL: http://hdl.handle.net/1895.22/1013". - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python 1.6.1 or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python 1.6.1. - -4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" -basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. This License Agreement shall be governed by the federal -intellectual property law of the United States, including without -limitation the federal copyright law, and, to the extent such -U.S. federal law does not apply, by the law of the Commonwealth of -Virginia, excluding Virginia's conflict of law provisions. -Notwithstanding the foregoing, with regard to derivative works based -on Python 1.6.1 that incorporate non-separable material that was -previously distributed under the GNU General Public License (GPL), the -law of the Commonwealth of Virginia shall govern this License -Agreement only as to issues arising under or with respect to -Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this -License Agreement shall be deemed to create any relationship of -agency, partnership, or joint venture between CNRI and Licensee. This -License Agreement does not grant permission to use CNRI trademarks or -trade name in a trademark sense to endorse or promote products or -services of Licensee, or any third party. - -8. By clicking on the "ACCEPT" button where indicated, or by copying, -installing or otherwise using Python 1.6.1, Licensee agrees to be -bound by the terms and conditions of this License Agreement. - - ACCEPT - - -CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 --------------------------------------------------- - -Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, -The Netherlands. All rights reserved. - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Stichting Mathematisch -Centrum or CWI not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE -FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/argparse/README.md b/build/node_modules/argparse/README.md deleted file mode 100644 index 550b5c9b..00000000 --- a/build/node_modules/argparse/README.md +++ /dev/null @@ -1,84 +0,0 @@ -argparse -======== - -[![Build Status](https://secure.travis-ci.org/nodeca/argparse.svg?branch=master)](http://travis-ci.org/nodeca/argparse) -[![NPM version](https://img.shields.io/npm/v/argparse.svg)](https://www.npmjs.org/package/argparse) - -CLI arguments parser for node.js, with [sub-commands](https://docs.python.org/3.9/library/argparse.html#sub-commands) support. Port of python's [argparse](http://docs.python.org/dev/library/argparse.html) (version [3.9.0](https://github.com/python/cpython/blob/v3.9.0rc1/Lib/argparse.py)). - -**Difference with original.** - -- JS has no keyword arguments support. - - Pass options instead: `new ArgumentParser({ description: 'example', add_help: true })`. -- JS has no python's types `int`, `float`, ... - - Use string-typed names: `.add_argument('-b', { type: 'int', help: 'help' })`. -- `%r` format specifier uses `require('util').inspect()`. - -More details in [doc](./doc). - - -Example -------- - -`test.js` file: - -```javascript -#!/usr/bin/env node -'use strict'; - -const { ArgumentParser } = require('argparse'); -const { version } = require('./package.json'); - -const parser = new ArgumentParser({ - description: 'Argparse example' -}); - -parser.add_argument('-v', '--version', { action: 'version', version }); -parser.add_argument('-f', '--foo', { help: 'foo bar' }); -parser.add_argument('-b', '--bar', { help: 'bar foo' }); -parser.add_argument('--baz', { help: 'baz bar' }); - -console.dir(parser.parse_args()); -``` - -Display help: - -``` -$ ./test.js -h -usage: test.js [-h] [-v] [-f FOO] [-b BAR] [--baz BAZ] - -Argparse example - -optional arguments: - -h, --help show this help message and exit - -v, --version show program's version number and exit - -f FOO, --foo FOO foo bar - -b BAR, --bar BAR bar foo - --baz BAZ baz bar -``` - -Parse arguments: - -``` -$ ./test.js -f=3 --bar=4 --baz 5 -{ foo: '3', bar: '4', baz: '5' } -``` - - -API docs --------- - -Since this is a port with minimal divergence, there's no separate documentation. -Use original one instead, with notes about difference. - -1. [Original doc](https://docs.python.org/3.9/library/argparse.html). -2. [Original tutorial](https://docs.python.org/3.9/howto/argparse.html). -3. [Difference with python](./doc). - - -argparse for enterprise ------------------------ - -Available as part of the Tidelift Subscription - -The maintainers of argparse and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-argparse?utm_source=npm-argparse&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/build/node_modules/argparse/argparse.js b/build/node_modules/argparse/argparse.js deleted file mode 100644 index 2b8c8c63..00000000 --- a/build/node_modules/argparse/argparse.js +++ /dev/null @@ -1,3707 +0,0 @@ -// Port of python's argparse module, version 3.9.0: -// https://github.com/python/cpython/blob/v3.9.0rc1/Lib/argparse.py - -'use strict' - -// Copyright (C) 2010-2020 Python Software Foundation. -// Copyright (C) 2020 argparse.js authors - -/* - * Command-line parsing library - * - * This module is an optparse-inspired command-line parsing library that: - * - * - handles both optional and positional arguments - * - produces highly informative usage messages - * - supports parsers that dispatch to sub-parsers - * - * The following is a simple usage example that sums integers from the - * command-line and writes the result to a file:: - * - * parser = argparse.ArgumentParser( - * description='sum the integers at the command line') - * parser.add_argument( - * 'integers', metavar='int', nargs='+', type=int, - * help='an integer to be summed') - * parser.add_argument( - * '--log', default=sys.stdout, type=argparse.FileType('w'), - * help='the file where the sum should be written') - * args = parser.parse_args() - * args.log.write('%s' % sum(args.integers)) - * args.log.close() - * - * The module contains the following public classes: - * - * - ArgumentParser -- The main entry point for command-line parsing. As the - * example above shows, the add_argument() method is used to populate - * the parser with actions for optional and positional arguments. Then - * the parse_args() method is invoked to convert the args at the - * command-line into an object with attributes. - * - * - ArgumentError -- The exception raised by ArgumentParser objects when - * there are errors with the parser's actions. Errors raised while - * parsing the command-line are caught by ArgumentParser and emitted - * as command-line messages. - * - * - FileType -- A factory for defining types of files to be created. As the - * example above shows, instances of FileType are typically passed as - * the type= argument of add_argument() calls. - * - * - Action -- The base class for parser actions. Typically actions are - * selected by passing strings like 'store_true' or 'append_const' to - * the action= argument of add_argument(). However, for greater - * customization of ArgumentParser actions, subclasses of Action may - * be defined and passed as the action= argument. - * - * - HelpFormatter, RawDescriptionHelpFormatter, RawTextHelpFormatter, - * ArgumentDefaultsHelpFormatter -- Formatter classes which - * may be passed as the formatter_class= argument to the - * ArgumentParser constructor. HelpFormatter is the default, - * RawDescriptionHelpFormatter and RawTextHelpFormatter tell the parser - * not to change the formatting for help text, and - * ArgumentDefaultsHelpFormatter adds information about argument defaults - * to the help. - * - * All other classes in this module are considered implementation details. - * (Also note that HelpFormatter and RawDescriptionHelpFormatter are only - * considered public as object names -- the API of the formatter objects is - * still considered an implementation detail.) - */ - -const SUPPRESS = '==SUPPRESS==' - -const OPTIONAL = '?' -const ZERO_OR_MORE = '*' -const ONE_OR_MORE = '+' -const PARSER = 'A...' -const REMAINDER = '...' -const _UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args' - - -// ================================== -// Utility functions used for porting -// ================================== -const assert = require('assert') -const util = require('util') -const fs = require('fs') -const sub = require('./lib/sub') -const path = require('path') -const repr = util.inspect - -function get_argv() { - // omit first argument (which is assumed to be interpreter - `node`, `coffee`, `ts-node`, etc.) - return process.argv.slice(1) -} - -function get_terminal_size() { - return { - columns: +process.env.COLUMNS || process.stdout.columns || 80 - } -} - -function hasattr(object, name) { - return Object.prototype.hasOwnProperty.call(object, name) -} - -function getattr(object, name, value) { - return hasattr(object, name) ? object[name] : value -} - -function setattr(object, name, value) { - object[name] = value -} - -function setdefault(object, name, value) { - if (!hasattr(object, name)) object[name] = value - return object[name] -} - -function delattr(object, name) { - delete object[name] -} - -function range(from, to, step=1) { - // range(10) is equivalent to range(0, 10) - if (arguments.length === 1) [ to, from ] = [ from, 0 ] - if (typeof from !== 'number' || typeof to !== 'number' || typeof step !== 'number') { - throw new TypeError('argument cannot be interpreted as an integer') - } - if (step === 0) throw new TypeError('range() arg 3 must not be zero') - - let result = [] - if (step > 0) { - for (let i = from; i < to; i += step) result.push(i) - } else { - for (let i = from; i > to; i += step) result.push(i) - } - return result -} - -function splitlines(str, keepends = false) { - let result - if (!keepends) { - result = str.split(/\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029]/) - } else { - result = [] - let parts = str.split(/(\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029])/) - for (let i = 0; i < parts.length; i += 2) { - result.push(parts[i] + (i + 1 < parts.length ? parts[i + 1] : '')) - } - } - if (!result[result.length - 1]) result.pop() - return result -} - -function _string_lstrip(string, prefix_chars) { - let idx = 0 - while (idx < string.length && prefix_chars.includes(string[idx])) idx++ - return idx ? string.slice(idx) : string -} - -function _string_split(string, sep, maxsplit) { - let result = string.split(sep) - if (result.length > maxsplit) { - result = result.slice(0, maxsplit).concat([ result.slice(maxsplit).join(sep) ]) - } - return result -} - -function _array_equal(array1, array2) { - if (array1.length !== array2.length) return false - for (let i = 0; i < array1.length; i++) { - if (array1[i] !== array2[i]) return false - } - return true -} - -function _array_remove(array, item) { - let idx = array.indexOf(item) - if (idx === -1) throw new TypeError(sub('%r not in list', item)) - array.splice(idx, 1) -} - -// normalize choices to array; -// this isn't required in python because `in` and `map` operators work with anything, -// but in js dealing with multiple types here is too clunky -function _choices_to_array(choices) { - if (choices === undefined) { - return [] - } else if (Array.isArray(choices)) { - return choices - } else if (choices !== null && typeof choices[Symbol.iterator] === 'function') { - return Array.from(choices) - } else if (typeof choices === 'object' && choices !== null) { - return Object.keys(choices) - } else { - throw new Error(sub('invalid choices value: %r', choices)) - } -} - -// decorator that allows a class to be called without new -function _callable(cls) { - let result = { // object is needed for inferred class name - [cls.name]: function (...args) { - let this_class = new.target === result || !new.target - return Reflect.construct(cls, args, this_class ? cls : new.target) - } - } - result[cls.name].prototype = cls.prototype - // fix default tag for toString, e.g. [object Action] instead of [object Object] - cls.prototype[Symbol.toStringTag] = cls.name - return result[cls.name] -} - -function _alias(object, from, to) { - try { - let name = object.constructor.name - Object.defineProperty(object, from, { - value: util.deprecate(object[to], sub('%s.%s() is renamed to %s.%s()', - name, from, name, to)), - enumerable: false - }) - } catch {} -} - -// decorator that allows snake_case class methods to be called with camelCase and vice versa -function _camelcase_alias(_class) { - for (let name of Object.getOwnPropertyNames(_class.prototype)) { - let camelcase = name.replace(/\w_[a-z]/g, s => s[0] + s[2].toUpperCase()) - if (camelcase !== name) _alias(_class.prototype, camelcase, name) - } - return _class -} - -function _to_legacy_name(key) { - key = key.replace(/\w_[a-z]/g, s => s[0] + s[2].toUpperCase()) - if (key === 'default') key = 'defaultValue' - if (key === 'const') key = 'constant' - return key -} - -function _to_new_name(key) { - if (key === 'defaultValue') key = 'default' - if (key === 'constant') key = 'const' - key = key.replace(/[A-Z]/g, c => '_' + c.toLowerCase()) - return key -} - -// parse options -let no_default = Symbol('no_default_value') -function _parse_opts(args, descriptor) { - function get_name() { - let stack = new Error().stack.split('\n') - .map(x => x.match(/^ at (.*) \(.*\)$/)) - .filter(Boolean) - .map(m => m[1]) - .map(fn => fn.match(/[^ .]*$/)[0]) - - if (stack.length && stack[0] === get_name.name) stack.shift() - if (stack.length && stack[0] === _parse_opts.name) stack.shift() - return stack.length ? stack[0] : '' - } - - args = Array.from(args) - let kwargs = {} - let result = [] - let last_opt = args.length && args[args.length - 1] - - if (typeof last_opt === 'object' && last_opt !== null && !Array.isArray(last_opt) && - (!last_opt.constructor || last_opt.constructor.name === 'Object')) { - kwargs = Object.assign({}, args.pop()) - } - - // LEGACY (v1 compatibility): camelcase - let renames = [] - for (let key of Object.keys(descriptor)) { - let old_name = _to_legacy_name(key) - if (old_name !== key && (old_name in kwargs)) { - if (key in kwargs) { - // default and defaultValue specified at the same time, happens often in old tests - //throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), key)) - } else { - kwargs[key] = kwargs[old_name] - } - renames.push([ old_name, key ]) - delete kwargs[old_name] - } - } - if (renames.length) { - let name = get_name() - deprecate('camelcase_' + name, sub('%s(): following options are renamed: %s', - name, renames.map(([ a, b ]) => sub('%r -> %r', a, b)))) - } - // end - - let missing_positionals = [] - let positional_count = args.length - - for (let [ key, def ] of Object.entries(descriptor)) { - if (key[0] === '*') { - if (key.length > 0 && key[1] === '*') { - // LEGACY (v1 compatibility): camelcase - let renames = [] - for (let key of Object.keys(kwargs)) { - let new_name = _to_new_name(key) - if (new_name !== key && (key in kwargs)) { - if (new_name in kwargs) { - // default and defaultValue specified at the same time, happens often in old tests - //throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), new_name)) - } else { - kwargs[new_name] = kwargs[key] - } - renames.push([ key, new_name ]) - delete kwargs[key] - } - } - if (renames.length) { - let name = get_name() - deprecate('camelcase_' + name, sub('%s(): following options are renamed: %s', - name, renames.map(([ a, b ]) => sub('%r -> %r', a, b)))) - } - // end - result.push(kwargs) - kwargs = {} - } else { - result.push(args) - args = [] - } - } else if (key in kwargs && args.length > 0) { - throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), key)) - } else if (key in kwargs) { - result.push(kwargs[key]) - delete kwargs[key] - } else if (args.length > 0) { - result.push(args.shift()) - } else if (def !== no_default) { - result.push(def) - } else { - missing_positionals.push(key) - } - } - - if (Object.keys(kwargs).length) { - throw new TypeError(sub('%s() got an unexpected keyword argument %r', - get_name(), Object.keys(kwargs)[0])) - } - - if (args.length) { - let from = Object.entries(descriptor).filter(([ k, v ]) => k[0] !== '*' && v !== no_default).length - let to = Object.entries(descriptor).filter(([ k ]) => k[0] !== '*').length - throw new TypeError(sub('%s() takes %s positional argument%s but %s %s given', - get_name(), - from === to ? sub('from %s to %s', from, to) : to, - from === to && to === 1 ? '' : 's', - positional_count, - positional_count === 1 ? 'was' : 'were')) - } - - if (missing_positionals.length) { - let strs = missing_positionals.map(repr) - if (strs.length > 1) strs[strs.length - 1] = 'and ' + strs[strs.length - 1] - let str_joined = strs.join(strs.length === 2 ? '' : ', ') - throw new TypeError(sub('%s() missing %i required positional argument%s: %s', - get_name(), strs.length, strs.length === 1 ? '' : 's', str_joined)) - } - - return result -} - -let _deprecations = {} -function deprecate(id, string) { - _deprecations[id] = _deprecations[id] || util.deprecate(() => {}, string) - _deprecations[id]() -} - - -// ============================= -// Utility functions and classes -// ============================= -function _AttributeHolder(cls = Object) { - /* - * Abstract base class that provides __repr__. - * - * The __repr__ method returns a string in the format:: - * ClassName(attr=name, attr=name, ...) - * The attributes are determined either by a class-level attribute, - * '_kwarg_names', or by inspecting the instance __dict__. - */ - - return class _AttributeHolder extends cls { - [util.inspect.custom]() { - let type_name = this.constructor.name - let arg_strings = [] - let star_args = {} - for (let arg of this._get_args()) { - arg_strings.push(repr(arg)) - } - for (let [ name, value ] of this._get_kwargs()) { - if (/^[a-z_][a-z0-9_$]*$/i.test(name)) { - arg_strings.push(sub('%s=%r', name, value)) - } else { - star_args[name] = value - } - } - if (Object.keys(star_args).length) { - arg_strings.push(sub('**%s', repr(star_args))) - } - return sub('%s(%s)', type_name, arg_strings.join(', ')) - } - - toString() { - return this[util.inspect.custom]() - } - - _get_kwargs() { - return Object.entries(this) - } - - _get_args() { - return [] - } - } -} - - -function _copy_items(items) { - if (items === undefined) { - return [] - } - return items.slice(0) -} - - -// =============== -// Formatting Help -// =============== -const HelpFormatter = _camelcase_alias(_callable(class HelpFormatter { - /* - * Formatter for generating usage messages and argument help strings. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - constructor() { - let [ - prog, - indent_increment, - max_help_position, - width - ] = _parse_opts(arguments, { - prog: no_default, - indent_increment: 2, - max_help_position: 24, - width: undefined - }) - - // default setting for width - if (width === undefined) { - width = get_terminal_size().columns - width -= 2 - } - - this._prog = prog - this._indent_increment = indent_increment - this._max_help_position = Math.min(max_help_position, - Math.max(width - 20, indent_increment * 2)) - this._width = width - - this._current_indent = 0 - this._level = 0 - this._action_max_length = 0 - - this._root_section = this._Section(this, undefined) - this._current_section = this._root_section - - this._whitespace_matcher = /[ \t\n\r\f\v]+/g // equivalent to python /\s+/ with ASCII flag - this._long_break_matcher = /\n\n\n+/g - } - - // =============================== - // Section and indentation methods - // =============================== - _indent() { - this._current_indent += this._indent_increment - this._level += 1 - } - - _dedent() { - this._current_indent -= this._indent_increment - assert(this._current_indent >= 0, 'Indent decreased below 0.') - this._level -= 1 - } - - _add_item(func, args) { - this._current_section.items.push([ func, args ]) - } - - // ======================== - // Message building methods - // ======================== - start_section(heading) { - this._indent() - let section = this._Section(this, this._current_section, heading) - this._add_item(section.format_help.bind(section), []) - this._current_section = section - } - - end_section() { - this._current_section = this._current_section.parent - this._dedent() - } - - add_text(text) { - if (text !== SUPPRESS && text !== undefined) { - this._add_item(this._format_text.bind(this), [text]) - } - } - - add_usage(usage, actions, groups, prefix = undefined) { - if (usage !== SUPPRESS) { - let args = [ usage, actions, groups, prefix ] - this._add_item(this._format_usage.bind(this), args) - } - } - - add_argument(action) { - if (action.help !== SUPPRESS) { - - // find all invocations - let invocations = [this._format_action_invocation(action)] - for (let subaction of this._iter_indented_subactions(action)) { - invocations.push(this._format_action_invocation(subaction)) - } - - // update the maximum item length - let invocation_length = Math.max(...invocations.map(invocation => invocation.length)) - let action_length = invocation_length + this._current_indent - this._action_max_length = Math.max(this._action_max_length, - action_length) - - // add the item to the list - this._add_item(this._format_action.bind(this), [action]) - } - } - - add_arguments(actions) { - for (let action of actions) { - this.add_argument(action) - } - } - - // ======================= - // Help-formatting methods - // ======================= - format_help() { - let help = this._root_section.format_help() - if (help) { - help = help.replace(this._long_break_matcher, '\n\n') - help = help.replace(/^\n+|\n+$/g, '') + '\n' - } - return help - } - - _join_parts(part_strings) { - return part_strings.filter(part => part && part !== SUPPRESS).join('') - } - - _format_usage(usage, actions, groups, prefix) { - if (prefix === undefined) { - prefix = 'usage: ' - } - - // if usage is specified, use that - if (usage !== undefined) { - usage = sub(usage, { prog: this._prog }) - - // if no optionals or positionals are available, usage is just prog - } else if (usage === undefined && !actions.length) { - usage = sub('%(prog)s', { prog: this._prog }) - - // if optionals and positionals are available, calculate usage - } else if (usage === undefined) { - let prog = sub('%(prog)s', { prog: this._prog }) - - // split optionals from positionals - let optionals = [] - let positionals = [] - for (let action of actions) { - if (action.option_strings.length) { - optionals.push(action) - } else { - positionals.push(action) - } - } - - // build full usage string - let action_usage = this._format_actions_usage([].concat(optionals).concat(positionals), groups) - usage = [ prog, action_usage ].map(String).join(' ') - - // wrap the usage parts if it's too long - let text_width = this._width - this._current_indent - if (prefix.length + usage.length > text_width) { - - // break usage into wrappable parts - let part_regexp = /\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+/g - let opt_usage = this._format_actions_usage(optionals, groups) - let pos_usage = this._format_actions_usage(positionals, groups) - let opt_parts = opt_usage.match(part_regexp) || [] - let pos_parts = pos_usage.match(part_regexp) || [] - assert(opt_parts.join(' ') === opt_usage) - assert(pos_parts.join(' ') === pos_usage) - - // helper for wrapping lines - let get_lines = (parts, indent, prefix = undefined) => { - let lines = [] - let line = [] - let line_len - if (prefix !== undefined) { - line_len = prefix.length - 1 - } else { - line_len = indent.length - 1 - } - for (let part of parts) { - if (line_len + 1 + part.length > text_width && line) { - lines.push(indent + line.join(' ')) - line = [] - line_len = indent.length - 1 - } - line.push(part) - line_len += part.length + 1 - } - if (line.length) { - lines.push(indent + line.join(' ')) - } - if (prefix !== undefined) { - lines[0] = lines[0].slice(indent.length) - } - return lines - } - - let lines - - // if prog is short, follow it with optionals or positionals - if (prefix.length + prog.length <= 0.75 * text_width) { - let indent = ' '.repeat(prefix.length + prog.length + 1) - if (opt_parts.length) { - lines = get_lines([prog].concat(opt_parts), indent, prefix) - lines = lines.concat(get_lines(pos_parts, indent)) - } else if (pos_parts.length) { - lines = get_lines([prog].concat(pos_parts), indent, prefix) - } else { - lines = [prog] - } - - // if prog is long, put it on its own line - } else { - let indent = ' '.repeat(prefix.length) - let parts = [].concat(opt_parts).concat(pos_parts) - lines = get_lines(parts, indent) - if (lines.length > 1) { - lines = [] - lines = lines.concat(get_lines(opt_parts, indent)) - lines = lines.concat(get_lines(pos_parts, indent)) - } - lines = [prog].concat(lines) - } - - // join lines into usage - usage = lines.join('\n') - } - } - - // prefix with 'usage:' - return sub('%s%s\n\n', prefix, usage) - } - - _format_actions_usage(actions, groups) { - // find group indices and identify actions in groups - let group_actions = new Set() - let inserts = {} - for (let group of groups) { - let start = actions.indexOf(group._group_actions[0]) - if (start === -1) { - continue - } else { - let end = start + group._group_actions.length - if (_array_equal(actions.slice(start, end), group._group_actions)) { - for (let action of group._group_actions) { - group_actions.add(action) - } - if (!group.required) { - if (start in inserts) { - inserts[start] += ' [' - } else { - inserts[start] = '[' - } - if (end in inserts) { - inserts[end] += ']' - } else { - inserts[end] = ']' - } - } else { - if (start in inserts) { - inserts[start] += ' (' - } else { - inserts[start] = '(' - } - if (end in inserts) { - inserts[end] += ')' - } else { - inserts[end] = ')' - } - } - for (let i of range(start + 1, end)) { - inserts[i] = '|' - } - } - } - } - - // collect all actions format strings - let parts = [] - for (let [ i, action ] of Object.entries(actions)) { - - // suppressed arguments are marked with None - // remove | separators for suppressed arguments - if (action.help === SUPPRESS) { - parts.push(undefined) - if (inserts[+i] === '|') { - delete inserts[+i] - } else if (inserts[+i + 1] === '|') { - delete inserts[+i + 1] - } - - // produce all arg strings - } else if (!action.option_strings.length) { - let default_value = this._get_default_metavar_for_positional(action) - let part = this._format_args(action, default_value) - - // if it's in a group, strip the outer [] - if (group_actions.has(action)) { - if (part[0] === '[' && part[part.length - 1] === ']') { - part = part.slice(1, -1) - } - } - - // add the action string to the list - parts.push(part) - - // produce the first way to invoke the option in brackets - } else { - let option_string = action.option_strings[0] - let part - - // if the Optional doesn't take a value, format is: - // -s or --long - if (action.nargs === 0) { - part = action.format_usage() - - // if the Optional takes a value, format is: - // -s ARGS or --long ARGS - } else { - let default_value = this._get_default_metavar_for_optional(action) - let args_string = this._format_args(action, default_value) - part = sub('%s %s', option_string, args_string) - } - - // make it look optional if it's not required or in a group - if (!action.required && !group_actions.has(action)) { - part = sub('[%s]', part) - } - - // add the action string to the list - parts.push(part) - } - } - - // insert things at the necessary indices - for (let i of Object.keys(inserts).map(Number).sort((a, b) => b - a)) { - parts.splice(+i, 0, inserts[+i]) - } - - // join all the action items with spaces - let text = parts.filter(Boolean).join(' ') - - // clean up separators for mutually exclusive groups - text = text.replace(/([\[(]) /g, '$1') - text = text.replace(/ ([\])])/g, '$1') - text = text.replace(/[\[(] *[\])]/g, '') - text = text.replace(/\(([^|]*)\)/g, '$1', text) - text = text.trim() - - // return the text - return text - } - - _format_text(text) { - if (text.includes('%(prog)')) { - text = sub(text, { prog: this._prog }) - } - let text_width = Math.max(this._width - this._current_indent, 11) - let indent = ' '.repeat(this._current_indent) - return this._fill_text(text, text_width, indent) + '\n\n' - } - - _format_action(action) { - // determine the required width and the entry label - let help_position = Math.min(this._action_max_length + 2, - this._max_help_position) - let help_width = Math.max(this._width - help_position, 11) - let action_width = help_position - this._current_indent - 2 - let action_header = this._format_action_invocation(action) - let indent_first - - // no help; start on same line and add a final newline - if (!action.help) { - let tup = [ this._current_indent, '', action_header ] - action_header = sub('%*s%s\n', ...tup) - - // short action name; start on the same line and pad two spaces - } else if (action_header.length <= action_width) { - let tup = [ this._current_indent, '', action_width, action_header ] - action_header = sub('%*s%-*s ', ...tup) - indent_first = 0 - - // long action name; start on the next line - } else { - let tup = [ this._current_indent, '', action_header ] - action_header = sub('%*s%s\n', ...tup) - indent_first = help_position - } - - // collect the pieces of the action help - let parts = [action_header] - - // if there was help for the action, add lines of help text - if (action.help) { - let help_text = this._expand_help(action) - let help_lines = this._split_lines(help_text, help_width) - parts.push(sub('%*s%s\n', indent_first, '', help_lines[0])) - for (let line of help_lines.slice(1)) { - parts.push(sub('%*s%s\n', help_position, '', line)) - } - - // or add a newline if the description doesn't end with one - } else if (!action_header.endsWith('\n')) { - parts.push('\n') - } - - // if there are any sub-actions, add their help as well - for (let subaction of this._iter_indented_subactions(action)) { - parts.push(this._format_action(subaction)) - } - - // return a single string - return this._join_parts(parts) - } - - _format_action_invocation(action) { - if (!action.option_strings.length) { - let default_value = this._get_default_metavar_for_positional(action) - let metavar = this._metavar_formatter(action, default_value)(1)[0] - return metavar - - } else { - let parts = [] - - // if the Optional doesn't take a value, format is: - // -s, --long - if (action.nargs === 0) { - parts = parts.concat(action.option_strings) - - // if the Optional takes a value, format is: - // -s ARGS, --long ARGS - } else { - let default_value = this._get_default_metavar_for_optional(action) - let args_string = this._format_args(action, default_value) - for (let option_string of action.option_strings) { - parts.push(sub('%s %s', option_string, args_string)) - } - } - - return parts.join(', ') - } - } - - _metavar_formatter(action, default_metavar) { - let result - if (action.metavar !== undefined) { - result = action.metavar - } else if (action.choices !== undefined) { - let choice_strs = _choices_to_array(action.choices).map(String) - result = sub('{%s}', choice_strs.join(',')) - } else { - result = default_metavar - } - - function format(tuple_size) { - if (Array.isArray(result)) { - return result - } else { - return Array(tuple_size).fill(result) - } - } - return format - } - - _format_args(action, default_metavar) { - let get_metavar = this._metavar_formatter(action, default_metavar) - let result - if (action.nargs === undefined) { - result = sub('%s', ...get_metavar(1)) - } else if (action.nargs === OPTIONAL) { - result = sub('[%s]', ...get_metavar(1)) - } else if (action.nargs === ZERO_OR_MORE) { - let metavar = get_metavar(1) - if (metavar.length === 2) { - result = sub('[%s [%s ...]]', ...metavar) - } else { - result = sub('[%s ...]', ...metavar) - } - } else if (action.nargs === ONE_OR_MORE) { - result = sub('%s [%s ...]', ...get_metavar(2)) - } else if (action.nargs === REMAINDER) { - result = '...' - } else if (action.nargs === PARSER) { - result = sub('%s ...', ...get_metavar(1)) - } else if (action.nargs === SUPPRESS) { - result = '' - } else { - let formats - try { - formats = range(action.nargs).map(() => '%s') - } catch (err) { - throw new TypeError('invalid nargs value') - } - result = sub(formats.join(' '), ...get_metavar(action.nargs)) - } - return result - } - - _expand_help(action) { - let params = Object.assign({ prog: this._prog }, action) - for (let name of Object.keys(params)) { - if (params[name] === SUPPRESS) { - delete params[name] - } - } - for (let name of Object.keys(params)) { - if (params[name] && params[name].name) { - params[name] = params[name].name - } - } - if (params.choices !== undefined) { - let choices_str = _choices_to_array(params.choices).map(String).join(', ') - params.choices = choices_str - } - // LEGACY (v1 compatibility): camelcase - for (let key of Object.keys(params)) { - let old_name = _to_legacy_name(key) - if (old_name !== key) { - params[old_name] = params[key] - } - } - // end - return sub(this._get_help_string(action), params) - } - - * _iter_indented_subactions(action) { - if (typeof action._get_subactions === 'function') { - this._indent() - yield* action._get_subactions() - this._dedent() - } - } - - _split_lines(text, width) { - text = text.replace(this._whitespace_matcher, ' ').trim() - // The textwrap module is used only for formatting help. - // Delay its import for speeding up the common usage of argparse. - let textwrap = require('./lib/textwrap') - return textwrap.wrap(text, { width }) - } - - _fill_text(text, width, indent) { - text = text.replace(this._whitespace_matcher, ' ').trim() - let textwrap = require('./lib/textwrap') - return textwrap.fill(text, { width, - initial_indent: indent, - subsequent_indent: indent }) - } - - _get_help_string(action) { - return action.help - } - - _get_default_metavar_for_optional(action) { - return action.dest.toUpperCase() - } - - _get_default_metavar_for_positional(action) { - return action.dest - } -})) - -HelpFormatter.prototype._Section = _callable(class _Section { - - constructor(formatter, parent, heading = undefined) { - this.formatter = formatter - this.parent = parent - this.heading = heading - this.items = [] - } - - format_help() { - // format the indented section - if (this.parent !== undefined) { - this.formatter._indent() - } - let item_help = this.formatter._join_parts(this.items.map(([ func, args ]) => func.apply(null, args))) - if (this.parent !== undefined) { - this.formatter._dedent() - } - - // return nothing if the section was empty - if (!item_help) { - return '' - } - - // add the heading if the section was non-empty - let heading - if (this.heading !== SUPPRESS && this.heading !== undefined) { - let current_indent = this.formatter._current_indent - heading = sub('%*s%s:\n', current_indent, '', this.heading) - } else { - heading = '' - } - - // join the section-initial newline, the heading and the help - return this.formatter._join_parts(['\n', heading, item_help, '\n']) - } -}) - - -const RawDescriptionHelpFormatter = _camelcase_alias(_callable(class RawDescriptionHelpFormatter extends HelpFormatter { - /* - * Help message formatter which retains any formatting in descriptions. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _fill_text(text, width, indent) { - return splitlines(text, true).map(line => indent + line).join('') - } -})) - - -const RawTextHelpFormatter = _camelcase_alias(_callable(class RawTextHelpFormatter extends RawDescriptionHelpFormatter { - /* - * Help message formatter which retains formatting of all help text. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _split_lines(text/*, width*/) { - return splitlines(text) - } -})) - - -const ArgumentDefaultsHelpFormatter = _camelcase_alias(_callable(class ArgumentDefaultsHelpFormatter extends HelpFormatter { - /* - * Help message formatter which adds default values to argument help. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _get_help_string(action) { - let help = action.help - // LEGACY (v1 compatibility): additional check for defaultValue needed - if (!action.help.includes('%(default)') && !action.help.includes('%(defaultValue)')) { - if (action.default !== SUPPRESS) { - let defaulting_nargs = [OPTIONAL, ZERO_OR_MORE] - if (action.option_strings.length || defaulting_nargs.includes(action.nargs)) { - help += ' (default: %(default)s)' - } - } - } - return help - } -})) - - -const MetavarTypeHelpFormatter = _camelcase_alias(_callable(class MetavarTypeHelpFormatter extends HelpFormatter { - /* - * Help message formatter which uses the argument 'type' as the default - * metavar value (instead of the argument 'dest') - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _get_default_metavar_for_optional(action) { - return typeof action.type === 'function' ? action.type.name : action.type - } - - _get_default_metavar_for_positional(action) { - return typeof action.type === 'function' ? action.type.name : action.type - } -})) - - -// ===================== -// Options and Arguments -// ===================== -function _get_action_name(argument) { - if (argument === undefined) { - return undefined - } else if (argument.option_strings.length) { - return argument.option_strings.join('/') - } else if (![ undefined, SUPPRESS ].includes(argument.metavar)) { - return argument.metavar - } else if (![ undefined, SUPPRESS ].includes(argument.dest)) { - return argument.dest - } else { - return undefined - } -} - - -const ArgumentError = _callable(class ArgumentError extends Error { - /* - * An error from creating or using an argument (optional or positional). - * - * The string value of this exception is the message, augmented with - * information about the argument that caused it. - */ - - constructor(argument, message) { - super() - this.name = 'ArgumentError' - this._argument_name = _get_action_name(argument) - this._message = message - this.message = this.str() - } - - str() { - let format - if (this._argument_name === undefined) { - format = '%(message)s' - } else { - format = 'argument %(argument_name)s: %(message)s' - } - return sub(format, { message: this._message, - argument_name: this._argument_name }) - } -}) - - -const ArgumentTypeError = _callable(class ArgumentTypeError extends Error { - /* - * An error from trying to convert a command line string to a type. - */ - - constructor(message) { - super(message) - this.name = 'ArgumentTypeError' - } -}) - - -// ============== -// Action classes -// ============== -const Action = _camelcase_alias(_callable(class Action extends _AttributeHolder(Function) { - /* - * Information about how to convert command line strings to Python objects. - * - * Action objects are used by an ArgumentParser to represent the information - * needed to parse a single argument from one or more strings from the - * command line. The keyword arguments to the Action constructor are also - * all attributes of Action instances. - * - * Keyword Arguments: - * - * - option_strings -- A list of command-line option strings which - * should be associated with this action. - * - * - dest -- The name of the attribute to hold the created object(s) - * - * - nargs -- The number of command-line arguments that should be - * consumed. By default, one argument will be consumed and a single - * value will be produced. Other values include: - * - N (an integer) consumes N arguments (and produces a list) - * - '?' consumes zero or one arguments - * - '*' consumes zero or more arguments (and produces a list) - * - '+' consumes one or more arguments (and produces a list) - * Note that the difference between the default and nargs=1 is that - * with the default, a single value will be produced, while with - * nargs=1, a list containing a single value will be produced. - * - * - const -- The value to be produced if the option is specified and the - * option uses an action that takes no values. - * - * - default -- The value to be produced if the option is not specified. - * - * - type -- A callable that accepts a single string argument, and - * returns the converted value. The standard Python types str, int, - * float, and complex are useful examples of such callables. If None, - * str is used. - * - * - choices -- A container of values that should be allowed. If not None, - * after a command-line argument has been converted to the appropriate - * type, an exception will be raised if it is not a member of this - * collection. - * - * - required -- True if the action must always be specified at the - * command line. This is only meaningful for optional command-line - * arguments. - * - * - help -- The help string describing the argument. - * - * - metavar -- The name to be used for the option's argument with the - * help string. If None, the 'dest' value will be used as the name. - */ - - constructor() { - let [ - option_strings, - dest, - nargs, - const_value, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - nargs: undefined, - const: undefined, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - // when this class is called as a function, redirect it to .call() method of itself - super('return arguments.callee.call.apply(arguments.callee, arguments)') - - this.option_strings = option_strings - this.dest = dest - this.nargs = nargs - this.const = const_value - this.default = default_value - this.type = type - this.choices = choices - this.required = required - this.help = help - this.metavar = metavar - } - - _get_kwargs() { - let names = [ - 'option_strings', - 'dest', - 'nargs', - 'const', - 'default', - 'type', - 'choices', - 'help', - 'metavar' - ] - return names.map(name => [ name, getattr(this, name) ]) - } - - format_usage() { - return this.option_strings[0] - } - - call(/*parser, namespace, values, option_string = undefined*/) { - throw new Error('.call() not defined') - } -})) - - -const BooleanOptionalAction = _camelcase_alias(_callable(class BooleanOptionalAction extends Action { - - constructor() { - let [ - option_strings, - dest, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - let _option_strings = [] - for (let option_string of option_strings) { - _option_strings.push(option_string) - - if (option_string.startsWith('--')) { - option_string = '--no-' + option_string.slice(2) - _option_strings.push(option_string) - } - } - - if (help !== undefined && default_value !== undefined) { - help += ` (default: ${default_value})` - } - - super({ - option_strings: _option_strings, - dest, - nargs: 0, - default: default_value, - type, - choices, - required, - help, - metavar - }) - } - - call(parser, namespace, values, option_string = undefined) { - if (this.option_strings.includes(option_string)) { - setattr(namespace, this.dest, !option_string.startsWith('--no-')) - } - } - - format_usage() { - return this.option_strings.join(' | ') - } -})) - - -const _StoreAction = _callable(class _StoreAction extends Action { - - constructor() { - let [ - option_strings, - dest, - nargs, - const_value, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - nargs: undefined, - const: undefined, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - if (nargs === 0) { - throw new TypeError('nargs for store actions must be != 0; if you ' + - 'have nothing to store, actions such as store ' + - 'true or store const may be more appropriate') - } - if (const_value !== undefined && nargs !== OPTIONAL) { - throw new TypeError(sub('nargs must be %r to supply const', OPTIONAL)) - } - super({ - option_strings, - dest, - nargs, - const: const_value, - default: default_value, - type, - choices, - required, - help, - metavar - }) - } - - call(parser, namespace, values/*, option_string = undefined*/) { - setattr(namespace, this.dest, values) - } -}) - - -const _StoreConstAction = _callable(class _StoreConstAction extends Action { - - constructor() { - let [ - option_strings, - dest, - const_value, - default_value, - required, - help - //, metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - const: no_default, - default: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - super({ - option_strings, - dest, - nargs: 0, - const: const_value, - default: default_value, - required, - help - }) - } - - call(parser, namespace/*, values, option_string = undefined*/) { - setattr(namespace, this.dest, this.const) - } -}) - - -const _StoreTrueAction = _callable(class _StoreTrueAction extends _StoreConstAction { - - constructor() { - let [ - option_strings, - dest, - default_value, - required, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: false, - required: false, - help: undefined - }) - - super({ - option_strings, - dest, - const: true, - default: default_value, - required, - help - }) - } -}) - - -const _StoreFalseAction = _callable(class _StoreFalseAction extends _StoreConstAction { - - constructor() { - let [ - option_strings, - dest, - default_value, - required, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: true, - required: false, - help: undefined - }) - - super({ - option_strings, - dest, - const: false, - default: default_value, - required, - help - }) - } -}) - - -const _AppendAction = _callable(class _AppendAction extends Action { - - constructor() { - let [ - option_strings, - dest, - nargs, - const_value, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - nargs: undefined, - const: undefined, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - if (nargs === 0) { - throw new TypeError('nargs for append actions must be != 0; if arg ' + - 'strings are not supplying the value to append, ' + - 'the append const action may be more appropriate') - } - if (const_value !== undefined && nargs !== OPTIONAL) { - throw new TypeError(sub('nargs must be %r to supply const', OPTIONAL)) - } - super({ - option_strings, - dest, - nargs, - const: const_value, - default: default_value, - type, - choices, - required, - help, - metavar - }) - } - - call(parser, namespace, values/*, option_string = undefined*/) { - let items = getattr(namespace, this.dest, undefined) - items = _copy_items(items) - items.push(values) - setattr(namespace, this.dest, items) - } -}) - - -const _AppendConstAction = _callable(class _AppendConstAction extends Action { - - constructor() { - let [ - option_strings, - dest, - const_value, - default_value, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - const: no_default, - default: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - super({ - option_strings, - dest, - nargs: 0, - const: const_value, - default: default_value, - required, - help, - metavar - }) - } - - call(parser, namespace/*, values, option_string = undefined*/) { - let items = getattr(namespace, this.dest, undefined) - items = _copy_items(items) - items.push(this.const) - setattr(namespace, this.dest, items) - } -}) - - -const _CountAction = _callable(class _CountAction extends Action { - - constructor() { - let [ - option_strings, - dest, - default_value, - required, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: undefined, - required: false, - help: undefined - }) - - super({ - option_strings, - dest, - nargs: 0, - default: default_value, - required, - help - }) - } - - call(parser, namespace/*, values, option_string = undefined*/) { - let count = getattr(namespace, this.dest, undefined) - if (count === undefined) { - count = 0 - } - setattr(namespace, this.dest, count + 1) - } -}) - - -const _HelpAction = _callable(class _HelpAction extends Action { - - constructor() { - let [ - option_strings, - dest, - default_value, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: SUPPRESS, - default: SUPPRESS, - help: undefined - }) - - super({ - option_strings, - dest, - default: default_value, - nargs: 0, - help - }) - } - - call(parser/*, namespace, values, option_string = undefined*/) { - parser.print_help() - parser.exit() - } -}) - - -const _VersionAction = _callable(class _VersionAction extends Action { - - constructor() { - let [ - option_strings, - version, - dest, - default_value, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - version: undefined, - dest: SUPPRESS, - default: SUPPRESS, - help: "show program's version number and exit" - }) - - super({ - option_strings, - dest, - default: default_value, - nargs: 0, - help - }) - this.version = version - } - - call(parser/*, namespace, values, option_string = undefined*/) { - let version = this.version - if (version === undefined) { - version = parser.version - } - let formatter = parser._get_formatter() - formatter.add_text(version) - parser._print_message(formatter.format_help(), process.stdout) - parser.exit() - } -}) - - -const _SubParsersAction = _camelcase_alias(_callable(class _SubParsersAction extends Action { - - constructor() { - let [ - option_strings, - prog, - parser_class, - dest, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - prog: no_default, - parser_class: no_default, - dest: SUPPRESS, - required: false, - help: undefined, - metavar: undefined - }) - - let name_parser_map = {} - - super({ - option_strings, - dest, - nargs: PARSER, - choices: name_parser_map, - required, - help, - metavar - }) - - this._prog_prefix = prog - this._parser_class = parser_class - this._name_parser_map = name_parser_map - this._choices_actions = [] - } - - add_parser() { - let [ - name, - kwargs - ] = _parse_opts(arguments, { - name: no_default, - '**kwargs': no_default - }) - - // set prog from the existing prefix - if (kwargs.prog === undefined) { - kwargs.prog = sub('%s %s', this._prog_prefix, name) - } - - let aliases = getattr(kwargs, 'aliases', []) - delete kwargs.aliases - - // create a pseudo-action to hold the choice help - if ('help' in kwargs) { - let help = kwargs.help - delete kwargs.help - let choice_action = this._ChoicesPseudoAction(name, aliases, help) - this._choices_actions.push(choice_action) - } - - // create the parser and add it to the map - let parser = new this._parser_class(kwargs) - this._name_parser_map[name] = parser - - // make parser available under aliases also - for (let alias of aliases) { - this._name_parser_map[alias] = parser - } - - return parser - } - - _get_subactions() { - return this._choices_actions - } - - call(parser, namespace, values/*, option_string = undefined*/) { - let parser_name = values[0] - let arg_strings = values.slice(1) - - // set the parser name if requested - if (this.dest !== SUPPRESS) { - setattr(namespace, this.dest, parser_name) - } - - // select the parser - if (hasattr(this._name_parser_map, parser_name)) { - parser = this._name_parser_map[parser_name] - } else { - let args = {parser_name, - choices: this._name_parser_map.join(', ')} - let msg = sub('unknown parser %(parser_name)r (choices: %(choices)s)', args) - throw new ArgumentError(this, msg) - } - - // parse all the remaining options into the namespace - // store any unrecognized options on the object, so that the top - // level parser can decide what to do with them - - // In case this subparser defines new defaults, we parse them - // in a new namespace object and then update the original - // namespace for the relevant parts. - let subnamespace - [ subnamespace, arg_strings ] = parser.parse_known_args(arg_strings, undefined) - for (let [ key, value ] of Object.entries(subnamespace)) { - setattr(namespace, key, value) - } - - if (arg_strings.length) { - setdefault(namespace, _UNRECOGNIZED_ARGS_ATTR, []) - getattr(namespace, _UNRECOGNIZED_ARGS_ATTR).push(...arg_strings) - } - } -})) - - -_SubParsersAction.prototype._ChoicesPseudoAction = _callable(class _ChoicesPseudoAction extends Action { - constructor(name, aliases, help) { - let metavar = name, dest = name - if (aliases.length) { - metavar += sub(' (%s)', aliases.join(', ')) - } - super({ option_strings: [], dest, help, metavar }) - } -}) - - -const _ExtendAction = _callable(class _ExtendAction extends _AppendAction { - call(parser, namespace, values/*, option_string = undefined*/) { - let items = getattr(namespace, this.dest, undefined) - items = _copy_items(items) - items = items.concat(values) - setattr(namespace, this.dest, items) - } -}) - - -// ============== -// Type classes -// ============== -const FileType = _callable(class FileType extends Function { - /* - * Factory for creating file object types - * - * Instances of FileType are typically passed as type= arguments to the - * ArgumentParser add_argument() method. - * - * Keyword Arguments: - * - mode -- A string indicating how the file is to be opened. Accepts the - * same values as the builtin open() function. - * - bufsize -- The file's desired buffer size. Accepts the same values as - * the builtin open() function. - * - encoding -- The file's encoding. Accepts the same values as the - * builtin open() function. - * - errors -- A string indicating how encoding and decoding errors are to - * be handled. Accepts the same value as the builtin open() function. - */ - - constructor() { - let [ - flags, - encoding, - mode, - autoClose, - emitClose, - start, - end, - highWaterMark, - fs - ] = _parse_opts(arguments, { - flags: 'r', - encoding: undefined, - mode: undefined, // 0o666 - autoClose: undefined, // true - emitClose: undefined, // false - start: undefined, // 0 - end: undefined, // Infinity - highWaterMark: undefined, // 64 * 1024 - fs: undefined - }) - - // when this class is called as a function, redirect it to .call() method of itself - super('return arguments.callee.call.apply(arguments.callee, arguments)') - - Object.defineProperty(this, 'name', { - get() { - return sub('FileType(%r)', flags) - } - }) - this._flags = flags - this._options = {} - if (encoding !== undefined) this._options.encoding = encoding - if (mode !== undefined) this._options.mode = mode - if (autoClose !== undefined) this._options.autoClose = autoClose - if (emitClose !== undefined) this._options.emitClose = emitClose - if (start !== undefined) this._options.start = start - if (end !== undefined) this._options.end = end - if (highWaterMark !== undefined) this._options.highWaterMark = highWaterMark - if (fs !== undefined) this._options.fs = fs - } - - call(string) { - // the special argument "-" means sys.std{in,out} - if (string === '-') { - if (this._flags.includes('r')) { - return process.stdin - } else if (this._flags.includes('w')) { - return process.stdout - } else { - let msg = sub('argument "-" with mode %r', this._flags) - throw new TypeError(msg) - } - } - - // all other arguments are used as file names - let fd - try { - fd = fs.openSync(string, this._flags, this._options.mode) - } catch (e) { - let args = { filename: string, error: e.message } - let message = "can't open '%(filename)s': %(error)s" - throw new ArgumentTypeError(sub(message, args)) - } - - let options = Object.assign({ fd, flags: this._flags }, this._options) - if (this._flags.includes('r')) { - return fs.createReadStream(undefined, options) - } else if (this._flags.includes('w')) { - return fs.createWriteStream(undefined, options) - } else { - let msg = sub('argument "%s" with mode %r', string, this._flags) - throw new TypeError(msg) - } - } - - [util.inspect.custom]() { - let args = [ this._flags ] - let kwargs = Object.entries(this._options).map(([ k, v ]) => { - if (k === 'mode') v = { value: v, [util.inspect.custom]() { return '0o' + this.value.toString(8) } } - return [ k, v ] - }) - let args_str = [] - .concat(args.filter(arg => arg !== -1).map(repr)) - .concat(kwargs.filter(([/*kw*/, arg]) => arg !== undefined) - .map(([kw, arg]) => sub('%s=%r', kw, arg))) - .join(', ') - return sub('%s(%s)', this.constructor.name, args_str) - } - - toString() { - return this[util.inspect.custom]() - } -}) - -// =========================== -// Optional and Positional Parsing -// =========================== -const Namespace = _callable(class Namespace extends _AttributeHolder() { - /* - * Simple object for storing attributes. - * - * Implements equality by attribute names and values, and provides a simple - * string representation. - */ - - constructor(options = {}) { - super() - Object.assign(this, options) - } -}) - -// unset string tag to mimic plain object -Namespace.prototype[Symbol.toStringTag] = undefined - - -const _ActionsContainer = _camelcase_alias(_callable(class _ActionsContainer { - - constructor() { - let [ - description, - prefix_chars, - argument_default, - conflict_handler - ] = _parse_opts(arguments, { - description: no_default, - prefix_chars: no_default, - argument_default: no_default, - conflict_handler: no_default - }) - - this.description = description - this.argument_default = argument_default - this.prefix_chars = prefix_chars - this.conflict_handler = conflict_handler - - // set up registries - this._registries = {} - - // register actions - this.register('action', undefined, _StoreAction) - this.register('action', 'store', _StoreAction) - this.register('action', 'store_const', _StoreConstAction) - this.register('action', 'store_true', _StoreTrueAction) - this.register('action', 'store_false', _StoreFalseAction) - this.register('action', 'append', _AppendAction) - this.register('action', 'append_const', _AppendConstAction) - this.register('action', 'count', _CountAction) - this.register('action', 'help', _HelpAction) - this.register('action', 'version', _VersionAction) - this.register('action', 'parsers', _SubParsersAction) - this.register('action', 'extend', _ExtendAction) - // LEGACY (v1 compatibility): camelcase variants - ;[ 'storeConst', 'storeTrue', 'storeFalse', 'appendConst' ].forEach(old_name => { - let new_name = _to_new_name(old_name) - this.register('action', old_name, util.deprecate(this._registry_get('action', new_name), - sub('{action: "%s"} is renamed to {action: "%s"}', old_name, new_name))) - }) - // end - - // raise an exception if the conflict handler is invalid - this._get_handler() - - // action storage - this._actions = [] - this._option_string_actions = {} - - // groups - this._action_groups = [] - this._mutually_exclusive_groups = [] - - // defaults storage - this._defaults = {} - - // determines whether an "option" looks like a negative number - this._negative_number_matcher = /^-\d+$|^-\d*\.\d+$/ - - // whether or not there are any optionals that look like negative - // numbers -- uses a list so it can be shared and edited - this._has_negative_number_optionals = [] - } - - // ==================== - // Registration methods - // ==================== - register(registry_name, value, object) { - let registry = setdefault(this._registries, registry_name, {}) - registry[value] = object - } - - _registry_get(registry_name, value, default_value = undefined) { - return getattr(this._registries[registry_name], value, default_value) - } - - // ================================== - // Namespace default accessor methods - // ================================== - set_defaults(kwargs) { - Object.assign(this._defaults, kwargs) - - // if these defaults match any existing arguments, replace - // the previous default on the object with the new one - for (let action of this._actions) { - if (action.dest in kwargs) { - action.default = kwargs[action.dest] - } - } - } - - get_default(dest) { - for (let action of this._actions) { - if (action.dest === dest && action.default !== undefined) { - return action.default - } - } - return this._defaults[dest] - } - - - // ======================= - // Adding argument actions - // ======================= - add_argument() { - /* - * add_argument(dest, ..., name=value, ...) - * add_argument(option_string, option_string, ..., name=value, ...) - */ - let [ - args, - kwargs - ] = _parse_opts(arguments, { - '*args': no_default, - '**kwargs': no_default - }) - // LEGACY (v1 compatibility), old-style add_argument([ args ], { options }) - if (args.length === 1 && Array.isArray(args[0])) { - args = args[0] - deprecate('argument-array', - sub('use add_argument(%(args)s, {...}) instead of add_argument([ %(args)s ], { ... })', { - args: args.map(repr).join(', ') - })) - } - // end - - // if no positional args are supplied or only one is supplied and - // it doesn't look like an option string, parse a positional - // argument - let chars = this.prefix_chars - if (!args.length || args.length === 1 && !chars.includes(args[0][0])) { - if (args.length && 'dest' in kwargs) { - throw new TypeError('dest supplied twice for positional argument') - } - kwargs = this._get_positional_kwargs(...args, kwargs) - - // otherwise, we're adding an optional argument - } else { - kwargs = this._get_optional_kwargs(...args, kwargs) - } - - // if no default was supplied, use the parser-level default - if (!('default' in kwargs)) { - let dest = kwargs.dest - if (dest in this._defaults) { - kwargs.default = this._defaults[dest] - } else if (this.argument_default !== undefined) { - kwargs.default = this.argument_default - } - } - - // create the action object, and add it to the parser - let action_class = this._pop_action_class(kwargs) - if (typeof action_class !== 'function') { - throw new TypeError(sub('unknown action "%s"', action_class)) - } - // eslint-disable-next-line new-cap - let action = new action_class(kwargs) - - // raise an error if the action type is not callable - let type_func = this._registry_get('type', action.type, action.type) - if (typeof type_func !== 'function') { - throw new TypeError(sub('%r is not callable', type_func)) - } - - if (type_func === FileType) { - throw new TypeError(sub('%r is a FileType class object, instance of it' + - ' must be passed', type_func)) - } - - // raise an error if the metavar does not match the type - if ('_get_formatter' in this) { - try { - this._get_formatter()._format_args(action, undefined) - } catch (err) { - // check for 'invalid nargs value' is an artifact of TypeError and ValueError in js being the same - if (err instanceof TypeError && err.message !== 'invalid nargs value') { - throw new TypeError('length of metavar tuple does not match nargs') - } else { - throw err - } - } - } - - return this._add_action(action) - } - - add_argument_group() { - let group = _ArgumentGroup(this, ...arguments) - this._action_groups.push(group) - return group - } - - add_mutually_exclusive_group() { - // eslint-disable-next-line no-use-before-define - let group = _MutuallyExclusiveGroup(this, ...arguments) - this._mutually_exclusive_groups.push(group) - return group - } - - _add_action(action) { - // resolve any conflicts - this._check_conflict(action) - - // add to actions list - this._actions.push(action) - action.container = this - - // index the action by any option strings it has - for (let option_string of action.option_strings) { - this._option_string_actions[option_string] = action - } - - // set the flag if any option strings look like negative numbers - for (let option_string of action.option_strings) { - if (this._negative_number_matcher.test(option_string)) { - if (!this._has_negative_number_optionals.length) { - this._has_negative_number_optionals.push(true) - } - } - } - - // return the created action - return action - } - - _remove_action(action) { - _array_remove(this._actions, action) - } - - _add_container_actions(container) { - // collect groups by titles - let title_group_map = {} - for (let group of this._action_groups) { - if (group.title in title_group_map) { - let msg = 'cannot merge actions - two groups are named %r' - throw new TypeError(sub(msg, group.title)) - } - title_group_map[group.title] = group - } - - // map each action to its group - let group_map = new Map() - for (let group of container._action_groups) { - - // if a group with the title exists, use that, otherwise - // create a new group matching the container's group - if (!(group.title in title_group_map)) { - title_group_map[group.title] = this.add_argument_group({ - title: group.title, - description: group.description, - conflict_handler: group.conflict_handler - }) - } - - // map the actions to their new group - for (let action of group._group_actions) { - group_map.set(action, title_group_map[group.title]) - } - } - - // add container's mutually exclusive groups - // NOTE: if add_mutually_exclusive_group ever gains title= and - // description= then this code will need to be expanded as above - for (let group of container._mutually_exclusive_groups) { - let mutex_group = this.add_mutually_exclusive_group({ - required: group.required - }) - - // map the actions to their new mutex group - for (let action of group._group_actions) { - group_map.set(action, mutex_group) - } - } - - // add all actions to this container or their group - for (let action of container._actions) { - group_map.get(action)._add_action(action) - } - } - - _get_positional_kwargs() { - let [ - dest, - kwargs - ] = _parse_opts(arguments, { - dest: no_default, - '**kwargs': no_default - }) - - // make sure required is not specified - if ('required' in kwargs) { - let msg = "'required' is an invalid argument for positionals" - throw new TypeError(msg) - } - - // mark positional arguments as required if at least one is - // always required - if (![OPTIONAL, ZERO_OR_MORE].includes(kwargs.nargs)) { - kwargs.required = true - } - if (kwargs.nargs === ZERO_OR_MORE && !('default' in kwargs)) { - kwargs.required = true - } - - // return the keyword arguments with no option strings - return Object.assign(kwargs, { dest, option_strings: [] }) - } - - _get_optional_kwargs() { - let [ - args, - kwargs - ] = _parse_opts(arguments, { - '*args': no_default, - '**kwargs': no_default - }) - - // determine short and long option strings - let option_strings = [] - let long_option_strings = [] - let option_string - for (option_string of args) { - // error on strings that don't start with an appropriate prefix - if (!this.prefix_chars.includes(option_string[0])) { - let args = {option: option_string, - prefix_chars: this.prefix_chars} - let msg = 'invalid option string %(option)r: ' + - 'must start with a character %(prefix_chars)r' - throw new TypeError(sub(msg, args)) - } - - // strings starting with two prefix characters are long options - option_strings.push(option_string) - if (option_string.length > 1 && this.prefix_chars.includes(option_string[1])) { - long_option_strings.push(option_string) - } - } - - // infer destination, '--foo-bar' -> 'foo_bar' and '-x' -> 'x' - let dest = kwargs.dest - delete kwargs.dest - if (dest === undefined) { - let dest_option_string - if (long_option_strings.length) { - dest_option_string = long_option_strings[0] - } else { - dest_option_string = option_strings[0] - } - dest = _string_lstrip(dest_option_string, this.prefix_chars) - if (!dest) { - let msg = 'dest= is required for options like %r' - throw new TypeError(sub(msg, option_string)) - } - dest = dest.replace(/-/g, '_') - } - - // return the updated keyword arguments - return Object.assign(kwargs, { dest, option_strings }) - } - - _pop_action_class(kwargs, default_value = undefined) { - let action = getattr(kwargs, 'action', default_value) - delete kwargs.action - return this._registry_get('action', action, action) - } - - _get_handler() { - // determine function from conflict handler string - let handler_func_name = sub('_handle_conflict_%s', this.conflict_handler) - if (typeof this[handler_func_name] === 'function') { - return this[handler_func_name] - } else { - let msg = 'invalid conflict_resolution value: %r' - throw new TypeError(sub(msg, this.conflict_handler)) - } - } - - _check_conflict(action) { - - // find all options that conflict with this option - let confl_optionals = [] - for (let option_string of action.option_strings) { - if (hasattr(this._option_string_actions, option_string)) { - let confl_optional = this._option_string_actions[option_string] - confl_optionals.push([ option_string, confl_optional ]) - } - } - - // resolve any conflicts - if (confl_optionals.length) { - let conflict_handler = this._get_handler() - conflict_handler.call(this, action, confl_optionals) - } - } - - _handle_conflict_error(action, conflicting_actions) { - let message = conflicting_actions.length === 1 ? - 'conflicting option string: %s' : - 'conflicting option strings: %s' - let conflict_string = conflicting_actions.map(([ option_string/*, action*/ ]) => option_string).join(', ') - throw new ArgumentError(action, sub(message, conflict_string)) - } - - _handle_conflict_resolve(action, conflicting_actions) { - - // remove all conflicting options - for (let [ option_string, action ] of conflicting_actions) { - - // remove the conflicting option - _array_remove(action.option_strings, option_string) - delete this._option_string_actions[option_string] - - // if the option now has no option string, remove it from the - // container holding it - if (!action.option_strings.length) { - action.container._remove_action(action) - } - } - } -})) - - -const _ArgumentGroup = _callable(class _ArgumentGroup extends _ActionsContainer { - - constructor() { - let [ - container, - title, - description, - kwargs - ] = _parse_opts(arguments, { - container: no_default, - title: undefined, - description: undefined, - '**kwargs': no_default - }) - - // add any missing keyword arguments by checking the container - setdefault(kwargs, 'conflict_handler', container.conflict_handler) - setdefault(kwargs, 'prefix_chars', container.prefix_chars) - setdefault(kwargs, 'argument_default', container.argument_default) - super(Object.assign({ description }, kwargs)) - - // group attributes - this.title = title - this._group_actions = [] - - // share most attributes with the container - this._registries = container._registries - this._actions = container._actions - this._option_string_actions = container._option_string_actions - this._defaults = container._defaults - this._has_negative_number_optionals = - container._has_negative_number_optionals - this._mutually_exclusive_groups = container._mutually_exclusive_groups - } - - _add_action(action) { - action = super._add_action(action) - this._group_actions.push(action) - return action - } - - _remove_action(action) { - super._remove_action(action) - _array_remove(this._group_actions, action) - } -}) - - -const _MutuallyExclusiveGroup = _callable(class _MutuallyExclusiveGroup extends _ArgumentGroup { - - constructor() { - let [ - container, - required - ] = _parse_opts(arguments, { - container: no_default, - required: false - }) - - super(container) - this.required = required - this._container = container - } - - _add_action(action) { - if (action.required) { - let msg = 'mutually exclusive arguments must be optional' - throw new TypeError(msg) - } - action = this._container._add_action(action) - this._group_actions.push(action) - return action - } - - _remove_action(action) { - this._container._remove_action(action) - _array_remove(this._group_actions, action) - } -}) - - -const ArgumentParser = _camelcase_alias(_callable(class ArgumentParser extends _AttributeHolder(_ActionsContainer) { - /* - * Object for parsing command line strings into Python objects. - * - * Keyword Arguments: - * - prog -- The name of the program (default: sys.argv[0]) - * - usage -- A usage message (default: auto-generated from arguments) - * - description -- A description of what the program does - * - epilog -- Text following the argument descriptions - * - parents -- Parsers whose arguments should be copied into this one - * - formatter_class -- HelpFormatter class for printing help messages - * - prefix_chars -- Characters that prefix optional arguments - * - fromfile_prefix_chars -- Characters that prefix files containing - * additional arguments - * - argument_default -- The default value for all arguments - * - conflict_handler -- String indicating how to handle conflicts - * - add_help -- Add a -h/-help option - * - allow_abbrev -- Allow long options to be abbreviated unambiguously - * - exit_on_error -- Determines whether or not ArgumentParser exits with - * error info when an error occurs - */ - - constructor() { - let [ - prog, - usage, - description, - epilog, - parents, - formatter_class, - prefix_chars, - fromfile_prefix_chars, - argument_default, - conflict_handler, - add_help, - allow_abbrev, - exit_on_error, - debug, // LEGACY (v1 compatibility), debug mode - version // LEGACY (v1 compatibility), version - ] = _parse_opts(arguments, { - prog: undefined, - usage: undefined, - description: undefined, - epilog: undefined, - parents: [], - formatter_class: HelpFormatter, - prefix_chars: '-', - fromfile_prefix_chars: undefined, - argument_default: undefined, - conflict_handler: 'error', - add_help: true, - allow_abbrev: true, - exit_on_error: true, - debug: undefined, // LEGACY (v1 compatibility), debug mode - version: undefined // LEGACY (v1 compatibility), version - }) - - // LEGACY (v1 compatibility) - if (debug !== undefined) { - deprecate('debug', - 'The "debug" argument to ArgumentParser is deprecated. Please ' + - 'override ArgumentParser.exit function instead.' - ) - } - - if (version !== undefined) { - deprecate('version', - 'The "version" argument to ArgumentParser is deprecated. Please use ' + - "add_argument(..., { action: 'version', version: 'N', ... }) instead." - ) - } - // end - - super({ - description, - prefix_chars, - argument_default, - conflict_handler - }) - - // default setting for prog - if (prog === undefined) { - prog = path.basename(get_argv()[0] || '') - } - - this.prog = prog - this.usage = usage - this.epilog = epilog - this.formatter_class = formatter_class - this.fromfile_prefix_chars = fromfile_prefix_chars - this.add_help = add_help - this.allow_abbrev = allow_abbrev - this.exit_on_error = exit_on_error - // LEGACY (v1 compatibility), debug mode - this.debug = debug - // end - - this._positionals = this.add_argument_group('positional arguments') - this._optionals = this.add_argument_group('optional arguments') - this._subparsers = undefined - - // register types - function identity(string) { - return string - } - this.register('type', undefined, identity) - this.register('type', null, identity) - this.register('type', 'auto', identity) - this.register('type', 'int', function (x) { - let result = Number(x) - if (!Number.isInteger(result)) { - throw new TypeError(sub('could not convert string to int: %r', x)) - } - return result - }) - this.register('type', 'float', function (x) { - let result = Number(x) - if (isNaN(result)) { - throw new TypeError(sub('could not convert string to float: %r', x)) - } - return result - }) - this.register('type', 'str', String) - // LEGACY (v1 compatibility): custom types - this.register('type', 'string', - util.deprecate(String, 'use {type:"str"} or {type:String} instead of {type:"string"}')) - // end - - // add help argument if necessary - // (using explicit default to override global argument_default) - let default_prefix = prefix_chars.includes('-') ? '-' : prefix_chars[0] - if (this.add_help) { - this.add_argument( - default_prefix + 'h', - default_prefix.repeat(2) + 'help', - { - action: 'help', - default: SUPPRESS, - help: 'show this help message and exit' - } - ) - } - // LEGACY (v1 compatibility), version - if (version) { - this.add_argument( - default_prefix + 'v', - default_prefix.repeat(2) + 'version', - { - action: 'version', - default: SUPPRESS, - version: this.version, - help: "show program's version number and exit" - } - ) - } - // end - - // add parent arguments and defaults - for (let parent of parents) { - this._add_container_actions(parent) - Object.assign(this._defaults, parent._defaults) - } - } - - // ======================= - // Pretty __repr__ methods - // ======================= - _get_kwargs() { - let names = [ - 'prog', - 'usage', - 'description', - 'formatter_class', - 'conflict_handler', - 'add_help' - ] - return names.map(name => [ name, getattr(this, name) ]) - } - - // ================================== - // Optional/Positional adding methods - // ================================== - add_subparsers() { - let [ - kwargs - ] = _parse_opts(arguments, { - '**kwargs': no_default - }) - - if (this._subparsers !== undefined) { - this.error('cannot have multiple subparser arguments') - } - - // add the parser class to the arguments if it's not present - setdefault(kwargs, 'parser_class', this.constructor) - - if ('title' in kwargs || 'description' in kwargs) { - let title = getattr(kwargs, 'title', 'subcommands') - let description = getattr(kwargs, 'description', undefined) - delete kwargs.title - delete kwargs.description - this._subparsers = this.add_argument_group(title, description) - } else { - this._subparsers = this._positionals - } - - // prog defaults to the usage message of this parser, skipping - // optional arguments and with no "usage:" prefix - if (kwargs.prog === undefined) { - let formatter = this._get_formatter() - let positionals = this._get_positional_actions() - let groups = this._mutually_exclusive_groups - formatter.add_usage(this.usage, positionals, groups, '') - kwargs.prog = formatter.format_help().trim() - } - - // create the parsers action and add it to the positionals list - let parsers_class = this._pop_action_class(kwargs, 'parsers') - // eslint-disable-next-line new-cap - let action = new parsers_class(Object.assign({ option_strings: [] }, kwargs)) - this._subparsers._add_action(action) - - // return the created parsers action - return action - } - - _add_action(action) { - if (action.option_strings.length) { - this._optionals._add_action(action) - } else { - this._positionals._add_action(action) - } - return action - } - - _get_optional_actions() { - return this._actions.filter(action => action.option_strings.length) - } - - _get_positional_actions() { - return this._actions.filter(action => !action.option_strings.length) - } - - // ===================================== - // Command line argument parsing methods - // ===================================== - parse_args(args = undefined, namespace = undefined) { - let argv - [ args, argv ] = this.parse_known_args(args, namespace) - if (argv && argv.length > 0) { - let msg = 'unrecognized arguments: %s' - this.error(sub(msg, argv.join(' '))) - } - return args - } - - parse_known_args(args = undefined, namespace = undefined) { - if (args === undefined) { - args = get_argv().slice(1) - } - - // default Namespace built from parser defaults - if (namespace === undefined) { - namespace = new Namespace() - } - - // add any action defaults that aren't present - for (let action of this._actions) { - if (action.dest !== SUPPRESS) { - if (!hasattr(namespace, action.dest)) { - if (action.default !== SUPPRESS) { - setattr(namespace, action.dest, action.default) - } - } - } - } - - // add any parser defaults that aren't present - for (let dest of Object.keys(this._defaults)) { - if (!hasattr(namespace, dest)) { - setattr(namespace, dest, this._defaults[dest]) - } - } - - // parse the arguments and exit if there are any errors - if (this.exit_on_error) { - try { - [ namespace, args ] = this._parse_known_args(args, namespace) - } catch (err) { - if (err instanceof ArgumentError) { - this.error(err.message) - } else { - throw err - } - } - } else { - [ namespace, args ] = this._parse_known_args(args, namespace) - } - - if (hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR)) { - args = args.concat(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR)) - delattr(namespace, _UNRECOGNIZED_ARGS_ATTR) - } - - return [ namespace, args ] - } - - _parse_known_args(arg_strings, namespace) { - // replace arg strings that are file references - if (this.fromfile_prefix_chars !== undefined) { - arg_strings = this._read_args_from_files(arg_strings) - } - - // map all mutually exclusive arguments to the other arguments - // they can't occur with - let action_conflicts = new Map() - for (let mutex_group of this._mutually_exclusive_groups) { - let group_actions = mutex_group._group_actions - for (let [ i, mutex_action ] of Object.entries(mutex_group._group_actions)) { - let conflicts = action_conflicts.get(mutex_action) || [] - conflicts = conflicts.concat(group_actions.slice(0, +i)) - conflicts = conflicts.concat(group_actions.slice(+i + 1)) - action_conflicts.set(mutex_action, conflicts) - } - } - - // find all option indices, and determine the arg_string_pattern - // which has an 'O' if there is an option at an index, - // an 'A' if there is an argument, or a '-' if there is a '--' - let option_string_indices = {} - let arg_string_pattern_parts = [] - let arg_strings_iter = Object.entries(arg_strings)[Symbol.iterator]() - for (let [ i, arg_string ] of arg_strings_iter) { - - // all args after -- are non-options - if (arg_string === '--') { - arg_string_pattern_parts.push('-') - for ([ i, arg_string ] of arg_strings_iter) { - arg_string_pattern_parts.push('A') - } - - // otherwise, add the arg to the arg strings - // and note the index if it was an option - } else { - let option_tuple = this._parse_optional(arg_string) - let pattern - if (option_tuple === undefined) { - pattern = 'A' - } else { - option_string_indices[i] = option_tuple - pattern = 'O' - } - arg_string_pattern_parts.push(pattern) - } - } - - // join the pieces together to form the pattern - let arg_strings_pattern = arg_string_pattern_parts.join('') - - // converts arg strings to the appropriate and then takes the action - let seen_actions = new Set() - let seen_non_default_actions = new Set() - let extras - - let take_action = (action, argument_strings, option_string = undefined) => { - seen_actions.add(action) - let argument_values = this._get_values(action, argument_strings) - - // error if this argument is not allowed with other previously - // seen arguments, assuming that actions that use the default - // value don't really count as "present" - if (argument_values !== action.default) { - seen_non_default_actions.add(action) - for (let conflict_action of action_conflicts.get(action) || []) { - if (seen_non_default_actions.has(conflict_action)) { - let msg = 'not allowed with argument %s' - let action_name = _get_action_name(conflict_action) - throw new ArgumentError(action, sub(msg, action_name)) - } - } - } - - // take the action if we didn't receive a SUPPRESS value - // (e.g. from a default) - if (argument_values !== SUPPRESS) { - action(this, namespace, argument_values, option_string) - } - } - - // function to convert arg_strings into an optional action - let consume_optional = start_index => { - - // get the optional identified at this index - let option_tuple = option_string_indices[start_index] - let [ action, option_string, explicit_arg ] = option_tuple - - // identify additional optionals in the same arg string - // (e.g. -xyz is the same as -x -y -z if no args are required) - let action_tuples = [] - let stop - for (;;) { - - // if we found no optional action, skip it - if (action === undefined) { - extras.push(arg_strings[start_index]) - return start_index + 1 - } - - // if there is an explicit argument, try to match the - // optional's string arguments to only this - if (explicit_arg !== undefined) { - let arg_count = this._match_argument(action, 'A') - - // if the action is a single-dash option and takes no - // arguments, try to parse more single-dash options out - // of the tail of the option string - let chars = this.prefix_chars - if (arg_count === 0 && !chars.includes(option_string[1])) { - action_tuples.push([ action, [], option_string ]) - let char = option_string[0] - option_string = char + explicit_arg[0] - let new_explicit_arg = explicit_arg.slice(1) || undefined - let optionals_map = this._option_string_actions - if (hasattr(optionals_map, option_string)) { - action = optionals_map[option_string] - explicit_arg = new_explicit_arg - } else { - let msg = 'ignored explicit argument %r' - throw new ArgumentError(action, sub(msg, explicit_arg)) - } - - // if the action expect exactly one argument, we've - // successfully matched the option; exit the loop - } else if (arg_count === 1) { - stop = start_index + 1 - let args = [ explicit_arg ] - action_tuples.push([ action, args, option_string ]) - break - - // error if a double-dash option did not use the - // explicit argument - } else { - let msg = 'ignored explicit argument %r' - throw new ArgumentError(action, sub(msg, explicit_arg)) - } - - // if there is no explicit argument, try to match the - // optional's string arguments with the following strings - // if successful, exit the loop - } else { - let start = start_index + 1 - let selected_patterns = arg_strings_pattern.slice(start) - let arg_count = this._match_argument(action, selected_patterns) - stop = start + arg_count - let args = arg_strings.slice(start, stop) - action_tuples.push([ action, args, option_string ]) - break - } - } - - // add the Optional to the list and return the index at which - // the Optional's string args stopped - assert(action_tuples.length) - for (let [ action, args, option_string ] of action_tuples) { - take_action(action, args, option_string) - } - return stop - } - - // the list of Positionals left to be parsed; this is modified - // by consume_positionals() - let positionals = this._get_positional_actions() - - // function to convert arg_strings into positional actions - let consume_positionals = start_index => { - // match as many Positionals as possible - let selected_pattern = arg_strings_pattern.slice(start_index) - let arg_counts = this._match_arguments_partial(positionals, selected_pattern) - - // slice off the appropriate arg strings for each Positional - // and add the Positional and its args to the list - for (let i = 0; i < positionals.length && i < arg_counts.length; i++) { - let action = positionals[i] - let arg_count = arg_counts[i] - let args = arg_strings.slice(start_index, start_index + arg_count) - start_index += arg_count - take_action(action, args) - } - - // slice off the Positionals that we just parsed and return the - // index at which the Positionals' string args stopped - positionals = positionals.slice(arg_counts.length) - return start_index - } - - // consume Positionals and Optionals alternately, until we have - // passed the last option string - extras = [] - let start_index = 0 - let max_option_string_index = Math.max(-1, ...Object.keys(option_string_indices).map(Number)) - while (start_index <= max_option_string_index) { - - // consume any Positionals preceding the next option - let next_option_string_index = Math.min( - // eslint-disable-next-line no-loop-func - ...Object.keys(option_string_indices).map(Number).filter(index => index >= start_index) - ) - if (start_index !== next_option_string_index) { - let positionals_end_index = consume_positionals(start_index) - - // only try to parse the next optional if we didn't consume - // the option string during the positionals parsing - if (positionals_end_index > start_index) { - start_index = positionals_end_index - continue - } else { - start_index = positionals_end_index - } - } - - // if we consumed all the positionals we could and we're not - // at the index of an option string, there were extra arguments - if (!(start_index in option_string_indices)) { - let strings = arg_strings.slice(start_index, next_option_string_index) - extras = extras.concat(strings) - start_index = next_option_string_index - } - - // consume the next optional and any arguments for it - start_index = consume_optional(start_index) - } - - // consume any positionals following the last Optional - let stop_index = consume_positionals(start_index) - - // if we didn't consume all the argument strings, there were extras - extras = extras.concat(arg_strings.slice(stop_index)) - - // make sure all required actions were present and also convert - // action defaults which were not given as arguments - let required_actions = [] - for (let action of this._actions) { - if (!seen_actions.has(action)) { - if (action.required) { - required_actions.push(_get_action_name(action)) - } else { - // Convert action default now instead of doing it before - // parsing arguments to avoid calling convert functions - // twice (which may fail) if the argument was given, but - // only if it was defined already in the namespace - if (action.default !== undefined && - typeof action.default === 'string' && - hasattr(namespace, action.dest) && - action.default === getattr(namespace, action.dest)) { - setattr(namespace, action.dest, - this._get_value(action, action.default)) - } - } - } - } - - if (required_actions.length) { - this.error(sub('the following arguments are required: %s', - required_actions.join(', '))) - } - - // make sure all required groups had one option present - for (let group of this._mutually_exclusive_groups) { - if (group.required) { - let no_actions_used = true - for (let action of group._group_actions) { - if (seen_non_default_actions.has(action)) { - no_actions_used = false - break - } - } - - // if no actions were used, report the error - if (no_actions_used) { - let names = group._group_actions - .filter(action => action.help !== SUPPRESS) - .map(action => _get_action_name(action)) - let msg = 'one of the arguments %s is required' - this.error(sub(msg, names.join(' '))) - } - } - } - - // return the updated namespace and the extra arguments - return [ namespace, extras ] - } - - _read_args_from_files(arg_strings) { - // expand arguments referencing files - let new_arg_strings = [] - for (let arg_string of arg_strings) { - - // for regular arguments, just add them back into the list - if (!arg_string || !this.fromfile_prefix_chars.includes(arg_string[0])) { - new_arg_strings.push(arg_string) - - // replace arguments referencing files with the file content - } else { - try { - let args_file = fs.readFileSync(arg_string.slice(1), 'utf8') - let arg_strings = [] - for (let arg_line of splitlines(args_file)) { - for (let arg of this.convert_arg_line_to_args(arg_line)) { - arg_strings.push(arg) - } - } - arg_strings = this._read_args_from_files(arg_strings) - new_arg_strings = new_arg_strings.concat(arg_strings) - } catch (err) { - this.error(err.message) - } - } - } - - // return the modified argument list - return new_arg_strings - } - - convert_arg_line_to_args(arg_line) { - return [arg_line] - } - - _match_argument(action, arg_strings_pattern) { - // match the pattern for this action to the arg strings - let nargs_pattern = this._get_nargs_pattern(action) - let match = arg_strings_pattern.match(new RegExp('^' + nargs_pattern)) - - // raise an exception if we weren't able to find a match - if (match === null) { - let nargs_errors = { - undefined: 'expected one argument', - [OPTIONAL]: 'expected at most one argument', - [ONE_OR_MORE]: 'expected at least one argument' - } - let msg = nargs_errors[action.nargs] - if (msg === undefined) { - msg = sub(action.nargs === 1 ? 'expected %s argument' : 'expected %s arguments', action.nargs) - } - throw new ArgumentError(action, msg) - } - - // return the number of arguments matched - return match[1].length - } - - _match_arguments_partial(actions, arg_strings_pattern) { - // progressively shorten the actions list by slicing off the - // final actions until we find a match - let result = [] - for (let i of range(actions.length, 0, -1)) { - let actions_slice = actions.slice(0, i) - let pattern = actions_slice.map(action => this._get_nargs_pattern(action)).join('') - let match = arg_strings_pattern.match(new RegExp('^' + pattern)) - if (match !== null) { - result = result.concat(match.slice(1).map(string => string.length)) - break - } - } - - // return the list of arg string counts - return result - } - - _parse_optional(arg_string) { - // if it's an empty string, it was meant to be a positional - if (!arg_string) { - return undefined - } - - // if it doesn't start with a prefix, it was meant to be positional - if (!this.prefix_chars.includes(arg_string[0])) { - return undefined - } - - // if the option string is present in the parser, return the action - if (arg_string in this._option_string_actions) { - let action = this._option_string_actions[arg_string] - return [ action, arg_string, undefined ] - } - - // if it's just a single character, it was meant to be positional - if (arg_string.length === 1) { - return undefined - } - - // if the option string before the "=" is present, return the action - if (arg_string.includes('=')) { - let [ option_string, explicit_arg ] = _string_split(arg_string, '=', 1) - if (option_string in this._option_string_actions) { - let action = this._option_string_actions[option_string] - return [ action, option_string, explicit_arg ] - } - } - - // search through all possible prefixes of the option string - // and all actions in the parser for possible interpretations - let option_tuples = this._get_option_tuples(arg_string) - - // if multiple actions match, the option string was ambiguous - if (option_tuples.length > 1) { - let options = option_tuples.map(([ /*action*/, option_string/*, explicit_arg*/ ]) => option_string).join(', ') - let args = {option: arg_string, matches: options} - let msg = 'ambiguous option: %(option)s could match %(matches)s' - this.error(sub(msg, args)) - - // if exactly one action matched, this segmentation is good, - // so return the parsed action - } else if (option_tuples.length === 1) { - let [ option_tuple ] = option_tuples - return option_tuple - } - - // if it was not found as an option, but it looks like a negative - // number, it was meant to be positional - // unless there are negative-number-like options - if (this._negative_number_matcher.test(arg_string)) { - if (!this._has_negative_number_optionals.length) { - return undefined - } - } - - // if it contains a space, it was meant to be a positional - if (arg_string.includes(' ')) { - return undefined - } - - // it was meant to be an optional but there is no such option - // in this parser (though it might be a valid option in a subparser) - return [ undefined, arg_string, undefined ] - } - - _get_option_tuples(option_string) { - let result = [] - - // option strings starting with two prefix characters are only - // split at the '=' - let chars = this.prefix_chars - if (chars.includes(option_string[0]) && chars.includes(option_string[1])) { - if (this.allow_abbrev) { - let option_prefix, explicit_arg - if (option_string.includes('=')) { - [ option_prefix, explicit_arg ] = _string_split(option_string, '=', 1) - } else { - option_prefix = option_string - explicit_arg = undefined - } - for (let option_string of Object.keys(this._option_string_actions)) { - if (option_string.startsWith(option_prefix)) { - let action = this._option_string_actions[option_string] - let tup = [ action, option_string, explicit_arg ] - result.push(tup) - } - } - } - - // single character options can be concatenated with their arguments - // but multiple character options always have to have their argument - // separate - } else if (chars.includes(option_string[0]) && !chars.includes(option_string[1])) { - let option_prefix = option_string - let explicit_arg = undefined - let short_option_prefix = option_string.slice(0, 2) - let short_explicit_arg = option_string.slice(2) - - for (let option_string of Object.keys(this._option_string_actions)) { - if (option_string === short_option_prefix) { - let action = this._option_string_actions[option_string] - let tup = [ action, option_string, short_explicit_arg ] - result.push(tup) - } else if (option_string.startsWith(option_prefix)) { - let action = this._option_string_actions[option_string] - let tup = [ action, option_string, explicit_arg ] - result.push(tup) - } - } - - // shouldn't ever get here - } else { - this.error(sub('unexpected option string: %s', option_string)) - } - - // return the collected option tuples - return result - } - - _get_nargs_pattern(action) { - // in all examples below, we have to allow for '--' args - // which are represented as '-' in the pattern - let nargs = action.nargs - let nargs_pattern - - // the default (None) is assumed to be a single argument - if (nargs === undefined) { - nargs_pattern = '(-*A-*)' - - // allow zero or one arguments - } else if (nargs === OPTIONAL) { - nargs_pattern = '(-*A?-*)' - - // allow zero or more arguments - } else if (nargs === ZERO_OR_MORE) { - nargs_pattern = '(-*[A-]*)' - - // allow one or more arguments - } else if (nargs === ONE_OR_MORE) { - nargs_pattern = '(-*A[A-]*)' - - // allow any number of options or arguments - } else if (nargs === REMAINDER) { - nargs_pattern = '([-AO]*)' - - // allow one argument followed by any number of options or arguments - } else if (nargs === PARSER) { - nargs_pattern = '(-*A[-AO]*)' - - // suppress action, like nargs=0 - } else if (nargs === SUPPRESS) { - nargs_pattern = '(-*-*)' - - // all others should be integers - } else { - nargs_pattern = sub('(-*%s-*)', 'A'.repeat(nargs).split('').join('-*')) - } - - // if this is an optional action, -- is not allowed - if (action.option_strings.length) { - nargs_pattern = nargs_pattern.replace(/-\*/g, '') - nargs_pattern = nargs_pattern.replace(/-/g, '') - } - - // return the pattern - return nargs_pattern - } - - // ======================== - // Alt command line argument parsing, allowing free intermix - // ======================== - - parse_intermixed_args(args = undefined, namespace = undefined) { - let argv - [ args, argv ] = this.parse_known_intermixed_args(args, namespace) - if (argv.length) { - let msg = 'unrecognized arguments: %s' - this.error(sub(msg, argv.join(' '))) - } - return args - } - - parse_known_intermixed_args(args = undefined, namespace = undefined) { - // returns a namespace and list of extras - // - // positional can be freely intermixed with optionals. optionals are - // first parsed with all positional arguments deactivated. The 'extras' - // are then parsed. If the parser definition is incompatible with the - // intermixed assumptions (e.g. use of REMAINDER, subparsers) a - // TypeError is raised. - // - // positionals are 'deactivated' by setting nargs and default to - // SUPPRESS. This blocks the addition of that positional to the - // namespace - - let extras - let positionals = this._get_positional_actions() - let a = positionals.filter(action => [ PARSER, REMAINDER ].includes(action.nargs)) - if (a.length) { - throw new TypeError(sub('parse_intermixed_args: positional arg' + - ' with nargs=%s', a[0].nargs)) - } - - for (let group of this._mutually_exclusive_groups) { - for (let action of group._group_actions) { - if (positionals.includes(action)) { - throw new TypeError('parse_intermixed_args: positional in' + - ' mutuallyExclusiveGroup') - } - } - } - - let save_usage - try { - save_usage = this.usage - let remaining_args - try { - if (this.usage === undefined) { - // capture the full usage for use in error messages - this.usage = this.format_usage().slice(7) - } - for (let action of positionals) { - // deactivate positionals - action.save_nargs = action.nargs - // action.nargs = 0 - action.nargs = SUPPRESS - action.save_default = action.default - action.default = SUPPRESS - } - [ namespace, remaining_args ] = this.parse_known_args(args, - namespace) - for (let action of positionals) { - // remove the empty positional values from namespace - let attr = getattr(namespace, action.dest) - if (Array.isArray(attr) && attr.length === 0) { - // eslint-disable-next-line no-console - console.warn(sub('Do not expect %s in %s', action.dest, namespace)) - delattr(namespace, action.dest) - } - } - } finally { - // restore nargs and usage before exiting - for (let action of positionals) { - action.nargs = action.save_nargs - action.default = action.save_default - } - } - let optionals = this._get_optional_actions() - try { - // parse positionals. optionals aren't normally required, but - // they could be, so make sure they aren't. - for (let action of optionals) { - action.save_required = action.required - action.required = false - } - for (let group of this._mutually_exclusive_groups) { - group.save_required = group.required - group.required = false - } - [ namespace, extras ] = this.parse_known_args(remaining_args, - namespace) - } finally { - // restore parser values before exiting - for (let action of optionals) { - action.required = action.save_required - } - for (let group of this._mutually_exclusive_groups) { - group.required = group.save_required - } - } - } finally { - this.usage = save_usage - } - return [ namespace, extras ] - } - - // ======================== - // Value conversion methods - // ======================== - _get_values(action, arg_strings) { - // for everything but PARSER, REMAINDER args, strip out first '--' - if (![PARSER, REMAINDER].includes(action.nargs)) { - try { - _array_remove(arg_strings, '--') - } catch (err) {} - } - - let value - // optional argument produces a default when not present - if (!arg_strings.length && action.nargs === OPTIONAL) { - if (action.option_strings.length) { - value = action.const - } else { - value = action.default - } - if (typeof value === 'string') { - value = this._get_value(action, value) - this._check_value(action, value) - } - - // when nargs='*' on a positional, if there were no command-line - // args, use the default if it is anything other than None - } else if (!arg_strings.length && action.nargs === ZERO_OR_MORE && - !action.option_strings.length) { - if (action.default !== undefined) { - value = action.default - } else { - value = arg_strings - } - this._check_value(action, value) - - // single argument or optional argument produces a single value - } else if (arg_strings.length === 1 && [undefined, OPTIONAL].includes(action.nargs)) { - let arg_string = arg_strings[0] - value = this._get_value(action, arg_string) - this._check_value(action, value) - - // REMAINDER arguments convert all values, checking none - } else if (action.nargs === REMAINDER) { - value = arg_strings.map(v => this._get_value(action, v)) - - // PARSER arguments convert all values, but check only the first - } else if (action.nargs === PARSER) { - value = arg_strings.map(v => this._get_value(action, v)) - this._check_value(action, value[0]) - - // SUPPRESS argument does not put anything in the namespace - } else if (action.nargs === SUPPRESS) { - value = SUPPRESS - - // all other types of nargs produce a list - } else { - value = arg_strings.map(v => this._get_value(action, v)) - for (let v of value) { - this._check_value(action, v) - } - } - - // return the converted value - return value - } - - _get_value(action, arg_string) { - let type_func = this._registry_get('type', action.type, action.type) - if (typeof type_func !== 'function') { - let msg = '%r is not callable' - throw new ArgumentError(action, sub(msg, type_func)) - } - - // convert the value to the appropriate type - let result - try { - try { - result = type_func(arg_string) - } catch (err) { - // Dear TC39, why would you ever consider making es6 classes not callable? - // We had one universal interface, [[Call]], which worked for anything - // (with familiar this-instanceof guard for classes). Now we have two. - if (err instanceof TypeError && - /Class constructor .* cannot be invoked without 'new'/.test(err.message)) { - // eslint-disable-next-line new-cap - result = new type_func(arg_string) - } else { - throw err - } - } - - } catch (err) { - // ArgumentTypeErrors indicate errors - if (err instanceof ArgumentTypeError) { - //let name = getattr(action.type, 'name', repr(action.type)) - let msg = err.message - throw new ArgumentError(action, msg) - - // TypeErrors or ValueErrors also indicate errors - } else if (err instanceof TypeError) { - let name = getattr(action.type, 'name', repr(action.type)) - let args = {type: name, value: arg_string} - let msg = 'invalid %(type)s value: %(value)r' - throw new ArgumentError(action, sub(msg, args)) - } else { - throw err - } - } - - // return the converted value - return result - } - - _check_value(action, value) { - // converted value must be one of the choices (if specified) - if (action.choices !== undefined && !_choices_to_array(action.choices).includes(value)) { - let args = {value, - choices: _choices_to_array(action.choices).map(repr).join(', ')} - let msg = 'invalid choice: %(value)r (choose from %(choices)s)' - throw new ArgumentError(action, sub(msg, args)) - } - } - - // ======================= - // Help-formatting methods - // ======================= - format_usage() { - let formatter = this._get_formatter() - formatter.add_usage(this.usage, this._actions, - this._mutually_exclusive_groups) - return formatter.format_help() - } - - format_help() { - let formatter = this._get_formatter() - - // usage - formatter.add_usage(this.usage, this._actions, - this._mutually_exclusive_groups) - - // description - formatter.add_text(this.description) - - // positionals, optionals and user-defined groups - for (let action_group of this._action_groups) { - formatter.start_section(action_group.title) - formatter.add_text(action_group.description) - formatter.add_arguments(action_group._group_actions) - formatter.end_section() - } - - // epilog - formatter.add_text(this.epilog) - - // determine help from format above - return formatter.format_help() - } - - _get_formatter() { - // eslint-disable-next-line new-cap - return new this.formatter_class({ prog: this.prog }) - } - - // ===================== - // Help-printing methods - // ===================== - print_usage(file = undefined) { - if (file === undefined) file = process.stdout - this._print_message(this.format_usage(), file) - } - - print_help(file = undefined) { - if (file === undefined) file = process.stdout - this._print_message(this.format_help(), file) - } - - _print_message(message, file = undefined) { - if (message) { - if (file === undefined) file = process.stderr - file.write(message) - } - } - - // =============== - // Exiting methods - // =============== - exit(status = 0, message = undefined) { - if (message) { - this._print_message(message, process.stderr) - } - process.exit(status) - } - - error(message) { - /* - * error(message: string) - * - * Prints a usage message incorporating the message to stderr and - * exits. - * - * If you override this in a subclass, it should not return -- it - * should either exit or raise an exception. - */ - - // LEGACY (v1 compatibility), debug mode - if (this.debug === true) throw new Error(message) - // end - this.print_usage(process.stderr) - let args = {prog: this.prog, message: message} - this.exit(2, sub('%(prog)s: error: %(message)s\n', args)) - } -})) - - -module.exports = { - ArgumentParser, - ArgumentError, - ArgumentTypeError, - BooleanOptionalAction, - FileType, - HelpFormatter, - ArgumentDefaultsHelpFormatter, - RawDescriptionHelpFormatter, - RawTextHelpFormatter, - MetavarTypeHelpFormatter, - Namespace, - Action, - ONE_OR_MORE, - OPTIONAL, - PARSER, - REMAINDER, - SUPPRESS, - ZERO_OR_MORE -} - -// LEGACY (v1 compatibility), Const alias -Object.defineProperty(module.exports, 'Const', { - get() { - let result = {} - Object.entries({ ONE_OR_MORE, OPTIONAL, PARSER, REMAINDER, SUPPRESS, ZERO_OR_MORE }).forEach(([ n, v ]) => { - Object.defineProperty(result, n, { - get() { - deprecate(n, sub('use argparse.%s instead of argparse.Const.%s', n, n)) - return v - } - }) - }) - Object.entries({ _UNRECOGNIZED_ARGS_ATTR }).forEach(([ n, v ]) => { - Object.defineProperty(result, n, { - get() { - deprecate(n, sub('argparse.Const.%s is an internal symbol and will no longer be available', n)) - return v - } - }) - }) - return result - }, - enumerable: false -}) -// end diff --git a/build/node_modules/argparse/package.json b/build/node_modules/argparse/package.json deleted file mode 100644 index 647d2aff..00000000 --- a/build/node_modules/argparse/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "argparse", - "description": "CLI arguments parser. Native port of python's argparse.", - "version": "2.0.1", - "keywords": [ - "cli", - "parser", - "argparse", - "option", - "args" - ], - "main": "argparse.js", - "files": [ - "argparse.js", - "lib/" - ], - "license": "Python-2.0", - "repository": "nodeca/argparse", - "scripts": { - "lint": "eslint .", - "test": "npm run lint && nyc mocha", - "coverage": "npm run test && nyc report --reporter html" - }, - "devDependencies": { - "@babel/eslint-parser": "^7.11.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "eslint": "^7.5.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0" - } -} diff --git a/build/node_modules/arr-diff/LICENSE b/build/node_modules/arr-diff/LICENSE deleted file mode 100644 index d734237b..00000000 --- a/build/node_modules/arr-diff/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/arr-diff/README.md b/build/node_modules/arr-diff/README.md deleted file mode 100644 index 961f5c3f..00000000 --- a/build/node_modules/arr-diff/README.md +++ /dev/null @@ -1,130 +0,0 @@ -# arr-diff [![NPM version](https://img.shields.io/npm/v/arr-diff.svg?style=flat)](https://www.npmjs.com/package/arr-diff) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-diff.svg?style=flat)](https://npmjs.org/package/arr-diff) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-diff.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-diff) - -> Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save arr-diff -``` - -Install with [yarn](https://yarnpkg.com): - -```sh -$ yarn add arr-diff -``` - -Install with [bower](https://bower.io/) - -```sh -$ bower install arr-diff --save -``` - -## Usage - -Returns the difference between the first array and additional arrays. - -```js -var diff = require('arr-diff'); - -var a = ['a', 'b', 'c', 'd']; -var b = ['b', 'c']; - -console.log(diff(a, b)) -//=> ['a', 'd'] -``` - -## Benchmarks - -This library versus [array-differ](https://github.com/sindresorhus/array-differ), on April 14, 2017: - -``` -Benchmarking: (4 of 4) - · long-dupes - · long - · med - · short - -# benchmark/fixtures/long-dupes.js (100804 bytes) - arr-diff-3.0.0 x 822 ops/sec ±0.67% (86 runs sampled) - arr-diff-4.0.0 x 2,141 ops/sec ±0.42% (89 runs sampled) - array-differ x 708 ops/sec ±0.70% (89 runs sampled) - - fastest is arr-diff-4.0.0 - -# benchmark/fixtures/long.js (94529 bytes) - arr-diff-3.0.0 x 882 ops/sec ±0.60% (87 runs sampled) - arr-diff-4.0.0 x 2,329 ops/sec ±0.97% (83 runs sampled) - array-differ x 769 ops/sec ±0.61% (90 runs sampled) - - fastest is arr-diff-4.0.0 - -# benchmark/fixtures/med.js (708 bytes) - arr-diff-3.0.0 x 856,150 ops/sec ±0.42% (89 runs sampled) - arr-diff-4.0.0 x 4,665,249 ops/sec ±1.06% (89 runs sampled) - array-differ x 653,888 ops/sec ±1.02% (86 runs sampled) - - fastest is arr-diff-4.0.0 - -# benchmark/fixtures/short.js (60 bytes) - arr-diff-3.0.0 x 3,078,467 ops/sec ±0.77% (93 runs sampled) - arr-diff-4.0.0 x 9,213,296 ops/sec ±0.65% (89 runs sampled) - array-differ x 1,337,051 ops/sec ±0.91% (92 runs sampled) - - fastest is arr-diff-4.0.0 -``` - -## About - -### Related projects - -* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.") -* [array-filter](https://www.npmjs.com/package/array-filter): Array#filter for older browsers. | [homepage](https://github.com/juliangruber/array-filter "Array#filter for older browsers.") -* [array-intersection](https://www.npmjs.com/package/array-intersection): Return an array with the unique values present in _all_ given arrays using strict equality… [more](https://github.com/jonschlinkert/array-intersection) | [homepage](https://github.com/jonschlinkert/array-intersection "Return an array with the unique values present in _all_ given arrays using strict equality for comparisons.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 33 | [jonschlinkert](https://github.com/jonschlinkert) | -| 2 | [paulmillr](https://github.com/paulmillr) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 14, 2017._ \ No newline at end of file diff --git a/build/node_modules/arr-diff/index.js b/build/node_modules/arr-diff/index.js deleted file mode 100644 index 90f28077..00000000 --- a/build/node_modules/arr-diff/index.js +++ /dev/null @@ -1,47 +0,0 @@ -/*! - * arr-diff - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -module.exports = function diff(arr/*, arrays*/) { - var len = arguments.length; - var idx = 0; - while (++idx < len) { - arr = diffArray(arr, arguments[idx]); - } - return arr; -}; - -function diffArray(one, two) { - if (!Array.isArray(two)) { - return one.slice(); - } - - var tlen = two.length - var olen = one.length; - var idx = -1; - var arr = []; - - while (++idx < olen) { - var ele = one[idx]; - - var hasEle = false; - for (var i = 0; i < tlen; i++) { - var val = two[i]; - - if (ele === val) { - hasEle = true; - break; - } - } - - if (hasEle === false) { - arr.push(ele); - } - } - return arr; -} diff --git a/build/node_modules/arr-diff/package.json b/build/node_modules/arr-diff/package.json deleted file mode 100644 index c106813b..00000000 --- a/build/node_modules/arr-diff/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "arr-diff", - "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.", - "version": "4.0.0", - "homepage": "https://github.com/jonschlinkert/arr-diff", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Miller (paulmillr.com)" - ], - "repository": "jonschlinkert/arr-diff", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-diff/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": {}, - "devDependencies": { - "ansi-bold": "^0.1.1", - "arr-flatten": "^1.0.1", - "array-differ": "^1.0.0", - "benchmarked": "^0.2.4", - "gulp-format-md": "^0.1.9", - "minimist": "^1.2.0", - "mocha": "^2.4.5" - }, - "keywords": [ - "arr", - "array", - "array differ", - "array-differ", - "diff", - "differ", - "difference" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "arr-flatten", - "array-filter", - "array-intersection" - ] - }, - "reflinks": [ - "array-differ", - "verb" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/arr-flatten/LICENSE b/build/node_modules/arr-flatten/LICENSE deleted file mode 100644 index 3f2eca18..00000000 --- a/build/node_modules/arr-flatten/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/arr-flatten/README.md b/build/node_modules/arr-flatten/README.md deleted file mode 100644 index 7dc7a974..00000000 --- a/build/node_modules/arr-flatten/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# arr-flatten [![NPM version](https://img.shields.io/npm/v/arr-flatten.svg?style=flat)](https://www.npmjs.com/package/arr-flatten) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![NPM total downloads](https://img.shields.io/npm/dt/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-flatten.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-flatten) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/arr-flatten.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/arr-flatten) - -> Recursively flatten an array or arrays. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save arr-flatten -``` - -## Install - -Install with [bower](https://bower.io/) - -```sh -$ bower install arr-flatten --save -``` - -## Usage - -```js -var flatten = require('arr-flatten'); - -flatten(['a', ['b', ['c']], 'd', ['e']]); -//=> ['a', 'b', 'c', 'd', 'e'] -``` - -## Why another flatten utility? - -I wanted the fastest implementation I could find, with implementation choices that should work for 95% of use cases, but no cruft to cover the other 5%. - -## About - -### Related projects - -* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter "Faster alternative to javascript's native filter method.") -* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.") -* [array-each](https://www.npmjs.com/package/array-each): Loop over each item in an array and call the given function on every element. | [homepage](https://github.com/jonschlinkert/array-each "Loop over each item in an array and call the given function on every element.") -* [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique "Remove duplicate values from an array. Fastest ES5 implementation.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 20 | [jonschlinkert](https://github.com/jonschlinkert) | -| 1 | [lukeed](https://github.com/lukeed) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 05, 2017._ \ No newline at end of file diff --git a/build/node_modules/arr-flatten/index.js b/build/node_modules/arr-flatten/index.js deleted file mode 100644 index 0cb4ea4e..00000000 --- a/build/node_modules/arr-flatten/index.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * arr-flatten - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -module.exports = function (arr) { - return flat(arr, []); -}; - -function flat(arr, res) { - var i = 0, cur; - var len = arr.length; - for (; i < len; i++) { - cur = arr[i]; - Array.isArray(cur) ? flat(cur, res) : res.push(cur); - } - return res; -} diff --git a/build/node_modules/arr-flatten/package.json b/build/node_modules/arr-flatten/package.json deleted file mode 100644 index d2d33e9b..00000000 --- a/build/node_modules/arr-flatten/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "arr-flatten", - "description": "Recursively flatten an array or arrays.", - "version": "1.1.0", - "homepage": "https://github.com/jonschlinkert/arr-flatten", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Luke Edwards (https://lukeed.com)" - ], - "repository": "jonschlinkert/arr-flatten", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-flatten/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "ansi-bold": "^0.1.1", - "array-flatten": "^2.1.1", - "array-slice": "^1.0.0", - "benchmarked": "^1.0.0", - "compute-flatten": "^1.0.0", - "flatit": "^1.1.1", - "flatten": "^1.0.2", - "flatten-array": "^1.0.0", - "glob": "^7.1.1", - "gulp-format-md": "^0.1.12", - "just-flatten-it": "^1.1.23", - "lodash.flattendeep": "^4.4.0", - "m_flattened": "^1.0.1", - "mocha": "^3.2.0", - "utils-flatten": "^1.0.0", - "write": "^0.3.3" - }, - "keywords": [ - "arr", - "array", - "elements", - "flat", - "flatten", - "nested", - "recurse", - "recursive", - "recursively" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "arr-filter", - "arr-union", - "array-each", - "array-unique" - ] - }, - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/arr-union/LICENSE b/build/node_modules/arr-union/LICENSE deleted file mode 100644 index 39245ac1..00000000 --- a/build/node_modules/arr-union/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/arr-union/README.md b/build/node_modules/arr-union/README.md deleted file mode 100644 index b3cd4f48..00000000 --- a/build/node_modules/arr-union/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# arr-union [![NPM version](https://img.shields.io/npm/v/arr-union.svg)](https://www.npmjs.com/package/arr-union) [![Build Status](https://img.shields.io/travis/jonschlinkert/arr-union.svg)](https://travis-ci.org/jonschlinkert/arr-union) - -> Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm i arr-union --save -``` - -## Benchmarks - -This library is **10-20 times faster** and more performant than [array-union](https://github.com/sindresorhus/array-union). - -See the [benchmarks](./benchmark). - -```sh -#1: five-arrays - array-union x 511,121 ops/sec ±0.80% (96 runs sampled) - arr-union x 5,716,039 ops/sec ±0.86% (93 runs sampled) - -#2: ten-arrays - array-union x 245,196 ops/sec ±0.69% (94 runs sampled) - arr-union x 1,850,786 ops/sec ±0.84% (97 runs sampled) - -#3: two-arrays - array-union x 563,869 ops/sec ±0.97% (94 runs sampled) - arr-union x 9,602,852 ops/sec ±0.87% (92 runs sampled) -``` - -## Usage - -```js -var union = require('arr-union'); - -union(['a'], ['b', 'c'], ['d', 'e', 'f']); -//=> ['a', 'b', 'c', 'd', 'e', 'f'] -``` - -Returns only unique elements: - -```js -union(['a', 'a'], ['b', 'c']); -//=> ['a', 'b', 'c'] -``` - -## Related projects - -* [arr-diff](https://www.npmjs.com/package/arr-diff): Returns an array with only the unique values from the first array, by excluding all… [more](https://www.npmjs.com/package/arr-diff) | [homepage](https://github.com/jonschlinkert/arr-diff) -* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter) -* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten) -* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map) -* [arr-pluck](https://www.npmjs.com/package/arr-pluck): Retrieves the value of a specified property from all elements in the collection. | [homepage](https://github.com/jonschlinkert/arr-pluck) -* [arr-reduce](https://www.npmjs.com/package/arr-reduce): Fast array reduce that also loops over sparse elements. | [homepage](https://github.com/jonschlinkert/arr-reduce) -* [array-unique](https://www.npmjs.com/package/array-unique): Return an array free of duplicate values. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique) - -## Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/arr-union/issues/new). - -## Building docs - -Generate readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm i verb && npm run docs -``` - -Or, if [verb](https://github.com/verbose/verb) is installed globally: - -```sh -$ verb -``` - -## Running tests - -Install dev dependencies: - -```sh -$ npm i -d && npm test -``` - -## Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -## License - -Copyright © 2016 [Jon Schlinkert](https://github.com/jonschlinkert) -Released under the [MIT license](https://github.com/jonschlinkert/arr-union/blob/master/LICENSE). - -*** - -_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on February 23, 2016._ \ No newline at end of file diff --git a/build/node_modules/arr-union/index.js b/build/node_modules/arr-union/index.js deleted file mode 100644 index 5ae6c4a0..00000000 --- a/build/node_modules/arr-union/index.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -module.exports = function union(init) { - if (!Array.isArray(init)) { - throw new TypeError('arr-union expects the first argument to be an array.'); - } - - var len = arguments.length; - var i = 0; - - while (++i < len) { - var arg = arguments[i]; - if (!arg) continue; - - if (!Array.isArray(arg)) { - arg = [arg]; - } - - for (var j = 0; j < arg.length; j++) { - var ele = arg[j]; - - if (init.indexOf(ele) >= 0) { - continue; - } - init.push(ele); - } - } - return init; -}; diff --git a/build/node_modules/arr-union/package.json b/build/node_modules/arr-union/package.json deleted file mode 100644 index 5ee87fd7..00000000 --- a/build/node_modules/arr-union/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "arr-union", - "description": "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.", - "version": "3.1.0", - "homepage": "https://github.com/jonschlinkert/arr-union", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/arr-union", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-union/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "ansi-bold": "^0.1.1", - "array-union": "^1.0.1", - "array-unique": "^0.2.1", - "benchmarked": "^0.1.4", - "gulp-format-md": "^0.1.7", - "minimist": "^1.1.1", - "mocha": "*", - "should": "*" - }, - "keywords": [ - "add", - "append", - "array", - "arrays", - "combine", - "concat", - "extend", - "union", - "uniq", - "unique", - "util", - "utility", - "utils" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "arr-diff", - "arr-flatten", - "arr-filter", - "arr-map", - "arr-pluck", - "arr-reduce", - "array-unique" - ] - }, - "reflinks": [ - "verb", - "array-union" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/array-flatten/LICENSE b/build/node_modules/array-flatten/LICENSE deleted file mode 100644 index 983fbe8a..00000000 --- a/build/node_modules/array-flatten/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/array-flatten/README.md b/build/node_modules/array-flatten/README.md deleted file mode 100644 index 4c4588ee..00000000 --- a/build/node_modules/array-flatten/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Array Flatten - -[![NPM version][npm-image]][npm-url] -[![NPM downloads][downloads-image]][downloads-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] - -> Flatten nested arrays. - -## Installation - -``` -npm install array-flatten --save -``` - -## Usage - -```javascript -var flatten = require('array-flatten') - -flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) -//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] - -flatten.depth([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) -//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] - -(function () { - flatten.from(arguments) //=> [1, 2, 3] -})(1, [2, 3]) -``` - -### Methods - -* **flatten(array)** Flatten a nested array structure -* **flatten.from(arrayish)** Flatten an array-like structure (E.g. arguments) -* **flatten.depth(array, depth)** Flatten a nested array structure with a specific depth -* **flatten.fromDepth(arrayish, depth)** Flatten an array-like structure with a specific depth - -## License - -MIT - -[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat -[npm-url]: https://npmjs.org/package/array-flatten -[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat -[downloads-url]: https://npmjs.org/package/array-flatten -[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat -[travis-url]: https://travis-ci.org/blakeembrey/array-flatten -[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat -[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git a/build/node_modules/array-flatten/array-flatten.d.ts b/build/node_modules/array-flatten/array-flatten.d.ts deleted file mode 100644 index 5fb9e3c1..00000000 --- a/build/node_modules/array-flatten/array-flatten.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare function flatten (array: flatten.NestedArray): T[]; - -declare namespace flatten { - export interface NestedArray extends ReadonlyArray> {} - - export interface NestedList { - [index: number]: T | NestedList; - length: number; - } - - export function from (array: NestedList): T[]; - export function depth (array: NestedArray, depth: number): NestedArray; - export function depthFrom (array: NestedList, depth: number): NestedArray; -} - -export = flatten; diff --git a/build/node_modules/array-flatten/array-flatten.js b/build/node_modules/array-flatten/array-flatten.js deleted file mode 100644 index a624fca5..00000000 --- a/build/node_modules/array-flatten/array-flatten.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict' - -/** - * Expose `arrayFlatten`. - */ -module.exports = flatten -module.exports.from = flattenFrom -module.exports.depth = flattenDepth -module.exports.fromDepth = flattenFromDepth - -/** - * Flatten an array. - * - * @param {Array} array - * @return {Array} - */ -function flatten (array) { - if (!Array.isArray(array)) { - throw new TypeError('Expected value to be an array') - } - - return flattenFrom(array) -} - -/** - * Flatten an array-like structure. - * - * @param {Array} array - * @return {Array} - */ -function flattenFrom (array) { - return flattenDown(array, []) -} - -/** - * Flatten an array-like structure with depth. - * - * @param {Array} array - * @param {number} depth - * @return {Array} - */ -function flattenDepth (array, depth) { - if (!Array.isArray(array)) { - throw new TypeError('Expected value to be an array') - } - - return flattenFromDepth(array, depth) -} - -/** - * Flatten an array-like structure with depth. - * - * @param {Array} array - * @param {number} depth - * @return {Array} - */ -function flattenFromDepth (array, depth) { - if (typeof depth !== 'number') { - throw new TypeError('Expected the depth to be a number') - } - - return flattenDownDepth(array, [], depth) -} - -/** - * Flatten an array indefinitely. - * - * @param {Array} array - * @param {Array} result - * @return {Array} - */ -function flattenDown (array, result) { - for (var i = 0; i < array.length; i++) { - var value = array[i] - - if (Array.isArray(value)) { - flattenDown(value, result) - } else { - result.push(value) - } - } - - return result -} - -/** - * Flatten an array with depth. - * - * @param {Array} array - * @param {Array} result - * @param {number} depth - * @return {Array} - */ -function flattenDownDepth (array, result, depth) { - depth-- - - for (var i = 0; i < array.length; i++) { - var value = array[i] - - if (depth > -1 && Array.isArray(value)) { - flattenDownDepth(value, result, depth) - } else { - result.push(value) - } - } - - return result -} diff --git a/build/node_modules/array-flatten/package.json b/build/node_modules/array-flatten/package.json deleted file mode 100644 index 985b24d8..00000000 --- a/build/node_modules/array-flatten/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "array-flatten", - "version": "2.1.2", - "description": "Flatten nested arrays", - "main": "array-flatten.js", - "typings": "array-flatten.d.ts", - "files": [ - "array-flatten.js", - "array-flatten.d.ts", - "LICENSE" - ], - "scripts": { - "lint": "standard", - "test-spec": "mocha -R spec --bail", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail", - "test": "npm run lint && npm run test-cov", - "benchmark": "node benchmark" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/array-flatten.git" - }, - "keywords": [ - "array", - "flatten", - "arguments", - "depth", - "fast", - "for" - ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/array-flatten/issues" - }, - "homepage": "https://github.com/blakeembrey/array-flatten", - "devDependencies": { - "benchmarked": "^2.0.0", - "istanbul": "^0.4.0", - "mocha": "^3.1.2", - "standard": "^10.0.0" - } -} diff --git a/build/node_modules/array-union/index.js b/build/node_modules/array-union/index.js deleted file mode 100644 index e33f38a1..00000000 --- a/build/node_modules/array-union/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var arrayUniq = require('array-uniq'); - -module.exports = function () { - return arrayUniq([].concat.apply([], arguments)); -}; diff --git a/build/node_modules/array-union/license b/build/node_modules/array-union/license deleted file mode 100644 index 654d0bfe..00000000 --- a/build/node_modules/array-union/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/array-union/package.json b/build/node_modules/array-union/package.json deleted file mode 100644 index 367c844b..00000000 --- a/build/node_modules/array-union/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "array-union", - "version": "1.0.2", - "description": "Create an array of unique values, in order, from the input arrays", - "license": "MIT", - "repository": "sindresorhus/array-union", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "array", - "arr", - "set", - "uniq", - "unique", - "duplicate", - "remove", - "union", - "combine", - "merge" - ], - "dependencies": { - "array-uniq": "^1.0.1" - }, - "devDependencies": { - "ava": "*", - "xo": "*" - } -} diff --git a/build/node_modules/array-union/readme.md b/build/node_modules/array-union/readme.md deleted file mode 100644 index ea472dd0..00000000 --- a/build/node_modules/array-union/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# array-union [![Build Status](https://travis-ci.org/sindresorhus/array-union.svg?branch=master)](https://travis-ci.org/sindresorhus/array-union) - -> Create an array of unique values, in order, from the input arrays - - -## Install - -``` -$ npm install --save array-union -``` - - -## Usage - -```js -const arrayUnion = require('array-union'); - -arrayUnion([1, 1, 2, 3], [2, 3]); -//=> [1, 2, 3] - -arrayUnion(['foo', 'foo', 'bar'], ['foo']); -//=> ['foo', 'bar'] -``` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/array-uniq/index.js b/build/node_modules/array-uniq/index.js deleted file mode 100644 index edd09f81..00000000 --- a/build/node_modules/array-uniq/index.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -// there's 3 implementations written in increasing order of efficiency - -// 1 - no Set type is defined -function uniqNoSet(arr) { - var ret = []; - - for (var i = 0; i < arr.length; i++) { - if (ret.indexOf(arr[i]) === -1) { - ret.push(arr[i]); - } - } - - return ret; -} - -// 2 - a simple Set type is defined -function uniqSet(arr) { - var seen = new Set(); - return arr.filter(function (el) { - if (!seen.has(el)) { - seen.add(el); - return true; - } - - return false; - }); -} - -// 3 - a standard Set type is defined and it has a forEach method -function uniqSetWithForEach(arr) { - var ret = []; - - (new Set(arr)).forEach(function (el) { - ret.push(el); - }); - - return ret; -} - -// V8 currently has a broken implementation -// https://github.com/joyent/node/issues/8449 -function doesForEachActuallyWork() { - var ret = false; - - (new Set([true])).forEach(function (el) { - ret = el; - }); - - return ret === true; -} - -if ('Set' in global) { - if (typeof Set.prototype.forEach === 'function' && doesForEachActuallyWork()) { - module.exports = uniqSetWithForEach; - } else { - module.exports = uniqSet; - } -} else { - module.exports = uniqNoSet; -} diff --git a/build/node_modules/array-uniq/license b/build/node_modules/array-uniq/license deleted file mode 100644 index 654d0bfe..00000000 --- a/build/node_modules/array-uniq/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/array-uniq/package.json b/build/node_modules/array-uniq/package.json deleted file mode 100644 index 106a3a95..00000000 --- a/build/node_modules/array-uniq/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "array-uniq", - "version": "1.0.3", - "description": "Create an array without duplicates", - "license": "MIT", - "repository": "sindresorhus/array-uniq", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "array", - "arr", - "set", - "uniq", - "unique", - "es6", - "duplicate", - "remove" - ], - "devDependencies": { - "ava": "*", - "es6-set": "^0.1.0", - "require-uncached": "^1.0.2", - "xo": "*" - } -} diff --git a/build/node_modules/array-uniq/readme.md b/build/node_modules/array-uniq/readme.md deleted file mode 100644 index f0bd98c4..00000000 --- a/build/node_modules/array-uniq/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# array-uniq [![Build Status](https://travis-ci.org/sindresorhus/array-uniq.svg?branch=master)](https://travis-ci.org/sindresorhus/array-uniq) - -> Create an array without duplicates - -It's already pretty fast, but will be much faster when [Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) becomes available in V8 (especially with large arrays). - - -## Install - -``` -$ npm install --save array-uniq -``` - - -## Usage - -```js -const arrayUniq = require('array-uniq'); - -arrayUniq([1, 1, 2, 3, 3]); -//=> [1, 2, 3] - -arrayUniq(['foo', 'foo', 'bar', 'foo']); -//=> ['foo', 'bar'] -``` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/array-unique/LICENSE b/build/node_modules/array-unique/LICENSE deleted file mode 100644 index 842218cf..00000000 --- a/build/node_modules/array-unique/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/array-unique/README.md b/build/node_modules/array-unique/README.md deleted file mode 100644 index 41c8c904..00000000 --- a/build/node_modules/array-unique/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# array-unique [![NPM version](https://img.shields.io/npm/v/array-unique.svg?style=flat)](https://www.npmjs.com/package/array-unique) [![NPM downloads](https://img.shields.io/npm/dm/array-unique.svg?style=flat)](https://npmjs.org/package/array-unique) [![Build Status](https://img.shields.io/travis/jonschlinkert/array-unique.svg?style=flat)](https://travis-ci.org/jonschlinkert/array-unique) - -Remove duplicate values from an array. Fastest ES5 implementation. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save array-unique -``` - -## Usage - -```js -var unique = require('array-unique'); - -var arr = ['a', 'b', 'c', 'c']; -console.log(unique(arr)) //=> ['a', 'b', 'c'] -console.log(arr) //=> ['a', 'b', 'c'] - -/* The above modifies the input array. To prevent that at a slight performance cost: */ -var unique = require("array-unique").immutable; - -var arr = ['a', 'b', 'c', 'c']; -console.log(unique(arr)) //=> ['a', 'b', 'c'] -console.log(arr) //=> ['a', 'b', 'c', 'c'] -``` - -## About - -### Related projects - -* [arr-diff](https://www.npmjs.com/package/arr-diff): Returns an array with only the unique values from the first array, by excluding all… [more](https://github.com/jonschlinkert/arr-diff) | [homepage](https://github.com/jonschlinkert/arr-diff "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.") -* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.") -* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map "Faster, node.js focused alternative to JavaScript's native array map.") -* [arr-pluck](https://www.npmjs.com/package/arr-pluck): Retrieves the value of a specified property from all elements in the collection. | [homepage](https://github.com/jonschlinkert/arr-pluck "Retrieves the value of a specified property from all elements in the collection.") -* [arr-reduce](https://www.npmjs.com/package/arr-reduce): Fast array reduce that also loops over sparse elements. | [homepage](https://github.com/jonschlinkert/arr-reduce "Fast array reduce that also loops over sparse elements.") -* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ - -To generate the readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm install -g verb verb-generate-readme && verb -``` - -### Running tests - -Install dev dependencies: - -```sh -$ npm install -d && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -### License - -Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT license](https://github.com/jonschlinkert/array-unique/blob/master/LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.28, on July 31, 2016._ \ No newline at end of file diff --git a/build/node_modules/array-unique/index.js b/build/node_modules/array-unique/index.js deleted file mode 100644 index 7e481e07..00000000 --- a/build/node_modules/array-unique/index.js +++ /dev/null @@ -1,43 +0,0 @@ -/*! - * array-unique - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -module.exports = function unique(arr) { - if (!Array.isArray(arr)) { - throw new TypeError('array-unique expects an array.'); - } - - var len = arr.length; - var i = -1; - - while (i++ < len) { - var j = i + 1; - - for (; j < arr.length; ++j) { - if (arr[i] === arr[j]) { - arr.splice(j--, 1); - } - } - } - return arr; -}; - -module.exports.immutable = function uniqueImmutable(arr) { - if (!Array.isArray(arr)) { - throw new TypeError('array-unique expects an array.'); - } - - var arrLen = arr.length; - var newArr = new Array(arrLen); - - for (var i = 0; i < arrLen; i++) { - newArr[i] = arr[i]; - } - - return module.exports(newArr); -}; diff --git a/build/node_modules/array-unique/package.json b/build/node_modules/array-unique/package.json deleted file mode 100644 index d87640ab..00000000 --- a/build/node_modules/array-unique/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "array-unique", - "description": "Remove duplicate values from an array. Fastest ES5 implementation.", - "version": "0.3.2", - "homepage": "https://github.com/jonschlinkert/array-unique", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/array-unique", - "bugs": { - "url": "https://github.com/jonschlinkert/array-unique/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "LICENSE", - "README.md" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "array-uniq": "^1.0.2", - "benchmarked": "^0.1.3", - "gulp-format-md": "^0.1.9", - "mocha": "^2.5.3", - "should": "^10.0.0" - }, - "keywords": [ - "array", - "unique" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "arr-diff", - "arr-union", - "arr-flatten", - "arr-reduce", - "arr-map", - "arr-pluck" - ] - }, - "reflinks": [ - "verb", - "verb-generate-readme" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/arrify/index.d.ts b/build/node_modules/arrify/index.d.ts deleted file mode 100644 index bfd0cf5e..00000000 --- a/build/node_modules/arrify/index.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** -Convert a value to an array. - -_Supplying `null` or `undefined` results in an empty array._ - -@example -``` -import arrify = require('arrify'); - -arrify('🦄'); -//=> ['🦄'] - -arrify(['🦄']); -//=> ['🦄'] - -arrify(new Set(['🦄'])); -//=> ['🦄'] - -arrify(null); -//=> [] - -arrify(undefined); -//=> [] -``` -*/ -declare function arrify( - value: ValueType -): ValueType extends (null | undefined) - ? [] - : ValueType extends string - ? [string] - : ValueType extends ReadonlyArray // TODO: Use 'readonly unknown[]' in the next major version - ? ValueType - : ValueType extends Iterable - ? T[] - : [ValueType]; - -export = arrify; diff --git a/build/node_modules/arrify/index.js b/build/node_modules/arrify/index.js deleted file mode 100644 index 49a5c9ad..00000000 --- a/build/node_modules/arrify/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -const arrify = value => { - if (value === null || value === undefined) { - return []; - } - - if (Array.isArray(value)) { - return value; - } - - if (typeof value === 'string') { - return [value]; - } - - if (typeof value[Symbol.iterator] === 'function') { - return [...value]; - } - - return [value]; -}; - -module.exports = arrify; diff --git a/build/node_modules/arrify/license b/build/node_modules/arrify/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/arrify/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/arrify/package.json b/build/node_modules/arrify/package.json deleted file mode 100644 index 07578884..00000000 --- a/build/node_modules/arrify/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "arrify", - "version": "2.0.1", - "description": "Convert a value to an array", - "license": "MIT", - "repository": "sindresorhus/arrify", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "array", - "arrify", - "arrayify", - "convert", - "value", - "ensure" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/arrify/readme.md b/build/node_modules/arrify/readme.md deleted file mode 100644 index b3dfc837..00000000 --- a/build/node_modules/arrify/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# arrify [![Build Status](https://travis-ci.org/sindresorhus/arrify.svg?branch=master)](https://travis-ci.org/sindresorhus/arrify) - -> Convert a value to an array - - -## Install - -``` -$ npm install arrify -``` - - -## Usage - -```js -const arrify = require('arrify'); - -arrify('🦄'); -//=> ['🦄'] - -arrify(['🦄']); -//=> ['🦄'] - -arrify(new Set(['🦄'])); -//=> ['🦄'] - -arrify(null); -//=> [] - -arrify(undefined); -//=> [] -``` - -*Supplying `null` or `undefined` results in an empty array.* - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/as-table/.babelrc b/build/node_modules/as-table/.babelrc deleted file mode 100644 index c8e246a5..00000000 --- a/build/node_modules/as-table/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["transform-es2015-destructuring", "transform-es2015-spread"] -} \ No newline at end of file diff --git a/build/node_modules/as-table/.eslintrc b/build/node_modules/as-table/.eslintrc deleted file mode 100644 index 955b07d1..00000000 --- a/build/node_modules/as-table/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "script" - } -} \ No newline at end of file diff --git a/build/node_modules/as-table/.travis.yml b/build/node_modules/as-table/.travis.yml deleted file mode 100644 index c3b62f58..00000000 --- a/build/node_modules/as-table/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: node_js -node_js: -- '8' -script: -- set -e -- npm run test -- npm run coveralls -after_success: -- git config --global user.email "travis@travis-ci.org" -- git config --global user.name "Travis CI" -- npm config set git-tag-version=false -- NPM_VERSION=$(npm version patch) -- git commit -a -m "${NPM_VERSION:1}" -m "[ci skip]" -- git remote remove origin -- git remote add origin https://${GITHUB_TOKEN}@github.com/xpl/as-table.git -- git push origin HEAD:master -deploy: - provider: npm - email: rocket.mind@gmail.com - api_key: - secure: AVxwMF+0BKyQqTvA/9Va+G+1kgsVUKQ08LgzVhqfUv2yGgh5jWY0P5/IFLQocTuC+uef066KqTlvnWR3SWqB+am5EsqiZeFPzOHmtCgxrML2aZK8crjPoY4W/3ZfPy9H00nU9YPNVguXJY7K7MwEFXZ/SVOM1aQvr+omeqMpbnP6Cl4nQ6Hzbc/uAdUHIQG1qzoEbsnkT1EuQ39v1IQLBEoiBDkUj45bmEdETZXd9Nr42BOviFMYjba0vAn8gsuUgMj+bYXeb0XXedmRwBGjtgcNx76RwwmOXPtiC2IQs6FiDmCzZtCcoYuvrWSOFYhfEgptDeeZ080x38uhBxusYq3p0iRF+XyjWlr3w1A5JaHL8FkUfmdBxKAzKhiPTS5yDqteWL8znqGKSPjR+FJNQo5pbS5+C8I67xkcDHvigMWy30lnnjvCV7tPW4FdJ85kx+F1qNmHU0vYqVfDNet4KZofgWoS0cHMYskzl1BwWC+vofwI9/sKatDtFR25ffFg8f17nW+6vTX/n9uSqIFURUI8DhfFlxqG2giDd73KCB0uZ4Fqd0dqnmcp5qg2hQt0sIftDBOmOaX7xKbVdLbGBTAQ82KZmbQCnj0In10gJQf5O/mKD7rr2dMLHi6fvbBE/cEsWy4u/o50UQ7bDzGfXT3tJ+tktxmx1HfSf6eXilA= -env: - global: - secure: KbUFKSmSkbuRb0mQ1kcKL5dA8TdI2SlnZAzyXwRXF/RpK5LDGI31gmPODl7DOKHPzEUTQaIeA/8dI0p8DKM9eTfHyM+pl0kZE+e6wSTdawVlI9FoxLgyBi8hz3UWnA39/YN65uFNvFX+kSYPPeOeV5zJNUaC8CT7Y3HYKR3tGrBaKrQbCnOlXIBsmyFryUHqdapBDmrqrU69Ab1uQca/djS2ztsjYvaP61aEIAKAsUZQRtDk8mP8sUQ5o15CwcpaWp/K1efeb3AuxHjcYOHH0Ci0SZmWpO9ky+wLCPeDqEeV4ZDN4Wfp9yx5dNkV0+ifevSRR5FNS9LHREPML8jz53KzOQQOXK5Fup/SsHPHU0XT6vB2TlG0YwatMSVGY4QIRCMftMkokjFwWsP8oPbuTuVCWhHQouMxRQDPQ/z3Dn/+blASG1lw16S92ksRLc8CCGA8gUZ6CrKh82gFAfyzwAUgLhoFIPEEu2e49W/VdAzeQ1VfAb/TbjwdgX9OR8F8TR48jM3Xpk8BdPANso7t9Rk9vvIw0JxR0Ir+7ufHV1dqCPsGa5KdZjaKrHHs6P/JI+Xl+w4o/6wmn3FhORSKqGuxDJqoQ8cw49Hh5OM0uf9tKfiyUyuFdsApom4vwrOTL+ZRbbD037JH/fzp24C33oaGwOCdyY0Eb/n0LI5ufRg= diff --git a/build/node_modules/as-table/CHANGELOG.md b/build/node_modules/as-table/CHANGELOG.md deleted file mode 100644 index 1e3289cb..00000000 --- a/build/node_modules/as-table/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -# Recent Updates - -- Now layouts ANSI-colored strings correctly, thanks to the [`printable-characters`](https://github.com/xpl/printable-characters) module. \ No newline at end of file diff --git a/build/node_modules/as-table/LICENSE b/build/node_modules/as-table/LICENSE deleted file mode 100644 index 49dbbe1e..00000000 --- a/build/node_modules/as-table/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Vitaly Gordon (https://github.com/xpl) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/as-table/README.md b/build/node_modules/as-table/README.md deleted file mode 100644 index a6cc5cde..00000000 --- a/build/node_modules/as-table/README.md +++ /dev/null @@ -1,113 +0,0 @@ -# as-table - -[![Build Status](https://travis-ci.org/xpl/as-table.svg?branch=master)](https://travis-ci.org/xpl/as-table) [![Coverage Status](https://coveralls.io/repos/github/xpl/as-table/badge.svg)](https://coveralls.io/github/xpl/as-table) [![npm](https://img.shields.io/npm/v/as-table.svg)](https://npmjs.com/package/as-table) [![dependencies Status](https://david-dm.org/xpl/as-table/status.svg)](https://david-dm.org/xpl/as-table) [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/xpl/as-table.svg)](https://scrutinizer-ci.com/g/xpl/as-table/?branch=master) - -A simple function that print objects and arrays as ASCII tables. Supports ANSI styling and weird 💩 Unicode emoji symbols (they won't break the layout), thanks to [`printable-characters`](https://github.com/xpl/printable-characters). - -```bash -npm install as-table -``` - -## Printing objects - -```javascript -asTable = require ('as-table') - -asTable ([ { foo: true, string: 'abcde', num: 42 }, - { foo: false, string: 'qwertyuiop', num: 43 }, - { string: null, num: 44 } ]) -``` -``` -foo string num ----------------------- -true abcde 42 -false qwertyuiop 43 - null 44 -``` - -## Printing arrays - -```javascript -asTable ([['qwe', '123456789', 'zxcvbnm'], - ['qwerty', '12', 'zxcvb'], - ['qwertyiop', '1234567', 'z']]) -``` -``` -qwe 123456789 zxcvbnm -qwerty 12 zxcvb -qwertyiop 1234567 z -``` - -## Limiting total width by proportionally trimming cells + setting columns delimiter - -```javascript -asTable.configure ({ maxTotalWidth: 22, delimiter: ' | ' }) (data) -``` -``` -qwe | 1234… | zxc… -qwer… | 12 | zxc… -qwer… | 1234… | z -``` - -## Right align - -```javascript -asTable.configure ({ right: true }) (data) -``` -``` - foo bar baz ------------------------------ - qwe 123456789 zxcvbnm - qwerty 12 zxcvb -qwertyiop 1234567 z -``` - -## Providing a custom object printer - -```javascript -asTable.configure ({ print: x => (typeof x === 'boolean') ? (x ? 'yes' : 'no') : String (x) }) (data) -``` -``` -foo string num --------------------- -yes abcde 42 -no qwertyuiop 43 - null 44 -``` - -The callback also receives a field name (in case of objects) or a column index (in case of arrays): - -```javascript -asTable = require ('as-table').configure ({ - print (x, k) { - if (k === 'timestamp') return new Date (x).toGMTString() - return String (x) - } -}) - -asTable ([ { name: 'A', timestamp: 1561202591572 }, - { name: 'B', timestamp: 1558524240034 } ]) -``` - -## Obtaining a pre-configured function - -```javascript -asTable = require ('as-table').configure ({ maxTotalWidth: 25, delimiter: ' | ' }) - -asTable (data) -``` - -## Customizing the title rendering and the header separator - -With string coloring by [`ansicolor`](https://github.com/xpl/ansicolor) (just for the demo purposes, any library will fit): - -```javascript -asTable = require ('as-table').configure ({ title: x => x.bright, delimiter: ' | '.dim.cyan, dash: '-'.bright.cyan }) - -console.log ( - asTable ([ { foo: true, string: 'abcde', num: 42 }, - { foo: false, string: 'qwertyuiop'.bgMagenta.green.bright, num: 43 } ]) -``` - -screen shot 2017-07-21 at 23 46 14 - diff --git a/build/node_modules/as-table/as-table.d.ts b/build/node_modules/as-table/as-table.d.ts deleted file mode 100644 index 5e319965..00000000 --- a/build/node_modules/as-table/as-table.d.ts +++ /dev/null @@ -1,32 +0,0 @@ - -declare function asTable(rows: any[][]): string -declare function asTable(objects: {[column: string]: any}[]): string -declare namespace asTable { - interface Config { - maxTotalWidth: number - minColumnWidths?: number[] - delimiter?: string - dash: string - right: boolean - print(value: T, key?: string | number): string - title(value: string): string - } - type OmitPrint = Pick> & {print: undefined} - type ValidValueType = { - [P in keyof O]: T; - } - interface Formatter extends Readonly> { - (rows: T[][]): string - >(objects: O[]): string - configure(cfg: Partial>>): Formatter - configure(cfg: Partial>): Formatter - } - function configure(cfg: Partial>): Formatter - const maxTotalWidth: number - const print: StringConstructor - const title: StringConstructor - const dash: '-' - const right: false -} - -export = asTable diff --git a/build/node_modules/as-table/as-table.js b/build/node_modules/as-table/as-table.js deleted file mode 100644 index e5299876..00000000 --- a/build/node_modules/as-table/as-table.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; - -const O = Object - , { first, strlen } = require ('printable-characters') // handles ANSI codes and invisible characters - , limit = (s, n) => (first (s, n - 1) + '…') - -const asColumns = (rows, cfg_) => { - - const - - zip = (arrs, f) => arrs.reduce ((a, b) => b.map ((b, i) => [...a[i] || [], b]), []).map (args => f (...args)), - - /* Convert cell data to string (converting multiline text to singleline) */ - - cells = rows.map (r => r.map (c => c.replace (/\n/g, '\\n'))), - - /* Compute column widths (per row) and max widths (per column) */ - - cellWidths = cells.map (r => r.map (strlen)), - maxWidths = zip (cellWidths, Math.max), - - /* Default config */ - - cfg = O.assign ({ - delimiter: ' ', - minColumnWidths: maxWidths.map (x => 0), - maxTotalWidth: 0 }, cfg_), - - delimiterLength = strlen (cfg.delimiter), - - /* Project desired column widths, taking maxTotalWidth and minColumnWidths in account. */ - - totalWidth = maxWidths.reduce ((a, b) => a + b, 0), - relativeWidths = maxWidths.map (w => w / totalWidth), - maxTotalWidth = cfg.maxTotalWidth - (delimiterLength * (maxWidths.length - 1)), - excessWidth = Math.max (0, totalWidth - maxTotalWidth), - computedWidths = zip ([cfg.minColumnWidths, maxWidths, relativeWidths], - (min, max, relative) => Math.max (min, Math.floor (max - excessWidth * relative))), - - /* This is how many symbols we should pad or cut (per column). */ - - restCellWidths = cellWidths.map (widths => zip ([computedWidths, widths], (a, b) => a - b)) - - /* Perform final composition. */ - - return zip ([cells, restCellWidths], (a, b) => - zip ([a, b], (str, w) => (w >= 0) - ? (cfg.right ? (' '.repeat (w) + str) : (str + ' '.repeat (w))) - : (limit (str, strlen (str) + w))).join (cfg.delimiter)) -} - -const asTable = cfg => O.assign (arr => { - -/* Print arrays */ - - if (arr[0] && Array.isArray (arr[0])) { - return asColumns (arr.map (r => r.map ( - (c, i) => (c === undefined) ? '' : cfg.print (c, i) - ) - ), - cfg).join ('\n') - } - -/* Print objects */ - - const colNames = [...new Set ([].concat (...arr.map (O.keys)))], - columns = [colNames.map (cfg.title), - ...arr.map (o => colNames.map ( - key => (o[key] === undefined) ? '' : cfg.print (o[key], key) - ) - ) - ], - lines = asColumns (columns, cfg) - - return (cfg.dash ? [lines[0], cfg.dash.repeat (strlen (lines[0])), ...lines.slice (1)] : lines).join ('\n') - -}, cfg, { - - configure: newConfig => asTable (O.assign ({}, cfg, newConfig)), -}) - -module.exports = asTable ({ - - maxTotalWidth: Number.MAX_SAFE_INTEGER, - print: String, - title: String, - dash: '-', - right: false -}) diff --git a/build/node_modules/as-table/package.json b/build/node_modules/as-table/package.json deleted file mode 100644 index 51b7d808..00000000 --- a/build/node_modules/as-table/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "as-table", - "version": "1.0.55", - "description": "A simple function that print objects / arrays as ASCII tables. Handles ANSI styling and weird 💩 Unicode emoji symbols – they won't break the layout.", - "main": "build/as-table.js", - "typings": "./as-table.d.ts", - "scripts": { - "lint": "eslint as-table.js", - "lint-test": "eslint test.js", - "babel": "babel as-table.js --source-maps inline --out-file ./build/as-table.js", - "build": "npm run lint && npm run lint-test && npm run babel", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "test": "npm run build && env AS_TABLE_TEST_FILE='./build/as-table' nyc --reporter=html --reporter=text mocha --reporter spec", - "autotest": "env AS_TABLE_TEST_FILE='./as-table' mocha --reporter spec --watch" - }, - "repository": { - "type": "git", - "url": "https://github.com/xpl/as-table.git" - }, - "keywords": [ - "ASCII", - "table", - "sheet", - "grid", - "print", - "log", - "print table", - "object as table", - "array as table", - "text table", - "array table", - "object table", - "array format", - "columns", - "as table", - "tablefy", - "columns", - "stringify", - "print object", - "grid", - "tty", - "terminal", - "console", - "text", - "layout" - ], - "author": "Vitaly Gordon ", - "license": "MIT", - "bugs": { - "url": "https://github.com/xpl/as-table/issues" - }, - "homepage": "https://github.com/xpl/as-table", - "devDependencies": { - "ansicolor": "^1.1.81", - "babel-cli": "^6.26.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "coveralls": "^3.0.3", - "eslint": "^4.19.1", - "istanbul": "^0.4.5", - "mocha": "^6.0.2", - "nyc": "^13.3.0" - }, - "dependencies": { - "printable-characters": "^1.0.42" - } -} diff --git a/build/node_modules/as-table/test.js b/build/node_modules/as-table/test.js deleted file mode 100644 index abd7f949..00000000 --- a/build/node_modules/as-table/test.js +++ /dev/null @@ -1,223 +0,0 @@ -"use strict"; - -const assert = require ('assert'), - asTable = require (process.env.AS_TABLE_TEST_FILE), - ansi = require ('ansicolor').nice - -describe ('as-table', () => { - - it ('array printing works', () => { - - var testData = [['qwe', '123456789', 'zxcvbnm'], - ['qwerty', '12', 'zxcvb'], - ['💩wertyiop', '1234567', 'z']] - - assert.equal (asTable (testData), - - 'qwe 123456789 zxcvbnm\n' + - 'qwerty 12 zxcvb \n' + - '💩wertyiop 1234567 z ') - - assert.equal (asTable.configure ({ maxTotalWidth: 22, delimiter: ' | ' }) (testData), - - 'qwe | 1234… | zxc…\n' + - 'qwer… | 12 | zxc…\n' + - '💩wer… | 1234… | z ') - - console.log (asTable.configure ({ maxTotalWidth: 22, delimiter: ' | ' }) (testData)) - }) - - it ('object printing works', () => { - - var testData = - [ { foo: true, string: 'abcde', num: 42 }, - { foo: false, string: 'qwertyuiop', num: 43 }, - { string: null, num: 44 } ] - - assert.equal (asTable (testData), - - 'foo string num\n' + - '----------------------\n' + - 'true abcde 42 \n' + - 'false qwertyuiop 43 \n' + - ' null 44 ') - }) - - - it ('object printing works (with ANSI styling)', () => { - - var testData = - [ { foo: true, string: 'abcde'.cyan.bgYellow, num: 42 }, - { foo: false, string: 'qwertyuiop', num: 43 }, - { string: null, num: 44 } ] - - assert.equal (asTable (testData), - - 'foo string num\n' + - '----------------------\n' + - 'true \u001b[43m\u001b[36mabcde\u001b[39m\u001b[49m 42 \n' + - 'false qwertyuiop 43 \n' + - ' null 44 ') - }) - - it ('maxTotalWidth correctly handles object field names', () => { - - assert.equal ( - - asTable.configure ({ maxTotalWidth: 15 }) ([{ - - '0123456789': '0123456789', - 'abcdefxyzw': 'abcdefxyzw' }]), - - '01234… abcde…\n' + - '--------------\n' + - '01234… abcde…' - ) - }) - - it ('maxTotalWidth correctly handles object field names (with ANSI styling)', () => { - - assert.equal ( - - asTable.configure ({ maxTotalWidth: 15 }) ([{ - - '0123456789': '0123456789', - 'abcdefxyzw': 'abcdefxyzw'.cyan.bgYellow.italic.inverse.bright }]), - - '01234… abcde…\n' + - '--------------\n' + - '01234… ' + 'abcde'.cyan.bgYellow.italic.inverse.bright + '…' - ) - }) - - it ('everything renders as singleline', () => { - - assert.equal (asTable ([['fooo\n\nbar']]), 'fooo\\n\\nbar') - }) - - it ('configuring works', () => { - - const asTable25 = asTable.configure ({ maxTotalWidth: 25 }), - asTable25Delim = asTable25.configure ({ delimiter: ' | ' }) - - assert.notEqual (asTable25, asTable25Delim) - assert.equal (asTable25.maxTotalWidth, 25) - assert.equal (asTable25Delim.delimiter, ' | ') - }) - - it ('degenerate case works', () => { - - assert.equal (asTable ([]), '\n') - assert.equal (asTable ([{}]), '\n\n') - }) - - it ('null/undefined prints correctly', () => { - - assert.equal (asTable.configure ({ delimiter: '|' }) ([[null, undefined, 1, 2, 3]]), 'null||1|2|3') - }) - - it ('custom printer works', () => { - - var testData = - [ { foo: true, string: 'abcde', num: 42 }, - { foo: false, string: 'qwertyuiop', num: 43 }, - { string: null, num: 44 } ] - - const formatsBooleansAsYesNo = asTable.configure ({ print: obj => (typeof obj === 'boolean') ? (obj ? 'yes' : 'no') : String (obj) }) - - assert.equal (formatsBooleansAsYesNo (testData), - - 'foo string num\n' + - '--------------------\n' + - 'yes abcde 42 \n' + - 'no qwertyuiop 43 \n' + - ' null 44 ') - }) - - it ('custom printer works with object titles', () => { - - var testData = - [ { foo: true, string: 'abcde', num: 42, timestamp: 1561202591572 }, - { foo: false, string: 'qwertyuiop', num: 43, timestamp: 1558524240034 }, - { string: null, num: 44, timestamp: 1555932240034 } ] - - const formats = asTable.configure ({ - print: (obj, title) => { - if (title === 'foo') { - return obj ? 'yes' : 'no'; - } - if (title === 'timestamp') { - return new Date(obj).toGMTString(); - } - return String(obj); - } - }) - - assert.equal (formats (testData), - - 'foo string num timestamp \n' + - '---------------------------------------------------\n' + - 'yes abcde 42 Sat, 22 Jun 2019 11:23:11 GMT\n' + - 'no qwertyuiop 43 Wed, 22 May 2019 11:24:00 GMT\n' + - ' null 44 Mon, 22 Apr 2019 11:24:00 GMT') - }) - - it ('custom printer works with array keys', () => { - - var testData = - [ [ true, 'abcde', 42, 1561202591572 ], - [ false, 'qwertyuiop', 43, 1558524240034 ] ] - - const formats = asTable.configure ({ - print: (obj, index) => { - if (index === 0) { - return obj ? 'yes' : 'no'; - } - if (index === 3) { - return new Date(obj).toGMTString(); - } - return String(obj); - } - }) - - assert.equal (formats (testData), - - 'yes abcde 42 Sat, 22 Jun 2019 11:23:11 GMT\n' + - 'no qwertyuiop 43 Wed, 22 May 2019 11:24:00 GMT') - }) - - - it ('right align works', () => { - - var testData = - [ { foo: 1234.567, bar: 12 }, - { foo: '4.567'.bgMagenta.green, bar: 1234.456890 } ] - - assert.equal (asTable.configure ({ right: true }) (testData), - ' foo bar\n' + - '--------------------\n' + - '1234.567 12\n' + - ' ' + '4.567'.bgMagenta.green + ' 1234.45689') - }) - - it ('ANSI coloring works', () => { - - const testData = - [ { foo: true, string: 'abcde', num: 42 }, - { foo: false, string: '💩wertyuiop'.bgMagenta.green.bright, num: 43 } ] - - const d = ' | '.dim.cyan - const _ = '-'.bright.cyan - - const result = asTable.configure ({ title: x => x.bright, delimiter: d, dash: _ }) (testData) - - console.log (result) - - assert.equal (result, - - ['foo'.bright + ' ', 'string'.bright + ' ', 'num'.bright].join (d) + '\n' + - _.repeat (24) + '\n' + - ['true ', 'abcde ', '42 '].join (d) + '\n' + - ['false', '💩wertyuiop'.bgMagenta.green.bright, '43 '].join (d)) - }) -}) diff --git a/build/node_modules/asap/CHANGES.md b/build/node_modules/asap/CHANGES.md deleted file mode 100644 index f105b919..00000000 --- a/build/node_modules/asap/CHANGES.md +++ /dev/null @@ -1,70 +0,0 @@ - -## 2.0.6 - -Version 2.0.4 adds support for React Native by clarifying in package.json that -the browser environment does not support Node.js domains. -Why this is necessary, we leave as an exercise for the user. - -## 2.0.3 - -Version 2.0.3 fixes a bug when adjusting the capacity of the task queue. - -## 2.0.1-2.02 - -Version 2.0.1 fixes a bug in the way redirects were expressed that affected the -function of Browserify, but which Mr would tolerate. - -## 2.0.0 - -Version 2 of ASAP is a full rewrite with a few salient changes. -First, the ASAP source is CommonJS only and designed with [Browserify][] and -[Browserify-compatible][Mr] module loaders in mind. - -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr - -The new version has been refactored in two dimensions. -Support for Node.js and browsers have been separated, using Browserify -redirects and ASAP has been divided into two modules. -The "raw" layer depends on the tasks to catch thrown exceptions and unravel -Node.js domains. - -The full implementation of ASAP is loadable as `require("asap")` in both Node.js -and browsers. - -The raw layer that lacks exception handling overhead is loadable as -`require("asap/raw")`. -The interface is the same for both layers. - -Tasks are no longer required to be functions, but can rather be any object that -implements `task.call()`. -With this feature you can recycle task objects to avoid garbage collector churn -and avoid closures in general. - -The implementation has been rigorously documented so that our successors can -understand the scope of the problem that this module solves and all of its -nuances, ensuring that the next generation of implementations know what details -are essential. - -- [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js) -- [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js) -- [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js) -- [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js) - -The new version has also been rigorously tested across a broad spectrum of -browsers, in both the window and worker context. -The following charts capture the browser test results for the most recent -release. -The first chart shows test results for ASAP running in the main window context. -The second chart shows test results for ASAP running in a web worker context. -Test results are inconclusive (grey) on browsers that do not support web -workers. -These data are captured automatically by [Continuous -Integration][]. - -![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg) - -![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg) - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - diff --git a/build/node_modules/asap/LICENSE.md b/build/node_modules/asap/LICENSE.md deleted file mode 100644 index ba18c613..00000000 --- a/build/node_modules/asap/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright 2009–2014 Contributors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - diff --git a/build/node_modules/asap/README.md b/build/node_modules/asap/README.md deleted file mode 100644 index 452fd8c2..00000000 --- a/build/node_modules/asap/README.md +++ /dev/null @@ -1,237 +0,0 @@ -# ASAP - -[![Build Status](https://travis-ci.org/kriskowal/asap.png?branch=master)](https://travis-ci.org/kriskowal/asap) - -Promise and asynchronous observer libraries, as well as hand-rolled callback -programs and libraries, often need a mechanism to postpone the execution of a -callback until the next available event. -(See [Designing API’s for Asynchrony][Zalgo].) -The `asap` function executes a task **as soon as possible** but not before it -returns, waiting only for the completion of the current event and previously -scheduled tasks. - -```javascript -asap(function () { - // ... -}); -``` - -[Zalgo]: http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony - -This CommonJS package provides an `asap` module that exports a function that -executes a task function *as soon as possible*. - -ASAP strives to schedule events to occur before yielding for IO, reflow, -or redrawing. -Each event receives an independent stack, with only platform code in parent -frames and the events run in the order they are scheduled. - -ASAP provides a fast event queue that will execute tasks until it is -empty before yielding to the JavaScript engine's underlying event-loop. -When a task gets added to a previously empty event queue, ASAP schedules a flush -event, preferring for that event to occur before the JavaScript engine has an -opportunity to perform IO tasks or rendering, thus making the first task and -subsequent tasks semantically indistinguishable. -ASAP uses a variety of techniques to preserve this invariant on different -versions of browsers and Node.js. - -By design, ASAP prevents input events from being handled until the task -queue is empty. -If the process is busy enough, this may cause incoming connection requests to be -dropped, and may cause existing connections to inform the sender to reduce the -transmission rate or stall. -ASAP allows this on the theory that, if there is enough work to do, there is no -sense in looking for trouble. -As a consequence, ASAP can interfere with smooth animation. -If your task should be tied to the rendering loop, consider using -`requestAnimationFrame` instead. -A long sequence of tasks can also effect the long running script dialog. -If this is a problem, you may be able to use ASAP’s cousin `setImmediate` to -break long processes into shorter intervals and periodically allow the browser -to breathe. -`setImmediate` will yield for IO, reflow, and repaint events. -It also returns a handler and can be canceled. -For a `setImmediate` shim, consider [YuzuJS setImmediate][setImmediate]. - -[setImmediate]: https://github.com/YuzuJS/setImmediate - -Take care. -ASAP can sustain infinite recursive calls without warning. -It will not halt from a stack overflow, and it will not consume unbounded -memory. -This is behaviorally equivalent to an infinite loop. -Just as with infinite loops, you can monitor a Node.js process for this behavior -with a heart-beat signal. -As with infinite loops, a very small amount of caution goes a long way to -avoiding problems. - -```javascript -function loop() { - asap(loop); -} -loop(); -``` - -In browsers, if a task throws an exception, it will not interrupt the flushing -of high-priority tasks. -The exception will be postponed to a later, low-priority event to avoid -slow-downs. -In Node.js, if a task throws an exception, ASAP will resume flushing only if—and -only after—the error is handled by `domain.on("error")` or -`process.on("uncaughtException")`. - -## Raw ASAP - -Checking for exceptions comes at a cost. -The package also provides an `asap/raw` module that exports the underlying -implementation which is faster but stalls if a task throws an exception. -This internal version of the ASAP function does not check for errors. -If a task does throw an error, it will stall the event queue unless you manually -call `rawAsap.requestFlush()` before throwing the error, or any time after. - -In Node.js, `asap/raw` also runs all tasks outside any domain. -If you need a task to be bound to your domain, you will have to do it manually. - -```js -if (process.domain) { - task = process.domain.bind(task); -} -rawAsap(task); -``` - -## Tasks - -A task may be any object that implements `call()`. -A function will suffice, but closures tend not to be reusable and can cause -garbage collector churn. -Both `asap` and `rawAsap` accept task objects to give you the option of -recycling task objects or using higher callable object abstractions. -See the `asap` source for an illustration. - - -## Compatibility - -ASAP is tested on Node.js v0.10 and in a broad spectrum of web browsers. -The following charts capture the browser test results for the most recent -release. -The first chart shows test results for ASAP running in the main window context. -The second chart shows test results for ASAP running in a web worker context. -Test results are inconclusive (grey) on browsers that do not support web -workers. -These data are captured automatically by [Continuous -Integration][]. - -[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md - -![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg) - -![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg) - -## Caveats - -When a task is added to an empty event queue, it is not always possible to -guarantee that the task queue will begin flushing immediately after the current -event. -However, once the task queue begins flushing, it will not yield until the queue -is empty, even if the queue grows while executing tasks. - -The following browsers allow the use of [DOM mutation observers][] to access -the HTML [microtask queue][], and thus begin flushing ASAP's task queue -immediately at the end of the current event loop turn, before any rendering or -IO: - -[microtask queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#microtask-queue -[DOM mutation observers]: http://dom.spec.whatwg.org/#mutation-observers - -- Android 4–4.3 -- Chrome 26–34 -- Firefox 14–29 -- Internet Explorer 11 -- iPad Safari 6–7.1 -- iPhone Safari 7–7.1 -- Safari 6–7 - -In the absense of mutation observers, there are a few browsers, and situations -like web workers in some of the above browsers, where [message channels][] -would be a useful way to avoid falling back to timers. -Message channels give direct access to the HTML [task queue][], so the ASAP -task queue would flush after any already queued rendering and IO tasks, but -without having the minimum delay imposed by timers. -However, among these browsers, Internet Explorer 10 and Safari do not reliably -dispatch messages, so they are not worth the trouble to implement. - -[message channels]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#message-channels -[task queue]: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-task - -- Internet Explorer 10 -- Safair 5.0-1 -- Opera 11-12 - -In the absense of mutation observers, these browsers and the following browsers -all fall back to using `setTimeout` and `setInterval` to ensure that a `flush` -occurs. -The implementation uses both and cancels whatever handler loses the race, since -`setTimeout` tends to occasionally skip tasks in unisolated circumstances. -Timers generally delay the flushing of ASAP's task queue for four milliseconds. - -- Firefox 3–13 -- Internet Explorer 6–10 -- iPad Safari 4.3 -- Lynx 2.8.7 - - -## Heritage - -ASAP has been factored out of the [Q][] asynchronous promise library. -It originally had a naïve implementation in terms of `setTimeout`, but -[Malte Ubl][NonBlocking] provided an insight that `postMessage` might be -useful for creating a high-priority, no-delay event dispatch hack. -Since then, Internet Explorer proposed and implemented `setImmediate`. -Robert Katić began contributing to Q by measuring the performance of -the internal implementation of `asap`, paying particular attention to -error recovery. -Domenic, Robert, and Kris Kowal collectively settled on the current strategy of -unrolling the high-priority event queue internally regardless of what strategy -we used to dispatch the potentially lower-priority flush event. -Domenic went on to make ASAP cooperate with Node.js domains. - -[Q]: https://github.com/kriskowal/q -[NonBlocking]: http://www.nonblocking.io/2011/06/windownexttick.html - -For further reading, Nicholas Zakas provided a thorough article on [The -Case for setImmediate][NCZ]. - -[NCZ]: http://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/ - -Ember’s RSVP promise implementation later [adopted][RSVP ASAP] the name ASAP but -further developed the implentation. -Particularly, The `MessagePort` implementation was abandoned due to interaction -[problems with Mobile Internet Explorer][IE Problems] in favor of an -implementation backed on the newer and more reliable DOM `MutationObserver` -interface. -These changes were back-ported into this library. - -[IE Problems]: https://github.com/cujojs/when/issues/197 -[RSVP ASAP]: https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js - -In addition, ASAP factored into `asap` and `asap/raw`, such that `asap` remained -exception-safe, but `asap/raw` provided a tight kernel that could be used for -tasks that guaranteed that they would not throw exceptions. -This core is useful for promise implementations that capture thrown errors in -rejected promises and do not need a second safety net. -At the same time, the exception handling in `asap` was factored into separate -implementations for Node.js and browsers, using the the [Browserify][Browser -Config] `browser` property in `package.json` to instruct browser module loaders -and bundlers, including [Browserify][], [Mr][], and [Mop][], to use the -browser-only implementation. - -[Browser Config]: https://gist.github.com/defunctzombie/4339901 -[Browserify]: https://github.com/substack/node-browserify -[Mr]: https://github.com/montagejs/mr -[Mop]: https://github.com/montagejs/mop - -## License - -Copyright 2009-2014 by Contributors -MIT License (enclosed) - diff --git a/build/node_modules/asap/asap.js b/build/node_modules/asap/asap.js deleted file mode 100644 index f04fcd58..00000000 --- a/build/node_modules/asap/asap.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; - -var rawAsap = require("./raw"); -var freeTasks = []; - -/** - * Calls a task as soon as possible after returning, in its own event, with - * priority over IO events. An exception thrown in a task can be handled by - * `process.on("uncaughtException") or `domain.on("error")`, but will otherwise - * crash the process. If the error is handled, all subsequent tasks will - * resume. - * - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawTask.domain = process.domain; - rawAsap(rawTask); -} - -function RawTask() { - this.task = null; - this.domain = null; -} - -RawTask.prototype.call = function () { - if (this.domain) { - this.domain.enter(); - } - var threw = true; - try { - this.task.call(); - threw = false; - // If the task throws an exception (presumably) Node.js restores the - // domain stack for the next event. - if (this.domain) { - this.domain.exit(); - } - } finally { - // We use try/finally and a threw flag to avoid messing up stack traces - // when we catch and release errors. - if (threw) { - // In Node.js, uncaught exceptions are considered fatal errors. - // Re-throw them to interrupt flushing! - // Ensure that flushing continues if an uncaught exception is - // suppressed listening process.on("uncaughtException") or - // domain.on("error"). - rawAsap.requestFlush(); - } - // If the task threw an error, we do not want to exit the domain here. - // Exiting the domain would prevent the domain from catching the error. - this.task = null; - this.domain = null; - freeTasks.push(this); - } -}; - diff --git a/build/node_modules/asap/browser-asap.js b/build/node_modules/asap/browser-asap.js deleted file mode 100644 index 805c9824..00000000 --- a/build/node_modules/asap/browser-asap.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; - -// rawAsap provides everything we need except exception management. -var rawAsap = require("./raw"); -// RawTasks are recycled to reduce GC churn. -var freeTasks = []; -// We queue errors to ensure they are thrown in right order (FIFO). -// Array-as-queue is good enough here, since we are just dealing with exceptions. -var pendingErrors = []; -var requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError); - -function throwFirstError() { - if (pendingErrors.length) { - throw pendingErrors.shift(); - } -} - -/** - * Calls a task as soon as possible after returning, in its own event, with priority - * over other events like animation, reflow, and repaint. An error thrown from an - * event will not interrupt, nor even substantially slow down the processing of - * other events, but will be rather postponed to a lower priority event. - * @param {{call}} task A callable object, typically a function that takes no - * arguments. - */ -module.exports = asap; -function asap(task) { - var rawTask; - if (freeTasks.length) { - rawTask = freeTasks.pop(); - } else { - rawTask = new RawTask(); - } - rawTask.task = task; - rawAsap(rawTask); -} - -// We wrap tasks with recyclable task objects. A task object implements -// `call`, just like a function. -function RawTask() { - this.task = null; -} - -// The sole purpose of wrapping the task is to catch the exception and recycle -// the task object after its single use. -RawTask.prototype.call = function () { - try { - this.task.call(); - } catch (error) { - if (asap.onerror) { - // This hook exists purely for testing purposes. - // Its name will be periodically randomized to break any code that - // depends on its existence. - asap.onerror(error); - } else { - // In a web browser, exceptions are not fatal. However, to avoid - // slowing down the queue of pending tasks, we rethrow the error in a - // lower priority turn. - pendingErrors.push(error); - requestErrorThrow(); - } - } finally { - this.task = null; - freeTasks[freeTasks.length] = this; - } -}; diff --git a/build/node_modules/asap/browser-raw.js b/build/node_modules/asap/browser-raw.js deleted file mode 100644 index 9cee7e32..00000000 --- a/build/node_modules/asap/browser-raw.js +++ /dev/null @@ -1,223 +0,0 @@ -"use strict"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including IO, animation, reflow, and redraw -// events in browsers. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Equivalent to push, but avoids a function call. - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// `requestFlush` is an implementation-specific method that attempts to kick -// off a `flush` event as quickly as possible. `flush` will attempt to exhaust -// the event queue before yielding to the browser's own event loop. -var requestFlush; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory exhaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -// `requestFlush` is implemented using a strategy based on data collected from -// every available SauceLabs Selenium web driver worker at time of writing. -// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593 - -// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that -// have WebKitMutationObserver but not un-prefixed MutationObserver. -// Must use `global` or `self` instead of `window` to work in both frames and web -// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop. - -/* globals self */ -var scope = typeof global !== "undefined" ? global : self; -var BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; - -// MutationObservers are desirable because they have high priority and work -// reliably everywhere they are implemented. -// They are implemented in all modern browsers. -// -// - Android 4-4.3 -// - Chrome 26-34 -// - Firefox 14-29 -// - Internet Explorer 11 -// - iPad Safari 6-7.1 -// - iPhone Safari 7-7.1 -// - Safari 6-7 -if (typeof BrowserMutationObserver === "function") { - requestFlush = makeRequestCallFromMutationObserver(flush); - -// MessageChannels are desirable because they give direct access to the HTML -// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera -// 11-12, and in web workers in many engines. -// Although message channels yield to any queued rendering and IO tasks, they -// would be better than imposing the 4ms delay of timers. -// However, they do not work reliably in Internet Explorer or Safari. - -// Internet Explorer 10 is the only browser that has setImmediate but does -// not have MutationObservers. -// Although setImmediate yields to the browser's renderer, it would be -// preferrable to falling back to setTimeout since it does not have -// the minimum 4ms penalty. -// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and -// Desktop to a lesser extent) that renders both setImmediate and -// MessageChannel useless for the purposes of ASAP. -// https://github.com/kriskowal/q/issues/396 - -// Timers are implemented universally. -// We fall back to timers in workers in most engines, and in foreground -// contexts in the following browsers. -// However, note that even this simple case requires nuances to operate in a -// broad spectrum of browsers. -// -// - Firefox 3-13 -// - Internet Explorer 6-9 -// - iPad Safari 4.3 -// - Lynx 2.8.7 -} else { - requestFlush = makeRequestCallFromTimer(flush); -} - -// `requestFlush` requests that the high priority event queue be flushed as -// soon as possible. -// This is useful to prevent an error thrown in a task from stalling the event -// queue if the exception handled by Node.js’s -// `process.on("uncaughtException")` or by a domain. -rawAsap.requestFlush = requestFlush; - -// To request a high priority event, we induce a mutation observer by toggling -// the text of a text node between "1" and "-1". -function makeRequestCallFromMutationObserver(callback) { - var toggle = 1; - var observer = new BrowserMutationObserver(callback); - var node = document.createTextNode(""); - observer.observe(node, {characterData: true}); - return function requestCall() { - toggle = -toggle; - node.data = toggle; - }; -} - -// The message channel technique was discovered by Malte Ubl and was the -// original foundation for this library. -// http://www.nonblocking.io/2011/06/windownexttick.html - -// Safari 6.0.5 (at least) intermittently fails to create message ports on a -// page's first load. Thankfully, this version of Safari supports -// MutationObservers, so we don't need to fall back in that case. - -// function makeRequestCallFromMessageChannel(callback) { -// var channel = new MessageChannel(); -// channel.port1.onmessage = callback; -// return function requestCall() { -// channel.port2.postMessage(0); -// }; -// } - -// For reasons explained above, we are also unable to use `setImmediate` -// under any circumstances. -// Even if we were, there is another bug in Internet Explorer 10. -// It is not sufficient to assign `setImmediate` to `requestFlush` because -// `setImmediate` must be called *by name* and therefore must be wrapped in a -// closure. -// Never forget. - -// function makeRequestCallFromSetImmediate(callback) { -// return function requestCall() { -// setImmediate(callback); -// }; -// } - -// Safari 6.0 has a problem where timers will get lost while the user is -// scrolling. This problem does not impact ASAP because Safari 6.0 supports -// mutation observers, so that implementation is used instead. -// However, if we ever elect to use timers in Safari, the prevalent work-around -// is to add a scroll event listener that calls for a flush. - -// `setTimeout` does not call the passed callback if the delay is less than -// approximately 7 in web workers in Firefox 8 through 18, and sometimes not -// even then. - -function makeRequestCallFromTimer(callback) { - return function requestCall() { - // We dispatch a timeout with a specified delay of 0 for engines that - // can reliably accommodate that request. This will usually be snapped - // to a 4 milisecond delay, but once we're flushing, there's no delay - // between events. - var timeoutHandle = setTimeout(handleTimer, 0); - // However, since this timer gets frequently dropped in Firefox - // workers, we enlist an interval handle that will try to fire - // an event 20 times per second until it succeeds. - var intervalHandle = setInterval(handleTimer, 50); - - function handleTimer() { - // Whichever timer succeeds will cancel both timers and - // execute the callback. - clearTimeout(timeoutHandle); - clearInterval(intervalHandle); - callback(); - } - }; -} - -// This is for `asap.js` only. -// Its name will be periodically randomized to break any code that depends on -// its existence. -rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; - -// ASAP was originally a nextTick shim included in Q. This was factored out -// into this ASAP package. It was later adapted to RSVP which made further -// amendments. These decisions, particularly to marginalize MessageChannel and -// to capture the MutationObserver implementation in a closure, were integrated -// back into ASAP proper. -// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js diff --git a/build/node_modules/asap/package.json b/build/node_modules/asap/package.json deleted file mode 100644 index ae9f303b..00000000 --- a/build/node_modules/asap/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "asap", - "version": "2.0.6", - "description": "High-priority task queue for Node.js and browsers", - "keywords": [ - "event", - "task", - "queue" - ], - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/kriskowal/asap.git" - }, - "main": "./asap.js", - "browser": { - "./asap": "./browser-asap.js", - "./asap.js": "./browser-asap.js", - "./raw": "./browser-raw.js", - "./raw.js": "./browser-raw.js", - "./test/domain.js": "./test/browser-domain.js" - }, - "react-native": { - "domain": false - }, - "files": [ - "raw.js", - "asap.js", - "browser-raw.js", - "browser-asap.js" - ], - "scripts": { - "test": "npm run lint && npm run test-node", - "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker", - "test-node": "node test/asap-test.js", - "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy", - "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener", - "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json", - "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json", - "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json", - "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)", - "benchmarks": "node benchmarks" - }, - "devDependencies": { - "events": "^1.0.1", - "jshint": "^2.5.1", - "knox": "^0.8.10", - "mr": "^2.0.5", - "opener": "^1.3.0", - "q": "^2.0.3", - "q-io": "^2.0.3", - "saucelabs": "^0.1.1", - "wd": "^0.2.21", - "weak-map": "^1.0.5", - "benchmark": "^1.0.0" - } -} diff --git a/build/node_modules/asap/raw.js b/build/node_modules/asap/raw.js deleted file mode 100644 index ae3b8923..00000000 --- a/build/node_modules/asap/raw.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; - -var domain; // The domain module is executed on demand -var hasSetImmediate = typeof setImmediate === "function"; - -// Use the fastest means possible to execute a task in its own turn, with -// priority over other events including network IO events in Node.js. -// -// An exception thrown by a task will permanently interrupt the processing of -// subsequent tasks. The higher level `asap` function ensures that if an -// exception is thrown by a task, that the task queue will continue flushing as -// soon as possible, but if you use `rawAsap` directly, you are responsible to -// either ensure that no exceptions are thrown from your task, or to manually -// call `rawAsap.requestFlush` if an exception is thrown. -module.exports = rawAsap; -function rawAsap(task) { - if (!queue.length) { - requestFlush(); - flushing = true; - } - // Avoids a function call - queue[queue.length] = task; -} - -var queue = []; -// Once a flush has been requested, no further calls to `requestFlush` are -// necessary until the next `flush` completes. -var flushing = false; -// The position of the next task to execute in the task queue. This is -// preserved between calls to `flush` so that it can be resumed if -// a task throws an exception. -var index = 0; -// If a task schedules additional tasks recursively, the task queue can grow -// unbounded. To prevent memory excaustion, the task queue will periodically -// truncate already-completed tasks. -var capacity = 1024; - -// The flush function processes all tasks that have been scheduled with -// `rawAsap` unless and until one of those tasks throws an exception. -// If a task throws an exception, `flush` ensures that its state will remain -// consistent and will resume where it left off when called again. -// However, `flush` does not make any arrangements to be called again if an -// exception is thrown. -function flush() { - while (index < queue.length) { - var currentIndex = index; - // Advance the index before calling the task. This ensures that we will - // begin flushing on the next task the task throws an error. - index = index + 1; - queue[currentIndex].call(); - // Prevent leaking memory for long chains of recursive calls to `asap`. - // If we call `asap` within tasks scheduled by `asap`, the queue will - // grow, but to avoid an O(n) walk for every task we execute, we don't - // shift tasks off the queue after they have been executed. - // Instead, we periodically shift 1024 tasks off the queue. - if (index > capacity) { - // Manually shift all values starting at the index back to the - // beginning of the queue. - for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) { - queue[scan] = queue[scan + index]; - } - queue.length -= index; - index = 0; - } - } - queue.length = 0; - index = 0; - flushing = false; -} - -rawAsap.requestFlush = requestFlush; -function requestFlush() { - // Ensure flushing is not bound to any domain. - // It is not sufficient to exit the domain, because domains exist on a stack. - // To execute code outside of any domain, the following dance is necessary. - var parentDomain = process.domain; - if (parentDomain) { - if (!domain) { - // Lazy execute the domain module. - // Only employed if the user elects to use domains. - domain = require("domain"); - } - domain.active = process.domain = null; - } - - // `setImmediate` is slower that `process.nextTick`, but `process.nextTick` - // cannot handle recursion. - // `requestFlush` will only be called recursively from `asap.js`, to resume - // flushing after an error is thrown into a domain. - // Conveniently, `setImmediate` was introduced in the same version - // `process.nextTick` started throwing recursion errors. - if (flushing && hasSetImmediate) { - setImmediate(flush); - } else { - process.nextTick(flush); - } - - if (parentDomain) { - domain.active = process.domain = parentDomain; - } -} diff --git a/build/node_modules/assertion-error/History.md b/build/node_modules/assertion-error/History.md deleted file mode 100644 index b240018b..00000000 --- a/build/node_modules/assertion-error/History.md +++ /dev/null @@ -1,24 +0,0 @@ -1.1.0 / 2018-01-02 -================== - - * Add type definitions ([#11](https://github.com/chaijs/assertion-error/pull/11)) - -1.0.1 / 2015-03-04 -================== - - * Merge pull request #2 from simonzack/master - * fixes `.stack` on firefox - -1.0.0 / 2013-06-08 -================== - - * readme: change travis and component urls - * refactor: [*] prepare for move to chaijs gh org - -0.1.0 / 2013-04-07 -================== - - * test: use vanilla test runner/assert - * pgk: remove unused deps - * lib: implement - * "Initial commit" diff --git a/build/node_modules/assertion-error/README.md b/build/node_modules/assertion-error/README.md deleted file mode 100644 index 6cf03c8f..00000000 --- a/build/node_modules/assertion-error/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# AssertionError [![Build Status](https://travis-ci.org/chaijs/assertion-error.png?branch=master)](https://travis-ci.org/chaijs/assertion-error) - -> Error constructor for test and validation frameworks that implements standardized AssertionError specification. - -## Installation - -### Node.js - -`assertion-error` is available on [npm](http://npmjs.org). - - $ npm install assertion-error - -### Component - -`assertion-error` is available as a [component](https://github.com/component/component). - - $ component install chaijs/assertion-error - -## License - -(The MIT License) - -Copyright (c) 2013 Jake Luer (http://qualiancy.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/assertion-error/index.d.ts b/build/node_modules/assertion-error/index.d.ts deleted file mode 100644 index 2b9becdf..00000000 --- a/build/node_modules/assertion-error/index.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -type AssertionError = Error & T & { - showDiff: boolean; -}; - -interface AssertionErrorConstructor { - new(message: string, props?: T, ssf?: Function): AssertionError; -} - -declare const AssertionError: AssertionErrorConstructor; - -export = AssertionError; diff --git a/build/node_modules/assertion-error/index.js b/build/node_modules/assertion-error/index.js deleted file mode 100644 index 8466da8b..00000000 --- a/build/node_modules/assertion-error/index.js +++ /dev/null @@ -1,116 +0,0 @@ -/*! - * assertion-error - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ - -/*! - * Return a function that will copy properties from - * one object to another excluding any originally - * listed. Returned function will create a new `{}`. - * - * @param {String} excluded properties ... - * @return {Function} - */ - -function exclude () { - var excludes = [].slice.call(arguments); - - function excludeProps (res, obj) { - Object.keys(obj).forEach(function (key) { - if (!~excludes.indexOf(key)) res[key] = obj[key]; - }); - } - - return function extendExclude () { - var args = [].slice.call(arguments) - , i = 0 - , res = {}; - - for (; i < args.length; i++) { - excludeProps(res, args[i]); - } - - return res; - }; -}; - -/*! - * Primary Exports - */ - -module.exports = AssertionError; - -/** - * ### AssertionError - * - * An extension of the JavaScript `Error` constructor for - * assertion and validation scenarios. - * - * @param {String} message - * @param {Object} properties to include (optional) - * @param {callee} start stack function (optional) - */ - -function AssertionError (message, _props, ssf) { - var extend = exclude('name', 'message', 'stack', 'constructor', 'toJSON') - , props = extend(_props || {}); - - // default values - this.message = message || 'Unspecified AssertionError'; - this.showDiff = false; - - // copy from properties - for (var key in props) { - this[key] = props[key]; - } - - // capture stack trace - ssf = ssf || AssertionError; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, ssf); - } else { - try { - throw new Error(); - } catch(e) { - this.stack = e.stack; - } - } -} - -/*! - * Inherit from Error.prototype - */ - -AssertionError.prototype = Object.create(Error.prototype); - -/*! - * Statically set name - */ - -AssertionError.prototype.name = 'AssertionError'; - -/*! - * Ensure correct constructor - */ - -AssertionError.prototype.constructor = AssertionError; - -/** - * Allow errors to be converted to JSON for static transfer. - * - * @param {Boolean} include stack (default: `true`) - * @return {Object} object that can be `JSON.stringify` - */ - -AssertionError.prototype.toJSON = function (stack) { - var extend = exclude('constructor', 'toJSON', 'stack') - , props = extend({ name: this.name }, this); - - // include stack if exists and not turned off - if (false !== stack && this.stack) { - props.stack = this.stack; - } - - return props; -}; diff --git a/build/node_modules/assertion-error/package.json b/build/node_modules/assertion-error/package.json deleted file mode 100644 index facc5ab1..00000000 --- a/build/node_modules/assertion-error/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "assertion-error", - "version": "1.1.0", - "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", - "author": "Jake Luer (http://qualiancy.com)", - "license": "MIT", - "types": "./index.d.ts", - "keywords": [ - "test", - "assertion", - "assertion-error" - ], - "repository": { - "type": "git", - "url": "git@github.com:chaijs/assertion-error.git" - }, - "engines": { - "node": "*" - }, - "main": "./index", - "scripts": { - "test": "make test" - }, - "dependencies": {}, - "devDependencies": { - "component": "*", - "typescript": "^2.6.1" - } -} diff --git a/build/node_modules/assets-webpack-plugin/changelog.md b/build/node_modules/assets-webpack-plugin/changelog.md deleted file mode 100644 index b71c22ad..00000000 --- a/build/node_modules/assets-webpack-plugin/changelog.md +++ /dev/null @@ -1,239 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -This project adheres to [Semantic Versioning]. - -[Semantic Versioning]: http://semver.org/ - -## 7.0.0 - 2020-12-11 -* Requires webpack 5 or greater as a peer dependency -* Closes [#322](https://github.com/ztoben/assets-webpack-plugin/issues/322) - -## 6.1.2 - 2020-12-08 -* Closes [#319](https://github.com/ztoben/assets-webpack-plugin/issues/319) - -## 6.1.1 - 2020-12-03 -* Adds the `includeDynamicImportedAssets` option -* Closes [#313](https://github.com/ztoben/assets-webpack-plugin/issues/313) - -## 6.1.0 - 2020-12-03 -* Closes [#312](https://github.com/ztoben/assets-webpack-plugin/issues/312) - -## 6.0.6 - 2020-12-02 -* Adds [#311](https://github.com/ztoben/assets-webpack-plugin/pull/311) -* Fixes issue where default path would not be set - -## 6.0.5 - 2020-12-01 -* Adds [#310](https://github.com/ztoben/assets-webpack-plugin/pull/310) - -## 6.0.4 - 2020-11-13 -* Adds the `includeAuxiliaryAssets` option -* Closes [#302](https://github.com/ztoben/assets-webpack-plugin/issues/302) - -## 6.0.2 - 2020-10-16 -* Closes [#279](https://github.com/ztoben/assets-webpack-plugin/issues/279) - -## 6.0.1 - 2020-10-15 -* Initial webpack 5 support -* Versions going forward will support webpack 5 only - -## 6.0.0 -* This release is deprecated. - -## 5.1.2 - 2020-09-22 - -* Add a new option to include assets that aren't in any chunk using the `includeFilesWithoutChunk` option. -* Closes [#204](https://github.com/ztoben/assets-webpack-plugin/issues/204) - -## 5.1.1 - 2020-08-17 - -* Allow more than one entry in `includeManifest`. -* Closes [#84](https://github.com/ztoben/assets-webpack-plugin/issues/84) - -## 5.1.0 - 2020-08-17 - -* Implements using more relaxed dependencies. -* Fixes [#240](https://github.com/ztoben/assets-webpack-plugin/issues/240) - -## 5.0.5 - 2020-08-17 - -* Plugin will now parse the `.mjs` file extension. - -## 5.0.4 - 2020-08-14 - -* Fixes [#251](https://github.com/ztoben/assets-webpack-plugin/issues/251) - -## 5.0.3 - 2020-07-09 - -* Bumps several dependencies. - -## 5.0.2 - 2020-06-15 - -* Fixes an error when `keepInMemory` was turn on. - -## 5.0.1 - 2020-06-15 - -* Fixes [#234](https://github.com/ztoben/assets-webpack-plugin/issues/234) - -## 5.0.0 - 2020-06-11 - -* Unfortunately must bump to v5 instead of v4 due to an old botched release that can't be unpublished -* Major bump due to now requiring node 10 -* Maintains the same changes as `3.10.0`, but properly warns when using an older version of node - -## 3.10.0 - 2020-06-08 (Deprecated) - -* Updates several dependencies -* Fixes [#226](https://github.com/ztoben/assets-webpack-plugin/issues/226) - -## 3.9.10 - 2019-02-28 - -* Fixes [#169](https://github.com/ztoben/assets-webpack-plugin/issues/169) - -## 3.9.9 - 2019-02-28 - -* Adds the `integrity` option to add output from webpack-subresource-integrity to the json file -* Fixes [#63](https://github.com/ztoben/assets-webpack-plugin/issues/63) - -## 3.9.8 - 2019-02-27 - -* Dependency updates -* Fixes [#167](https://github.com/ztoben/assets-webpack-plugin/issues/167) - -## 3.9.7 - 2018-10-04 - -* Allow webpack 4 entrypoints chunks -* Fixes [#108](https://github.com/ztoben/assets-webpack-plugin/issues/108) - -## 3.9.6 - 2018-08-20 - -* Fixes [#125](https://github.com/ztoben/assets-webpack-plugin/issues/125) - -## 3.9.5 - 2018-08-09 - -* Adds the `keepInMemory` option to toggle whether you want the assets file generated when running in `webpack-dev-server`. - -## 3.9.4 - 2018-08-08 - -* Adds the `includeAllFileTypes`, and `fileTypes` options for controlling which files are included in the assets file. - -## 3.9.3 - 2018-08-07 - -* Fixes an issue where `useCompilerPath` wasn't correctly resolving the path. - -## 3.9.2 - 2018-08-07 - -* Reverts [#109](https://github.com/ztoben/assets-webpack-plugin/pull/109), fixes [#118](https://github.com/ztoben/assets-webpack-plugin/issues/118). - -## 3.9.1 - 2018-08-06 - -* `useCompilerPath` option to override path with webpack output path set in config. - -## 3.9.0 - 2018-08-06 - -* ~~Now supports webpack 4 entries with multiple chunks. See [#109](https://github.com/ztoben/assets-webpack-plugin/pull/109) for details.~~ -* Use compiler.outputFileSystem for output. -* Fixes [#108](https://github.com/ztoben/assets-webpack-plugin/issues/108), [#111](https://github.com/ztoben/assets-webpack-plugin/issues/111), and [#92](https://github.com/ztoben/assets-webpack-plugin/issues/92). - -## 3.8.4 - 2018-06-20 - -### Changed - -* No code changed. Purely for testing tagged releases on git. - -## 3.8.3 - 2018-06-18 - -### Changed - -* Package json was pointing to the wrong index file. - -## 3.8.2 - 2018-06-18 - -### Changed - -* Add babel to the build process. - -## 3.8.1 - 2018-06-18 - -### Changed - -* Support for listing the manifest entry first when `manifestFirst` option is set. See [#66](https://github.com/ztoben/assets-webpack-plugin/issues/66) for details. - -## 3.8.0 - 2018-06-15 - -### Changed - -* Reverts [#90](https://github.com/ztoben/assets-webpack-plugin/pull/90), fixes [#93](https://github.com/ztoben/assets-webpack-plugin/issues/93) and [#92](https://github.com/ztoben/assets-webpack-plugin/issues/92) - -## 3.7.2 - 2018-06-14 - -### Changed - -* Reduces npm package size [#67](https://github.com/ztoben/assets-webpack-plugin/issues/67) - -## 3.7.1 - 2018-06-13 - -### Changed - -* Fixes a parsing error with the asset path introduced by the fix for [#88](https://github.com/ztoben/assets-webpack-plugin/issues/88) - -## 3.7.0 - 2018-06-13 - -### Changed - -* Adds all assets to the manifest that aren't in a chunk (kudos to [@Kronuz](https://github.com/Kronuz) see [#65](https://github.com/ztoben/assets-webpack-plugin/pull/65)) - -## 3.6.3 - 2018-06-13 - -### Changed - -* Add support for multiple files of the same extension (kudos to [@aaronatmycujoo](https://github.com/aaronatmycujoo) see [#79](https://github.com/ztoben/assets-webpack-plugin/pull/79) and [@Kronuz](https://github.com/Kronuz) see [#64](https://github.com/ztoben/assets-webpack-plugin/pull/64)) - -## 3.6.2 - 2018-06-13 - -### Changed - -* Fixed incorrect concatination of asset file names and directory path see [#88](https://github.com/ztoben/assets-webpack-plugin/issues/88) - -## 3.6.1 - 2018-06-13 - -### Changed - -* webpack-dev-server (which uses memory-fs) correctly generates the manifest inside the memory file system (kudos to [@Kronuz](https://github.com/Kronuz) see [#90](https://github.com/ztoben/assets-webpack-plugin/pull/90)) - -## 3.6.0 - 2018-05-29 - -### Changed - -* webpack 4 support (kudos to [@ztoben](https://github.com/ztoben) and [@saveman71](https://github.com/saveman71) see [#89](https://github.com/ztoben/assets-webpack-plugin/pull/89)) - -## 3.5.1 - 2017-01-20 - -### Fixed - -* Support for source maps when `includeManifest` option is set. - -## 3.5.0 - 2016-10-21 - -### Added - -* `includeManifest` option (kudos to Matt Krick [@mattkrick](https://github.com/mattkrick)). - [See docs](./README.md#includemanifest) for more details. - -## 3.4.0 - 2016-03-09 - -### Changed - -* Do not write to assets file if output hasn't changed. - -## 3.2.0 - 2015-11-17 - -### Added - -* `processOutput` option. - -## 3.1.0 - 2015-10-24 - -### Added - -* Config now accepts a `fullPath` option. diff --git a/build/node_modules/assets-webpack-plugin/index.js b/build/node_modules/assets-webpack-plugin/index.js deleted file mode 100644 index 1881b2bd..00000000 --- a/build/node_modules/assets-webpack-plugin/index.js +++ /dev/null @@ -1,216 +0,0 @@ -const fs = require('fs') -const path = require('path') -const _ = require('lodash') - -const getAssetKind = require('./lib/getAssetKind') -const isHMRUpdate = require('./lib/isHMRUpdate') -const isSourceMap = require('./lib/isSourceMap') -const getDynamicImportedChildAssets = require('./lib/getDynamicImportedChildAssets') - -const createQueuedWriter = require('./lib/output/createQueuedWriter') -const createOutputWriter = require('./lib/output/createOutputWriter') - -function AssetsWebpackPlugin (options) { - this.options = _.merge({}, { - filename: 'webpack-assets.json', - prettyPrint: false, - update: false, - fullPath: true, - manifestFirst: true, - useCompilerPath: false, - fileTypes: ['js', 'css'], - includeAllFileTypes: true, - includeFilesWithoutChunk: false, - includeAuxiliaryAssets: false, - includeDynamicImportedAssets: false, - keepInMemory: false, - integrity: false, - removeFullPathAutoPrefix: false - }, options) -} - -AssetsWebpackPlugin.prototype = { - constructor: AssetsWebpackPlugin, - - apply: function (compiler) { - const self = this - - self.options.path = path.resolve( - self.options.useCompilerPath - ? (compiler.options.output.path || '.') - : (self.options.path || '.') - ) - self.writer = createQueuedWriter(createOutputWriter(self.options)) - - const afterEmit = (compilation, callback) => { - const options = compiler.options - const stats = compilation.getStats().toJson({ - hash: true, - publicPath: true, - assets: true, - chunks: false, - modules: false, - source: false, - errorDetails: false, - timings: false - }) - - let assetPath = (stats.publicPath && self.options.fullPath) ? stats.publicPath : '' - // assetsByChunkName contains a hash with the bundle names and the produced files - // e.g. { one: 'one-bundle.js', two: 'two-bundle.js' } - // in some cases (when using a plugin or source maps) it might contain an array of produced files - // e.g. { - // main: - // [ 'index-bundle-42b6e1ec4fa8c5f0303e.js', - // 'index-bundle-42b6e1ec4fa8c5f0303e.js.map' ] - // } - // starting with webpack 5, the public path is automatically determined when possible and the path is prefaced - // with `/auto/`, the `removeAutoPrefix` option can be set to turn this off - - if (self.options.removeFullPathAutoPrefix) { - if (assetPath.startsWith('auto')) { - assetPath = assetPath.substring(4) - } - } - - const seenAssets = {} - let chunks - - if (self.options.entrypoints) { - chunks = Object.keys(stats.entrypoints) - if (self.options.includeFilesWithoutChunk) { - chunks.push('') // push "unnamed" chunk - } - } else { - chunks = Object.keys(stats.assetsByChunkName) - chunks.push('') // push "unnamed" chunk - } - - const output = chunks.reduce(function (chunkMap, chunkName) { - let assets - - if (self.options.entrypoints) { - assets = chunkName ? stats.entrypoints[chunkName].assets : stats.assets - } else { - assets = chunkName ? stats.assetsByChunkName[chunkName] : stats.assets - } - - if (self.options.includeAuxiliaryAssets && chunkName && stats.entrypoints[chunkName].auxiliaryAssets) { - assets = [...assets, ...stats.entrypoints[chunkName].auxiliaryAssets] - } - - if (self.options.includeDynamicImportedAssets && chunkName && stats.entrypoints[chunkName].children) { - const dynamicImportedChildAssets = getDynamicImportedChildAssets(options, stats.entrypoints[chunkName].children) - assets = [...assets, ...dynamicImportedChildAssets] - } - - if (!Array.isArray(assets)) { - assets = [assets] - } - let added = false - const typeMap = assets.reduce(function (typeMap, obj) { - const asset = obj.name || obj - - if (isHMRUpdate(options, asset) || isSourceMap(options, asset) || (!chunkName && seenAssets[asset])) { - return typeMap - } - - const typeName = getAssetKind(options, asset) - if (self.options.includeAllFileTypes || self.options.fileTypes.includes(typeName)) { - const combinedPath = assetPath && assetPath.slice(-1) !== '/' ? `${assetPath}/${asset}` : assetPath + asset - const type = typeof typeMap[typeName] - const compilationAsset = compilation.assets[asset] - const integrity = compilationAsset && compilationAsset.integrity - const loadingBehavior = obj.loadingBehavior - - if (type === 'undefined') { - typeMap[typeName] = combinedPath - - if (self.options.integrity && integrity) { - typeMap[typeName + 'Integrity'] = integrity - } - } else { - if (type === 'string') { - typeMap[typeName] = [typeMap[typeName]] - } - - if (self.options.includeDynamicImportedAssets && loadingBehavior) { - const typeNameWithLoadingBehavior = typeName + ':' + loadingBehavior - - typeMap[typeNameWithLoadingBehavior] = typeMap[typeNameWithLoadingBehavior] || [] - typeMap[typeNameWithLoadingBehavior].push(combinedPath) - } else { - typeMap[typeName].push(combinedPath) - } - } - - added = true - seenAssets[asset] = true - } - return typeMap - }, {}) - - if (added) { - chunkMap[chunkName] = typeMap - } - return chunkMap - }, {}) - - let manifestNames = self.options.includeManifest === true ? ['manifest'] : self.options.includeManifest - - if (typeof manifestNames === 'string') { - manifestNames = [manifestNames] - } - - if (manifestNames) { - for (let i = 0; i < manifestNames.length; i++) { - const manifestName = manifestNames[i] - const manifestEntry = output[manifestName] - - if (manifestEntry) { - let js = manifestEntry.js || manifestEntry.mjs - if (!Array.isArray(js)) { - js = [js] - } - const manifestAssetKey = js[js.length - 1].substr(assetPath.length) - const parentSource = compilation.assets[manifestAssetKey] - const entryText = parentSource.source() - if (!entryText) { - throw new Error('Could not locate manifest function in source', parentSource) - } - manifestEntry.text = entryText - } - } - } - - if (self.options.metadata) { - output.metadata = self.options.metadata - } - - if (!compiler.outputFileSystem.readFile) { - compiler.outputFileSystem.readFile = fs.readFile.bind(fs) - } - - if (!compiler.outputFileSystem.join) { - compiler.outputFileSystem.join = path.join.bind(path) - } - - self.writer(compiler.outputFileSystem, output, function (err) { - if (err) { - compilation.errors.push(err) - } - callback() - }) - } - - if (compiler.hooks) { - const plugin = { name: 'AssetsWebpackPlugin' } - - compiler.hooks.afterEmit.tapAsync(plugin, afterEmit) - } else { - compiler.plugin('after-emit', afterEmit) - } - } -} - -module.exports = AssetsWebpackPlugin diff --git a/build/node_modules/assets-webpack-plugin/license.md b/build/node_modules/assets-webpack-plugin/license.md deleted file mode 100644 index 7baef025..00000000 --- a/build/node_modules/assets-webpack-plugin/license.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Zach Toben - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/assets-webpack-plugin/package.json b/build/node_modules/assets-webpack-plugin/package.json deleted file mode 100644 index 1d14611d..00000000 --- a/build/node_modules/assets-webpack-plugin/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "assets-webpack-plugin", - "version": "7.0.0", - "description": "Emits a json file with assets paths", - "main": "dist/index.js", - "engines": { - "node": ">=10.x.x" - }, - "scripts": { - "lint": "standard --verbose | snazzy", - "fix-lint": "standard --fix", - "test": "mocha test", - "build": "babel index.js --out-dir dist && babel lib --out-dir dist/lib", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "https://github.com/ztoben/assets-webpack-plugin.git" - }, - "keywords": [ - "webpack", - "plugin", - "generate", - "assets", - "hashes" - ], - "license": "MIT", - "bugs": { - "url": "https://github.com/ztoben/assets-webpack-plugin/issues" - }, - "homepage": "https://github.com/ztoben/assets-webpack-plugin", - "files": [ - "index.js", - "dist/" - ], - "devDependencies": { - "babel-cli": "6.26.0", - "babel-core": "6.26.3", - "babel-preset-env": "1.7.0", - "chai": "4.2.0", - "css-loader": "5.0.1", - "mini-css-extract-plugin": "1.3.3", - "mocha": "8.2.1", - "rimraf": "3.0.2", - "snazzy": "9.0.0", - "standard": "16.0.3", - "style-loader": "2.0.0", - "webpack": "5.10.0" - }, - "dependencies": { - "camelcase": "^6.0.0", - "escape-string-regexp": "^4.0.0", - "lodash": "^4.17.20" - }, - "peerDependencies": { - "webpack": ">=5.0.0" - } -} diff --git a/build/node_modules/assets-webpack-plugin/readme.md b/build/node_modules/assets-webpack-plugin/readme.md deleted file mode 100644 index e9161f6b..00000000 --- a/build/node_modules/assets-webpack-plugin/readme.md +++ /dev/null @@ -1,443 +0,0 @@ -# assets-webpack-plugin - -[![version](https://img.shields.io/npm/v/assets-webpack-plugin.svg)](https://npmjs.org/package/assets-webpack-plugin) -[![downloads](https://img.shields.io/npm/dt/assets-webpack-plugin.svg)](https://npmjs.org/package/assets-webpack-plugin) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![Build Status](https://travis-ci.org/ztoben/assets-webpack-plugin.svg?branch=master)](https://travis-ci.org/ztoben/assets-webpack-plugin) -[![Build status](https://ci.appveyor.com/api/projects/status/sbchndv12vk45mo3?svg=true)](https://ci.appveyor.com/project/ztoben/assets-webpack-plugin) - -Webpack plugin that emits a json file with assets paths. - -## Table of Contents - -* [Install](#install) -* [Why Is This Useful?](#why-is-this-useful) - * [Example output:](#example-output) -* [Configuration](#configuration) - * [Options](#options) - * [`filename`](#filename) - * [`fullPath`](#fullpath) - * [`removeFullPathAutoPrefix`](#removefullpathautoprefix) - * [`includeManifest`](#includemanifest) - * [`manifestFirst`](#manifestfirst) - * [`path`](#path) - * [`useCompilerPath`](#usecompilerpath) - * [`prettyPrint`](#prettyprint) - * [`processOutput`](#processoutput) - * [`update`](#update) - * [`metadata`](#metadata) - * [`includeAllFileTypes`](#includeallfileTtypes) - * [`fileTypes`](#filetypes) - * [`keepInMemory`](#keepinmemory) - * [`integrity`](#integrity) - * [`entrypoints`](#entrypoints) - * [`includeFilesWithoutChunk`](#includefileswithoutchunk) - * [Using in multi-compiler mode](#using-in-multi-compiler-mode) - * [Using this with Rails](#using-this-with-rails) - * [Using this with ASP.NET Core](#using-this-with-aspnet-core) -* [Test](#test) - -## Install - -⚠️ Starting with version 6, this plugin works with Webpack 5+. - -If you are working with an older version of Webpack, you can use the most recent 5.x.x release (`5.1.2`). - -```sh -npm install assets-webpack-plugin --save-dev -``` - -If you're using Webpack 4 or below: - -```sh -npm install webpack-assets-manifest@5.1.2 --save-dev -``` - -## Why Is This Useful? - -When working with Webpack you might want to generate your bundles with a generated hash in them (for cache busting). - -This plug-in outputs a json file with the paths of the generated assets so you can find them from somewhere else. - -### Example output: - -The output is a JSON object in the form: - -```json -{ - "bundle_name": { - "asset_kind": "/public/path/to/asset" - } -} -``` - -Where: - -* `"bundle_name"` is the name of the bundle (the key of the entry object in your webpack config, or "main" if your entry is an array). -* `"asset_kind"` is the camel-cased file extension of the asset - -For example, given the following webpack config: - -```js -{ - entry: { - one: ['src/one.js'], - two: ['src/two.js'] - }, - output: { - path: path.join(__dirname, "public", "js"), - publicPath: "/js/", - filename: '[name]_[hash].bundle.js' - } -} -``` - -The plugin will output the following json file: - -```json -{ - "one": { - "js": "/js/one_2bb80372ebe8047a68d4.bundle.js" - }, - "two": { - "js": "/js/two_2bb80372ebe8047a68d4.bundle.js" - } -} -``` - -## Configuration - -In your webpack config include the plug-in. And add it to your config: - -```js -var path = require('path') -var AssetsPlugin = require('assets-webpack-plugin') -var assetsPluginInstance = new AssetsPlugin() - -module.exports = { - // ... - output: { - path: path.join(__dirname, "public", "js"), - filename: "[name]-bundle-[hash].js", - publicPath: "/js/" - }, - // .... - plugins: [assetsPluginInstance] -} -``` - -### Options - -You can pass the following options: - -#### `filename` - -Optional. `webpack-assets.json` by default. - -Name for the created json file. - -```js -new AssetsPlugin({filename: 'assets.json'}) -``` - -#### `fullPath` - -Optional. `true` by default. - -If `false` the output will not include the full path -of the generated file. - -```js -new AssetsPlugin({fullPath: false}) -``` - -e.g. - -`/public/path/bundle.js` vs `bundle.js` - -#### `removeFullPathAutoPrefix` - -Optional. `false` by default. - -If `true` the full path will automatically be stripped of the `/auto/` prefix generated by webpack. - -```js -new AssetsPlugin({removeFullPathAutoPrefix: true}) -``` - -e.g. - -`/public/path/bundle.js` vs `bundle.js` - -#### `includeManifest` - -Optional. `false` by default. - -Inserts the manifest javascript as a `text` property in your assets. -Accepts the name or names of your manifest chunk. A manifest is the last CommonChunk that -only contains the webpack bootstrap code. This is useful for production -use when you want to inline the manifest in your HTML skeleton for long-term caching. -See [issue #1315](https://github.com/webpack/webpack/issues/1315) -or [a blog post](https://medium.com/@matt.krick/a-production-ready-realtime-saas-with-webpack-7b11ba2fa5b0#.p1vvfr3bm) -to learn more. - -```js -new AssetsPlugin({includeManifest: 'manifest'}) -// assets.json: -// {entries: {manifest: {js: `hashed_manifest.js`, text: 'function(modules)...'}}} -// -// Your html template: -// -``` - -The `includeManifest` option also accepts an array of manifests: - -```js -new AssetsPlugin({includeManifest: ['manifest1', 'manifest2']}) -// assets.json: -// {entries: { -// manifest1: {js: `hashed_manifest.js`, text: 'function(modules)...'}, -// manifest2: {js: `hashed_manifest.js`, text: 'function(modules)...'} -// }} -``` - -#### `manifestFirst` - -Optional. `false` by default. - -Orders the assets output so that manifest is the first entry. This is useful for cases where script tags are generated -from the assets json output, and order of import is important. - -```js -new AssetsPlugin({manifestFirst: true}) -``` - -#### `path` - -Optional. Defaults to the current directory. - -Path where to save the created JSON file. Will default to the highest level of the project unless useCompilerPath is specified. - -```js -new AssetsPlugin({path: path.join(__dirname, 'app', 'views')}) -``` - -#### `useCompilerPath` - -```js -new AssetsPlugin({useCompilerPath: true}) -``` - -Will override the path to use the compiler output path set in your webpack config. - -#### `prettyPrint` - -Optional. `false` by default. - -Whether to format the JSON output for readability. - -```js -new AssetsPlugin({prettyPrint: true}) -``` - -#### `processOutput` - -Optional. Defaults is JSON stringify function. - -Formats the assets output. - -```js -new AssetsPlugin({ - processOutput: function (assets) { - return 'window.staticMap = ' + JSON.stringify(assets) - } -}) -``` - -#### `update` - -Optional. `false` by default. - -When set to `true`, the output JSON file will be updated instead of overwritten. - -```js -new AssetsPlugin({update: true}) -``` - -#### `metadata` - -Inject metadata into the output file. All values will be injected into the key "metadata". - -```js -new AssetsPlugin({metadata: {version: 123}}) -// Manifest will now contain: -// { -// metadata: {version: 123} -// } -``` - -#### `includeAllFileTypes` - -Optional. `true` by default. - -When set false, falls back to the `fileTypes` option array to decide which file types to include in the assets file. - -```js -new AssetsPlugin({includeAllFileTypes: false}) -``` - -#### `fileTypes` - -Optional. `['js', 'css']` by default. - -When set and `includeAllFileTypes` is set false, only assets matching these types will be included in the assets file. - -```js -new AssetsPlugin({fileTypes: ['js', 'jpg']}) -``` - -#### `keepInMemory` - -Optional. `false` by default. - -When set the assets file will only be generated in memory while running `webpack-dev-server` and not written to disk. - -```js -new AssetsPlugin({keepInMemory: true}) -``` - -#### `integrity` - -Optional. `false` by default. - -When set the output from [webpack-subresource-integrity](https://github.com/waysact/webpack-subresource-integrity) is included in the assets file. - -Please make sure you have `webpack-subresource-integrity` installed and included in your webpack plugins. - -```js -new AssetsPlugin({integrity: true}) -``` - -Output will now look like this: - -```json -{ - "main": { - "js": "/bundle.js", - "jsIntegrity": "sha256-ANGwtktWN96nvBI/cjekdTvd0Dwf7SciIFTQ2lpTxGc= sha384-Ly439pF3K+J8hnhk1BEcjKnv1R9BApFYVIVJvr64PcgBjdT4N7hfPzQynItHwcaO" - }, - "vendors~main": { - "js": "/1.bundle.js", - "jsIntegrity": "sha256-yqNi1hgeAdkXVOORgmVMeX+cbuXikoj6I8qWZjPegsA= sha384-4X75tnsGDwnwL5kBUPsx2ko9DeWy0xM8BcDQdoR185yho+OnxjjPXl2wCdebLWTG" - } -} -``` - -#### `entrypoints` - -Optional. `false` by default. - -If the 'entrypoints' option is given, the output will be limited to the entrypoints and the chunks associated with them. - -```js -new AssetsPlugin({entrypoints: true}) -``` - -#### `includeFilesWithoutChunk` - -Optional. `false` by default. - -When set and `entrypoints` is set true, will output any files that are part of the unnamed chunk to an additional unnamed ("") entry. - -```js -new AssetsPlugin({includeFilesWithoutChunk: true}) -``` - -#### `includeAuxiliaryAssets` - -Optional. `false` by default. - -When set, will output any files that are part of the chunk and marked as auxiliary assets. - -```js -new AssetsPlugin({includeAuxiliaryAssets: true}) -``` - -#### `includeDynamicImportedAssets` - -Optional. `false` by default. - -When set, will output any files that are part of the chunk and marked as preloadable or prefechtable child assets via a dynamic import. -See: https://webpack.js.org/guides/code-splitting/#prefetchingpreloading-modules - -```js -new AssetsPlugin({includeDynamicImportedAssets: true}) -``` - -### Using in multi-compiler mode - -If you use webpack multi-compiler mode and want your assets written to a single file, -you __must__ use the same instance of the plugin in the different configurations. - -For example: - -```js -var webpack = require('webpack') -var AssetsPlugin = require('assets-webpack-plugin') -var assetsPluginInstance = new AssetsPlugin() - -webpack([ - { - entry: {one: 'src/one.js'}, - output: {path: 'build', filename: 'one-bundle.js'}, - plugins: [assetsPluginInstance] - }, - { - entry: {two:'src/two.js'}, - output: {path: 'build', filename: 'two-bundle.js'}, - plugins: [assetsPluginInstance] - } -]) -``` - -### Using this with Rails - -You can use this with Rails to find the bundled Webpack assets via Sprockets. -In `ApplicationController` you might have: - -```ruby -def script_for(bundle) - path = Rails.root.join('app', 'views', 'webpack-assets.json') # This is the file generated by the plug-in - file = File.read(path) - json = JSON.parse(file) - json[bundle]['js'] -end -``` - -Then in the actions: - -```ruby -def show - @script = script_for('clients') # this will retrieve the bundle named 'clients' -end -``` - -And finally in the views: - -```erb -
- -
-``` - -### Using this with ASP.NET Core - -You can use this with ASP.NET Core via the [WebpackTag](https://d.sb/webpacktag) library. - -## Test - -```sh -npm test -``` diff --git a/build/node_modules/assign-symbols/LICENSE b/build/node_modules/assign-symbols/LICENSE deleted file mode 100644 index 65f90aca..00000000 --- a/build/node_modules/assign-symbols/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/assign-symbols/README.md b/build/node_modules/assign-symbols/README.md deleted file mode 100644 index 422729d4..00000000 --- a/build/node_modules/assign-symbols/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# assign-symbols [![NPM version](https://badge.fury.io/js/assign-symbols.svg)](http://badge.fury.io/js/assign-symbols) - -> Assign the enumerable es6 Symbol properties from an object (or objects) to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method. - -From the [Mozilla Developer docs for Symbol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol): - -> A symbol is a unique and immutable data type and may be used as an identifier for object properties. The symbol object is an implicit object wrapper for the symbol primitive data type. - -## Install - -Install with [npm](https://www.npmjs.com/) - -```sh -$ npm i assign-symbols --save -``` - -## Usage - -```js -var assignSymbols = require('assign-symbols'); -var obj = {}; - -var one = {}; -var symbolOne = Symbol('aaa'); -one[symbolOne] = 'bbb'; - -var two = {}; -var symbolTwo = Symbol('ccc'); -two[symbolTwo] = 'ddd'; - -assignSymbols(obj, one, two); - -console.log(obj[symbolOne]); -//=> 'bbb' -console.log(obj[symbolTwo]); -//=> 'ddd' -``` - -## Similar projects - -* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties of source objects to a destination object. | [homepage](https://github.com/jonschlinkert/assign-deep) -* [clone-deep](https://www.npmjs.com/package/clone-deep): Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives. | [homepage](https://github.com/jonschlinkert/clone-deep) -* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow) -* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep) -* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep) - -## Running tests - -Install dev dependencies: - -```sh -$ npm i -d && npm test -``` - -## Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/assign-symbols/issues/new). - -## Author - -**Jon Schlinkert** - -+ [github/jonschlinkert](https://github.com/jonschlinkert) -+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -## License - -Copyright © 2015 Jon Schlinkert -Released under the MIT license. - -*** - -_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on November 06, 2015._ \ No newline at end of file diff --git a/build/node_modules/assign-symbols/index.js b/build/node_modules/assign-symbols/index.js deleted file mode 100644 index c08a232b..00000000 --- a/build/node_modules/assign-symbols/index.js +++ /dev/null @@ -1,40 +0,0 @@ -/*! - * assign-symbols - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -module.exports = function(receiver, objects) { - if (receiver === null || typeof receiver === 'undefined') { - throw new TypeError('expected first argument to be an object.'); - } - - if (typeof objects === 'undefined' || typeof Symbol === 'undefined') { - return receiver; - } - - if (typeof Object.getOwnPropertySymbols !== 'function') { - return receiver; - } - - var isEnumerable = Object.prototype.propertyIsEnumerable; - var target = Object(receiver); - var len = arguments.length, i = 0; - - while (++i < len) { - var provider = Object(arguments[i]); - var names = Object.getOwnPropertySymbols(provider); - - for (var j = 0; j < names.length; j++) { - var key = names[j]; - - if (isEnumerable.call(provider, key)) { - target[key] = provider[key]; - } - } - } - return target; -}; diff --git a/build/node_modules/assign-symbols/package.json b/build/node_modules/assign-symbols/package.json deleted file mode 100644 index 7f77b58d..00000000 --- a/build/node_modules/assign-symbols/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "assign-symbols", - "description": "Assign the enumerable es6 Symbol properties from an object (or objects) to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/assign-symbols", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/assign-symbols", - "bugs": { - "url": "https://github.com/jonschlinkert/assign-symbols/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "mocha": "^3.0.0" - }, - "keywords": [ - "assign", - "symbols" - ], - "verb": { - "related": { - "list": [ - "assign-deep", - "mixin-deep", - "merge-deep", - "extend-shallow", - "clone-deep" - ] - } - } -} diff --git a/build/node_modules/astral-regex/index.d.ts b/build/node_modules/astral-regex/index.d.ts deleted file mode 100644 index e81ac315..00000000 --- a/build/node_modules/astral-regex/index.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -declare namespace astralRegex { - interface Options { - /** - Only match an exact string. Useful with `RegExp#test()` to check if a string is a astral symbol. Default: `false` _(Matches any astral symbols in a string)_ - */ - readonly exact?: boolean; - } -} - -/** -Regular expression for matching [astral symbols](https://everything2.com/title/astral+plane). - -@returns A `RegExp` for matching astral symbols. - -@example -``` -import astralRegex = require('astral-regex'); - -astralRegex({exact: true}).test('🦄'); -//=> true - -'foo 🦄 💩 bar'.match(astralRegex()); -//=> ['🦄', '💩'] -``` -*/ -declare function astralRegex(options?: astralRegex.Options): RegExp; - -export = astralRegex; diff --git a/build/node_modules/astral-regex/index.js b/build/node_modules/astral-regex/index.js deleted file mode 100644 index 651177d4..00000000 --- a/build/node_modules/astral-regex/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -const regex = '[\uD800-\uDBFF][\uDC00-\uDFFF]'; - -const astralRegex = options => options && options.exact ? new RegExp(`^${regex}$`) : new RegExp(regex, 'g'); - -module.exports = astralRegex; diff --git a/build/node_modules/astral-regex/license b/build/node_modules/astral-regex/license deleted file mode 100644 index db6bc32c..00000000 --- a/build/node_modules/astral-regex/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Kevin Mårtensson (github.com/kevva) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/astral-regex/package.json b/build/node_modules/astral-regex/package.json deleted file mode 100644 index d1ceea7f..00000000 --- a/build/node_modules/astral-regex/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "astral-regex", - "version": "2.0.0", - "description": "Regular expression for matching astral symbols", - "license": "MIT", - "repository": "kevva/astral-regex", - "author": { - "name": "Kevin Mårtensson", - "email": "kevinmartensson@gmail.com", - "url": "github.com/kevva" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "astral", - "emoji", - "regex", - "surrogate" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/astral-regex/readme.md b/build/node_modules/astral-regex/readme.md deleted file mode 100644 index 89d6659a..00000000 --- a/build/node_modules/astral-regex/readme.md +++ /dev/null @@ -1,46 +0,0 @@ -# astral-regex [![Build Status](https://travis-ci.org/kevva/astral-regex.svg?branch=master)](https://travis-ci.org/kevva/astral-regex) - -> Regular expression for matching [astral symbols](https://everything2.com/title/astral+plane) - - -## Install - -``` -$ npm install astral-regex -``` - - -## Usage - -```js -const astralRegex = require('astral-regex'); - -astralRegex({exact: true}).test('🦄'); -//=> true - -'foo 🦄 💩 bar'.match(astralRegex()); -//=> ['🦄', '💩'] -``` - - -## API - -### astralRegex([options]) - -Returns a `RegExp` for matching astral symbols. - -#### options - -Type: `Object` - -##### exact - -Type: `boolean`
-Default: `false` *(Matches any astral symbols in a string)* - -Only match an exact string. Useful with `RegExp#test()` to check if a string is a astral symbol. - - -## License - -MIT © [Kevin Mårtensson](https://github.com/kevva) diff --git a/build/node_modules/astring/.eslintrc.json b/build/node_modules/astring/.eslintrc.json deleted file mode 100644 index 76e551ed..00000000 --- a/build/node_modules/astring/.eslintrc.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "plugins": ["import"], - "extends": ["eslint:recommended", "plugin:import/errors", "prettier"], - "env": { - "es6": true - }, - "parserOptions": { - "ecmaVersion": 13, - "sourceType": "module" - }, - "globals": { - "console": true, - "global": true, - "module": true, - "process": true, - "require": true, - "window": true, - "__dirname": true - }, - "overrides": [ - { - "files": ["src/tests/fixtures/**/*.js"], - "rules": { - "constructor-super": 0, - "getter-return": 0, - "no-cond-assign": 0, - "no-constant-condition": 0, - "no-control-regex": 0, - "no-debugger": 0, - "no-dupe-class-members": 0, - "no-dupe-keys": 0, - "no-duplicate-case": 0, - "no-empty": 0, - "no-inner-declarations": 0, - "no-irregular-whitespace": 0, - "no-redeclare": 0, - "no-sparse-arrays": 0, - "no-undef": 0, - "no-unreachable": 0, - "no-unsafe-negation": 0, - "no-unused-labels": 0, - "no-unused-vars": 0, - "no-useless-escape": 0, - "no-var": 0, - "no-loss-of-precision": 0 - } - } - ] -} diff --git a/build/node_modules/astring/LICENSE b/build/node_modules/astring/LICENSE deleted file mode 100644 index 4714dd6f..00000000 --- a/build/node_modules/astring/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015, David Bonnet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/astring/README.md b/build/node_modules/astring/README.md deleted file mode 100644 index fa2529a7..00000000 --- a/build/node_modules/astring/README.md +++ /dev/null @@ -1,322 +0,0 @@ -# Astring - -[![NPM Version](https://img.shields.io/npm/v/astring.svg)](https://www.npmjs.org/package/astring) -[![Build Status](https://travis-ci.org/davidbonnet/astring.svg?branch=master)](https://travis-ci.org/davidbonnet/astring) -[![Coverage](https://codecov.io/gh/davidbonnet/astring/branch/master/graph/badge.svg)](https://codecov.io/gh/davidbonnet/astring) -[![devDependency Status](https://david-dm.org/davidbonnet/astring/dev-status.svg)](https://david-dm.org/davidbonnet/astring?type=dev) - -🌳 Tiny and fast JavaScript code generator from an [ESTree](https://github.com/estree/estree)-compliant AST. - -🎁 Checkout the [live demo](https://david.bonnet.cc/astring/demo/). - -### Key features - -- Generates JavaScript code up to [version 13 (2022)](https://tc39.github.io/ecma262/) and [finished proposals](https://github.com/tc39/proposals/blob/master/finished-proposals.md). -- Works on [ESTree](https://github.com/estree/estree)-compliant ASTs such as the ones produced by [Meriyah](https://github.com/meriyah/meriyah) or [Acorn](https://github.com/acornjs/acorn). -- Extendable with custom AST node handlers. -- Considerably faster than [Bublé](https://gitlab.com/Rich-Harris/buble) (up to 5×), [Escodegen](https://github.com/estools/escodegen) (up to 10×), [Babel](https://github.com/babel/babel) (up to 50×), [UglifyJS](https://github.com/mishoo/UglifyJS2) (up to 125×), and [Prettier](https://github.com/prettier/prettier) (up to 380×). -- Supports source map generation with [Source Map](https://github.com/mozilla/source-map#sourcemapgenerator). -- Supports comment generation with [Astravel](https://github.com/davidbonnet/astravel). -- No dependencies and small footprint (≈ 16 KB minified, ≈ 4 KB gziped). -- Runs on [🦕 Deno](https://deno.land). - -## Contents - - - -- [Installation](#installation) -- [Import](#import) -- [API](#api) - - [`generate(node: object, options: object): string | object`](#generatenode-object-options-object-string-%7C-object) - - [`GENERATOR: object`](#generator-object) - - [`EXPRESSIONS_PRECEDENCE: object`](#expressions_precedence-object) - - [`NEEDS_PARENTHESES: number`](#needs_parentheses-number) - - [`baseGenerator: object`](#basegenerator-object) -- [Benchmark](#benchmark) - - [Generating code](#generating-code) - - [Parsing and generating code](#parsing-and-generating-code) -- [Examples](#examples) - - [Generating code](#generating-code-1) - - [Generating source maps](#generating-source-maps) - - [Using writable streams](#using-writable-streams) - - [Generating comments](#generating-comments) - - [Extending](#extending) -- [Command line interface](#command-line-interface) - - [Example](#example) - - - -## Installation - -> :warning: Astring relies on `String.prototype.repeat(amount)` and `String.prototype.endsWith(string)`. If the environment running Astring does not define these methods, use [`string.prototype.repeat`](https://www.npmjs.com/package/string.prototype.repeat), [`string.prototype.endsWith`](https://www.npmjs.com/package/string.prototype.endswith) or [`babel-polyfill`](https://www.npmjs.com/package/babel-polyfill). - -Install with the [Node Package Manager](https://www.npmjs.com/package/astring): - -```bash -npm install astring -``` - -Alternatively, checkout this repository and install the development dependencies to build the module file: - -```bash -git clone https://github.com/davidbonnet/astring.git -cd astring -npm install -``` - -## Import - -Import it from [Deno's third party module repository](https://deno.land/x/astring/src/astring.js): - -```js -const { generate } = await import('https://deno.land/x/astring/src/astring.js') -``` - -With JavaScript 6 modules: - -```js -import { generate } from 'astring' -``` - -With CommonJS: - -```js -const { generate } = require('astring') -``` - -A browser-ready minified bundle containing Astring is available at `dist/astring.min.js`. The module exposes a global variable `astring`: - -```html - - -``` - -## API - -The `astring` module exposes the following properties: - -### `generate(node: object, options: object): string | object` - -Returns a string representing the rendered code of the provided AST `node`. However, if an `output` stream is provided in the `options`, it writes to that stream and returns it. - -The `options` are: - -- `indent`: string to use for indentation (defaults to `"␣␣"`) -- `lineEnd`: string to use for line endings (defaults to `"\n"`) -- `startingIndentLevel`: indent level to start from (defaults to `0`) -- `comments`: generate comments if `true` (defaults to `false`) -- `output`: output stream to write the rendered code to (defaults to `null`) -- `generator`: custom code generator (defaults to `GENERATOR`) -- `sourceMap`: [source map generator](https://github.com/mozilla/source-map#sourcemapgenerator) (defaults to `null`) -- `expressionsPrecedence`: custom map of node types and their precedence level (defaults to `EXPRESSIONS_PRECEDENCE`) - -### `GENERATOR: object` - -Base generator that can be used to [extend Astring](#extending). - -### `EXPRESSIONS_PRECEDENCE: object` - -Mapping of node types and their precedence level to let the generator know when to use parentheses. - -### `NEEDS_PARENTHESES: number` - -Default precedence level that always triggers the use of parentheses. - -### `baseGenerator: object` - -> :warning: Deprecated, use `GENERATOR` instead. - -## Benchmark - -### Generating code - -Operations per second for generating each sample code from a pre-parsed AST: - -| code sample (length) | escodegen | astring | uglify | babel | prettier | -| :------------------- | --------: | --------: | ------: | ------: | -------: | -| tiny code (11) | 1,257,527 | 7,185,642 | 129,467 | 156,184 | 333 | -| everything (8532) | 1,366 | 8,008 | 0 | 346 | 64 | - -### Parsing and generating code - -Operations per second for parsing and generating each sample code: - -| code sample (length) | acorn + astring | meriyah + astring | buble | sucrase | -| :------------------- | --------------: | ----------------: | -----: | ------: | -| tiny code (11) | 92,578 | 864,665 | 25,911 | 575,370 | -| everything (8532) | 706 | 1,425 | 132 | 1,403 | - -## Examples - -The following examples are written in JavaScript 5 with Astring imported _à la CommonJS_. - -### Generating code - -This example uses [Acorn](https://github.com/acornjs/acorn), a blazingly fast JavaScript AST producer and therefore the perfect companion of Astring. - -```javascript -// Make sure acorn and astring modules are imported - -// Set example code -var code = 'let answer = 4 + 7 * 5 + 3;\n' -// Parse it into an AST -var ast = acorn.parse(code, { ecmaVersion: 6 }) -// Format it into a code string -var formattedCode = astring.generate(ast) -// Check it -console.log(code === formattedCode ? 'It works!' : 'Something went wrong…') -``` - -### Generating source maps - -This example uses the source map generator from the [Source Map](https://github.com/mozilla/source-map#sourcemapgenerator) module. - -```javascript -// Make sure acorn, sourceMap and astring modules are imported - -var code = 'function add(a, b) { return a + b; }\n' -var ast = acorn.parse(code, { - ecmaVersion: 6, - sourceType: 'module', - // Locations are needed in order for the source map generator to work - locations: true, -}) -// Create empty source map generator -var map = new sourceMap.SourceMapGenerator({ - // Source file name must be set and will be used for mappings - file: 'script.js', -}) -var formattedCode = generate(ast, { - // Enable source maps - sourceMap: map, -}) -// Display generated source map -console.log(map.toString()) -``` - -### Using writable streams - -This example for [Node](http://nodejs.org) shows how to use writable streams to get the rendered code. - -```javascript -// Make sure acorn and astring modules are imported - -// Set example code -var code = 'let answer = 4 + 7 * 5 + 3;\n' -// Parse it into an AST -var ast = acorn.parse(code, { ecmaVersion: 6 }) -// Format it and write the result to stdout -var stream = astring.generate(ast, { - output: process.stdout, -}) -// The returned value is the output stream -console.log('Does stream equal process.stdout?', stream === process.stdout) -``` - -### Generating comments - -Astring supports comment generation, provided they are stored on the AST nodes. To do so, this example uses [Astravel](https://github.com/davidbonnet/astravel), a fast AST traveller and modifier. - -```javascript -// Make sure acorn, astravel and astring modules are imported - -// Set example code -var code = - [ - '// Compute the answer to everything', - 'let answer = 4 + 7 * 5 + 3;', - '// Display it', - 'console.log(answer);', - ].join('\n') + '\n' -// Parse it into an AST and retrieve the list of comments -var comments = [] -var ast = acorn.parse(code, { - ecmaVersion: 6, - locations: true, - onComment: comments, -}) -// Attach comments to AST nodes -astravel.attachComments(ast, comments) -// Format it into a code string -var formattedCode = astring.generate(ast, { - comments: true, -}) -// Check it -console.log(code === formattedCode ? 'It works!' : 'Something went wrong…') -``` - -### Extending - -Astring can easily be extended by updating or passing a custom code `generator`. A code `generator` consists of a mapping of node names and functions that take two arguments: `node` and `state`. The `node` points to the node from which to generate the code and the `state` exposes the `write` method that takes generated code strings. - -This example shows how to support the `await` keyword which is part of the [asynchronous functions proposal](https://github.com/tc39/ecmascript-asyncawait). The corresponding `AwaitExpression` node is based on [this suggested definition](https://github.com/estree/estree/blob/master/es2017.md). - -```javascript -// Make sure the astring module is imported and that `Object.assign` is defined - -// Create a custom generator that inherits from Astring's base generator -var customGenerator = Object.assign({}, astring.GENERATOR, { - AwaitExpression: function (node, state) { - state.write('await ') - var argument = node.argument - if (argument != null) { - this[argument.type](argument, state) - } - }, -}) -// Obtain a custom AST somehow (note that this AST is not obtained from a valid code) -var ast = { - type: 'AwaitExpression', - argument: { - type: 'CallExpression', - callee: { - type: 'Identifier', - name: 'callable', - }, - arguments: [], - }, -} -// Format it -var code = astring.generate(ast, { - generator: customGenerator, -}) -// Check it -console.log( - code === 'await callable();\n' ? 'It works!' : 'Something went wrong…', -) -``` - -## Command line interface - -The `bin/astring` utility can be used to convert a JSON-formatted ESTree compliant AST of a JavaScript code. It accepts the following arguments: - -- `-i`, `--indent`: string to use as indentation (defaults to `"␣␣"`) -- `-l`, `--line-end`: string to use for line endings (defaults to `"\n"`) -- `-s`, `--starting-indent-level`: indent level to start from (defaults to `0`) -- `-h`, `--help`: print a usage message and exit -- `-v`, `--version`: print package version and exit - -The utility reads the AST from a provided list of files or from `stdin` if none is supplied and prints the generated code. - -### Example - -As in the previous example, these examples use [Acorn](https://github.com/acornjs/acorn) to get the JSON-formatted AST. This command pipes the AST output by Acorn from a `script.js` file to Astring and writes the formatted JavaScript code into a `result.js` file: - -```bash -acorn --ecma6 script.js | astring > result.js -``` - -This command does the same, but reads the AST from an intermediary file: - -```bash -acorn --ecma6 script.js > ast.json -astring ast.json > result.js -``` - -This command reads JavaScript 6 code from `stdin` and outputs a prettified version: - -```bash -cat | acorn --ecma6 | astring -``` diff --git a/build/node_modules/astring/astring.d.ts b/build/node_modules/astring/astring.d.ts deleted file mode 100644 index 1c6cdbee..00000000 --- a/build/node_modules/astring/astring.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import type { Node as EstreeNode } from 'estree' -import type { Mapping, SourceMapGenerator } from 'source-map' -import type { Writable } from 'stream' - -/** - * State object passed to generator functions. - */ -export interface State { - output: string - write(code: string, node?: EstreeNode): void - writeComments: boolean - indent: string - lineEnd: string - indentLevel: number - line?: number - column?: number - lineEndSize?: number - mapping?: Mapping -} - -/** - * Code generator for each node type. - */ -export type Generator = { - [T in EstreeNode['type']]: ( - node: EstreeNode & { type: T }, - state: State, - ) => void -} - -/** - * Code generator options. - */ -export interface Options { - /** - * If present, source mappings will be written to the generator. - */ - sourceMap?: SourceMapGenerator - /** - * String to use for indentation, defaults to `"␣␣"`. - */ - indent?: string - /** - * String to use for line endings, defaults to `"\n"`. - */ - lineEnd?: string - /** - * Indent level to start from, defaults to `0`. - */ - startingIndentLevel?: number - /** - * Generate comments if `true`, defaults to `false`. - */ - comments?: boolean - /** - * Output stream to write the render code to, defaults to `null`. - */ - output?: Output - /** - * Custom code generator logic. - */ - generator?: Generator -} - -/** - * Core Estree Node type to accommodate derived node types from parsers. - */ -interface Node { - type: string -} - -/** - * Returns a string representing the rendered code of the provided AST `node`. - * However, if an `output` stream is provided in the `options`, it writes to that stream and returns it. - */ -export function generate(node: Node, options?: Options): string -export function generate(node: Node, options?: Options): Writable - -/** - * Base code generator. - */ -export const GENERATOR: Generator - -/** - * Base code generator. - * - * @deprecated Use {@link GENERATOR} instead. - */ -export const baseGenerator: Generator diff --git a/build/node_modules/astring/package.json b/build/node_modules/astring/package.json deleted file mode 100644 index 922f7f5b..00000000 --- a/build/node_modules/astring/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "name": "astring", - "version": "1.8.6", - "description": "JavaScript code generator from an ESTree-compliant AST.", - "main": "./dist/astring.js", - "module": "./dist/astring.mjs", - "types": "./astring.d.ts", - "exports": { - "types": "./astring.d.ts", - "import": "./dist/astring.mjs", - "require": "./dist/astring.js", - "browser": "./dist/astring.min.js" - }, - "bin": { - "astring": "bin/astring" - }, - "scripts": { - "build": "babel src/astring.js --out-file dist/astring.js --source-maps --no-comments && cp src/astring.js dist/astring.mjs", - "build:watch": "babel src/astring.js --out-file dist/astring.js --source-maps --no-comments --watch", - "build:minified": "cross-env BABEL_MODE=minified babel src/astring.js --out-file dist/astring.min.js --source-maps --no-comments", - "build:demo": "npm run build:minified && cp dist/astring.min.* docs/demo/", - "prepare": "npm run build && npm run build:minified", - "test": "npm run eslint && npm run prettier:check && npm run build:minified && npm run test:coverage", - "dev": "ava --watch src/tests/astring.js", - "test:coverage": "c8 --reporter=html --reporter=text --reporter=lcov --include='src/*.js' --exclude='src/tests/**/*.js' ava src/tests/astring.js", - "test:scripts": "npm run test:scripts:build && ava src/tests/_scripts.js", - "test:performance": "ava src/tests/performance.js", - "benchmark": "node --require esm ./src/tests/benchmark.js", - "eslint": "eslint src", - "prettier": "prettier --write \"{src,scripts}/**/*.js\" \"bin/astring\"", - "prettier:check": "prettier --list-different \"{src,scripts}/**/*.js\" \"bin/astring\"", - "prepush": "npm test", - "release": "standard-version", - "deploy": "git push --follow-tags origin main && npm publish" - }, - "keywords": [ - "ast", - "codegen", - "code generator", - "estree", - "astravel" - ], - "repository": { - "type": "git", - "url": "https://github.com/davidbonnet/astring.git" - }, - "author": "David Bonnet ", - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.14.3", - "@babel/core": "^7.14.3", - "@babel/generator": "^7.14.3", - "@babel/parser": "^7.16.4", - "@babel/preset-env": "^7.14.4", - "acorn": "^8.6.0", - "astravel": "^0.5.0", - "ava": "^3.15.0", - "babel-preset-minify": "^0.5.1", - "benchmark": "^2.1.4", - "buble": "^0.20.0", - "c8": "^7.10.0", - "cross-env": "^7.0.3", - "escodegen": "^2.0.0", - "eslint": "^8.3.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.3", - "esm": "^3.2.25", - "glob": "^7.1.7", - "husky": "^6.0.0", - "lodash": "^4.17.21", - "meriyah": "^4.1.5", - "normalize-newline": "^3.0.0", - "prettier": "^2.4.1", - "standard-version": "^9.3.0", - "sucrase": "^3.18.1", - "uglify-js": "^3.13.8" - }, - "prettier": { - "printWidth": 80, - "tabWidth": 2, - "useTabs": false, - "semi": false, - "singleQuote": true, - "trailingComma": "all", - "bracketSpacing": true - }, - "ava": { - "files": [ - "src/**/tests/astring.js", - "src/**/tests/performance.js" - ], - "require": [ - "esm" - ] - }, - "esm": "auto" -} diff --git a/build/node_modules/async-retry/LICENSE.md b/build/node_modules/async-retry/LICENSE.md deleted file mode 100644 index b708f872..00000000 --- a/build/node_modules/async-retry/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2021 Vercel, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/async-retry/README.md b/build/node_modules/async-retry/README.md deleted file mode 100644 index d738d303..00000000 --- a/build/node_modules/async-retry/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# async-retry - -Retrying made simple, easy, and async. - -## Usage - -```js -// Packages -const retry = require('async-retry'); -const fetch = require('node-fetch'); - -await retry( - async (bail) => { - // if anything throws, we retry - const res = await fetch('https://google.com'); - - if (403 === res.status) { - // don't retry upon 403 - bail(new Error('Unauthorized')); - return; - } - - const data = await res.text(); - return data.substr(0, 500); - }, - { - retries: 5, - } -); -``` - -### API - -```js -retry(retrier : Function, opts : Object) => Promise -``` - -- The supplied function can be `async` or not. In other words, it can be a function that returns a `Promise` or a value. -- The supplied function receives two parameters - 1. A `Function` you can invoke to abort the retrying (bail) - 2. A `Number` identifying the attempt. The absolute first attempt (before any retries) is `1`. -- The `opts` are passed to `node-retry`. Read [its docs](https://github.com/tim-kos/node-retry) - - `retries`: The maximum amount of times to retry the operation. Default is `10`. - - `factor`: The exponential factor to use. Default is `2`. - - `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`. - - `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`. - - `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `true`. - - `onRetry`: an optional `Function` that is invoked after a new retry is performed. It's passed the `Error` that triggered it as a parameter. - -## Authors - -- Guillermo Rauch ([@rauchg](https://twitter.com/rauchg)) - [Vercel](https://vercel.com) -- Leo Lamprecht ([@notquiteleo](https://twitter.com/notquiteleo)) - [Vercel](https://vercel.com) diff --git a/build/node_modules/async-retry/package.json b/build/node_modules/async-retry/package.json deleted file mode 100644 index ad63096c..00000000 --- a/build/node_modules/async-retry/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "async-retry", - "version": "1.3.3", - "description": "Retrying made simple, easy and async", - "main": "./lib/index.js", - "scripts": { - "test": "yarn run test-lint && yarn run test-unit", - "test-lint": "eslint .", - "test-unit": "ava", - "lint:staged": "lint-staged" - }, - "files": [ - "lib" - ], - "license": "MIT", - "repository": "vercel/async-retry", - "ava": { - "failFast": true - }, - "dependencies": { - "retry": "0.13.1" - }, - "pre-commit": "lint:staged", - "lint-staged": { - "*.js": [ - "eslint", - "prettier --write --single-quote", - "git add" - ] - }, - "eslintConfig": { - "extends": [ - "airbnb", - "prettier" - ], - "rules": { - "no-var": 0, - "prefer-arrow-callback": 0 - } - }, - "devDependencies": { - "ava": "3.15.0", - "eslint": "7.32.0", - "eslint-config-airbnb": "18.2.1", - "eslint-config-prettier": "8.3.0", - "eslint-plugin-import": "2.24.0", - "eslint-plugin-jsx-a11y": "6.4.1", - "eslint-plugin-react": "7.24.0", - "lint-staged": "11.1.2", - "node-fetch": "2.6.1", - "pre-commit": "1.2.2", - "prettier": "2.3.2", - "then-sleep": "1.0.1" - } -} diff --git a/build/node_modules/asynckit/LICENSE b/build/node_modules/asynckit/LICENSE deleted file mode 100644 index c9eca5dd..00000000 --- a/build/node_modules/asynckit/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Alex Indigo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/asynckit/README.md b/build/node_modules/asynckit/README.md deleted file mode 100644 index ddcc7e6b..00000000 --- a/build/node_modules/asynckit/README.md +++ /dev/null @@ -1,233 +0,0 @@ -# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit) - -Minimal async jobs utility library, with streams support. - -[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit) -[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit) -[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit) - -[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master) -[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit) -[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit) - - - -AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects. -Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method. - -It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators. - -| compression | size | -| :----------------- | -------: | -| asynckit.js | 12.34 kB | -| asynckit.min.js | 4.11 kB | -| asynckit.min.js.gz | 1.47 kB | - - -## Install - -```sh -$ npm install --save asynckit -``` - -## Examples - -### Parallel Jobs - -Runs iterator over provided array in parallel. Stores output in the `result` array, -on the matching positions. In unlikely event of an error from one of the jobs, -will terminate rest of the active jobs (if abort function is provided) -and return error along with salvaged data to the main callback function. - -#### Input Array - -```javascript -var parallel = require('asynckit').parallel - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] - , target = [] - ; - -parallel(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// async job accepts one element from the array -// and a callback function -function asyncJob(item, cb) -{ - // different delays (in ms) per item - var delay = item * 25; - - // pretend different jobs take different time to finish - // and not in consequential order - var timeoutId = setTimeout(function() { - target.push(item); - cb(null, item * 2); - }, delay); - - // allow to cancel "leftover" jobs upon error - // return function, invoking of which will abort this job - return clearTimeout.bind(null, timeoutId); -} -``` - -More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js). - -#### Input Object - -Also it supports named jobs, listed via object. - -```javascript -var parallel = require('asynckit/parallel') - , assert = require('assert') - ; - -var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } - , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } - , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] - , expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ] - , target = [] - , keys = [] - ; - -parallel(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); - assert.deepEqual(keys, expectedKeys); -}); - -// supports full value, key, callback (shortcut) interface -function asyncJob(item, key, cb) -{ - // different delays (in ms) per item - var delay = item * 25; - - // pretend different jobs take different time to finish - // and not in consequential order - var timeoutId = setTimeout(function() { - keys.push(key); - target.push(item); - cb(null, item * 2); - }, delay); - - // allow to cancel "leftover" jobs upon error - // return function, invoking of which will abort this job - return clearTimeout.bind(null, timeoutId); -} -``` - -More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js). - -### Serial Jobs - -Runs iterator over provided array sequentially. Stores output in the `result` array, -on the matching positions. In unlikely event of an error from one of the jobs, -will not proceed to the rest of the items in the list -and return error along with salvaged data to the main callback function. - -#### Input Array - -```javascript -var serial = require('asynckit/serial') - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] - , target = [] - ; - -serial(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// extended interface (item, key, callback) -// also supported for arrays -function asyncJob(item, key, cb) -{ - target.push(key); - - // it will be automatically made async - // even it iterator "returns" in the same event loop - cb(null, item * 2); -} -``` - -More examples could be found in [test/test-serial-array.js](test/test-serial-array.js). - -#### Input Object - -Also it supports named jobs, listed via object. - -```javascript -var serial = require('asynckit').serial - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] - , target = [] - ; - -var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } - , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } - , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , target = [] - ; - - -serial(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// shortcut interface (item, callback) -// works for object as well as for the arrays -function asyncJob(item, cb) -{ - target.push(item); - - // it will be automatically made async - // even it iterator "returns" in the same event loop - cb(null, item * 2); -} -``` - -More examples could be found in [test/test-serial-object.js](test/test-serial-object.js). - -_Note: Since _object_ is an _unordered_ collection of properties, -it may produce unexpected results with sequential iterations. -Whenever order of the jobs' execution is important please use `serialOrdered` method._ - -### Ordered Serial Iterations - -TBD - -For example [compare-property](compare-property) package. - -### Streaming interface - -TBD - -## Want to Know More? - -More examples can be found in [test folder](test/). - -Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions. - -## License - -AsyncKit is licensed under the MIT license. diff --git a/build/node_modules/asynckit/bench.js b/build/node_modules/asynckit/bench.js deleted file mode 100644 index c612f1a5..00000000 --- a/build/node_modules/asynckit/bench.js +++ /dev/null @@ -1,76 +0,0 @@ -/* eslint no-console: "off" */ - -var asynckit = require('./') - , async = require('async') - , assert = require('assert') - , expected = 0 - ; - -var Benchmark = require('benchmark'); -var suite = new Benchmark.Suite; - -var source = []; -for (var z = 1; z < 100; z++) -{ - source.push(z); - expected += z; -} - -suite -// add tests - -.add('async.map', function(deferred) -{ - var total = 0; - - async.map(source, - function(i, cb) - { - setImmediate(function() - { - total += i; - cb(null, total); - }); - }, - function(err, result) - { - assert.ifError(err); - assert.equal(result[result.length - 1], expected); - deferred.resolve(); - }); -}, {'defer': true}) - - -.add('asynckit.parallel', function(deferred) -{ - var total = 0; - - asynckit.parallel(source, - function(i, cb) - { - setImmediate(function() - { - total += i; - cb(null, total); - }); - }, - function(err, result) - { - assert.ifError(err); - assert.equal(result[result.length - 1], expected); - deferred.resolve(); - }); -}, {'defer': true}) - - -// add listeners -.on('cycle', function(ev) -{ - console.log(String(ev.target)); -}) -.on('complete', function() -{ - console.log('Fastest is ' + this.filter('fastest').map('name')); -}) -// run async -.run({ 'async': true }); diff --git a/build/node_modules/asynckit/index.js b/build/node_modules/asynckit/index.js deleted file mode 100644 index 455f9454..00000000 --- a/build/node_modules/asynckit/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = -{ - parallel : require('./parallel.js'), - serial : require('./serial.js'), - serialOrdered : require('./serialOrdered.js') -}; diff --git a/build/node_modules/asynckit/package.json b/build/node_modules/asynckit/package.json deleted file mode 100644 index 51147d65..00000000 --- a/build/node_modules/asynckit/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "asynckit", - "version": "0.4.0", - "description": "Minimal async jobs utility library, with streams support", - "main": "index.js", - "scripts": { - "clean": "rimraf coverage", - "lint": "eslint *.js lib/*.js test/*.js", - "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", - "win-test": "tape test/test-*.js", - "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", - "report": "istanbul report", - "size": "browserify index.js | size-table asynckit", - "debug": "tape test/test-*.js" - }, - "pre-commit": [ - "clean", - "lint", - "test", - "browser", - "report", - "size" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/alexindigo/asynckit.git" - }, - "keywords": [ - "async", - "jobs", - "parallel", - "serial", - "iterator", - "array", - "object", - "stream", - "destroy", - "terminate", - "abort" - ], - "author": "Alex Indigo ", - "license": "MIT", - "bugs": { - "url": "https://github.com/alexindigo/asynckit/issues" - }, - "homepage": "https://github.com/alexindigo/asynckit#readme", - "devDependencies": { - "browserify": "^13.0.0", - "browserify-istanbul": "^2.0.0", - "coveralls": "^2.11.9", - "eslint": "^2.9.0", - "istanbul": "^0.4.3", - "obake": "^0.1.2", - "phantomjs-prebuilt": "^2.1.7", - "pre-commit": "^1.1.3", - "reamde": "^1.1.0", - "rimraf": "^2.5.2", - "size-table": "^0.2.0", - "tap-spec": "^4.1.1", - "tape": "^4.5.1" - }, - "dependencies": {} -} diff --git a/build/node_modules/asynckit/parallel.js b/build/node_modules/asynckit/parallel.js deleted file mode 100644 index 3c50344d..00000000 --- a/build/node_modules/asynckit/parallel.js +++ /dev/null @@ -1,43 +0,0 @@ -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = parallel; - -/** - * Runs iterator over provided array elements in parallel - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function parallel(list, iterator, callback) -{ - var state = initState(list); - - while (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, function(error, result) - { - if (error) - { - callback(error, result); - return; - } - - // looks like it's the last one - if (Object.keys(state.jobs).length === 0) - { - callback(null, state.results); - return; - } - }); - - state.index++; - } - - return terminator.bind(state, callback); -} diff --git a/build/node_modules/asynckit/serial.js b/build/node_modules/asynckit/serial.js deleted file mode 100644 index 6cd949a6..00000000 --- a/build/node_modules/asynckit/serial.js +++ /dev/null @@ -1,17 +0,0 @@ -var serialOrdered = require('./serialOrdered.js'); - -// Public API -module.exports = serial; - -/** - * Runs iterator over provided array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serial(list, iterator, callback) -{ - return serialOrdered(list, iterator, null, callback); -} diff --git a/build/node_modules/asynckit/serialOrdered.js b/build/node_modules/asynckit/serialOrdered.js deleted file mode 100644 index 607eafea..00000000 --- a/build/node_modules/asynckit/serialOrdered.js +++ /dev/null @@ -1,75 +0,0 @@ -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = serialOrdered; -// sorting helpers -module.exports.ascending = ascending; -module.exports.descending = descending; - -/** - * Runs iterator over provided sorted array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} sortMethod - custom sort function - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serialOrdered(list, iterator, sortMethod, callback) -{ - var state = initState(list, sortMethod); - - iterate(list, iterator, state, function iteratorHandler(error, result) - { - if (error) - { - callback(error, result); - return; - } - - state.index++; - - // are we there yet? - if (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, iteratorHandler); - return; - } - - // done here - callback(null, state.results); - }); - - return terminator.bind(state, callback); -} - -/* - * -- Sort methods - */ - -/** - * sort helper to sort array elements in ascending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function ascending(a, b) -{ - return a < b ? -1 : a > b ? 1 : 0; -} - -/** - * sort helper to sort array elements in descending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function descending(a, b) -{ - return -1 * ascending(a, b); -} diff --git a/build/node_modules/asynckit/stream.js b/build/node_modules/asynckit/stream.js deleted file mode 100644 index d43465f9..00000000 --- a/build/node_modules/asynckit/stream.js +++ /dev/null @@ -1,21 +0,0 @@ -var inherits = require('util').inherits - , Readable = require('stream').Readable - , ReadableAsyncKit = require('./lib/readable_asynckit.js') - , ReadableParallel = require('./lib/readable_parallel.js') - , ReadableSerial = require('./lib/readable_serial.js') - , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js') - ; - -// API -module.exports = -{ - parallel : ReadableParallel, - serial : ReadableSerial, - serialOrdered : ReadableSerialOrdered, -}; - -inherits(ReadableAsyncKit, Readable); - -inherits(ReadableParallel, ReadableAsyncKit); -inherits(ReadableSerial, ReadableAsyncKit); -inherits(ReadableSerialOrdered, ReadableAsyncKit); diff --git a/build/node_modules/atob/LICENSE b/build/node_modules/atob/LICENSE deleted file mode 100644 index 2d9338bd..00000000 --- a/build/node_modules/atob/LICENSE +++ /dev/null @@ -1,230 +0,0 @@ -At your option you may choose either of the following licenses: - - * The MIT License (MIT) - * The Apache License 2.0 (Apache-2.0) - - -The MIT License (MIT) - -Copyright (c) 2015 AJ ONeal - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2015 AJ ONeal - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/atob/LICENSE.DOCS b/build/node_modules/atob/LICENSE.DOCS deleted file mode 100644 index 1d658d6d..00000000 --- a/build/node_modules/atob/LICENSE.DOCS +++ /dev/null @@ -1,319 +0,0 @@ -Creative Commons Legal Code - -Attribution 3.0 Unported - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR - DAMAGES RESULTING FROM ITS USE. - -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE -COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY -COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS -AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE -TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY -BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS -CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND -CONDITIONS. - -1. Definitions - - a. "Adaptation" means a work based upon the Work, or upon the Work and - other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and includes - cinematographic adaptations or any other form in which the Work may be - recast, transformed, or adapted including in any form recognizably - derived from the original, except that a work that constitutes a - Collection will not be considered an Adaptation for the purpose of - this License. For the avoidance of doubt, where the Work is a musical - work, performance or phonogram, the synchronization of the Work in - timed-relation with a moving image ("synching") will be considered an - Adaptation for the purpose of this License. - b. "Collection" means a collection of literary or artistic works, such as - encyclopedias and anthologies, or performances, phonograms or - broadcasts, or other works or subject matter other than works listed - in Section 1(f) below, which, by reason of the selection and - arrangement of their contents, constitute intellectual creations, in - which the Work is included in its entirety in unmodified form along - with one or more other contributions, each constituting separate and - independent works in themselves, which together are assembled into a - collective whole. A work that constitutes a Collection will not be - considered an Adaptation (as defined above) for the purposes of this - License. - c. "Distribute" means to make available to the public the original and - copies of the Work or Adaptation, as appropriate, through sale or - other transfer of ownership. - d. "Licensor" means the individual, individuals, entity or entities that - offer(s) the Work under the terms of this License. - e. "Original Author" means, in the case of a literary or artistic work, - the individual, individuals, entity or entities who created the Work - or if no individual or entity can be identified, the publisher; and in - addition (i) in the case of a performance the actors, singers, - musicians, dancers, and other persons who act, sing, deliver, declaim, - play in, interpret or otherwise perform literary or artistic works or - expressions of folklore; (ii) in the case of a phonogram the producer - being the person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of broadcasts, the - organization that transmits the broadcast. - f. "Work" means the literary and/or artistic work offered under the terms - of this License including without limitation any production in the - literary, scientific and artistic domain, whatever may be the mode or - form of its expression including digital form, such as a book, - pamphlet and other writing; a lecture, address, sermon or other work - of the same nature; a dramatic or dramatico-musical work; a - choreographic work or entertainment in dumb show; a musical - composition with or without words; a cinematographic work to which are - assimilated works expressed by a process analogous to cinematography; - a work of drawing, painting, architecture, sculpture, engraving or - lithography; a photographic work to which are assimilated works - expressed by a process analogous to photography; a work of applied - art; an illustration, map, plan, sketch or three-dimensional work - relative to geography, topography, architecture or science; a - performance; a broadcast; a phonogram; a compilation of data to the - extent it is protected as a copyrightable work; or a work performed by - a variety or circus performer to the extent it is not otherwise - considered a literary or artistic work. - g. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this License with - respect to the Work, or who has received express permission from the - Licensor to exercise rights under this License despite a previous - violation. - h. "Publicly Perform" means to perform public recitations of the Work and - to communicate to the public those public recitations, by any means or - process, including by wire or wireless means or public digital - performances; to make available to the public Works in such a way that - members of the public may access these Works from a place and at a - place individually chosen by them; to perform the Work to the public - by any means or process and the communication to the public of the - performances of the Work, including by public digital performance; to - broadcast and rebroadcast the Work by any means including signs, - sounds or images. - i. "Reproduce" means to make copies of the Work by any means including - without limitation by sound or visual recordings and the right of - fixation and reproducing fixations of the Work, including storage of a - protected performance or phonogram in digital form or other electronic - medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, -limit, or restrict any uses free from copyright or rights arising from -limitations or exceptions that are provided for in connection with the -copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, -Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -perpetual (for the duration of the applicable copyright) license to -exercise the rights in the Work as stated below: - - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; - b. to create and Reproduce Adaptations provided that any such Adaptation, - including any translation in any medium, takes reasonable steps to - clearly label, demarcate or otherwise identify that changes were made - to the original Work. For example, a translation could be marked "The - original work was translated from English to Spanish," or a - modification could indicate "The original work has been modified."; - c. to Distribute and Publicly Perform the Work including as incorporated - in Collections; and, - d. to Distribute and Publicly Perform Adaptations. - e. For the avoidance of doubt: - - i. Non-waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme cannot be waived, the Licensor - reserves the exclusive right to collect such royalties for any - exercise by You of the rights granted under this License; - ii. Waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme can be waived, the Licensor waives the - exclusive right to collect such royalties for any exercise by You - of the rights granted under this License; and, - iii. Voluntary License Schemes. The Licensor waives the right to - collect royalties, whether individually or, in the event that the - Licensor is a member of a collecting society that administers - voluntary licensing schemes, via that society, from any exercise - by You of the rights granted under this License. - -The above rights may be exercised in all media and formats whether now -known or hereafter devised. The above rights include the right to make -such modifications as are technically necessary to exercise the rights in -other media and formats. Subject to Section 8(f), all rights not expressly -granted by Licensor are hereby reserved. - -4. Restrictions. The license granted in Section 3 above is expressly made -subject to and limited by the following restrictions: - - a. You may Distribute or Publicly Perform the Work only under the terms - of this License. You must include a copy of, or the Uniform Resource - Identifier (URI) for, this License with every copy of the Work You - Distribute or Publicly Perform. You may not offer or impose any terms - on the Work that restrict the terms of this License or the ability of - the recipient of the Work to exercise the rights granted to that - recipient under the terms of the License. You may not sublicense the - Work. You must keep intact all notices that refer to this License and - to the disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or Publicly - Perform the Work, You may not impose any effective technological - measures on the Work that restrict the ability of a recipient of the - Work from You to exercise the rights granted to that recipient under - the terms of the License. This Section 4(a) applies to the Work as - incorporated in a Collection, but this does not require the Collection - apart from the Work itself to be made subject to the terms of this - License. If You create a Collection, upon notice from any Licensor You - must, to the extent practicable, remove from the Collection any credit - as required by Section 4(b), as requested. If You create an - Adaptation, upon notice from any Licensor You must, to the extent - practicable, remove from the Adaptation any credit as required by - Section 4(b), as requested. - b. If You Distribute, or Publicly Perform the Work or any Adaptations or - Collections, You must, unless a request has been made pursuant to - Section 4(a), keep intact all copyright notices for the Work and - provide, reasonable to the medium or means You are utilizing: (i) the - name of the Original Author (or pseudonym, if applicable) if supplied, - and/or if the Original Author and/or Licensor designate another party - or parties (e.g., a sponsor institute, publishing entity, journal) for - attribution ("Attribution Parties") in Licensor's copyright notice, - terms of service or by other reasonable means, the name of such party - or parties; (ii) the title of the Work if supplied; (iii) to the - extent reasonably practicable, the URI, if any, that Licensor - specifies to be associated with the Work, unless such URI does not - refer to the copyright notice or licensing information for the Work; - and (iv) , consistent with Section 3(b), in the case of an Adaptation, - a credit identifying the use of the Work in the Adaptation (e.g., - "French translation of the Work by Original Author," or "Screenplay - based on original Work by Original Author"). The credit required by - this Section 4 (b) may be implemented in any reasonable manner; - provided, however, that in the case of a Adaptation or Collection, at - a minimum such credit will appear, if a credit for all contributing - authors of the Adaptation or Collection appears, then as part of these - credits and in a manner at least as prominent as the credits for the - other contributing authors. For the avoidance of doubt, You may only - use the credit required by this Section for the purpose of attribution - in the manner set out above and, by exercising Your rights under this - License, You may not implicitly or explicitly assert or imply any - connection with, sponsorship or endorsement by the Original Author, - Licensor and/or Attribution Parties, as appropriate, of You or Your - use of the Work, without the separate, express prior written - permission of the Original Author, Licensor and/or Attribution - Parties. - c. Except as otherwise agreed in writing by the Licensor or as may be - otherwise permitted by applicable law, if You Reproduce, Distribute or - Publicly Perform the Work either by itself or as part of any - Adaptations or Collections, You must not distort, mutilate, modify or - take other derogatory action in relation to the Work which would be - prejudicial to the Original Author's honor or reputation. Licensor - agrees that in those jurisdictions (e.g. Japan), in which any exercise - of the right granted in Section 3(b) of this License (the right to - make Adaptations) would be deemed to be a distortion, mutilation, - modification or other derogatory action prejudicial to the Original - Author's honor and reputation, the Licensor will waive or not assert, - as appropriate, this Section, to the fullest extent permitted by the - applicable national law, to enable You to reasonably exercise Your - right under Section 3(b) of this License (right to make Adaptations) - but not otherwise. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR -OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY -KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, -INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, -FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF -LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, -WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION -OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE -LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR -ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES -ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or Collections - from You under this License, however, will not have their licenses - terminated provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will - survive any termination of this License. - b. Subject to the above terms and conditions, the license granted here is - perpetual (for the duration of the applicable copyright in the Work). - Notwithstanding the above, Licensor reserves the right to release the - Work under different license terms or to stop distributing the Work at - any time; provided, however that any such election will not serve to - withdraw this License (or any other license that has been, or is - required to be, granted under the terms of this License), and this - License will continue in full force and effect unless terminated as - stated above. - -8. Miscellaneous - - a. Each time You Distribute or Publicly Perform the Work or a Collection, - the Licensor offers to the recipient a license to the Work on the same - terms and conditions as the license granted to You under this License. - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor - offers to the recipient a license to the original Work on the same - terms and conditions as the license granted to You under this License. - c. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability of - the remainder of the terms of this License, and without further action - by the parties to this agreement, such provision shall be reformed to - the minimum extent necessary to make such provision valid and - enforceable. - d. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in writing - and signed by the party to be charged with such waiver or consent. - e. This License constitutes the entire agreement between the parties with - respect to the Work licensed here. There are no understandings, - agreements or representations with respect to the Work not specified - here. Licensor shall not be bound by any additional provisions that - may appear in any communication from You. This License may not be - modified without the mutual written agreement of the Licensor and You. - f. The rights granted under, and the subject matter referenced, in this - License were drafted utilizing the terminology of the Berne Convention - for the Protection of Literary and Artistic Works (as amended on - September 28, 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 - and the Universal Copyright Convention (as revised on July 24, 1971). - These rights and subject matter take effect in the relevant - jurisdiction in which the License terms are sought to be enforced - according to the corresponding provisions of the implementation of - those treaty provisions in the applicable national law. If the - standard suite of rights granted under applicable copyright law - includes additional rights not granted under this License, such - additional rights are deemed to be included in the License; this - License is not intended to restrict the license of any rights under - applicable law. - - -Creative Commons Notice - - Creative Commons is not a party to this License, and makes no warranty - whatsoever in connection with the Work. Creative Commons will not be - liable to You or any party on any legal theory for any damages - whatsoever, including without limitation any general, special, - incidental or consequential damages arising in connection to this - license. Notwithstanding the foregoing two (2) sentences, if Creative - Commons has expressly identified itself as the Licensor hereunder, it - shall have all rights and obligations of Licensor. - - Except for the limited purpose of indicating to the public that the - Work is licensed under the CCPL, Creative Commons does not authorize - the use by either party of the trademark "Creative Commons" or any - related trademark or logo of Creative Commons without the prior - written consent of Creative Commons. Any permitted use will be in - compliance with Creative Commons' then-current trademark usage - guidelines, as may be published on its website or otherwise made - available upon request from time to time. For the avoidance of doubt, - this trademark restriction does not form part of this License. - - Creative Commons may be contacted at http://creativecommons.org/. diff --git a/build/node_modules/atob/README.md b/build/node_modules/atob/README.md deleted file mode 100644 index e15ef86b..00000000 --- a/build/node_modules/atob/README.md +++ /dev/null @@ -1,49 +0,0 @@ -atob -=== - -| **atob** -| [btoa](https://git.coolaj86.com/coolaj86/btoa.js) -| [unibabel.js](https://git.coolaj86.com/coolaj86/unibabel.js) -| Sponsored by [ppl](https://ppl.family) - -Uses `Buffer` to emulate the exact functionality of the browser's atob. - -Note: Unicode may be handled incorrectly (like the browser). - -It turns base64-encoded ascii data back **to** binary. - -```javascript -(function () { - "use strict"; - - var atob = require('atob'); - var b64 = "SGVsbG8sIFdvcmxkIQ=="; - var bin = atob(b64); - - console.log(bin); // "Hello, World!" -}()); -``` - -### Need Unicode and Binary Support in the Browser? - -Check out [unibabel.js](https://git.coolaj86.com/coolaj86/unibabel.js) - -Changelog -======= - - * v2.1.0 address a few issues and PRs, update URLs - * v2.0.0 provide browser version for ios web workers - * v1.2.0 provide (empty) browser version - * v1.1.3 add MIT license - * v1.1.2 node only - -LICENSE -======= - -Code copyright 2012-2018 AJ ONeal - -Dual-licensed MIT and Apache-2.0 - -Docs copyright 2012-2018 AJ ONeal - -Docs released under [Creative Commons](https://git.coolaj86.com/coolaj86/atob.js/blob/master/LICENSE.DOCS). diff --git a/build/node_modules/atob/bower.json b/build/node_modules/atob/bower.json deleted file mode 100644 index e3ef66e2..00000000 --- a/build/node_modules/atob/bower.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "atob", - "description": "atob for isomorphic environments", - "main": "browser-atob.js", - "authors": [ - "AJ ONeal (https://coolaj86.com)" - ], - "license": "(MIT OR Apache-2.0)", - "keywords": [ - "atob", - "browser" - ], - "homepage": "https://github.com/node-browser-compat/atob", - "moduleType": [ - "globals" - ], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/build/node_modules/atob/browser-atob.js b/build/node_modules/atob/browser-atob.js deleted file mode 100644 index af4f357b..00000000 --- a/build/node_modules/atob/browser-atob.js +++ /dev/null @@ -1,44 +0,0 @@ -(function (w) { - "use strict"; - - function findBest(atobNative) { - // normal window - if ('function' === typeof atobNative) { return atobNative; } - - - // browserify (web worker) - if ('function' === typeof Buffer) { - return function atobBrowserify(a) { - //!! Deliberately using an API that's deprecated in node.js because - //!! this file is for browsers and we expect them to cope with it. - //!! Discussion: github.com/node-browser-compat/atob/pull/9 - return new Buffer(a, 'base64').toString('binary'); - }; - } - - // ios web worker with base64js - if ('object' === typeof w.base64js) { - // bufferToBinaryString - // https://git.coolaj86.com/coolaj86/unibabel.js/blob/master/index.js#L50 - return function atobWebWorker_iOS(a) { - var buf = w.base64js.b64ToByteArray(a); - return Array.prototype.map.call(buf, function (ch) { - return String.fromCharCode(ch); - }).join(''); - }; - } - - return function () { - // ios web worker without base64js - throw new Error("You're probably in an old browser or an iOS webworker." + - " It might help to include beatgammit's base64-js."); - }; - } - - var atobBest = findBest(w.atob); - w.atob = atobBest; - - if ((typeof module === 'object') && module && module.exports) { - module.exports = atobBest; - } -}(window)); diff --git a/build/node_modules/atob/node-atob.js b/build/node_modules/atob/node-atob.js deleted file mode 100644 index d7305a32..00000000 --- a/build/node_modules/atob/node-atob.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -function atob(str) { - return Buffer.from(str, 'base64').toString('binary'); -} - -module.exports = atob.atob = atob; diff --git a/build/node_modules/atob/package.json b/build/node_modules/atob/package.json deleted file mode 100644 index 79bfd9ba..00000000 --- a/build/node_modules/atob/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "atob", - "homepage": "https://git.coolaj86.com/coolaj86/atob.js.git", - "description": "atob for Node.JS and Linux / Mac / Windows CLI (it's a one-liner)", - "repository": { - "type": "git", - "url": "git://git.coolaj86.com/coolaj86/atob.js.git" - }, - "keywords": [ - "atob", - "browser" - ], - "author": "AJ ONeal (https://coolaj86.com)", - "engines": { - "node": ">= 4.5.0" - }, - "main": "node-atob.js", - "browser": "browser-atob.js", - "bin": { - "atob": "bin/atob.js" - }, - "license": "(MIT OR Apache-2.0)", - "version": "2.1.2" -} diff --git a/build/node_modules/atob/test.js b/build/node_modules/atob/test.js deleted file mode 100644 index bd80a4ea..00000000 --- a/build/node_modules/atob/test.js +++ /dev/null @@ -1,18 +0,0 @@ -(function () { - "use strict"; - - var atob = require('.'); - var encoded = "SGVsbG8sIFdvcmxkIQ==" - var unencoded = "Hello, World!"; - /* - , encoded = "SGVsbG8sIBZM" - , unencoded = "Hello, 世界" - */ - - if (unencoded !== atob(encoded)) { - console.log('[FAIL]', unencoded, atob(encoded)); - return; - } - - console.log('[PASS] all tests pass'); -}()); diff --git a/build/node_modules/atomic-sleep/.travis.yml b/build/node_modules/atomic-sleep/.travis.yml deleted file mode 100644 index 3bb09da6..00000000 --- a/build/node_modules/atomic-sleep/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -sudo: false -node_js: - - 6 - - 8 - - 10 - - 11 - - 12 - - 13 -script: - - npm run ci \ No newline at end of file diff --git a/build/node_modules/atomic-sleep/LICENSE b/build/node_modules/atomic-sleep/LICENSE deleted file mode 100644 index d1d88497..00000000 --- a/build/node_modules/atomic-sleep/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) -Copyright (c) 2020 David Mark Clements - - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/build/node_modules/atomic-sleep/index.js b/build/node_modules/atomic-sleep/index.js deleted file mode 100644 index fbfc8b23..00000000 --- a/build/node_modules/atomic-sleep/index.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict' - -/* global SharedArrayBuffer, Atomics */ - -if (typeof SharedArrayBuffer !== 'undefined' && typeof Atomics !== 'undefined') { - const nil = new Int32Array(new SharedArrayBuffer(4)) - - function sleep (ms) { - // also filters out NaN, non-number types, including empty strings, but allows bigints - const valid = ms > 0 && ms < Infinity - if (valid === false) { - if (typeof ms !== 'number' && typeof ms !== 'bigint') { - throw TypeError('sleep: ms must be a number') - } - throw RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity') - } - - Atomics.wait(nil, 0, 0, Number(ms)) - } - module.exports = sleep -} else { - - function sleep (ms) { - // also filters out NaN, non-number types, including empty strings, but allows bigints - const valid = ms > 0 && ms < Infinity - if (valid === false) { - if (typeof ms !== 'number' && typeof ms !== 'bigint') { - throw TypeError('sleep: ms must be a number') - } - throw RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity') - } - const target = Date.now() + Number(ms) - while (target > Date.now()){} - } - - module.exports = sleep - -} diff --git a/build/node_modules/atomic-sleep/package.json b/build/node_modules/atomic-sleep/package.json deleted file mode 100644 index cfdf200f..00000000 --- a/build/node_modules/atomic-sleep/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "atomic-sleep", - "version": "1.0.0", - "description": "Zero CPU overhead, zero dependency, true event-loop blocking sleep", - "main": "index.js", - "scripts": { - "test": "tap -R classic- -j1 test", - "lint": "standard", - "ci": "npm run lint && npm test" - }, - "keywords": [ - "sleep", - "pause", - "wait", - "performance", - "atomics" - ], - "engines": { - "node": ">=8.0.0" - }, - "author": "David Mark Clements (@davidmarkclem)", - "license": "MIT", - "devDependencies": { - "standard": "^14.3.1", - "tap": "^14.10.6", - "tape": "^4.13.2" - }, - "dependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/davidmarkclements/atomic-sleep.git" - }, - "bugs": { - "url": "https://github.com/davidmarkclements/atomic-sleep/issues" - }, - "homepage": "https://github.com/davidmarkclements/atomic-sleep#readme" -} diff --git a/build/node_modules/atomic-sleep/readme.md b/build/node_modules/atomic-sleep/readme.md deleted file mode 100644 index 3cdd91be..00000000 --- a/build/node_modules/atomic-sleep/readme.md +++ /dev/null @@ -1,58 +0,0 @@ -

Welcome to atomic-sleep ⏱️

-

- Version - - License: MIT - - - Twitter: davidmarkclem - -

- -> Zero CPU overhead, zero dependency, true event-loop blocking sleep - -## Usage - -```js -const sleep = require('atomic-sleep') - -console.time('sleep') -setTimeout(() => { console.timeEnd('sleep') }, 100) -sleep(1000) -``` - -The `console.time` will report a time of just over 1000ms despite the `setTimeout` -being 100ms. This is because the event loop is paused for 1000ms and the setTimeout -fires immediately after the event loop is no longer blocked (as more than 100ms have passed). - -## Install - -```sh -npm install -``` - -## Run tests - -```sh -npm test -``` - -## Support - -Node and Browser versions that support both `SharedArrayBuffer` and `Atomics` will have (virtually) zero CPU overhead sleep. - -For Node, Atomic Sleep can provide zero CPU overhead sleep from Node 8 and up. - -For browser support see https://caniuse.com/#feat=sharedarraybuffer and https://caniuse.com/#feat=mdn-javascript_builtins_atomics. - - -For older Node versions and olders browsers we fall back to blocking the event loop in a way that will cause a CPU spike. - - - -## Author - -👤 **David Mark Clements (@davidmarkclem)** - -* Twitter: [@davidmarkclem](https://twitter.com/davidmarkclem) -* Github: [@davidmarkclements](https://github.com/davidmarkclements) diff --git a/build/node_modules/atomic-sleep/test.js b/build/node_modules/atomic-sleep/test.js deleted file mode 100644 index 0020daa2..00000000 --- a/build/node_modules/atomic-sleep/test.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict' -const test = require('tape') -const sleep = require('.') - -test('blocks event loop for given amount of milliseconds', ({ is, end }) => { - const now = Date.now() - setTimeout(() => { - const delta = Date.now() - now - const fuzzyDelta = Math.floor(delta / 10) * 10 // allow up to 10ms of execution lag - is(fuzzyDelta, 1000) - end() - }, 100) - sleep(1000) -}) - -if (typeof BigInt !== 'undefined') { - - test('allows ms to be supplied as a BigInt number', ({ is, end }) => { - const now = Date.now() - setTimeout(() => { - const delta = Date.now() - now - const fuzzyDelta = Math.floor(delta / 10) * 10 // allow up to 10ms of execution lag - is(fuzzyDelta, 1000) - end() - }, 100) - sleep(BigInt(1000)) // avoiding n notation as this will error on legacy node/browsers - }) - -} - -test('throws range error if ms less than 0', ({ throws, end }) => { - throws(() => sleep(-1), RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity')) - end() -}) - -test('throws range error if ms is Infinity', ({ throws, end }) => { - throws(() => sleep(Infinity), RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity')) - end() -}) - -test('throws range error if ms is not a number or bigint', ({ throws, end }) => { - throws(() => sleep('Infinity'), TypeError('sleep: ms must be a number')) - throws(() => sleep('foo'), TypeError('sleep: ms must be a number')) - throws(() => sleep({a: 1}), TypeError('sleep: ms must be a number')) - throws(() => sleep([1,2,3]), TypeError('sleep: ms must be a number')) - end() -}) \ No newline at end of file diff --git a/build/node_modules/babel-code-frame/.npmignore b/build/node_modules/babel-code-frame/.npmignore deleted file mode 100644 index 47cdd2c6..00000000 --- a/build/node_modules/babel-code-frame/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -src -test -node_modules diff --git a/build/node_modules/babel-code-frame/README.md b/build/node_modules/babel-code-frame/README.md deleted file mode 100644 index 7ef5368d..00000000 --- a/build/node_modules/babel-code-frame/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# babel-code-frame - -> Generate errors that contain a code frame that point to source locations. - -## Install - -```sh -npm install --save-dev babel-code-frame -``` - -## Usage - -```js -import codeFrame from 'babel-code-frame'; - -const rawLines = `class Foo { - constructor() -}`; -const lineNumber = 2; -const colNumber = 16; - -const result = codeFrame(rawLines, lineNumber, colNumber, { /* options */ }); - -console.log(result); -``` - -```sh - 1 | class Foo { -> 2 | constructor() - | ^ - 3 | } -``` - -If the column number is not known, you may pass `null` instead. - -## Options - -### `highlightCode` - -`boolean`, defaults to `false`. - -Toggles syntax highlighting the code as JavaScript for terminals. - -### `linesAbove` - -`number`, defaults to `2`. - -Adjust the number of lines to show above the error. - -### `linesBelow` - -`number`, defaults to `3`. - -Adjust the number of lines to show below the error. - -### `forceColor` - -`boolean`, defaults to `false`. - -Enable this to forcibly syntax highlight the code as JavaScript (for non-terminals); overrides `highlightCode`. diff --git a/build/node_modules/babel-code-frame/package-lock.json b/build/node_modules/babel-code-frame/package-lock.json deleted file mode 100644 index 272104b2..00000000 --- a/build/node_modules/babel-code-frame/package-lock.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "babel-code-frame", - "version": "6.22.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } -} diff --git a/build/node_modules/babel-code-frame/package.json b/build/node_modules/babel-code-frame/package.json deleted file mode 100644 index 7cf9346c..00000000 --- a/build/node_modules/babel-code-frame/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "babel-code-frame", - "version": "6.26.0", - "description": "Generate errors that contain a code frame that point to source locations.", - "author": "Sebastian McKenzie ", - "homepage": "https://babeljs.io/", - "license": "MIT", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame", - "main": "lib/index.js", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } -} diff --git a/build/node_modules/babel-loader/CHANGELOG.md b/build/node_modules/babel-loader/CHANGELOG.md deleted file mode 100644 index 0dc39044..00000000 --- a/build/node_modules/babel-loader/CHANGELOG.md +++ /dev/null @@ -1,169 +0,0 @@ -# Changelog - -For changes in version v7.0.0 and up please go to [release](https://github.com/babel/babel-loader/releases) - -# Old Changelog - -## v6.4.1 - -### 🐛 Bug Fix - -- Fixed reset of BABEL_ENV when options.forceEnv is used (#420) @nikopavlica - -## v6.4.0 - -### 🚀 New Feature - -- added metadata passing from babel to webpack, which is currently used by react-intl (#398) @Ognian - -## v6.3.2 - -### 😢 Regression - -- `forceEnv` was interfering with regular environment handling - -## v6.3.1 - -### 🐛 Bug Fix - - - The new `forceEnv` options wasn't working as expected (#379) @chrisvasz - -## v6.3.0 - -### 🚀 New Feature - -- Add new config option `forceEnv` (#368) @moimael - -Allow to override BABEL_ENV/NODE_ENV at loader-level. Useful for isomorphic applications which have separate babel config for client and server. - -### 🐛 Bug Fix - -- Update loader-utils dependency to ^0.2.16 to fix compatibility with webpack 2 (#371) @leonaves - -### 💅 Polish - -- Improve FS caching to do less sync calls which improves performance slightly (#375) @akx - -## v6.2.10 - -Support for webpack 2.2-rc has been added in this release - -### 🐛 Bug Fix - -- If cache directory not writable, try to fallback to tmpdir before failing - -## v6.2.9 - -### 😢 Regression - -Source maps on windows did not work correctly with v6.2.8. -Thanks @josephst - -### 🏠 Internal - -- Add AppVeyor to run tests on windows @danez -- Fix tests on windows (#343) @danez - -## v6.2.8 - -### 🐛 Bug Fix - -- gzipped files should have `.gz` as the extension, not `.gzip` (#326) @bjornstar -- fix options.sourceFileName gennerate bug (#260) @creeperyang - -### 📝 Documentation - -- Update README docs for cacheDirectory's actual behaviour (#245) @sohkai -- updates docs re: transform-runtime (#197) @gbrassey - -### 🏠 Internal - -- Use eslint and nyc (#321) @danez -- Adjust travis config (#320) @danez -- Use babel to compile babel-loader (#319) @danez - -## v6.2.7 - -### 😢 Regression - -Fallback to `os.tmpdir()` if no cachedir found (#318) (fixes #317) @danez - -Fixes an issue with v6.2.6 when using `babel-loader` as a global package. - -## v6.2.6 - -### 🐛 Bug Fix - -- Use standard cache dir as default `cacheDirectory` (#301) @fson - -Use the common cache directory, `./node_modules/.cache/babel-loader`, as the default cache directory (when the cacheDirectory setting is enabled). - -```js -query: { - cacheDirectory: true -} -``` - -## v6.2.5 - -- Don't show the call stack for a Babel error (such as when you have a syntax error) - -screenshot 2016-08-15 15 24 37 - -- resolve the .babelrc relative to the file path rather than the cwd (current working directory). - - * fix: more concise formatting for Babel errors (#287) (Andrey Popp) - * fix(resolve-rc): resolve-rc relative file path (#253) (Luke Page) - * add babel-core and preset-2015 to dev dependencies (#273) (timse) - * chore(docs): add issue and pr templates (#280) (Joshua Wiens) - * chore(docs): fix badge formatting (Joshua Wiens) - * chore(ci): expand travis testing (#278) (Joshua Wiens) - * Update README: add env vars to cacheIdentifier (#267) (Dominik Ferber) - * add npm badge [skip ci] (Henry Zhu) - * update [skip ci] (Henry Zhu) - * remove jsx references as well [skip ci] (Henry Zhu) - * Save the transform to devDependencies (Ray Booysen) - * Remove 'react' preset (Jake Rios) - * Removed babel-preset-react from README.md (Ben Stephenson) - -## v6.2.4 - * change allowed peer deps (all webpack 2 beta versions) - -## v6.2.3 - * change allowed peer deps (2.0.7-beta) - -## v6.2.2 - * Update peerDependencies to accept webpack 2 [#208](https://github.com/babel/babel-loader/pull/208) - * Remove duplicated dependencies - -## v6.2.0 - * Pass true filenames [#106](https://github.com/babel/babel-loader/issues/106) - * Remove babel-core from devDependencies - -## v6.1.0 - - * Merge [PR #146](https://github.com/babel/babel-loader/pull/146) Set source file name relative to options.sourceRoot - * Merge [PR #136](https://github.com/babel/babel-loader/pull/136) use container-based infrastructure for faster build - * Merge [PR #121](https://github.com/babel/babel-loader/pull/121) Make babelrc configurable - * Merge [PR #113](https://github.com/babel/babel-loader/pull/113) Include BABEL_ENV || NODE_ENV in cacheIdentifier - -## v6.0.1 - - * Update to babel v6. - -## v5.3.1 - - * Merge [PR #85](https://github.com/babel/babel-loader/pull/85) - Don't override sourcemap if sourcesContent already exists. - - -## v5.3.1 - - * Merge [PR #82](https://github.com/babel/babel-loader/pull/82) - Fallback global options to empty object to avoid conflicts with object-assign polyfill. - -## v5.3.0 - - * Merge [PR #79](https://github.com/babel/babel-loader/pull/79) - This should allow babel-loader to work with [enhanced-require](https://github.com/webpack/enhanced-require). - -## v5.2.0 - - * Include `.babelrc` file into the `cacheIdentifier` if it exists diff --git a/build/node_modules/babel-loader/LICENSE b/build/node_modules/babel-loader/LICENSE deleted file mode 100644 index cc61e19a..00000000 --- a/build/node_modules/babel-loader/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2014-2019 Luís Couto - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/babel-loader/README.md b/build/node_modules/babel-loader/README.md deleted file mode 100644 index 33ebb7e6..00000000 --- a/build/node_modules/babel-loader/README.md +++ /dev/null @@ -1,400 +0,0 @@ -> This README is for babel-loader v8 + Babel v7 -> If you are using legacy Babel v6, see the [7.x branch](https://github.com/babel/babel-loader/tree/7.x) docs - -[![NPM Status](https://img.shields.io/npm/v/babel-loader.svg?style=flat)](https://www.npmjs.com/package/babel-loader) -[![codecov](https://codecov.io/gh/babel/babel-loader/branch/main/graph/badge.svg)](https://codecov.io/gh/babel/babel-loader) - - - -

Babel Loader

- -This package allows transpiling JavaScript files using [Babel](https://github.com/babel/babel) and [webpack](https://github.com/webpack/webpack). - -**Note**: Issues with the output should be reported on the Babel [Issues](https://github.com/babel/babel/issues) tracker. - -

Install

- -> webpack `4.x || 5.x` | babel-loader 8.x | babel 7.x - -```bash -npm install -D babel-loader @babel/core @babel/preset-env webpack -``` - -

Usage

- -webpack documentation: [Loaders](https://webpack.js.org/loaders/) - -Within your webpack configuration object, you'll need to add the babel-loader to the list of modules, like so: - -```javascript -module: { - rules: [ - { - test: /\.m?js$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: [ - ['@babel/preset-env', { targets: "defaults" }] - ] - } - } - } - ] -} -``` - -### Options - -See the `babel` [options](https://babeljs.io/docs/en/options). - -You can pass options to the loader by using the [`options`](https://webpack.js.org/configuration/module/#ruleoptions--rulequery) property: - -```javascript -module: { - rules: [ - { - test: /\.m?js$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: [ - ['@babel/preset-env', { targets: "defaults" }] - ], - plugins: ['@babel/plugin-proposal-class-properties'] - } - } - } - ] -} -``` - -This loader also supports the following loader-specific option: - -* `cacheDirectory`: Default `false`. When set, the given directory will be used to cache the results of the loader. Future webpack builds will attempt to read from the cache to avoid needing to run the potentially expensive Babel recompilation process on each run. If the value is set to `true` in options (`{cacheDirectory: true}`), the loader will use the default cache directory in `node_modules/.cache/babel-loader` or fallback to the default OS temporary file directory if no `node_modules` folder could be found in any root directory. - -* `cacheIdentifier`: Default is a string composed by the `@babel/core`'s version, the `babel-loader`'s version, the contents of `.babelrc` file if it exists, and the value of the environment variable `BABEL_ENV` with a fallback to the `NODE_ENV` environment variable. This can be set to a custom value to force cache busting if the identifier changes. - -* `cacheCompression`: Default `true`. When set, each Babel transform output will be compressed with Gzip. If you want to opt-out of cache compression, set it to `false` -- your project may benefit from this if it transpiles thousands of files. - -* `customize`: Default `null`. The path of a module that exports a `custom` callback [like the one that you'd pass to `.custom()`](#customized-loader). Since you already have to make a new file to use this, it is recommended that you instead use `.custom` to create a wrapper loader. Only use this if you _must_ continue using `babel-loader` directly, but still want to customize. - -* `metadataSubscribers`: Default `[]`. Takes an array of context function names. E.g. if you passed ['myMetadataPlugin'], you'd assign a subscriber function to `context.myMetadataPlugin` within your webpack plugin's hooks & that function will be called with `metadata`. - -## Troubleshooting - -### babel-loader is slow! - -Make sure you are transforming as few files as possible. Because you are probably matching `/\.m?js$/`, you might be transforming the `node_modules` folder or other unwanted source. - -To exclude `node_modules`, see the `exclude` option in the `loaders` config as documented above. - -You can also speed up babel-loader by as much as 2x by using the `cacheDirectory` option. This will cache transformations to the filesystem. - -### Some files in my node_modules are not transpiled for IE 11 - -Although we typically recommend not compiling `node_modules`, you may need to when using libraries that do not support IE 11. - -For this, you can either use a combination of `test` and `not`, or [pass a function](https://webpack.js.org/configuration/module/#condition) to your `exclude` option. You can also use negative lookahead regex as suggested [here](https://github.com/webpack/webpack/issues/2031#issuecomment-294706065). - -```javascript -{ - test: /\.m?js$/, - exclude: { - and: [/node_modules/], // Exclude libraries in node_modules ... - not: [ - // Except for a few of them that needs to be transpiled because they use modern syntax - /unfetch/, - /d3-array|d3-scale/, - /@hapi[\\/]joi-date/, - ] - }, - use: { - loader: 'babel-loader', - options: { - presets: [ - ['@babel/preset-env', { targets: "ie 11" }] - ] - } - } - } -``` - -### Babel is injecting helpers into each file and bloating my code! - -Babel uses very small helpers for common functions such as `_extend`. By default, this will be added to every file that requires it. - -You can instead require the Babel runtime as a separate module to avoid the duplication. - -The following configuration disables automatic per-file runtime injection in Babel, requiring `@babel/plugin-transform-runtime` instead and making all helper references use it. - -See the [docs](https://babeljs.io/docs/plugins/transform-runtime/) for more information. - -**NOTE**: You must run `npm install -D @babel/plugin-transform-runtime` to include this in your project and `@babel/runtime` itself as a dependency with `npm install @babel/runtime`. - -```javascript -rules: [ - // the 'transform-runtime' plugin tells Babel to - // require the runtime instead of inlining it. - { - test: /\.m?js$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: [ - ['@babel/preset-env', { targets: "defaults" }] - ], - plugins: ['@babel/plugin-transform-runtime'] - } - } - } -] -``` - -#### **NOTE**: transform-runtime & custom polyfills (e.g. Promise library) - -Since [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-runtime) includes a polyfill that includes a custom [regenerator-runtime](https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js) and [core-js](https://github.com/zloirock/core-js), the following usual shimming method using `webpack.ProvidePlugin` will not work: - -```javascript -// ... - new webpack.ProvidePlugin({ - 'Promise': 'bluebird' - }), -// ... -``` - -The following approach will not work either: - -```javascript -require('@babel/runtime/core-js/promise').default = require('bluebird'); - -var promise = new Promise; -``` - -which outputs to (using `runtime`): - -```javascript -'use strict'; - -var _Promise = require('@babel/runtime/core-js/promise')['default']; - -require('@babel/runtime/core-js/promise')['default'] = require('bluebird'); - -var promise = new _Promise(); -``` - -The previous `Promise` library is referenced and used before it is overridden. - -One approach is to have a "bootstrap" step in your application that would first override the default globals before your application: - -```javascript -// bootstrap.js - -require('@babel/runtime/core-js/promise').default = require('bluebird'); - -// ... - -require('./app'); -``` - -### The Node.js API for `babel` has been moved to `babel-core`. - -If you receive this message, it means that you have the npm package `babel` installed and are using the short notation of the loader in the webpack config (which is not valid anymore as of webpack 2.x): -```javascript - { - test: /\.m?js$/, - loader: 'babel', - } -``` - -webpack then tries to load the `babel` package instead of the `babel-loader`. - -To fix this, you should uninstall the npm package `babel`, as it is deprecated in Babel v6. (Instead, install `@babel/cli` or `@babel/core`.) -In the case one of your dependencies is installing `babel` and you cannot uninstall it yourself, use the complete name of the loader in the webpack config: -```javascript - { - test: /\.m?js$/, - loader: 'babel-loader', - } -``` - -### Exclude libraries that should not be transpiled - -`core-js` and `webpack/buildin` will cause errors if they are transpiled by Babel. - -You will need to exclude them form `babel-loader`. - -```js -{ - "loader": "babel-loader", - "options": { - "exclude": [ - // \\ for Windows, / for macOS and Linux - /node_modules[\\/]core-js/, - /node_modules[\\/]webpack[\\/]buildin/, - ], - "presets": [ - "@babel/preset-env" - ] - } -} -``` - -### Top level function (IIFE) is still arrow (on Webpack 5) - -That function is injected by Webpack itself _after_ running `babel-loader`. By default Webpack asumes that your target environment supports some ES2015 features, but you can overwrite this behavior using the `output.environment` Webpack option ([documentation](https://webpack.js.org/configuration/output/#outputenvironment)). - -To avoid the top-level arrow function, you can use `output.environment.arrowFunction`: - -```js -// webpack.config.js -module.exports = { - // ... - output: { - // ... - environment: { - // ... - arrowFunction: false, // <-- this line does the trick - }, - }, -}; -``` - -## Customize config based on webpack target - -Webpack supports bundling multiple [targets](https://webpack.js.org/concepts/targets/). For cases where you may want different Babel configurations for each target (like `web` _and_ `node`), this loader provides a `target` property via Babel's [caller](https://babeljs.io/docs/en/config-files#apicallercb) API. - -For example, to change the environment targets passed to `@babel/preset-env` based on the webpack target: - -```javascript -// babel.config.js - -module.exports = api => { - return { - plugins: [ - "@babel/plugin-proposal-nullish-coalescing-operator", - "@babel/plugin-proposal-optional-chaining" - ], - presets: [ - [ - "@babel/preset-env", - { - useBuiltIns: "entry", - // caller.target will be the same as the target option from webpack - targets: api.caller(caller => caller && caller.target === "node") - ? { node: "current" } - : { chrome: "58", ie: "11" } - } - ] - ] - } -} -``` - -## Customized Loader - -`babel-loader` exposes a loader-builder utility that allows users to add custom handling -of Babel's configuration for each file that it processes. - -`.custom` accepts a callback that will be called with the loader's instance of -`babel` so that tooling can ensure that it using exactly the same `@babel/core` -instance as the loader itself. - -In cases where you want to customize without actually having a file to call `.custom`, you -may also pass the `customize` option with a string pointing at a file that exports -your `custom` callback function. - -### Example - -```js -// Export from "./my-custom-loader.js" or whatever you want. -module.exports = require("babel-loader").custom(babel => { - function myPlugin() { - return { - visitor: {}, - }; - } - - return { - // Passed the loader options. - customOptions({ opt1, opt2, ...loader }) { - return { - // Pull out any custom options that the loader might have. - custom: { opt1, opt2 }, - - // Pass the options back with the two custom options removed. - loader, - }; - }, - - // Passed Babel's 'PartialConfig' object. - config(cfg) { - if (cfg.hasFilesystemConfig()) { - // Use the normal config - return cfg.options; - } - - return { - ...cfg.options, - plugins: [ - ...(cfg.options.plugins || []), - - // Include a custom plugin in the options. - myPlugin, - ], - }; - }, - - result(result) { - return { - ...result, - code: result.code + "\n// Generated by some custom loader", - }; - }, - }; -}); -``` - -```js -// And in your Webpack config -module.exports = { - // .. - module: { - rules: [{ - // ... - loader: path.join(__dirname, 'my-custom-loader.js'), - // ... - }] - } -}; -``` - -### `customOptions(options: Object): { custom: Object, loader: Object }` - -Given the loader's options, split custom options out of `babel-loader`'s -options. - - -### `config(cfg: PartialConfig): Object` - -Given Babel's `PartialConfig` object, return the `options` object that should -be passed to `babel.transform`. - - -### `result(result: Result): Result` - -Given Babel's result object, allow loaders to make additional tweaks to it. - - -## License -[MIT](https://couto.mit-license.org/) diff --git a/build/node_modules/babel-loader/package.json b/build/node_modules/babel-loader/package.json deleted file mode 100644 index fd570e12..00000000 --- a/build/node_modules/babel-loader/package.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "name": "babel-loader", - "version": "8.3.0", - "description": "babel module loader for webpack", - "files": [ - "lib" - ], - "main": "lib/index.js", - "engines": { - "node": ">= 8.9" - }, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - }, - "devDependencies": { - "@ava/babel": "^1.0.1", - "@babel/cli": "^7.19.3", - "@babel/core": "^7.19.6", - "@babel/preset-env": "^7.19.4", - "ava": "^3.13.0", - "babel-eslint": "^10.0.1", - "babel-plugin-istanbul": "^6.0.0", - "babel-plugin-react-intl": "^8.2.15", - "cross-env": "^7.0.2", - "eslint": "^7.13.0", - "eslint-config-babel": "^9.0.0", - "eslint-config-prettier": "^6.3.0", - "eslint-plugin-flowtype": "^5.2.0", - "eslint-plugin-prettier": "^3.0.0", - "husky": "^4.3.0", - "lint-staged": "^10.5.1", - "nyc": "^15.1.0", - "pnp-webpack-plugin": "^1.6.4", - "prettier": "^2.1.2", - "react": "^17.0.1", - "react-intl": "^5.9.4", - "react-intl-webpack-plugin": "^0.3.0", - "rimraf": "^3.0.0", - "semver": "7.3.2", - "webpack": "^5.34.0" - }, - "scripts": { - "clean": "rimraf lib/", - "build": "babel src/ --out-dir lib/ --copy-files", - "format": "prettier --write --trailing-comma all 'src/**/*.js' 'test/**/*.test.js' 'test/helpers/*.js' && prettier --write --trailing-comma es5 'scripts/*.js'", - "lint": "eslint src test", - "precommit": "lint-staged", - "prepublish": "yarn run clean && yarn run build", - "preversion": "yarn run test", - "test": "yarn run lint && cross-env BABEL_ENV=test yarn run build && yarn run test-only", - "test-only": "nyc ava" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel-loader.git" - }, - "keywords": [ - "webpack", - "loader", - "babel", - "es6", - "transpiler", - "module" - ], - "author": "Luis Couto ", - "license": "MIT", - "bugs": { - "url": "https://github.com/babel/babel-loader/issues" - }, - "homepage": "https://github.com/babel/babel-loader", - "nyc": { - "all": true, - "include": [ - "src/**/*.js" - ], - "reporter": [ - "text", - "json" - ], - "sourceMap": false, - "instrument": false - }, - "ava": { - "files": [ - "test/**/*.test.js", - "!test/fixtures/**/*", - "!test/helpers/**/*" - ], - "babel": { - "compileAsTests": [ - "test/helpers/**/*" - ] - } - }, - "lint-staged": { - "scripts/*.js": [ - "prettier --trailing-comma es5 --write", - "git add" - ], - "src/**/*.js": [ - "prettier --trailing-comma all --write", - "git add" - ], - "test/**/*.test.js": [ - "prettier --trailing-comma all --write", - "git add" - ], - "test/helpers/*.js": [ - "prettier --trailing-comma all --write", - "git add" - ], - "package.json": [ - "node ./scripts/yarn-install.js", - "git add yarn.lock" - ] - }, - "resolutions": { - "nyc/node-preload": "0.2.0" - } -} \ No newline at end of file diff --git a/build/node_modules/babel-plugin-polyfill-corejs2/LICENSE b/build/node_modules/babel-plugin-polyfill-corejs2/LICENSE deleted file mode 100644 index b74971fe..00000000 --- a/build/node_modules/babel-plugin-polyfill-corejs2/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Nicolò Ribaudo and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/babel-plugin-polyfill-corejs2/README.md b/build/node_modules/babel-plugin-polyfill-corejs2/README.md deleted file mode 100644 index c5dfdc5c..00000000 --- a/build/node_modules/babel-plugin-polyfill-corejs2/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# babel-plugin-polyfill-corejs2 - -## Install - -Using npm: - -```sh -npm install --save-dev babel-plugin-polyfill-corejs2 -``` - -or using yarn: - -```sh -yarn add babel-plugin-polyfill-corejs2 --dev -``` - -## Usage - -Add this plugin to your Babel configuration: - -```json -{ - "plugins": [["polyfill-corejs2", { "method": "usage-global" }]] -} -``` - -This package supports the `usage-pure`, `usage-global`, and `entry-global` methods. -When `entry-global` is used, it replaces imports to `core-js`. diff --git a/build/node_modules/babel-plugin-polyfill-corejs2/package.json b/build/node_modules/babel-plugin-polyfill-corejs2/package.json deleted file mode 100644 index f31bd339..00000000 --- a/build/node_modules/babel-plugin-polyfill-corejs2/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "babel-plugin-polyfill-corejs2", - "version": "0.4.6", - "description": "A Babel plugin to inject imports to core-js@2 polyfills", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel-polyfills.git", - "directory": "packages/babel-plugin-polyfill-corejs2" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "lib/index.js", - "exports": { - ".": [ - { - "import": "./esm/index.mjs", - "default": "./lib/index.js" - }, - "./lib/index.js" - ], - "./package.json": "./package.json" - }, - "keywords": [ - "babel-plugin" - ], - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "devDependencies": { - "@babel/core": "^7.22.6", - "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - }, - "gitHead": "66a6819f44a57152798cb3b0a9272c65752bae86" -} \ No newline at end of file diff --git a/build/node_modules/babel-plugin-polyfill-corejs3/LICENSE b/build/node_modules/babel-plugin-polyfill-corejs3/LICENSE deleted file mode 100644 index b74971fe..00000000 --- a/build/node_modules/babel-plugin-polyfill-corejs3/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Nicolò Ribaudo and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/babel-plugin-polyfill-corejs3/README.md b/build/node_modules/babel-plugin-polyfill-corejs3/README.md deleted file mode 100644 index b7281ea6..00000000 --- a/build/node_modules/babel-plugin-polyfill-corejs3/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# babel-plugin-polyfill-corejs3 - -## Install - -Using npm: - -```sh -npm install --save-dev babel-plugin-polyfill-corejs3 -``` - -or using yarn: - -```sh -yarn add babel-plugin-polyfill-corejs3 --dev -``` - -## Usage - -Add this plugin to your Babel configuration: - -```json -{ - "plugins": [["polyfill-corejs3", { "method": "usage-global", "version": "3.20" }]] -} -``` - -This package supports the `usage-pure`, `usage-global`, and `entry-global` methods. -When `entry-global` is used, it replaces imports to `core-js`. - -## Options - -See [here](../../docs/usage.md#options) for a list of options supported by every polyfill provider. - -### `version` - -`string`, defaults to `"3.0"`. - -This option only has an effect when used alongside `"method": "usage-global"` or `"method": "usage-pure"`. It is recommended to specify the minor version you are using as `core-js@3.0` may not include polyfills for the latest features. If you are bundling an app, you can provide the version directly from your node modules: - -```js -{ - plugins: [ - ["polyfill-corejs3", { - "method": "usage-pure", - // use `core-js/package.json` if you are using `usage-global` - "version": require("core-js-pure/package.json").version - }] - ] -} -``` - -If you are a library author, specify a reasonably modern `core-js` version in your -`package.json` and provide the plugin the minimal supported version. - -```json -{ - "dependencies": { - "core-js": "^3.20.0" - } -} -``` -```js -{ - plugins: [ - ["polyfill-corejs3", { - "method": "usage-global", - // improvise if you have more complicated version spec, e.g. > 3.1.4 - "version": require("./package.json").dependencies["core-js"] - }] - ] -} -``` - -### `proposals` - -`boolean`, defaults to `false`. - -This option only has an effect when used alongside `"method": "usage-global"` or `"method": "usage-pure"`. When `proposals` are `true`, any ES proposal supported by core-js will be polyfilled as well. \ No newline at end of file diff --git a/build/node_modules/babel-plugin-polyfill-corejs3/package.json b/build/node_modules/babel-plugin-polyfill-corejs3/package.json deleted file mode 100644 index 2c97b41e..00000000 --- a/build/node_modules/babel-plugin-polyfill-corejs3/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "babel-plugin-polyfill-corejs3", - "version": "0.8.6", - "description": "A Babel plugin to inject imports to core-js@3 polyfills", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel-polyfills.git", - "directory": "packages/babel-plugin-polyfill-corejs3" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "lib/index.js", - "exports": { - ".": [ - { - "import": "./esm/index.mjs", - "default": "./lib/index.js" - }, - "./lib/index.js" - ], - "./package.json": "./package.json" - }, - "keywords": [ - "babel-plugin" - ], - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "devDependencies": { - "@babel/core": "^7.22.6", - "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-proposal-decorators": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-runtime": "^7.22.15", - "@babel/plugin-transform-spread": "^7.22.5", - "core-js": "^3.33.1", - "core-js-pure": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - }, - "gitHead": "2a85015c295d2e0256e5d60f595c1f6368861f04" -} \ No newline at end of file diff --git a/build/node_modules/babel-plugin-polyfill-regenerator/LICENSE b/build/node_modules/babel-plugin-polyfill-regenerator/LICENSE deleted file mode 100644 index b74971fe..00000000 --- a/build/node_modules/babel-plugin-polyfill-regenerator/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Nicolò Ribaudo and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/babel-plugin-polyfill-regenerator/README.md b/build/node_modules/babel-plugin-polyfill-regenerator/README.md deleted file mode 100644 index e40b692e..00000000 --- a/build/node_modules/babel-plugin-polyfill-regenerator/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# babel-plugin-polyfill-regenerator - -## Install - -Using npm: - -```sh -npm install --save-dev babel-plugin-polyfill-regenerator -``` - -or using yarn: - -```sh -yarn add babel-plugin-polyfill-regenerator --dev -``` - -## Usage - -Add this plugin to your Babel configuration: - -```json -{ - "plugins": [["polyfill-regenerator", { "method": "usage-global" }]] -} -``` - -This package supports the `usage-pure`, `usage-global`, and `entry-global` methods. -When `entry-global` is used, it replaces imports to `regenerator-runtime`. diff --git a/build/node_modules/babel-plugin-polyfill-regenerator/package.json b/build/node_modules/babel-plugin-polyfill-regenerator/package.json deleted file mode 100644 index 20b67a78..00000000 --- a/build/node_modules/babel-plugin-polyfill-regenerator/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "babel-plugin-polyfill-regenerator", - "version": "0.5.3", - "description": "A Babel plugin to inject imports to regenerator-runtime", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel-polyfills.git", - "directory": "packages/babel-plugin-polyfill-regenerator" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "lib/index.js", - "exports": { - ".": [ - { - "import": "./esm/index.mjs", - "default": "./lib/index.js" - }, - "./lib/index.js" - ], - "./package.json": "./package.json" - }, - "keywords": [ - "babel-plugin" - ], - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "devDependencies": { - "@babel/core": "^7.17.8", - "@babel/helper-plugin-test-runner": "^7.16.7", - "@babel/plugin-transform-regenerator": "~7.14.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - }, - "gitHead": "66a6819f44a57152798cb3b0a9272c65752bae86" -} \ No newline at end of file diff --git a/build/node_modules/balanced-match/LICENSE.md b/build/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e41..00000000 --- a/build/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/balanced-match/README.md b/build/node_modules/balanced-match/README.md deleted file mode 100644 index d2a48b6b..00000000 --- a/build/node_modules/balanced-match/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## Security contact information - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/balanced-match/index.js b/build/node_modules/balanced-match/index.js deleted file mode 100644 index c67a6460..00000000 --- a/build/node_modules/balanced-match/index.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - if(a===b) { - return [ai, bi]; - } - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/build/node_modules/balanced-match/package.json b/build/node_modules/balanced-match/package.json deleted file mode 100644 index ce6073e0..00000000 --- a/build/node_modules/balanced-match/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "tape test/test.js", - "bench": "matcha test/bench.js" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - } -} diff --git a/build/node_modules/base/LICENSE b/build/node_modules/base/LICENSE deleted file mode 100644 index e33d14b7..00000000 --- a/build/node_modules/base/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/base/README.md b/build/node_modules/base/README.md deleted file mode 100644 index c77cdaf9..00000000 --- a/build/node_modules/base/README.md +++ /dev/null @@ -1,491 +0,0 @@ -

- - - -

- -# base [![NPM version](https://img.shields.io/npm/v/base.svg?style=flat)](https://www.npmjs.com/package/base) [![NPM monthly downloads](https://img.shields.io/npm/dm/base.svg?style=flat)](https://npmjs.org/package/base) [![NPM total downloads](https://img.shields.io/npm/dt/base.svg?style=flat)](https://npmjs.org/package/base) [![Linux Build Status](https://img.shields.io/travis/node-base/base.svg?style=flat&label=Travis)](https://travis-ci.org/node-base/base) - -> base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save base -``` - -## What is Base? - -Base is a framework for rapidly creating high quality node.js applications, using plugins like building blocks. - -### Guiding principles - -The core team follows these principles to help guide API decisions: - -* **Compact API surface**: The smaller the API surface, the easier the library will be to learn and use. -* **Easy to extend**: Implementors can use any npm package, and write plugins in pure JavaScript. If you're building complex apps, Base simplifies inheritance. -* **Easy to test**: No special setup should be required to unit test `Base` or base plugins - -### Minimal API surface - -[The API](#api) was designed to provide only the minimum necessary functionality for creating a useful application, with or without [plugins](#plugins). - -**Base core** - -Base itself ships with only a handful of [useful methods](#api), such as: - -* `.set`: for setting values on the instance -* `.get`: for getting values from the instance -* `.has`: to check if a property exists on the instance -* `.define`: for setting non-enumerable values on the instance -* `.use`: for adding plugins - -**Be generic** - -When deciding on method to add or remove, we try to answer these questions: - -1. Will all or most Base applications need this method? -2. Will this method encourage practices or enforce conventions that are beneficial to implementors? -3. Can or should this be done in a plugin instead? - -### Composability - -**Plugin system** - -It couldn't be easier to extend Base with any features or custom functionality you can think of. - -Base plugins are just functions that take an instance of `Base`: - -```js -var base = new Base(); - -function plugin(base) { - // do plugin stuff, in pure JavaScript -} -// use the plugin -base.use(plugin); -``` - -**Inheritance** - -Easily inherit Base using `.extend`: - -```js -var Base = require('base'); - -function MyApp() { - Base.call(this); -} -Base.extend(MyApp); - -var app = new MyApp(); -app.set('a', 'b'); -app.get('a'); -//=> 'b'; -``` - -**Inherit or instantiate with a namespace** - -By default, the `.get`, `.set` and `.has` methods set and get values from the root of the `base` instance. You can customize this using the `.namespace` method exposed on the exported function. For example: - -```js -var Base = require('base'); -// get and set values on the `base.cache` object -var base = Base.namespace('cache'); - -var app = base(); -app.set('foo', 'bar'); -console.log(app.cache.foo); -//=> 'bar' -``` - -## API - -**Usage** - -```js -var Base = require('base'); -var app = new Base(); -app.set('foo', 'bar'); -console.log(app.foo); -//=> 'bar' -``` - -### [Base](index.js#L44) - -Create an instance of `Base` with the given `config` and `options`. - -**Params** - -* `config` **{Object}**: If supplied, this object is passed to [cache-base](https://github.com/jonschlinkert/cache-base) to merge onto the the instance upon instantiation. -* `options` **{Object}**: If supplied, this object is used to initialize the `base.options` object. - -**Example** - -```js -// initialize with `config` and `options` -var app = new Base({isApp: true}, {abc: true}); -app.set('foo', 'bar'); - -// values defined with the given `config` object will be on the root of the instance -console.log(app.baz); //=> undefined -console.log(app.foo); //=> 'bar' -// or use `.get` -console.log(app.get('isApp')); //=> true -console.log(app.get('foo')); //=> 'bar' - -// values defined with the given `options` object will be on `app.options -console.log(app.options.abc); //=> true -``` - -### [.is](index.js#L107) - -Set the given `name` on `app._name` and `app.is*` properties. Used for doing lookups in plugins. - -**Params** - -* `name` **{String}** -* `returns` **{Boolean}** - -**Example** - -```js -app.is('foo'); -console.log(app._name); -//=> 'foo' -console.log(app.isFoo); -//=> true -app.is('bar'); -console.log(app.isFoo); -//=> true -console.log(app.isBar); -//=> true -console.log(app._name); -//=> 'bar' -``` - -### [.isRegistered](index.js#L145) - -Returns true if a plugin has already been registered on an instance. - -Plugin implementors are encouraged to use this first thing in a plugin -to prevent the plugin from being called more than once on the same -instance. - -**Params** - -* `name` **{String}**: The plugin name. -* `register` **{Boolean}**: If the plugin if not already registered, to record it as being registered pass `true` as the second argument. -* `returns` **{Boolean}**: Returns true if a plugin is already registered. - -**Events** - -* `emits`: `plugin` Emits the name of the plugin being registered. Useful for unit tests, to ensure plugins are only registered once. - -**Example** - -```js -var base = new Base(); -base.use(function(app) { - if (app.isRegistered('myPlugin')) return; - // do stuff to `app` -}); - -// to also record the plugin as being registered -base.use(function(app) { - if (app.isRegistered('myPlugin', true)) return; - // do stuff to `app` -}); -``` - -### [.use](index.js#L175) - -Define a plugin function to be called immediately upon init. Plugins are chainable and expose the following arguments to the plugin function: - -* `app`: the current instance of `Base` -* `base`: the [first ancestor instance](#base) of `Base` - -**Params** - -* `fn` **{Function}**: plugin function to call -* `returns` **{Object}**: Returns the item instance for chaining. - -**Example** - -```js -var app = new Base() - .use(foo) - .use(bar) - .use(baz) -``` - -### [.define](index.js#L197) - -The `.define` method is used for adding non-enumerable property on the instance. Dot-notation is **not supported** with `define`. - -**Params** - -* `key` **{String}**: The name of the property to define. -* `value` **{any}** -* `returns` **{Object}**: Returns the instance for chaining. - -**Example** - -```js -// arbitrary `render` function using lodash `template` -app.define('render', function(str, locals) { - return _.template(str)(locals); -}); -``` - -### [.mixin](index.js#L222) - -Mix property `key` onto the Base prototype. If base is inherited using `Base.extend` this method will be overridden by a new `mixin` method that will only add properties to the prototype of the inheriting application. - -**Params** - -* `key` **{String}** -* `val` **{Object|Array}** -* `returns` **{Object}**: Returns the `base` instance for chaining. - -**Example** - -```js -app.mixin('foo', function() { - // do stuff -}); -``` - -### [.base](index.js#L268) - -Getter/setter used when creating nested instances of `Base`, for storing a reference to the first ancestor instance. This works by setting an instance of `Base` on the `parent` property of a "child" instance. The `base` property defaults to the current instance if no `parent` property is defined. - -**Example** - -```js -// create an instance of `Base`, this is our first ("base") instance -var first = new Base(); -first.foo = 'bar'; // arbitrary property, to make it easier to see what's happening later - -// create another instance -var second = new Base(); -// create a reference to the first instance (`first`) -second.parent = first; - -// create another instance -var third = new Base(); -// create a reference to the previous instance (`second`) -// repeat this pattern every time a "child" instance is created -third.parent = second; - -// we can always access the first instance using the `base` property -console.log(first.base.foo); -//=> 'bar' -console.log(second.base.foo); -//=> 'bar' -console.log(third.base.foo); -//=> 'bar' -// and now you know how to get to third base ;) -``` - -### [#use](index.js#L293) - -Static method for adding global plugin functions that will be added to an instance when created. - -**Params** - -* `fn` **{Function}**: Plugin function to use on each instance. -* `returns` **{Object}**: Returns the `Base` constructor for chaining - -**Example** - -```js -Base.use(function(app) { - app.foo = 'bar'; -}); -var app = new Base(); -console.log(app.foo); -//=> 'bar' -``` - -### [#extend](index.js#L337) - -Static method for inheriting the prototype and static methods of the `Base` class. This method greatly simplifies the process of creating inheritance-based applications. See [static-extend](https://github.com/jonschlinkert/static-extend) for more details. - -**Params** - -* `Ctor` **{Function}**: constructor to extend -* `methods` **{Object}**: Optional prototype properties to mix in. -* `returns` **{Object}**: Returns the `Base` constructor for chaining - -**Example** - -```js -var extend = cu.extend(Parent); -Parent.extend(Child); - -// optional methods -Parent.extend(Child, { - foo: function() {}, - bar: function() {} -}); -``` - -### [#mixin](index.js#L379) - -Used for adding methods to the `Base` prototype, and/or to the prototype of child instances. When a mixin function returns a function, the returned function is pushed onto the `.mixins` array, making it available to be used on inheriting classes whenever `Base.mixins()` is called (e.g. `Base.mixins(Child)`). - -**Params** - -* `fn` **{Function}**: Function to call -* `returns` **{Object}**: Returns the `Base` constructor for chaining - -**Example** - -```js -Base.mixin(function(proto) { - proto.foo = function(msg) { - return 'foo ' + msg; - }; -}); -``` - -### [#mixins](index.js#L401) - -Static method for running global mixin functions against a child constructor. Mixins must be registered before calling this method. - -**Params** - -* `Child` **{Function}**: Constructor function of a child class -* `returns` **{Object}**: Returns the `Base` constructor for chaining - -**Example** - -```js -Base.extend(Child); -Base.mixins(Child); -``` - -### [#inherit](index.js#L420) - -Similar to `util.inherit`, but copies all static properties, prototype properties, and getters/setters from `Provider` to `Receiver`. See [class-utils](https://github.com/jonschlinkert/class-utils#inherit) for more details. - -**Params** - -* `Receiver` **{Function}**: Receiving (child) constructor -* `Provider` **{Function}**: Providing (parent) constructor -* `returns` **{Object}**: Returns the `Base` constructor for chaining - -**Example** - -```js -Base.inherit(Foo, Bar); -``` - -## In the wild - -The following node.js applications were built with `Base`: - -* [assemble](https://github.com/assemble/assemble) -* [verb](https://github.com/verbose/verb) -* [generate](https://github.com/generate/generate) -* [scaffold](https://github.com/jonschlinkert/scaffold) -* [boilerplate](https://github.com/jonschlinkert/boilerplate) - -## Test coverage - -``` -Statements : 98.91% ( 91/92 ) -Branches : 92.86% ( 26/28 ) -Functions : 100% ( 17/17 ) -Lines : 98.9% ( 90/91 ) -``` - -## History - -### v0.11.2 - -* fixes https://github.com/micromatch/micromatch/issues/99 - -### v0.11.0 - -**Breaking changes** - -* Static `.use` and `.run` methods are now non-enumerable - -### v0.9.0 - -**Breaking changes** - -* `.is` no longer takes a function, a string must be passed -* all remaining `.debug` code has been removed -* `app._namespace` was removed (related to `debug`) -* `.plugin`, `.use`, and `.define` no longer emit events -* `.assertPlugin` was removed -* `.lazy` was removed - -## About - -### Related projects - -* [base-cwd](https://www.npmjs.com/package/base-cwd): Base plugin that adds a getter/setter for the current working directory. | [homepage](https://github.com/node-base/base-cwd "Base plugin that adds a getter/setter for the current working directory.") -* [base-data](https://www.npmjs.com/package/base-data): adds a `data` method to base-methods. | [homepage](https://github.com/node-base/base-data "adds a `data` method to base-methods.") -* [base-fs](https://www.npmjs.com/package/base-fs): base-methods plugin that adds vinyl-fs methods to your 'base' application for working with the file… [more](https://github.com/node-base/base-fs) | [homepage](https://github.com/node-base/base-fs "base-methods plugin that adds vinyl-fs methods to your 'base' application for working with the file system, like src, dest, copy and symlink.") -* [base-generators](https://www.npmjs.com/package/base-generators): Adds project-generator support to your `base` application. | [homepage](https://github.com/node-base/base-generators "Adds project-generator support to your `base` application.") -* [base-option](https://www.npmjs.com/package/base-option): Adds a few options methods to base, like `option`, `enable` and `disable`. See the readme… [more](https://github.com/node-base/base-option) | [homepage](https://github.com/node-base/base-option "Adds a few options methods to base, like `option`, `enable` and `disable`. See the readme for the full API.") -* [base-pipeline](https://www.npmjs.com/package/base-pipeline): base-methods plugin that adds pipeline and plugin methods for dynamically composing streaming plugin pipelines. | [homepage](https://github.com/node-base/base-pipeline "base-methods plugin that adds pipeline and plugin methods for dynamically composing streaming plugin pipelines.") -* [base-pkg](https://www.npmjs.com/package/base-pkg): Plugin for adding a `pkg` method that exposes pkg-store to your base application. | [homepage](https://github.com/node-base/base-pkg "Plugin for adding a `pkg` method that exposes pkg-store to your base application.") -* [base-plugins](https://www.npmjs.com/package/base-plugins): Adds 'smart plugin' support to your base application. | [homepage](https://github.com/node-base/base-plugins "Adds 'smart plugin' support to your base application.") -* [base-questions](https://www.npmjs.com/package/base-questions): Plugin for base-methods that adds methods for prompting the user and storing the answers on… [more](https://github.com/node-base/base-questions) | [homepage](https://github.com/node-base/base-questions "Plugin for base-methods that adds methods for prompting the user and storing the answers on a project-by-project basis.") -* [base-store](https://www.npmjs.com/package/base-store): Plugin for getting and persisting config values with your base-methods application. Adds a 'store' object… [more](https://github.com/node-base/base-store) | [homepage](https://github.com/node-base/base-store "Plugin for getting and persisting config values with your base-methods application. Adds a 'store' object that exposes all of the methods from the data-store library. Also now supports sub-stores!") -* [base-task](https://www.npmjs.com/package/base-task): base plugin that provides a very thin wrapper around [https://github.com/doowb/composer](https://github.com/doowb/composer) for adding task methods to… [more](https://github.com/node-base/base-task) | [homepage](https://github.com/node-base/base-task "base plugin that provides a very thin wrapper around for adding task methods to your application.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 141 | [jonschlinkert](https://github.com/jonschlinkert) | -| 30 | [doowb](https://github.com/doowb) | -| 3 | [charlike](https://github.com/charlike) | -| 1 | [criticalmash](https://github.com/criticalmash) | -| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on September 07, 2017._ \ No newline at end of file diff --git a/build/node_modules/base/index.js b/build/node_modules/base/index.js deleted file mode 100644 index fb680481..00000000 --- a/build/node_modules/base/index.js +++ /dev/null @@ -1,435 +0,0 @@ -'use strict'; - -var util = require('util'); -var define = require('define-property'); -var CacheBase = require('cache-base'); -var Emitter = require('component-emitter'); -var isObject = require('isobject'); -var merge = require('mixin-deep'); -var pascal = require('pascalcase'); -var cu = require('class-utils'); - -/** - * Optionally define a custom `cache` namespace to use. - */ - -function namespace(name) { - var Cache = name ? CacheBase.namespace(name) : CacheBase; - var fns = []; - - /** - * Create an instance of `Base` with the given `config` and `options`. - * - * ```js - * // initialize with `config` and `options` - * var app = new Base({isApp: true}, {abc: true}); - * app.set('foo', 'bar'); - * - * // values defined with the given `config` object will be on the root of the instance - * console.log(app.baz); //=> undefined - * console.log(app.foo); //=> 'bar' - * // or use `.get` - * console.log(app.get('isApp')); //=> true - * console.log(app.get('foo')); //=> 'bar' - * - * // values defined with the given `options` object will be on `app.options - * console.log(app.options.abc); //=> true - * ``` - * - * @param {Object} `config` If supplied, this object is passed to [cache-base][] to merge onto the the instance upon instantiation. - * @param {Object} `options` If supplied, this object is used to initialize the `base.options` object. - * @api public - */ - - function Base(config, options) { - if (!(this instanceof Base)) { - return new Base(config, options); - } - Cache.call(this, config); - this.is('base'); - this.initBase(config, options); - } - - /** - * Inherit cache-base - */ - - util.inherits(Base, Cache); - - /** - * Add static emitter methods - */ - - Emitter(Base); - - /** - * Initialize `Base` defaults with the given `config` object - */ - - Base.prototype.initBase = function(config, options) { - this.options = merge({}, this.options, options); - this.cache = this.cache || {}; - this.define('registered', {}); - if (name) this[name] = {}; - - // make `app._callbacks` non-enumerable - this.define('_callbacks', this._callbacks); - if (isObject(config)) { - this.visit('set', config); - } - Base.run(this, 'use', fns); - }; - - /** - * Set the given `name` on `app._name` and `app.is*` properties. Used for doing - * lookups in plugins. - * - * ```js - * app.is('foo'); - * console.log(app._name); - * //=> 'foo' - * console.log(app.isFoo); - * //=> true - * app.is('bar'); - * console.log(app.isFoo); - * //=> true - * console.log(app.isBar); - * //=> true - * console.log(app._name); - * //=> 'bar' - * ``` - * @name .is - * @param {String} `name` - * @return {Boolean} - * @api public - */ - - Base.prototype.is = function(name) { - if (typeof name !== 'string') { - throw new TypeError('expected name to be a string'); - } - this.define('is' + pascal(name), true); - this.define('_name', name); - this.define('_appname', name); - return this; - }; - - /** - * Returns true if a plugin has already been registered on an instance. - * - * Plugin implementors are encouraged to use this first thing in a plugin - * to prevent the plugin from being called more than once on the same - * instance. - * - * ```js - * var base = new Base(); - * base.use(function(app) { - * if (app.isRegistered('myPlugin')) return; - * // do stuff to `app` - * }); - * - * // to also record the plugin as being registered - * base.use(function(app) { - * if (app.isRegistered('myPlugin', true)) return; - * // do stuff to `app` - * }); - * ``` - * @name .isRegistered - * @emits `plugin` Emits the name of the plugin being registered. Useful for unit tests, to ensure plugins are only registered once. - * @param {String} `name` The plugin name. - * @param {Boolean} `register` If the plugin if not already registered, to record it as being registered pass `true` as the second argument. - * @return {Boolean} Returns true if a plugin is already registered. - * @api public - */ - - Base.prototype.isRegistered = function(name, register) { - if (this.registered.hasOwnProperty(name)) { - return true; - } - if (register !== false) { - this.registered[name] = true; - this.emit('plugin', name); - } - return false; - }; - - /** - * Define a plugin function to be called immediately upon init. Plugins are chainable - * and expose the following arguments to the plugin function: - * - * - `app`: the current instance of `Base` - * - `base`: the [first ancestor instance](#base) of `Base` - * - * ```js - * var app = new Base() - * .use(foo) - * .use(bar) - * .use(baz) - * ``` - * @name .use - * @param {Function} `fn` plugin function to call - * @return {Object} Returns the item instance for chaining. - * @api public - */ - - Base.prototype.use = function(fn) { - fn.call(this, this); - return this; - }; - - /** - * The `.define` method is used for adding non-enumerable property on the instance. - * Dot-notation is **not supported** with `define`. - * - * ```js - * // arbitrary `render` function using lodash `template` - * app.define('render', function(str, locals) { - * return _.template(str)(locals); - * }); - * ``` - * @name .define - * @param {String} `key` The name of the property to define. - * @param {any} `value` - * @return {Object} Returns the instance for chaining. - * @api public - */ - - Base.prototype.define = function(key, val) { - if (isObject(key)) { - return this.visit('define', key); - } - define(this, key, val); - return this; - }; - - /** - * Mix property `key` onto the Base prototype. If base is inherited using - * `Base.extend` this method will be overridden by a new `mixin` method that will - * only add properties to the prototype of the inheriting application. - * - * ```js - * app.mixin('foo', function() { - * // do stuff - * }); - * ``` - * @name .mixin - * @param {String} `key` - * @param {Object|Array} `val` - * @return {Object} Returns the `base` instance for chaining. - * @api public - */ - - Base.prototype.mixin = function(key, val) { - Base.prototype[key] = val; - return this; - }; - - /** - * Non-enumberable mixin array, used by the static [Base.mixin]() method. - */ - - Base.prototype.mixins = Base.prototype.mixins || []; - - /** - * Getter/setter used when creating nested instances of `Base`, for storing a reference - * to the first ancestor instance. This works by setting an instance of `Base` on the `parent` - * property of a "child" instance. The `base` property defaults to the current instance if - * no `parent` property is defined. - * - * ```js - * // create an instance of `Base`, this is our first ("base") instance - * var first = new Base(); - * first.foo = 'bar'; // arbitrary property, to make it easier to see what's happening later - * - * // create another instance - * var second = new Base(); - * // create a reference to the first instance (`first`) - * second.parent = first; - * - * // create another instance - * var third = new Base(); - * // create a reference to the previous instance (`second`) - * // repeat this pattern every time a "child" instance is created - * third.parent = second; - * - * // we can always access the first instance using the `base` property - * console.log(first.base.foo); - * //=> 'bar' - * console.log(second.base.foo); - * //=> 'bar' - * console.log(third.base.foo); - * //=> 'bar' - * // and now you know how to get to third base ;) - * ``` - * @name .base - * @api public - */ - - Object.defineProperty(Base.prototype, 'base', { - configurable: true, - get: function() { - return this.parent ? this.parent.base : this; - } - }); - - /** - * Static method for adding global plugin functions that will - * be added to an instance when created. - * - * ```js - * Base.use(function(app) { - * app.foo = 'bar'; - * }); - * var app = new Base(); - * console.log(app.foo); - * //=> 'bar' - * ``` - * @name #use - * @param {Function} `fn` Plugin function to use on each instance. - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ - - define(Base, 'use', function(fn) { - fns.push(fn); - return Base; - }); - - /** - * Run an array of functions by passing each function - * to a method on the given object specified by the given property. - * - * @param {Object} `obj` Object containing method to use. - * @param {String} `prop` Name of the method on the object to use. - * @param {Array} `arr` Array of functions to pass to the method. - */ - - define(Base, 'run', function(obj, prop, arr) { - var len = arr.length, i = 0; - while (len--) { - obj[prop](arr[i++]); - } - return Base; - }); - - /** - * Static method for inheriting the prototype and static methods of the `Base` class. - * This method greatly simplifies the process of creating inheritance-based applications. - * See [static-extend][] for more details. - * - * ```js - * var extend = cu.extend(Parent); - * Parent.extend(Child); - * - * // optional methods - * Parent.extend(Child, { - * foo: function() {}, - * bar: function() {} - * }); - * ``` - * @name #extend - * @param {Function} `Ctor` constructor to extend - * @param {Object} `methods` Optional prototype properties to mix in. - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ - - define(Base, 'extend', cu.extend(Base, function(Ctor, Parent) { - Ctor.prototype.mixins = Ctor.prototype.mixins || []; - - define(Ctor, 'mixin', function(fn) { - var mixin = fn(Ctor.prototype, Ctor); - if (typeof mixin === 'function') { - Ctor.prototype.mixins.push(mixin); - } - return Ctor; - }); - - define(Ctor, 'mixins', function(Child) { - Base.run(Child, 'mixin', Ctor.prototype.mixins); - return Ctor; - }); - - Ctor.prototype.mixin = function(key, value) { - Ctor.prototype[key] = value; - return this; - }; - return Base; - })); - - /** - * Used for adding methods to the `Base` prototype, and/or to the prototype of child instances. - * When a mixin function returns a function, the returned function is pushed onto the `.mixins` - * array, making it available to be used on inheriting classes whenever `Base.mixins()` is - * called (e.g. `Base.mixins(Child)`). - * - * ```js - * Base.mixin(function(proto) { - * proto.foo = function(msg) { - * return 'foo ' + msg; - * }; - * }); - * ``` - * @name #mixin - * @param {Function} `fn` Function to call - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ - - define(Base, 'mixin', function(fn) { - var mixin = fn(Base.prototype, Base); - if (typeof mixin === 'function') { - Base.prototype.mixins.push(mixin); - } - return Base; - }); - - /** - * Static method for running global mixin functions against a child constructor. - * Mixins must be registered before calling this method. - * - * ```js - * Base.extend(Child); - * Base.mixins(Child); - * ``` - * @name #mixins - * @param {Function} `Child` Constructor function of a child class - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ - - define(Base, 'mixins', function(Child) { - Base.run(Child, 'mixin', Base.prototype.mixins); - return Base; - }); - - /** - * Similar to `util.inherit`, but copies all static properties, prototype properties, and - * getters/setters from `Provider` to `Receiver`. See [class-utils][]{#inherit} for more details. - * - * ```js - * Base.inherit(Foo, Bar); - * ``` - * @name #inherit - * @param {Function} `Receiver` Receiving (child) constructor - * @param {Function} `Provider` Providing (parent) constructor - * @return {Object} Returns the `Base` constructor for chaining - * @api public - */ - - define(Base, 'inherit', cu.inherit); - define(Base, 'bubble', cu.bubble); - return Base; -} - -/** - * Expose `Base` with default settings - */ - -module.exports = namespace(); - -/** - * Allow users to define a namespace - */ - -module.exports.namespace = namespace; diff --git a/build/node_modules/base/package.json b/build/node_modules/base/package.json deleted file mode 100644 index d2cc5708..00000000 --- a/build/node_modules/base/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "base", - "description": "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.", - "version": "0.11.2", - "homepage": "https://github.com/node-base/base", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "maintainers": [ - "Brian Woodward (https://github.com/doowb)", - "Jon Schlinkert (https://github.com/jonschlinkert)" - ], - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "John O'Donnell (https://github.com/criticalmash)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "tunnckoCore (https://i.am.charlike.online)", - "(https://github.com/wtgtybhertgeghgtwtg)" - ], - "repository": "node-base/base", - "bugs": { - "url": "https://github.com/node-base/base/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "devDependencies": { - "gulp": "^3.9.1", - "gulp-eslint": "^4.0.0", - "gulp-format-md": "^1.0.0", - "gulp-istanbul": "^1.1.2", - "gulp-mocha": "^3.0.1", - "helper-coverage": "^0.1.3", - "mocha": "^3.5.0", - "should": "^13.0.1", - "through2": "^2.0.3", - "verb-generate-readme": "^0.6.0" - }, - "keywords": [ - "base", - "boilerplate", - "cache", - "del", - "get", - "inherit", - "methods", - "set", - "starter", - "unset", - "visit" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "helpers": [ - "helper-coverage" - ], - "related": { - "description": "There are a number of different plugins available for extending base. Let us know if you create your own!", - "hightlight": "generate", - "list": [ - "base-cwd", - "base-data", - "base-fs", - "base-generators", - "base-option", - "base-pipeline", - "base-pkg", - "base-plugins", - "base-questions", - "base-store", - "base-task" - ] - }, - "reflinks": [ - "assemble", - "boilerplate", - "cache-base", - "class-utils", - "generate", - "scaffold", - "static-extend", - "verb" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/base64-js/LICENSE b/build/node_modules/base64-js/LICENSE deleted file mode 100644 index 6d52b8ac..00000000 --- a/build/node_modules/base64-js/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Jameson Little - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/base64-js/README.md b/build/node_modules/base64-js/README.md deleted file mode 100644 index b42a48f4..00000000 --- a/build/node_modules/base64-js/README.md +++ /dev/null @@ -1,34 +0,0 @@ -base64-js -========= - -`base64-js` does basic base64 encoding/decoding in pure JS. - -[![build status](https://secure.travis-ci.org/beatgammit/base64-js.png)](http://travis-ci.org/beatgammit/base64-js) - -Many browsers already have base64 encoding/decoding functionality, but it is for text data, not all-purpose binary data. - -Sometimes encoding/decoding binary data in the browser is useful, and that is what this module does. - -## install - -With [npm](https://npmjs.org) do: - -`npm install base64-js` and `var base64js = require('base64-js')` - -For use in web browsers do: - -`` - -[Get supported base64-js with the Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-base64-js?utm_source=npm-base64-js&utm_medium=referral&utm_campaign=readme) - -## methods - -`base64js` has three exposed functions, `byteLength`, `toByteArray` and `fromByteArray`, which both take a single argument. - -* `byteLength` - Takes a base64 string and returns length of byte array -* `toByteArray` - Takes a base64 string and returns a byte array -* `fromByteArray` - Takes a byte array and returns a base64 string - -## license - -MIT diff --git a/build/node_modules/base64-js/base64js.min.js b/build/node_modules/base64-js/base64js.min.js deleted file mode 100644 index 908ac83f..00000000 --- a/build/node_modules/base64-js/base64js.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"==typeof window?"undefined"==typeof global?"undefined"==typeof self?this:self:global:window,b.base64js=a()}})(function(){return function(){function b(d,e,g){function a(j,i){if(!e[j]){if(!d[j]){var f="function"==typeof require&&require;if(!i&&f)return f(j,!0);if(h)return h(j,!0);var c=new Error("Cannot find module '"+j+"'");throw c.code="MODULE_NOT_FOUND",c}var k=e[j]={exports:{}};d[j][0].call(k.exports,function(b){var c=d[j][1][b];return a(c||b)},k,k.exports,b,d,e,g)}return e[j].exports}for(var h="function"==typeof require&&require,c=0;c>16,j[k++]=255&b>>8,j[k++]=255&b;return 2===h&&(b=l[a.charCodeAt(c)]<<2|l[a.charCodeAt(c+1)]>>4,j[k++]=255&b),1===h&&(b=l[a.charCodeAt(c)]<<10|l[a.charCodeAt(c+1)]<<4|l[a.charCodeAt(c+2)]>>2,j[k++]=255&b>>8,j[k++]=255&b),j}function g(a){return k[63&a>>18]+k[63&a>>12]+k[63&a>>6]+k[63&a]}function h(a,b,c){for(var d,e=[],f=b;fj?j:g+f));return 1===d?(b=a[c-1],e.push(k[b>>2]+k[63&b<<4]+"==")):2===d&&(b=(a[c-2]<<8)+a[c-1],e.push(k[b>>10]+k[63&b>>4]+k[63&b<<2]+"=")),e.join("")}c.byteLength=function(a){var b=d(a),c=b[0],e=b[1];return 3*(c+e)/4-e},c.toByteArray=f,c.fromByteArray=j;for(var k=[],l=[],m="undefined"==typeof Uint8Array?Array:Uint8Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,p=n.length;o 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] -} - -// base64 is 4/3 + up to two characters of the original data -function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) - } - - return parts.join('') -} diff --git a/build/node_modules/base64-js/package.json b/build/node_modules/base64-js/package.json deleted file mode 100644 index c3972e39..00000000 --- a/build/node_modules/base64-js/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "base64-js", - "description": "Base64 encoding/decoding in pure JS", - "version": "1.5.1", - "author": "T. Jameson Little ", - "typings": "index.d.ts", - "bugs": { - "url": "https://github.com/beatgammit/base64-js/issues" - }, - "devDependencies": { - "babel-minify": "^0.5.1", - "benchmark": "^2.1.4", - "browserify": "^16.3.0", - "standard": "*", - "tape": "4.x" - }, - "homepage": "https://github.com/beatgammit/base64-js", - "keywords": [ - "base64" - ], - "license": "MIT", - "main": "index.js", - "repository": { - "type": "git", - "url": "git://github.com/beatgammit/base64-js.git" - }, - "scripts": { - "build": "browserify -s base64js -r ./ | minify > base64js.min.js", - "lint": "standard", - "test": "npm run lint && npm run unit", - "unit": "tape test/*.js" - }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] -} diff --git a/build/node_modules/batch/.npmignore b/build/node_modules/batch/.npmignore deleted file mode 100644 index f1250e58..00000000 --- a/build/node_modules/batch/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/build/node_modules/batch/History.md b/build/node_modules/batch/History.md deleted file mode 100644 index f7e9b76f..00000000 --- a/build/node_modules/batch/History.md +++ /dev/null @@ -1,93 +0,0 @@ -0.6.1 / 2017-05-16 -================== - - * fix `process.nextTick` detection in Node.js - -0.6.0 / 2017-03-25 -================== - - * always invoke end callback asynchronously - * fix compatibility with component v1 - * fix license field - -0.5.3 / 2015-10-01 -================== - - * fix for browserify - -0.5.2 / 2014-12-22 -================== - - * add brower field - * add license to package.json - -0.5.1 / 2014-06-19 -================== - - * add repository field to readme (exciting) - -0.5.0 / 2013-07-29 -================== - - * add `.throws(true)` to opt-in to responding with an array of error objects - * make `new` optional - -0.4.0 / 2013-06-05 -================== - - * add catching of immediate callback errors - -0.3.2 / 2013-03-15 -================== - - * remove Emitter call in constructor - -0.3.1 / 2013-03-13 -================== - - * add Emitter() mixin for client. Closes #8 - -0.3.0 / 2013-03-13 -================== - - * add component.json - * add result example - * add .concurrency support - * add concurrency example - * add parallel example - -0.2.1 / 2012-11-08 -================== - - * add .start, .end, and .duration properties - * change dependencies to devDependencies - -0.2.0 / 2012-10-04 -================== - - * add progress events. Closes #5 (__BREAKING CHANGE__) - -0.1.1 / 2012-07-03 -================== - - * change "complete" event to "progress" - -0.1.0 / 2012-07-03 -================== - - * add Emitter inheritance and emit "complete" [burcu] - -0.0.3 / 2012-06-02 -================== - - * Callback results should be in the order of the queued functions. - -0.0.2 / 2012-02-12 -================== - - * any node - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/build/node_modules/batch/LICENSE b/build/node_modules/batch/LICENSE deleted file mode 100644 index b7409302..00000000 --- a/build/node_modules/batch/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2013 TJ Holowaychuk - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/batch/Makefile b/build/node_modules/batch/Makefile deleted file mode 100644 index 634e3721..00000000 --- a/build/node_modules/batch/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should - -.PHONY: test \ No newline at end of file diff --git a/build/node_modules/batch/Readme.md b/build/node_modules/batch/Readme.md deleted file mode 100644 index c2b4d3d0..00000000 --- a/build/node_modules/batch/Readme.md +++ /dev/null @@ -1,53 +0,0 @@ - -# batch - - Simple async batch with concurrency control and progress reporting. - -## Installation - -``` -$ npm install batch -``` - -## API - -```js -var Batch = require('batch') - , batch = new Batch; - -batch.concurrency(4); - -ids.forEach(function(id){ - batch.push(function(done){ - User.get(id, done); - }); -}); - -batch.on('progress', function(e){ - -}); - -batch.end(function(err, users){ - -}); -``` - -### Progress events - - Contain the "job" index, response value, duration information, and completion data. - -``` -{ index: 1, - value: 'bar', - pending: 2, - total: 3, - complete: 2, - percent: 66, - start: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT), - end: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT), - duration: 0 } -``` - -## License - -[MIT](LICENSE) diff --git a/build/node_modules/batch/component.json b/build/node_modules/batch/component.json deleted file mode 100644 index 2715596c..00000000 --- a/build/node_modules/batch/component.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "batch", - "repo": "visionmedia/batch", - "description": "Async task batching", - "version": "0.6.1", - "keywords": ["batch", "async", "utility", "concurrency", "concurrent"], - "dependencies": { - "component/emitter": "*" - }, - "development": {}, - "scripts": [ - "index.js" - ] -} diff --git a/build/node_modules/batch/index.js b/build/node_modules/batch/index.js deleted file mode 100644 index 5b402550..00000000 --- a/build/node_modules/batch/index.js +++ /dev/null @@ -1,173 +0,0 @@ -/** - * Module dependencies. - */ - -try { - var EventEmitter = require('events').EventEmitter; - if (!EventEmitter) throw new Error(); -} catch (err) { - var Emitter = require('emitter'); -} - -/** - * Defer. - */ - -var defer = typeof process !== 'undefined' && process && typeof process.nextTick === 'function' - ? process.nextTick - : function(fn){ setTimeout(fn); }; - -/** - * Noop. - */ - -function noop(){} - -/** - * Expose `Batch`. - */ - -module.exports = Batch; - -/** - * Create a new Batch. - */ - -function Batch() { - if (!(this instanceof Batch)) return new Batch; - this.fns = []; - this.concurrency(Infinity); - this.throws(true); - for (var i = 0, len = arguments.length; i < len; ++i) { - this.push(arguments[i]); - } -} - -/** - * Inherit from `EventEmitter.prototype`. - */ - -if (EventEmitter) { - Batch.prototype.__proto__ = EventEmitter.prototype; -} else { - Emitter(Batch.prototype); -} - -/** - * Set concurrency to `n`. - * - * @param {Number} n - * @return {Batch} - * @api public - */ - -Batch.prototype.concurrency = function(n){ - this.n = n; - return this; -}; - -/** - * Queue a function. - * - * @param {Function} fn - * @return {Batch} - * @api public - */ - -Batch.prototype.push = function(fn){ - this.fns.push(fn); - return this; -}; - -/** - * Set wether Batch will or will not throw up. - * - * @param {Boolean} throws - * @return {Batch} - * @api public - */ -Batch.prototype.throws = function(throws) { - this.e = !!throws; - return this; -}; - -/** - * Execute all queued functions in parallel, - * executing `cb(err, results)`. - * - * @param {Function} cb - * @return {Batch} - * @api public - */ - -Batch.prototype.end = function(cb){ - var self = this - , total = this.fns.length - , pending = total - , results = [] - , errors = [] - , cb = cb || noop - , fns = this.fns - , max = this.n - , throws = this.e - , index = 0 - , done; - - // empty - if (!fns.length) return defer(function(){ - cb(null, results); - }); - - // process - function next() { - var i = index++; - var fn = fns[i]; - if (!fn) return; - var start = new Date; - - try { - fn(callback); - } catch (err) { - callback(err); - } - - function callback(err, res){ - if (done) return; - if (err && throws) return done = true, defer(function(){ - cb(err); - }); - var complete = total - pending + 1; - var end = new Date; - - results[i] = res; - errors[i] = err; - - self.emit('progress', { - index: i, - value: res, - error: err, - pending: pending, - total: total, - complete: complete, - percent: complete / total * 100 | 0, - start: start, - end: end, - duration: end - start - }); - - if (--pending) next(); - else defer(function(){ - if(!throws) cb(errors, results); - else cb(null, results); - }); - } - } - - // concurrency - for (var i = 0; i < fns.length; i++) { - if (i == max) break; - next(); - } - - return this; -}; diff --git a/build/node_modules/batch/package.json b/build/node_modules/batch/package.json deleted file mode 100644 index 26a7eb4a..00000000 --- a/build/node_modules/batch/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "batch", - "description": "Simple async batch with concurrency control and progress reporting.", - "version": "0.6.1", - "author": "TJ Holowaychuk ", - "license": "MIT", - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "main": "index", - "browser": { - "emitter": "events" - }, - "repository": { - "type": "git", - "url": "https://github.com/visionmedia/batch.git" - } -} diff --git a/build/node_modules/big-integer/BigInteger.d.ts b/build/node_modules/big-integer/BigInteger.d.ts deleted file mode 100644 index 168ba5f4..00000000 --- a/build/node_modules/big-integer/BigInteger.d.ts +++ /dev/null @@ -1,2393 +0,0 @@ -/** - * Type definitions for BigInteger.js - * Definitions by: Tommy Frazier - */ -export = bigInt; -export as namespace bigInt; - -declare var bigInt: bigInt.BigIntegerStatic; - -declare namespace bigInt { - type BigNumber = number | bigint | string | BigInteger; - - interface BigIntegerStatic { - /** - * Equivalent to bigInt(0). - */ - (): BigInteger; - - /** - * Parse a Javascript number into a bigInt. - */ - (number: number): BigInteger; - - /** - * Parse a Javascript native bigint into a bigInt. - */ - (number: bigint): BigInteger; - - /** - * Parse a string into a bigInt. - * Default base is 10. - * Default alphabet is "0123456789abcdefghijklmnopqrstuvwxyz". - * caseSensitive defaults to false. - */ - (string: string, base?: BigNumber, alphabet?: string, caseSensitive?: boolean): BigInteger; - - /** - * no-op. - */ - (bigInt: BigInteger): BigInteger; - - /** - * Constructs a bigInt from an array of digits in specified base. - * The optional isNegative flag will make the number negative. - */ - fromArray: (digits: BigNumber[], base?: BigNumber, isNegative?: boolean) => BigInteger; - - /** - * Finds the greatest common denominator of a and b. - */ - gcd: (a: BigNumber, b: BigNumber) => BigInteger; - - - /** - * Returns true if x is a BigInteger, false otherwise. - */ - isInstance: (x: any) => x is BigInteger; - - /** - * Finds the least common multiple of a and b. - */ - lcm: (a: BigNumber, b: BigNumber) => BigInteger; - - /** - * Returns the largest of a and b. - */ - max: (a: BigNumber, b: BigNumber) => BigInteger; - - /** - * Returns the smallest of a and b. - */ - min: (a: BigNumber, b: BigNumber) => BigInteger; - - /** - * Equivalent to bigInt(-1). - */ - minusOne: BigInteger; - - /** - * Equivalent to bigInt(1). - */ - one: BigInteger; - - /** - * Returns a random number between min and max. - */ - randBetween: (min: BigNumber, max: BigNumber, rng?: () => number) => BigInteger; - - /** - * Equivalent to bigInt(0). - */ - zero: BigInteger; - } - - interface BigInteger { - /** - * Returns the absolute value of a bigInt. - */ - abs(): BigInteger; - - /** - * Performs addition. - */ - add(number: BigNumber): BigInteger; - - /** - * Performs the bitwise AND operation. - */ - and(number: BigNumber): BigInteger; - - /** - * Returns the number of digits required to represent a bigInt in binary. - */ - bitLength(): BigInteger; - - /** - * Performs a comparison between two numbers. If the numbers are equal, it returns 0. - * If the first number is greater, it returns 1. If the first number is lesser, it returns -1. - */ - compare(number: BigNumber): number; - - /** - * Performs a comparison between the absolute value of two numbers. - */ - compareAbs(number: BigNumber): number; - - /** - * Alias for the compare method. - */ - compareTo(number: BigNumber): number; - - /** - * Performs integer division, disregarding the remainder. - */ - divide(number: BigNumber): BigInteger; - - /** - * Performs division and returns an object with two properties: quotient and remainder. - * The sign of the remainder will match the sign of the dividend. - */ - divmod(number: BigNumber): { quotient: BigInteger, remainder: BigInteger }; - - /** - * Alias for the equals method. - */ - eq(number: BigNumber): boolean; - - /** - * Checks if two numbers are equal. - */ - equals(number: BigNumber): boolean; - - /** - * Alias for the greaterOrEquals method. - */ - geq(number: BigNumber): boolean; - - /** - * Checks if the first number is greater than the second. - */ - greater(number: BigNumber): boolean; - - /** - * Checks if the first number is greater than or equal to the second. - */ - greaterOrEquals(number: BigNumber): boolean; - - /** - * Alias for the greater method. - */ - gt(number: BigNumber): boolean; - - /** - * Returns true if the first number is divisible by the second number, false otherwise. - */ - isDivisibleBy(number: BigNumber): boolean; - - /** - * Returns true if the number is even, false otherwise. - */ - isEven(): boolean; - - /** - * Returns true if the number is negative, false otherwise. - * Returns false for 0 and true for -0. - */ - isNegative(): boolean; - - /** - * Returns true if the number is odd, false otherwise. - */ - isOdd(): boolean; - - /** - * Return true if the number is positive, false otherwise. - * Returns true for 0 and false for -0. - */ - isPositive(): boolean; - - /** - * Returns true if the number is prime, false otherwise. - */ - isPrime(strict?: boolean): boolean; - - /** - * Returns true if the number is very likely to be prime, false otherwise. - */ - isProbablePrime(iterations?: number, rng?: () => number): boolean; - - /** - * Returns true if the number is 1 or -1, false otherwise. - */ - isUnit(): boolean; - - /** - * Return true if the number is 0 or -0, false otherwise. - */ - isZero(): boolean; - - /** - * Alias for the lesserOrEquals method. - */ - leq(number: BigNumber): boolean; - - /** - * Checks if the first number is lesser than the second. - */ - lesser(number: BigNumber): boolean; - - /** - * Checks if the first number is less than or equal to the second. - */ - lesserOrEquals(number: BigNumber): boolean; - - /** - * Alias for the lesser method. - */ - lt(number: BigNumber): boolean; - - /** - * Alias for the subtract method. - */ - minus(number: BigNumber): BigInteger; - - /** - * Performs division and returns the remainder, disregarding the quotient. - * The sign of the remainder will match the sign of the dividend. - */ - mod(number: BigNumber): BigInteger; - - /** - * Finds the multiplicative inverse of the number modulo mod. - */ - modInv(number: BigNumber): BigInteger; - - /** - * Takes the number to the power exp modulo mod. - */ - modPow(exp: BigNumber, mod: BigNumber): BigInteger; - - /** - * Performs multiplication. - */ - multiply(number: BigNumber): BigInteger; - - /** - * Reverses the sign of the number. - */ - negate(): BigInteger; - - /** - * Alias for the notEquals method. - */ - neq(number: BigNumber): boolean; - - /** - * Adds one to the number. - */ - next(): BigInteger; - - /** - * Performs the bitwise NOT operation. - */ - not(): BigInteger; - - /** - * Checks if two numbers are not equal. - */ - notEquals(number: BigNumber): boolean; - - /** - * Performs the bitwise OR operation. - */ - or(number: BigNumber): BigInteger; - - /** - * Alias for the divide method. - */ - over(number: BigNumber): BigInteger; - - /** - * Alias for the add method. - */ - plus(number: BigNumber): BigInteger; - - /** - * Performs exponentiation. If the exponent is less than 0, pow returns 0. - * bigInt.zero.pow(0) returns 1. - */ - pow(number: BigNumber): BigInteger; - - /** - * Subtracts one from the number. - */ - prev(): BigInteger; - - /** - * Alias for the mod method. - */ - remainder(number: BigNumber): BigInteger; - - /** - * Shifts the number left by n places in its binary representation. - * If a negative number is provided, it will shift right. - * - * Throws an error if number is outside of the range [-9007199254740992, 9007199254740992]. - */ - shiftLeft(number: BigNumber): BigInteger; - - /** - * Shifts the number right by n places in its binary representation. - * If a negative number is provided, it will shift left. - * - * Throws an error if number is outside of the range [-9007199254740992, 9007199254740992]. - */ - shiftRight(number: BigNumber): BigInteger; - - /** - * Squares the number. - */ - square(): BigInteger; - - /** - * Performs subtraction. - */ - subtract(number: BigNumber): BigInteger; - - /** - * Alias for the multiply method. - */ - times(number: BigNumber): BigInteger; - - /** - * - * Converts a bigInt to an object representing it as an array of integers module the given radix. - */ - toArray(radix: number): BaseArray; - - /** - * Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range. - */ - toJSNumber(): number; - - /** - * Converts a bigInt to a string. - */ - toString(radix?: number, alphabet?: string): string; - - /** - * Converts a bigInt to a string. This method is called behind the scenes in JSON.stringify. - */ - toJSON(): string; - - /** - * Converts a bigInt to a native Javascript number. This override allows you to use native - * arithmetic operators without explicit conversion. - */ - valueOf(): number; - - /** - * Performs the bitwise XOR operation. - */ - xor(number: BigNumber): BigInteger; - } - - // Array constant accessors - interface BigIntegerStatic { - '-999': BigInteger; - '-998': BigInteger; - '-997': BigInteger; - '-996': BigInteger; - '-995': BigInteger; - '-994': BigInteger; - '-993': BigInteger; - '-992': BigInteger; - '-991': BigInteger; - '-990': BigInteger; - '-989': BigInteger; - '-988': BigInteger; - '-987': BigInteger; - '-986': BigInteger; - '-985': BigInteger; - '-984': BigInteger; - '-983': BigInteger; - '-982': BigInteger; - '-981': BigInteger; - '-980': BigInteger; - '-979': BigInteger; - '-978': BigInteger; - '-977': BigInteger; - '-976': BigInteger; - '-975': BigInteger; - '-974': BigInteger; - '-973': BigInteger; - '-972': BigInteger; - '-971': BigInteger; - '-970': BigInteger; - '-969': BigInteger; - '-968': BigInteger; - '-967': BigInteger; - '-966': BigInteger; - '-965': BigInteger; - '-964': BigInteger; - '-963': BigInteger; - '-962': BigInteger; - '-961': BigInteger; - '-960': BigInteger; - '-959': BigInteger; - '-958': BigInteger; - '-957': BigInteger; - '-956': BigInteger; - '-955': BigInteger; - '-954': BigInteger; - '-953': BigInteger; - '-952': BigInteger; - '-951': BigInteger; - '-950': BigInteger; - '-949': BigInteger; - '-948': BigInteger; - '-947': BigInteger; - '-946': BigInteger; - '-945': BigInteger; - '-944': BigInteger; - '-943': BigInteger; - '-942': BigInteger; - '-941': BigInteger; - '-940': BigInteger; - '-939': BigInteger; - '-938': BigInteger; - '-937': BigInteger; - '-936': BigInteger; - '-935': BigInteger; - '-934': BigInteger; - '-933': BigInteger; - '-932': BigInteger; - '-931': BigInteger; - '-930': BigInteger; - '-929': BigInteger; - '-928': BigInteger; - '-927': BigInteger; - '-926': BigInteger; - '-925': BigInteger; - '-924': BigInteger; - '-923': BigInteger; - '-922': BigInteger; - '-921': BigInteger; - '-920': BigInteger; - '-919': BigInteger; - '-918': BigInteger; - '-917': BigInteger; - '-916': BigInteger; - '-915': BigInteger; - '-914': BigInteger; - '-913': BigInteger; - '-912': BigInteger; - '-911': BigInteger; - '-910': BigInteger; - '-909': BigInteger; - '-908': BigInteger; - '-907': BigInteger; - '-906': BigInteger; - '-905': BigInteger; - '-904': BigInteger; - '-903': BigInteger; - '-902': BigInteger; - '-901': BigInteger; - '-900': BigInteger; - '-899': BigInteger; - '-898': BigInteger; - '-897': BigInteger; - '-896': BigInteger; - '-895': BigInteger; - '-894': BigInteger; - '-893': BigInteger; - '-892': BigInteger; - '-891': BigInteger; - '-890': BigInteger; - '-889': BigInteger; - '-888': BigInteger; - '-887': BigInteger; - '-886': BigInteger; - '-885': BigInteger; - '-884': BigInteger; - '-883': BigInteger; - '-882': BigInteger; - '-881': BigInteger; - '-880': BigInteger; - '-879': BigInteger; - '-878': BigInteger; - '-877': BigInteger; - '-876': BigInteger; - '-875': BigInteger; - '-874': BigInteger; - '-873': BigInteger; - '-872': BigInteger; - '-871': BigInteger; - '-870': BigInteger; - '-869': BigInteger; - '-868': BigInteger; - '-867': BigInteger; - '-866': BigInteger; - '-865': BigInteger; - '-864': BigInteger; - '-863': BigInteger; - '-862': BigInteger; - '-861': BigInteger; - '-860': BigInteger; - '-859': BigInteger; - '-858': BigInteger; - '-857': BigInteger; - '-856': BigInteger; - '-855': BigInteger; - '-854': BigInteger; - '-853': BigInteger; - '-852': BigInteger; - '-851': BigInteger; - '-850': BigInteger; - '-849': BigInteger; - '-848': BigInteger; - '-847': BigInteger; - '-846': BigInteger; - '-845': BigInteger; - '-844': BigInteger; - '-843': BigInteger; - '-842': BigInteger; - '-841': BigInteger; - '-840': BigInteger; - '-839': BigInteger; - '-838': BigInteger; - '-837': BigInteger; - '-836': BigInteger; - '-835': BigInteger; - '-834': BigInteger; - '-833': BigInteger; - '-832': BigInteger; - '-831': BigInteger; - '-830': BigInteger; - '-829': BigInteger; - '-828': BigInteger; - '-827': BigInteger; - '-826': BigInteger; - '-825': BigInteger; - '-824': BigInteger; - '-823': BigInteger; - '-822': BigInteger; - '-821': BigInteger; - '-820': BigInteger; - '-819': BigInteger; - '-818': BigInteger; - '-817': BigInteger; - '-816': BigInteger; - '-815': BigInteger; - '-814': BigInteger; - '-813': BigInteger; - '-812': BigInteger; - '-811': BigInteger; - '-810': BigInteger; - '-809': BigInteger; - '-808': BigInteger; - '-807': BigInteger; - '-806': BigInteger; - '-805': BigInteger; - '-804': BigInteger; - '-803': BigInteger; - '-802': BigInteger; - '-801': BigInteger; - '-800': BigInteger; - '-799': BigInteger; - '-798': BigInteger; - '-797': BigInteger; - '-796': BigInteger; - '-795': BigInteger; - '-794': BigInteger; - '-793': BigInteger; - '-792': BigInteger; - '-791': BigInteger; - '-790': BigInteger; - '-789': BigInteger; - '-788': BigInteger; - '-787': BigInteger; - '-786': BigInteger; - '-785': BigInteger; - '-784': BigInteger; - '-783': BigInteger; - '-782': BigInteger; - '-781': BigInteger; - '-780': BigInteger; - '-779': BigInteger; - '-778': BigInteger; - '-777': BigInteger; - '-776': BigInteger; - '-775': BigInteger; - '-774': BigInteger; - '-773': BigInteger; - '-772': BigInteger; - '-771': BigInteger; - '-770': BigInteger; - '-769': BigInteger; - '-768': BigInteger; - '-767': BigInteger; - '-766': BigInteger; - '-765': BigInteger; - '-764': BigInteger; - '-763': BigInteger; - '-762': BigInteger; - '-761': BigInteger; - '-760': BigInteger; - '-759': BigInteger; - '-758': BigInteger; - '-757': BigInteger; - '-756': BigInteger; - '-755': BigInteger; - '-754': BigInteger; - '-753': BigInteger; - '-752': BigInteger; - '-751': BigInteger; - '-750': BigInteger; - '-749': BigInteger; - '-748': BigInteger; - '-747': BigInteger; - '-746': BigInteger; - '-745': BigInteger; - '-744': BigInteger; - '-743': BigInteger; - '-742': BigInteger; - '-741': BigInteger; - '-740': BigInteger; - '-739': BigInteger; - '-738': BigInteger; - '-737': BigInteger; - '-736': BigInteger; - '-735': BigInteger; - '-734': BigInteger; - '-733': BigInteger; - '-732': BigInteger; - '-731': BigInteger; - '-730': BigInteger; - '-729': BigInteger; - '-728': BigInteger; - '-727': BigInteger; - '-726': BigInteger; - '-725': BigInteger; - '-724': BigInteger; - '-723': BigInteger; - '-722': BigInteger; - '-721': BigInteger; - '-720': BigInteger; - '-719': BigInteger; - '-718': BigInteger; - '-717': BigInteger; - '-716': BigInteger; - '-715': BigInteger; - '-714': BigInteger; - '-713': BigInteger; - '-712': BigInteger; - '-711': BigInteger; - '-710': BigInteger; - '-709': BigInteger; - '-708': BigInteger; - '-707': BigInteger; - '-706': BigInteger; - '-705': BigInteger; - '-704': BigInteger; - '-703': BigInteger; - '-702': BigInteger; - '-701': BigInteger; - '-700': BigInteger; - '-699': BigInteger; - '-698': BigInteger; - '-697': BigInteger; - '-696': BigInteger; - '-695': BigInteger; - '-694': BigInteger; - '-693': BigInteger; - '-692': BigInteger; - '-691': BigInteger; - '-690': BigInteger; - '-689': BigInteger; - '-688': BigInteger; - '-687': BigInteger; - '-686': BigInteger; - '-685': BigInteger; - '-684': BigInteger; - '-683': BigInteger; - '-682': BigInteger; - '-681': BigInteger; - '-680': BigInteger; - '-679': BigInteger; - '-678': BigInteger; - '-677': BigInteger; - '-676': BigInteger; - '-675': BigInteger; - '-674': BigInteger; - '-673': BigInteger; - '-672': BigInteger; - '-671': BigInteger; - '-670': BigInteger; - '-669': BigInteger; - '-668': BigInteger; - '-667': BigInteger; - '-666': BigInteger; - '-665': BigInteger; - '-664': BigInteger; - '-663': BigInteger; - '-662': BigInteger; - '-661': BigInteger; - '-660': BigInteger; - '-659': BigInteger; - '-658': BigInteger; - '-657': BigInteger; - '-656': BigInteger; - '-655': BigInteger; - '-654': BigInteger; - '-653': BigInteger; - '-652': BigInteger; - '-651': BigInteger; - '-650': BigInteger; - '-649': BigInteger; - '-648': BigInteger; - '-647': BigInteger; - '-646': BigInteger; - '-645': BigInteger; - '-644': BigInteger; - '-643': BigInteger; - '-642': BigInteger; - '-641': BigInteger; - '-640': BigInteger; - '-639': BigInteger; - '-638': BigInteger; - '-637': BigInteger; - '-636': BigInteger; - '-635': BigInteger; - '-634': BigInteger; - '-633': BigInteger; - '-632': BigInteger; - '-631': BigInteger; - '-630': BigInteger; - '-629': BigInteger; - '-628': BigInteger; - '-627': BigInteger; - '-626': BigInteger; - '-625': BigInteger; - '-624': BigInteger; - '-623': BigInteger; - '-622': BigInteger; - '-621': BigInteger; - '-620': BigInteger; - '-619': BigInteger; - '-618': BigInteger; - '-617': BigInteger; - '-616': BigInteger; - '-615': BigInteger; - '-614': BigInteger; - '-613': BigInteger; - '-612': BigInteger; - '-611': BigInteger; - '-610': BigInteger; - '-609': BigInteger; - '-608': BigInteger; - '-607': BigInteger; - '-606': BigInteger; - '-605': BigInteger; - '-604': BigInteger; - '-603': BigInteger; - '-602': BigInteger; - '-601': BigInteger; - '-600': BigInteger; - '-599': BigInteger; - '-598': BigInteger; - '-597': BigInteger; - '-596': BigInteger; - '-595': BigInteger; - '-594': BigInteger; - '-593': BigInteger; - '-592': BigInteger; - '-591': BigInteger; - '-590': BigInteger; - '-589': BigInteger; - '-588': BigInteger; - '-587': BigInteger; - '-586': BigInteger; - '-585': BigInteger; - '-584': BigInteger; - '-583': BigInteger; - '-582': BigInteger; - '-581': BigInteger; - '-580': BigInteger; - '-579': BigInteger; - '-578': BigInteger; - '-577': BigInteger; - '-576': BigInteger; - '-575': BigInteger; - '-574': BigInteger; - '-573': BigInteger; - '-572': BigInteger; - '-571': BigInteger; - '-570': BigInteger; - '-569': BigInteger; - '-568': BigInteger; - '-567': BigInteger; - '-566': BigInteger; - '-565': BigInteger; - '-564': BigInteger; - '-563': BigInteger; - '-562': BigInteger; - '-561': BigInteger; - '-560': BigInteger; - '-559': BigInteger; - '-558': BigInteger; - '-557': BigInteger; - '-556': BigInteger; - '-555': BigInteger; - '-554': BigInteger; - '-553': BigInteger; - '-552': BigInteger; - '-551': BigInteger; - '-550': BigInteger; - '-549': BigInteger; - '-548': BigInteger; - '-547': BigInteger; - '-546': BigInteger; - '-545': BigInteger; - '-544': BigInteger; - '-543': BigInteger; - '-542': BigInteger; - '-541': BigInteger; - '-540': BigInteger; - '-539': BigInteger; - '-538': BigInteger; - '-537': BigInteger; - '-536': BigInteger; - '-535': BigInteger; - '-534': BigInteger; - '-533': BigInteger; - '-532': BigInteger; - '-531': BigInteger; - '-530': BigInteger; - '-529': BigInteger; - '-528': BigInteger; - '-527': BigInteger; - '-526': BigInteger; - '-525': BigInteger; - '-524': BigInteger; - '-523': BigInteger; - '-522': BigInteger; - '-521': BigInteger; - '-520': BigInteger; - '-519': BigInteger; - '-518': BigInteger; - '-517': BigInteger; - '-516': BigInteger; - '-515': BigInteger; - '-514': BigInteger; - '-513': BigInteger; - '-512': BigInteger; - '-511': BigInteger; - '-510': BigInteger; - '-509': BigInteger; - '-508': BigInteger; - '-507': BigInteger; - '-506': BigInteger; - '-505': BigInteger; - '-504': BigInteger; - '-503': BigInteger; - '-502': BigInteger; - '-501': BigInteger; - '-500': BigInteger; - '-499': BigInteger; - '-498': BigInteger; - '-497': BigInteger; - '-496': BigInteger; - '-495': BigInteger; - '-494': BigInteger; - '-493': BigInteger; - '-492': BigInteger; - '-491': BigInteger; - '-490': BigInteger; - '-489': BigInteger; - '-488': BigInteger; - '-487': BigInteger; - '-486': BigInteger; - '-485': BigInteger; - '-484': BigInteger; - '-483': BigInteger; - '-482': BigInteger; - '-481': BigInteger; - '-480': BigInteger; - '-479': BigInteger; - '-478': BigInteger; - '-477': BigInteger; - '-476': BigInteger; - '-475': BigInteger; - '-474': BigInteger; - '-473': BigInteger; - '-472': BigInteger; - '-471': BigInteger; - '-470': BigInteger; - '-469': BigInteger; - '-468': BigInteger; - '-467': BigInteger; - '-466': BigInteger; - '-465': BigInteger; - '-464': BigInteger; - '-463': BigInteger; - '-462': BigInteger; - '-461': BigInteger; - '-460': BigInteger; - '-459': BigInteger; - '-458': BigInteger; - '-457': BigInteger; - '-456': BigInteger; - '-455': BigInteger; - '-454': BigInteger; - '-453': BigInteger; - '-452': BigInteger; - '-451': BigInteger; - '-450': BigInteger; - '-449': BigInteger; - '-448': BigInteger; - '-447': BigInteger; - '-446': BigInteger; - '-445': BigInteger; - '-444': BigInteger; - '-443': BigInteger; - '-442': BigInteger; - '-441': BigInteger; - '-440': BigInteger; - '-439': BigInteger; - '-438': BigInteger; - '-437': BigInteger; - '-436': BigInteger; - '-435': BigInteger; - '-434': BigInteger; - '-433': BigInteger; - '-432': BigInteger; - '-431': BigInteger; - '-430': BigInteger; - '-429': BigInteger; - '-428': BigInteger; - '-427': BigInteger; - '-426': BigInteger; - '-425': BigInteger; - '-424': BigInteger; - '-423': BigInteger; - '-422': BigInteger; - '-421': BigInteger; - '-420': BigInteger; - '-419': BigInteger; - '-418': BigInteger; - '-417': BigInteger; - '-416': BigInteger; - '-415': BigInteger; - '-414': BigInteger; - '-413': BigInteger; - '-412': BigInteger; - '-411': BigInteger; - '-410': BigInteger; - '-409': BigInteger; - '-408': BigInteger; - '-407': BigInteger; - '-406': BigInteger; - '-405': BigInteger; - '-404': BigInteger; - '-403': BigInteger; - '-402': BigInteger; - '-401': BigInteger; - '-400': BigInteger; - '-399': BigInteger; - '-398': BigInteger; - '-397': BigInteger; - '-396': BigInteger; - '-395': BigInteger; - '-394': BigInteger; - '-393': BigInteger; - '-392': BigInteger; - '-391': BigInteger; - '-390': BigInteger; - '-389': BigInteger; - '-388': BigInteger; - '-387': BigInteger; - '-386': BigInteger; - '-385': BigInteger; - '-384': BigInteger; - '-383': BigInteger; - '-382': BigInteger; - '-381': BigInteger; - '-380': BigInteger; - '-379': BigInteger; - '-378': BigInteger; - '-377': BigInteger; - '-376': BigInteger; - '-375': BigInteger; - '-374': BigInteger; - '-373': BigInteger; - '-372': BigInteger; - '-371': BigInteger; - '-370': BigInteger; - '-369': BigInteger; - '-368': BigInteger; - '-367': BigInteger; - '-366': BigInteger; - '-365': BigInteger; - '-364': BigInteger; - '-363': BigInteger; - '-362': BigInteger; - '-361': BigInteger; - '-360': BigInteger; - '-359': BigInteger; - '-358': BigInteger; - '-357': BigInteger; - '-356': BigInteger; - '-355': BigInteger; - '-354': BigInteger; - '-353': BigInteger; - '-352': BigInteger; - '-351': BigInteger; - '-350': BigInteger; - '-349': BigInteger; - '-348': BigInteger; - '-347': BigInteger; - '-346': BigInteger; - '-345': BigInteger; - '-344': BigInteger; - '-343': BigInteger; - '-342': BigInteger; - '-341': BigInteger; - '-340': BigInteger; - '-339': BigInteger; - '-338': BigInteger; - '-337': BigInteger; - '-336': BigInteger; - '-335': BigInteger; - '-334': BigInteger; - '-333': BigInteger; - '-332': BigInteger; - '-331': BigInteger; - '-330': BigInteger; - '-329': BigInteger; - '-328': BigInteger; - '-327': BigInteger; - '-326': BigInteger; - '-325': BigInteger; - '-324': BigInteger; - '-323': BigInteger; - '-322': BigInteger; - '-321': BigInteger; - '-320': BigInteger; - '-319': BigInteger; - '-318': BigInteger; - '-317': BigInteger; - '-316': BigInteger; - '-315': BigInteger; - '-314': BigInteger; - '-313': BigInteger; - '-312': BigInteger; - '-311': BigInteger; - '-310': BigInteger; - '-309': BigInteger; - '-308': BigInteger; - '-307': BigInteger; - '-306': BigInteger; - '-305': BigInteger; - '-304': BigInteger; - '-303': BigInteger; - '-302': BigInteger; - '-301': BigInteger; - '-300': BigInteger; - '-299': BigInteger; - '-298': BigInteger; - '-297': BigInteger; - '-296': BigInteger; - '-295': BigInteger; - '-294': BigInteger; - '-293': BigInteger; - '-292': BigInteger; - '-291': BigInteger; - '-290': BigInteger; - '-289': BigInteger; - '-288': BigInteger; - '-287': BigInteger; - '-286': BigInteger; - '-285': BigInteger; - '-284': BigInteger; - '-283': BigInteger; - '-282': BigInteger; - '-281': BigInteger; - '-280': BigInteger; - '-279': BigInteger; - '-278': BigInteger; - '-277': BigInteger; - '-276': BigInteger; - '-275': BigInteger; - '-274': BigInteger; - '-273': BigInteger; - '-272': BigInteger; - '-271': BigInteger; - '-270': BigInteger; - '-269': BigInteger; - '-268': BigInteger; - '-267': BigInteger; - '-266': BigInteger; - '-265': BigInteger; - '-264': BigInteger; - '-263': BigInteger; - '-262': BigInteger; - '-261': BigInteger; - '-260': BigInteger; - '-259': BigInteger; - '-258': BigInteger; - '-257': BigInteger; - '-256': BigInteger; - '-255': BigInteger; - '-254': BigInteger; - '-253': BigInteger; - '-252': BigInteger; - '-251': BigInteger; - '-250': BigInteger; - '-249': BigInteger; - '-248': BigInteger; - '-247': BigInteger; - '-246': BigInteger; - '-245': BigInteger; - '-244': BigInteger; - '-243': BigInteger; - '-242': BigInteger; - '-241': BigInteger; - '-240': BigInteger; - '-239': BigInteger; - '-238': BigInteger; - '-237': BigInteger; - '-236': BigInteger; - '-235': BigInteger; - '-234': BigInteger; - '-233': BigInteger; - '-232': BigInteger; - '-231': BigInteger; - '-230': BigInteger; - '-229': BigInteger; - '-228': BigInteger; - '-227': BigInteger; - '-226': BigInteger; - '-225': BigInteger; - '-224': BigInteger; - '-223': BigInteger; - '-222': BigInteger; - '-221': BigInteger; - '-220': BigInteger; - '-219': BigInteger; - '-218': BigInteger; - '-217': BigInteger; - '-216': BigInteger; - '-215': BigInteger; - '-214': BigInteger; - '-213': BigInteger; - '-212': BigInteger; - '-211': BigInteger; - '-210': BigInteger; - '-209': BigInteger; - '-208': BigInteger; - '-207': BigInteger; - '-206': BigInteger; - '-205': BigInteger; - '-204': BigInteger; - '-203': BigInteger; - '-202': BigInteger; - '-201': BigInteger; - '-200': BigInteger; - '-199': BigInteger; - '-198': BigInteger; - '-197': BigInteger; - '-196': BigInteger; - '-195': BigInteger; - '-194': BigInteger; - '-193': BigInteger; - '-192': BigInteger; - '-191': BigInteger; - '-190': BigInteger; - '-189': BigInteger; - '-188': BigInteger; - '-187': BigInteger; - '-186': BigInteger; - '-185': BigInteger; - '-184': BigInteger; - '-183': BigInteger; - '-182': BigInteger; - '-181': BigInteger; - '-180': BigInteger; - '-179': BigInteger; - '-178': BigInteger; - '-177': BigInteger; - '-176': BigInteger; - '-175': BigInteger; - '-174': BigInteger; - '-173': BigInteger; - '-172': BigInteger; - '-171': BigInteger; - '-170': BigInteger; - '-169': BigInteger; - '-168': BigInteger; - '-167': BigInteger; - '-166': BigInteger; - '-165': BigInteger; - '-164': BigInteger; - '-163': BigInteger; - '-162': BigInteger; - '-161': BigInteger; - '-160': BigInteger; - '-159': BigInteger; - '-158': BigInteger; - '-157': BigInteger; - '-156': BigInteger; - '-155': BigInteger; - '-154': BigInteger; - '-153': BigInteger; - '-152': BigInteger; - '-151': BigInteger; - '-150': BigInteger; - '-149': BigInteger; - '-148': BigInteger; - '-147': BigInteger; - '-146': BigInteger; - '-145': BigInteger; - '-144': BigInteger; - '-143': BigInteger; - '-142': BigInteger; - '-141': BigInteger; - '-140': BigInteger; - '-139': BigInteger; - '-138': BigInteger; - '-137': BigInteger; - '-136': BigInteger; - '-135': BigInteger; - '-134': BigInteger; - '-133': BigInteger; - '-132': BigInteger; - '-131': BigInteger; - '-130': BigInteger; - '-129': BigInteger; - '-128': BigInteger; - '-127': BigInteger; - '-126': BigInteger; - '-125': BigInteger; - '-124': BigInteger; - '-123': BigInteger; - '-122': BigInteger; - '-121': BigInteger; - '-120': BigInteger; - '-119': BigInteger; - '-118': BigInteger; - '-117': BigInteger; - '-116': BigInteger; - '-115': BigInteger; - '-114': BigInteger; - '-113': BigInteger; - '-112': BigInteger; - '-111': BigInteger; - '-110': BigInteger; - '-109': BigInteger; - '-108': BigInteger; - '-107': BigInteger; - '-106': BigInteger; - '-105': BigInteger; - '-104': BigInteger; - '-103': BigInteger; - '-102': BigInteger; - '-101': BigInteger; - '-100': BigInteger; - '-99': BigInteger; - '-98': BigInteger; - '-97': BigInteger; - '-96': BigInteger; - '-95': BigInteger; - '-94': BigInteger; - '-93': BigInteger; - '-92': BigInteger; - '-91': BigInteger; - '-90': BigInteger; - '-89': BigInteger; - '-88': BigInteger; - '-87': BigInteger; - '-86': BigInteger; - '-85': BigInteger; - '-84': BigInteger; - '-83': BigInteger; - '-82': BigInteger; - '-81': BigInteger; - '-80': BigInteger; - '-79': BigInteger; - '-78': BigInteger; - '-77': BigInteger; - '-76': BigInteger; - '-75': BigInteger; - '-74': BigInteger; - '-73': BigInteger; - '-72': BigInteger; - '-71': BigInteger; - '-70': BigInteger; - '-69': BigInteger; - '-68': BigInteger; - '-67': BigInteger; - '-66': BigInteger; - '-65': BigInteger; - '-64': BigInteger; - '-63': BigInteger; - '-62': BigInteger; - '-61': BigInteger; - '-60': BigInteger; - '-59': BigInteger; - '-58': BigInteger; - '-57': BigInteger; - '-56': BigInteger; - '-55': BigInteger; - '-54': BigInteger; - '-53': BigInteger; - '-52': BigInteger; - '-51': BigInteger; - '-50': BigInteger; - '-49': BigInteger; - '-48': BigInteger; - '-47': BigInteger; - '-46': BigInteger; - '-45': BigInteger; - '-44': BigInteger; - '-43': BigInteger; - '-42': BigInteger; - '-41': BigInteger; - '-40': BigInteger; - '-39': BigInteger; - '-38': BigInteger; - '-37': BigInteger; - '-36': BigInteger; - '-35': BigInteger; - '-34': BigInteger; - '-33': BigInteger; - '-32': BigInteger; - '-31': BigInteger; - '-30': BigInteger; - '-29': BigInteger; - '-28': BigInteger; - '-27': BigInteger; - '-26': BigInteger; - '-25': BigInteger; - '-24': BigInteger; - '-23': BigInteger; - '-22': BigInteger; - '-21': BigInteger; - '-20': BigInteger; - '-19': BigInteger; - '-18': BigInteger; - '-17': BigInteger; - '-16': BigInteger; - '-15': BigInteger; - '-14': BigInteger; - '-13': BigInteger; - '-12': BigInteger; - '-11': BigInteger; - '-10': BigInteger; - '-9': BigInteger; - '-8': BigInteger; - '-7': BigInteger; - '-6': BigInteger; - '-5': BigInteger; - '-4': BigInteger; - '-3': BigInteger; - '-2': BigInteger; - '-1': BigInteger; - '0': BigInteger; - '1': BigInteger; - '2': BigInteger; - '3': BigInteger; - '4': BigInteger; - '5': BigInteger; - '6': BigInteger; - '7': BigInteger; - '8': BigInteger; - '9': BigInteger; - '10': BigInteger; - '11': BigInteger; - '12': BigInteger; - '13': BigInteger; - '14': BigInteger; - '15': BigInteger; - '16': BigInteger; - '17': BigInteger; - '18': BigInteger; - '19': BigInteger; - '20': BigInteger; - '21': BigInteger; - '22': BigInteger; - '23': BigInteger; - '24': BigInteger; - '25': BigInteger; - '26': BigInteger; - '27': BigInteger; - '28': BigInteger; - '29': BigInteger; - '30': BigInteger; - '31': BigInteger; - '32': BigInteger; - '33': BigInteger; - '34': BigInteger; - '35': BigInteger; - '36': BigInteger; - '37': BigInteger; - '38': BigInteger; - '39': BigInteger; - '40': BigInteger; - '41': BigInteger; - '42': BigInteger; - '43': BigInteger; - '44': BigInteger; - '45': BigInteger; - '46': BigInteger; - '47': BigInteger; - '48': BigInteger; - '49': BigInteger; - '50': BigInteger; - '51': BigInteger; - '52': BigInteger; - '53': BigInteger; - '54': BigInteger; - '55': BigInteger; - '56': BigInteger; - '57': BigInteger; - '58': BigInteger; - '59': BigInteger; - '60': BigInteger; - '61': BigInteger; - '62': BigInteger; - '63': BigInteger; - '64': BigInteger; - '65': BigInteger; - '66': BigInteger; - '67': BigInteger; - '68': BigInteger; - '69': BigInteger; - '70': BigInteger; - '71': BigInteger; - '72': BigInteger; - '73': BigInteger; - '74': BigInteger; - '75': BigInteger; - '76': BigInteger; - '77': BigInteger; - '78': BigInteger; - '79': BigInteger; - '80': BigInteger; - '81': BigInteger; - '82': BigInteger; - '83': BigInteger; - '84': BigInteger; - '85': BigInteger; - '86': BigInteger; - '87': BigInteger; - '88': BigInteger; - '89': BigInteger; - '90': BigInteger; - '91': BigInteger; - '92': BigInteger; - '93': BigInteger; - '94': BigInteger; - '95': BigInteger; - '96': BigInteger; - '97': BigInteger; - '98': BigInteger; - '99': BigInteger; - '100': BigInteger; - '101': BigInteger; - '102': BigInteger; - '103': BigInteger; - '104': BigInteger; - '105': BigInteger; - '106': BigInteger; - '107': BigInteger; - '108': BigInteger; - '109': BigInteger; - '110': BigInteger; - '111': BigInteger; - '112': BigInteger; - '113': BigInteger; - '114': BigInteger; - '115': BigInteger; - '116': BigInteger; - '117': BigInteger; - '118': BigInteger; - '119': BigInteger; - '120': BigInteger; - '121': BigInteger; - '122': BigInteger; - '123': BigInteger; - '124': BigInteger; - '125': BigInteger; - '126': BigInteger; - '127': BigInteger; - '128': BigInteger; - '129': BigInteger; - '130': BigInteger; - '131': BigInteger; - '132': BigInteger; - '133': BigInteger; - '134': BigInteger; - '135': BigInteger; - '136': BigInteger; - '137': BigInteger; - '138': BigInteger; - '139': BigInteger; - '140': BigInteger; - '141': BigInteger; - '142': BigInteger; - '143': BigInteger; - '144': BigInteger; - '145': BigInteger; - '146': BigInteger; - '147': BigInteger; - '148': BigInteger; - '149': BigInteger; - '150': BigInteger; - '151': BigInteger; - '152': BigInteger; - '153': BigInteger; - '154': BigInteger; - '155': BigInteger; - '156': BigInteger; - '157': BigInteger; - '158': BigInteger; - '159': BigInteger; - '160': BigInteger; - '161': BigInteger; - '162': BigInteger; - '163': BigInteger; - '164': BigInteger; - '165': BigInteger; - '166': BigInteger; - '167': BigInteger; - '168': BigInteger; - '169': BigInteger; - '170': BigInteger; - '171': BigInteger; - '172': BigInteger; - '173': BigInteger; - '174': BigInteger; - '175': BigInteger; - '176': BigInteger; - '177': BigInteger; - '178': BigInteger; - '179': BigInteger; - '180': BigInteger; - '181': BigInteger; - '182': BigInteger; - '183': BigInteger; - '184': BigInteger; - '185': BigInteger; - '186': BigInteger; - '187': BigInteger; - '188': BigInteger; - '189': BigInteger; - '190': BigInteger; - '191': BigInteger; - '192': BigInteger; - '193': BigInteger; - '194': BigInteger; - '195': BigInteger; - '196': BigInteger; - '197': BigInteger; - '198': BigInteger; - '199': BigInteger; - '200': BigInteger; - '201': BigInteger; - '202': BigInteger; - '203': BigInteger; - '204': BigInteger; - '205': BigInteger; - '206': BigInteger; - '207': BigInteger; - '208': BigInteger; - '209': BigInteger; - '210': BigInteger; - '211': BigInteger; - '212': BigInteger; - '213': BigInteger; - '214': BigInteger; - '215': BigInteger; - '216': BigInteger; - '217': BigInteger; - '218': BigInteger; - '219': BigInteger; - '220': BigInteger; - '221': BigInteger; - '222': BigInteger; - '223': BigInteger; - '224': BigInteger; - '225': BigInteger; - '226': BigInteger; - '227': BigInteger; - '228': BigInteger; - '229': BigInteger; - '230': BigInteger; - '231': BigInteger; - '232': BigInteger; - '233': BigInteger; - '234': BigInteger; - '235': BigInteger; - '236': BigInteger; - '237': BigInteger; - '238': BigInteger; - '239': BigInteger; - '240': BigInteger; - '241': BigInteger; - '242': BigInteger; - '243': BigInteger; - '244': BigInteger; - '245': BigInteger; - '246': BigInteger; - '247': BigInteger; - '248': BigInteger; - '249': BigInteger; - '250': BigInteger; - '251': BigInteger; - '252': BigInteger; - '253': BigInteger; - '254': BigInteger; - '255': BigInteger; - '256': BigInteger; - '257': BigInteger; - '258': BigInteger; - '259': BigInteger; - '260': BigInteger; - '261': BigInteger; - '262': BigInteger; - '263': BigInteger; - '264': BigInteger; - '265': BigInteger; - '266': BigInteger; - '267': BigInteger; - '268': BigInteger; - '269': BigInteger; - '270': BigInteger; - '271': BigInteger; - '272': BigInteger; - '273': BigInteger; - '274': BigInteger; - '275': BigInteger; - '276': BigInteger; - '277': BigInteger; - '278': BigInteger; - '279': BigInteger; - '280': BigInteger; - '281': BigInteger; - '282': BigInteger; - '283': BigInteger; - '284': BigInteger; - '285': BigInteger; - '286': BigInteger; - '287': BigInteger; - '288': BigInteger; - '289': BigInteger; - '290': BigInteger; - '291': BigInteger; - '292': BigInteger; - '293': BigInteger; - '294': BigInteger; - '295': BigInteger; - '296': BigInteger; - '297': BigInteger; - '298': BigInteger; - '299': BigInteger; - '300': BigInteger; - '301': BigInteger; - '302': BigInteger; - '303': BigInteger; - '304': BigInteger; - '305': BigInteger; - '306': BigInteger; - '307': BigInteger; - '308': BigInteger; - '309': BigInteger; - '310': BigInteger; - '311': BigInteger; - '312': BigInteger; - '313': BigInteger; - '314': BigInteger; - '315': BigInteger; - '316': BigInteger; - '317': BigInteger; - '318': BigInteger; - '319': BigInteger; - '320': BigInteger; - '321': BigInteger; - '322': BigInteger; - '323': BigInteger; - '324': BigInteger; - '325': BigInteger; - '326': BigInteger; - '327': BigInteger; - '328': BigInteger; - '329': BigInteger; - '330': BigInteger; - '331': BigInteger; - '332': BigInteger; - '333': BigInteger; - '334': BigInteger; - '335': BigInteger; - '336': BigInteger; - '337': BigInteger; - '338': BigInteger; - '339': BigInteger; - '340': BigInteger; - '341': BigInteger; - '342': BigInteger; - '343': BigInteger; - '344': BigInteger; - '345': BigInteger; - '346': BigInteger; - '347': BigInteger; - '348': BigInteger; - '349': BigInteger; - '350': BigInteger; - '351': BigInteger; - '352': BigInteger; - '353': BigInteger; - '354': BigInteger; - '355': BigInteger; - '356': BigInteger; - '357': BigInteger; - '358': BigInteger; - '359': BigInteger; - '360': BigInteger; - '361': BigInteger; - '362': BigInteger; - '363': BigInteger; - '364': BigInteger; - '365': BigInteger; - '366': BigInteger; - '367': BigInteger; - '368': BigInteger; - '369': BigInteger; - '370': BigInteger; - '371': BigInteger; - '372': BigInteger; - '373': BigInteger; - '374': BigInteger; - '375': BigInteger; - '376': BigInteger; - '377': BigInteger; - '378': BigInteger; - '379': BigInteger; - '380': BigInteger; - '381': BigInteger; - '382': BigInteger; - '383': BigInteger; - '384': BigInteger; - '385': BigInteger; - '386': BigInteger; - '387': BigInteger; - '388': BigInteger; - '389': BigInteger; - '390': BigInteger; - '391': BigInteger; - '392': BigInteger; - '393': BigInteger; - '394': BigInteger; - '395': BigInteger; - '396': BigInteger; - '397': BigInteger; - '398': BigInteger; - '399': BigInteger; - '400': BigInteger; - '401': BigInteger; - '402': BigInteger; - '403': BigInteger; - '404': BigInteger; - '405': BigInteger; - '406': BigInteger; - '407': BigInteger; - '408': BigInteger; - '409': BigInteger; - '410': BigInteger; - '411': BigInteger; - '412': BigInteger; - '413': BigInteger; - '414': BigInteger; - '415': BigInteger; - '416': BigInteger; - '417': BigInteger; - '418': BigInteger; - '419': BigInteger; - '420': BigInteger; - '421': BigInteger; - '422': BigInteger; - '423': BigInteger; - '424': BigInteger; - '425': BigInteger; - '426': BigInteger; - '427': BigInteger; - '428': BigInteger; - '429': BigInteger; - '430': BigInteger; - '431': BigInteger; - '432': BigInteger; - '433': BigInteger; - '434': BigInteger; - '435': BigInteger; - '436': BigInteger; - '437': BigInteger; - '438': BigInteger; - '439': BigInteger; - '440': BigInteger; - '441': BigInteger; - '442': BigInteger; - '443': BigInteger; - '444': BigInteger; - '445': BigInteger; - '446': BigInteger; - '447': BigInteger; - '448': BigInteger; - '449': BigInteger; - '450': BigInteger; - '451': BigInteger; - '452': BigInteger; - '453': BigInteger; - '454': BigInteger; - '455': BigInteger; - '456': BigInteger; - '457': BigInteger; - '458': BigInteger; - '459': BigInteger; - '460': BigInteger; - '461': BigInteger; - '462': BigInteger; - '463': BigInteger; - '464': BigInteger; - '465': BigInteger; - '466': BigInteger; - '467': BigInteger; - '468': BigInteger; - '469': BigInteger; - '470': BigInteger; - '471': BigInteger; - '472': BigInteger; - '473': BigInteger; - '474': BigInteger; - '475': BigInteger; - '476': BigInteger; - '477': BigInteger; - '478': BigInteger; - '479': BigInteger; - '480': BigInteger; - '481': BigInteger; - '482': BigInteger; - '483': BigInteger; - '484': BigInteger; - '485': BigInteger; - '486': BigInteger; - '487': BigInteger; - '488': BigInteger; - '489': BigInteger; - '490': BigInteger; - '491': BigInteger; - '492': BigInteger; - '493': BigInteger; - '494': BigInteger; - '495': BigInteger; - '496': BigInteger; - '497': BigInteger; - '498': BigInteger; - '499': BigInteger; - '500': BigInteger; - '501': BigInteger; - '502': BigInteger; - '503': BigInteger; - '504': BigInteger; - '505': BigInteger; - '506': BigInteger; - '507': BigInteger; - '508': BigInteger; - '509': BigInteger; - '510': BigInteger; - '511': BigInteger; - '512': BigInteger; - '513': BigInteger; - '514': BigInteger; - '515': BigInteger; - '516': BigInteger; - '517': BigInteger; - '518': BigInteger; - '519': BigInteger; - '520': BigInteger; - '521': BigInteger; - '522': BigInteger; - '523': BigInteger; - '524': BigInteger; - '525': BigInteger; - '526': BigInteger; - '527': BigInteger; - '528': BigInteger; - '529': BigInteger; - '530': BigInteger; - '531': BigInteger; - '532': BigInteger; - '533': BigInteger; - '534': BigInteger; - '535': BigInteger; - '536': BigInteger; - '537': BigInteger; - '538': BigInteger; - '539': BigInteger; - '540': BigInteger; - '541': BigInteger; - '542': BigInteger; - '543': BigInteger; - '544': BigInteger; - '545': BigInteger; - '546': BigInteger; - '547': BigInteger; - '548': BigInteger; - '549': BigInteger; - '550': BigInteger; - '551': BigInteger; - '552': BigInteger; - '553': BigInteger; - '554': BigInteger; - '555': BigInteger; - '556': BigInteger; - '557': BigInteger; - '558': BigInteger; - '559': BigInteger; - '560': BigInteger; - '561': BigInteger; - '562': BigInteger; - '563': BigInteger; - '564': BigInteger; - '565': BigInteger; - '566': BigInteger; - '567': BigInteger; - '568': BigInteger; - '569': BigInteger; - '570': BigInteger; - '571': BigInteger; - '572': BigInteger; - '573': BigInteger; - '574': BigInteger; - '575': BigInteger; - '576': BigInteger; - '577': BigInteger; - '578': BigInteger; - '579': BigInteger; - '580': BigInteger; - '581': BigInteger; - '582': BigInteger; - '583': BigInteger; - '584': BigInteger; - '585': BigInteger; - '586': BigInteger; - '587': BigInteger; - '588': BigInteger; - '589': BigInteger; - '590': BigInteger; - '591': BigInteger; - '592': BigInteger; - '593': BigInteger; - '594': BigInteger; - '595': BigInteger; - '596': BigInteger; - '597': BigInteger; - '598': BigInteger; - '599': BigInteger; - '600': BigInteger; - '601': BigInteger; - '602': BigInteger; - '603': BigInteger; - '604': BigInteger; - '605': BigInteger; - '606': BigInteger; - '607': BigInteger; - '608': BigInteger; - '609': BigInteger; - '610': BigInteger; - '611': BigInteger; - '612': BigInteger; - '613': BigInteger; - '614': BigInteger; - '615': BigInteger; - '616': BigInteger; - '617': BigInteger; - '618': BigInteger; - '619': BigInteger; - '620': BigInteger; - '621': BigInteger; - '622': BigInteger; - '623': BigInteger; - '624': BigInteger; - '625': BigInteger; - '626': BigInteger; - '627': BigInteger; - '628': BigInteger; - '629': BigInteger; - '630': BigInteger; - '631': BigInteger; - '632': BigInteger; - '633': BigInteger; - '634': BigInteger; - '635': BigInteger; - '636': BigInteger; - '637': BigInteger; - '638': BigInteger; - '639': BigInteger; - '640': BigInteger; - '641': BigInteger; - '642': BigInteger; - '643': BigInteger; - '644': BigInteger; - '645': BigInteger; - '646': BigInteger; - '647': BigInteger; - '648': BigInteger; - '649': BigInteger; - '650': BigInteger; - '651': BigInteger; - '652': BigInteger; - '653': BigInteger; - '654': BigInteger; - '655': BigInteger; - '656': BigInteger; - '657': BigInteger; - '658': BigInteger; - '659': BigInteger; - '660': BigInteger; - '661': BigInteger; - '662': BigInteger; - '663': BigInteger; - '664': BigInteger; - '665': BigInteger; - '666': BigInteger; - '667': BigInteger; - '668': BigInteger; - '669': BigInteger; - '670': BigInteger; - '671': BigInteger; - '672': BigInteger; - '673': BigInteger; - '674': BigInteger; - '675': BigInteger; - '676': BigInteger; - '677': BigInteger; - '678': BigInteger; - '679': BigInteger; - '680': BigInteger; - '681': BigInteger; - '682': BigInteger; - '683': BigInteger; - '684': BigInteger; - '685': BigInteger; - '686': BigInteger; - '687': BigInteger; - '688': BigInteger; - '689': BigInteger; - '690': BigInteger; - '691': BigInteger; - '692': BigInteger; - '693': BigInteger; - '694': BigInteger; - '695': BigInteger; - '696': BigInteger; - '697': BigInteger; - '698': BigInteger; - '699': BigInteger; - '700': BigInteger; - '701': BigInteger; - '702': BigInteger; - '703': BigInteger; - '704': BigInteger; - '705': BigInteger; - '706': BigInteger; - '707': BigInteger; - '708': BigInteger; - '709': BigInteger; - '710': BigInteger; - '711': BigInteger; - '712': BigInteger; - '713': BigInteger; - '714': BigInteger; - '715': BigInteger; - '716': BigInteger; - '717': BigInteger; - '718': BigInteger; - '719': BigInteger; - '720': BigInteger; - '721': BigInteger; - '722': BigInteger; - '723': BigInteger; - '724': BigInteger; - '725': BigInteger; - '726': BigInteger; - '727': BigInteger; - '728': BigInteger; - '729': BigInteger; - '730': BigInteger; - '731': BigInteger; - '732': BigInteger; - '733': BigInteger; - '734': BigInteger; - '735': BigInteger; - '736': BigInteger; - '737': BigInteger; - '738': BigInteger; - '739': BigInteger; - '740': BigInteger; - '741': BigInteger; - '742': BigInteger; - '743': BigInteger; - '744': BigInteger; - '745': BigInteger; - '746': BigInteger; - '747': BigInteger; - '748': BigInteger; - '749': BigInteger; - '750': BigInteger; - '751': BigInteger; - '752': BigInteger; - '753': BigInteger; - '754': BigInteger; - '755': BigInteger; - '756': BigInteger; - '757': BigInteger; - '758': BigInteger; - '759': BigInteger; - '760': BigInteger; - '761': BigInteger; - '762': BigInteger; - '763': BigInteger; - '764': BigInteger; - '765': BigInteger; - '766': BigInteger; - '767': BigInteger; - '768': BigInteger; - '769': BigInteger; - '770': BigInteger; - '771': BigInteger; - '772': BigInteger; - '773': BigInteger; - '774': BigInteger; - '775': BigInteger; - '776': BigInteger; - '777': BigInteger; - '778': BigInteger; - '779': BigInteger; - '780': BigInteger; - '781': BigInteger; - '782': BigInteger; - '783': BigInteger; - '784': BigInteger; - '785': BigInteger; - '786': BigInteger; - '787': BigInteger; - '788': BigInteger; - '789': BigInteger; - '790': BigInteger; - '791': BigInteger; - '792': BigInteger; - '793': BigInteger; - '794': BigInteger; - '795': BigInteger; - '796': BigInteger; - '797': BigInteger; - '798': BigInteger; - '799': BigInteger; - '800': BigInteger; - '801': BigInteger; - '802': BigInteger; - '803': BigInteger; - '804': BigInteger; - '805': BigInteger; - '806': BigInteger; - '807': BigInteger; - '808': BigInteger; - '809': BigInteger; - '810': BigInteger; - '811': BigInteger; - '812': BigInteger; - '813': BigInteger; - '814': BigInteger; - '815': BigInteger; - '816': BigInteger; - '817': BigInteger; - '818': BigInteger; - '819': BigInteger; - '820': BigInteger; - '821': BigInteger; - '822': BigInteger; - '823': BigInteger; - '824': BigInteger; - '825': BigInteger; - '826': BigInteger; - '827': BigInteger; - '828': BigInteger; - '829': BigInteger; - '830': BigInteger; - '831': BigInteger; - '832': BigInteger; - '833': BigInteger; - '834': BigInteger; - '835': BigInteger; - '836': BigInteger; - '837': BigInteger; - '838': BigInteger; - '839': BigInteger; - '840': BigInteger; - '841': BigInteger; - '842': BigInteger; - '843': BigInteger; - '844': BigInteger; - '845': BigInteger; - '846': BigInteger; - '847': BigInteger; - '848': BigInteger; - '849': BigInteger; - '850': BigInteger; - '851': BigInteger; - '852': BigInteger; - '853': BigInteger; - '854': BigInteger; - '855': BigInteger; - '856': BigInteger; - '857': BigInteger; - '858': BigInteger; - '859': BigInteger; - '860': BigInteger; - '861': BigInteger; - '862': BigInteger; - '863': BigInteger; - '864': BigInteger; - '865': BigInteger; - '866': BigInteger; - '867': BigInteger; - '868': BigInteger; - '869': BigInteger; - '870': BigInteger; - '871': BigInteger; - '872': BigInteger; - '873': BigInteger; - '874': BigInteger; - '875': BigInteger; - '876': BigInteger; - '877': BigInteger; - '878': BigInteger; - '879': BigInteger; - '880': BigInteger; - '881': BigInteger; - '882': BigInteger; - '883': BigInteger; - '884': BigInteger; - '885': BigInteger; - '886': BigInteger; - '887': BigInteger; - '888': BigInteger; - '889': BigInteger; - '890': BigInteger; - '891': BigInteger; - '892': BigInteger; - '893': BigInteger; - '894': BigInteger; - '895': BigInteger; - '896': BigInteger; - '897': BigInteger; - '898': BigInteger; - '899': BigInteger; - '900': BigInteger; - '901': BigInteger; - '902': BigInteger; - '903': BigInteger; - '904': BigInteger; - '905': BigInteger; - '906': BigInteger; - '907': BigInteger; - '908': BigInteger; - '909': BigInteger; - '910': BigInteger; - '911': BigInteger; - '912': BigInteger; - '913': BigInteger; - '914': BigInteger; - '915': BigInteger; - '916': BigInteger; - '917': BigInteger; - '918': BigInteger; - '919': BigInteger; - '920': BigInteger; - '921': BigInteger; - '922': BigInteger; - '923': BigInteger; - '924': BigInteger; - '925': BigInteger; - '926': BigInteger; - '927': BigInteger; - '928': BigInteger; - '929': BigInteger; - '930': BigInteger; - '931': BigInteger; - '932': BigInteger; - '933': BigInteger; - '934': BigInteger; - '935': BigInteger; - '936': BigInteger; - '937': BigInteger; - '938': BigInteger; - '939': BigInteger; - '940': BigInteger; - '941': BigInteger; - '942': BigInteger; - '943': BigInteger; - '944': BigInteger; - '945': BigInteger; - '946': BigInteger; - '947': BigInteger; - '948': BigInteger; - '949': BigInteger; - '950': BigInteger; - '951': BigInteger; - '952': BigInteger; - '953': BigInteger; - '954': BigInteger; - '955': BigInteger; - '956': BigInteger; - '957': BigInteger; - '958': BigInteger; - '959': BigInteger; - '960': BigInteger; - '961': BigInteger; - '962': BigInteger; - '963': BigInteger; - '964': BigInteger; - '965': BigInteger; - '966': BigInteger; - '967': BigInteger; - '968': BigInteger; - '969': BigInteger; - '970': BigInteger; - '971': BigInteger; - '972': BigInteger; - '973': BigInteger; - '974': BigInteger; - '975': BigInteger; - '976': BigInteger; - '977': BigInteger; - '978': BigInteger; - '979': BigInteger; - '980': BigInteger; - '981': BigInteger; - '982': BigInteger; - '983': BigInteger; - '984': BigInteger; - '985': BigInteger; - '986': BigInteger; - '987': BigInteger; - '988': BigInteger; - '989': BigInteger; - '990': BigInteger; - '991': BigInteger; - '992': BigInteger; - '993': BigInteger; - '994': BigInteger; - '995': BigInteger; - '996': BigInteger; - '997': BigInteger; - '998': BigInteger; - '999': BigInteger; - } - - interface BaseArray { - value: number[], - isNegative: boolean - } -} diff --git a/build/node_modules/big-integer/BigInteger.js b/build/node_modules/big-integer/BigInteger.js deleted file mode 100644 index ecda792d..00000000 --- a/build/node_modules/big-integer/BigInteger.js +++ /dev/null @@ -1,1453 +0,0 @@ -var bigInt = (function (undefined) { - "use strict"; - - var BASE = 1e7, - LOG_BASE = 7, - MAX_INT = 9007199254740992, - MAX_INT_ARR = smallToArray(MAX_INT), - DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz"; - - var supportsNativeBigInt = typeof BigInt === "function"; - - function Integer(v, radix, alphabet, caseSensitive) { - if (typeof v === "undefined") return Integer[0]; - if (typeof radix !== "undefined") return +radix === 10 && !alphabet ? parseValue(v) : parseBase(v, radix, alphabet, caseSensitive); - return parseValue(v); - } - - function BigInteger(value, sign) { - this.value = value; - this.sign = sign; - this.isSmall = false; - } - BigInteger.prototype = Object.create(Integer.prototype); - - function SmallInteger(value) { - this.value = value; - this.sign = value < 0; - this.isSmall = true; - } - SmallInteger.prototype = Object.create(Integer.prototype); - - function NativeBigInt(value) { - this.value = value; - } - NativeBigInt.prototype = Object.create(Integer.prototype); - - function isPrecise(n) { - return -MAX_INT < n && n < MAX_INT; - } - - function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes - if (n < 1e7) - return [n]; - if (n < 1e14) - return [n % 1e7, Math.floor(n / 1e7)]; - return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)]; - } - - function arrayToSmall(arr) { // If BASE changes this function may need to change - trim(arr); - var length = arr.length; - if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) { - switch (length) { - case 0: return 0; - case 1: return arr[0]; - case 2: return arr[0] + arr[1] * BASE; - default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE; - } - } - return arr; - } - - function trim(v) { - var i = v.length; - while (v[--i] === 0); - v.length = i + 1; - } - - function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger - var x = new Array(length); - var i = -1; - while (++i < length) { - x[i] = 0; - } - return x; - } - - function truncate(n) { - if (n > 0) return Math.floor(n); - return Math.ceil(n); - } - - function add(a, b) { // assumes a and b are arrays with a.length >= b.length - var l_a = a.length, - l_b = b.length, - r = new Array(l_a), - carry = 0, - base = BASE, - sum, i; - for (i = 0; i < l_b; i++) { - sum = a[i] + b[i] + carry; - carry = sum >= base ? 1 : 0; - r[i] = sum - carry * base; - } - while (i < l_a) { - sum = a[i] + carry; - carry = sum === base ? 1 : 0; - r[i++] = sum - carry * base; - } - if (carry > 0) r.push(carry); - return r; - } - - function addAny(a, b) { - if (a.length >= b.length) return add(a, b); - return add(b, a); - } - - function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT - var l = a.length, - r = new Array(l), - base = BASE, - sum, i; - for (i = 0; i < l; i++) { - sum = a[i] - base + carry; - carry = Math.floor(sum / base); - r[i] = sum - carry * base; - carry += 1; - } - while (carry > 0) { - r[i++] = carry % base; - carry = Math.floor(carry / base); - } - return r; - } - - BigInteger.prototype.add = function (v) { - var n = parseValue(v); - if (this.sign !== n.sign) { - return this.subtract(n.negate()); - } - var a = this.value, b = n.value; - if (n.isSmall) { - return new BigInteger(addSmall(a, Math.abs(b)), this.sign); - } - return new BigInteger(addAny(a, b), this.sign); - }; - BigInteger.prototype.plus = BigInteger.prototype.add; - - SmallInteger.prototype.add = function (v) { - var n = parseValue(v); - var a = this.value; - if (a < 0 !== n.sign) { - return this.subtract(n.negate()); - } - var b = n.value; - if (n.isSmall) { - if (isPrecise(a + b)) return new SmallInteger(a + b); - b = smallToArray(Math.abs(b)); - } - return new BigInteger(addSmall(b, Math.abs(a)), a < 0); - }; - SmallInteger.prototype.plus = SmallInteger.prototype.add; - - NativeBigInt.prototype.add = function (v) { - return new NativeBigInt(this.value + parseValue(v).value); - } - NativeBigInt.prototype.plus = NativeBigInt.prototype.add; - - function subtract(a, b) { // assumes a and b are arrays with a >= b - var a_l = a.length, - b_l = b.length, - r = new Array(a_l), - borrow = 0, - base = BASE, - i, difference; - for (i = 0; i < b_l; i++) { - difference = a[i] - borrow - b[i]; - if (difference < 0) { - difference += base; - borrow = 1; - } else borrow = 0; - r[i] = difference; - } - for (i = b_l; i < a_l; i++) { - difference = a[i] - borrow; - if (difference < 0) difference += base; - else { - r[i++] = difference; - break; - } - r[i] = difference; - } - for (; i < a_l; i++) { - r[i] = a[i]; - } - trim(r); - return r; - } - - function subtractAny(a, b, sign) { - var value; - if (compareAbs(a, b) >= 0) { - value = subtract(a, b); - } else { - value = subtract(b, a); - sign = !sign; - } - value = arrayToSmall(value); - if (typeof value === "number") { - if (sign) value = -value; - return new SmallInteger(value); - } - return new BigInteger(value, sign); - } - - function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT - var l = a.length, - r = new Array(l), - carry = -b, - base = BASE, - i, difference; - for (i = 0; i < l; i++) { - difference = a[i] + carry; - carry = Math.floor(difference / base); - difference %= base; - r[i] = difference < 0 ? difference + base : difference; - } - r = arrayToSmall(r); - if (typeof r === "number") { - if (sign) r = -r; - return new SmallInteger(r); - } return new BigInteger(r, sign); - } - - BigInteger.prototype.subtract = function (v) { - var n = parseValue(v); - if (this.sign !== n.sign) { - return this.add(n.negate()); - } - var a = this.value, b = n.value; - if (n.isSmall) - return subtractSmall(a, Math.abs(b), this.sign); - return subtractAny(a, b, this.sign); - }; - BigInteger.prototype.minus = BigInteger.prototype.subtract; - - SmallInteger.prototype.subtract = function (v) { - var n = parseValue(v); - var a = this.value; - if (a < 0 !== n.sign) { - return this.add(n.negate()); - } - var b = n.value; - if (n.isSmall) { - return new SmallInteger(a - b); - } - return subtractSmall(b, Math.abs(a), a >= 0); - }; - SmallInteger.prototype.minus = SmallInteger.prototype.subtract; - - NativeBigInt.prototype.subtract = function (v) { - return new NativeBigInt(this.value - parseValue(v).value); - } - NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; - - BigInteger.prototype.negate = function () { - return new BigInteger(this.value, !this.sign); - }; - SmallInteger.prototype.negate = function () { - var sign = this.sign; - var small = new SmallInteger(-this.value); - small.sign = !sign; - return small; - }; - NativeBigInt.prototype.negate = function () { - return new NativeBigInt(-this.value); - } - - BigInteger.prototype.abs = function () { - return new BigInteger(this.value, false); - }; - SmallInteger.prototype.abs = function () { - return new SmallInteger(Math.abs(this.value)); - }; - NativeBigInt.prototype.abs = function () { - return new NativeBigInt(this.value >= 0 ? this.value : -this.value); - } - - - function multiplyLong(a, b) { - var a_l = a.length, - b_l = b.length, - l = a_l + b_l, - r = createArray(l), - base = BASE, - product, carry, i, a_i, b_j; - for (i = 0; i < a_l; ++i) { - a_i = a[i]; - for (var j = 0; j < b_l; ++j) { - b_j = b[j]; - product = a_i * b_j + r[i + j]; - carry = Math.floor(product / base); - r[i + j] = product - carry * base; - r[i + j + 1] += carry; - } - } - trim(r); - return r; - } - - function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE - var l = a.length, - r = new Array(l), - base = BASE, - carry = 0, - product, i; - for (i = 0; i < l; i++) { - product = a[i] * b + carry; - carry = Math.floor(product / base); - r[i] = product - carry * base; - } - while (carry > 0) { - r[i++] = carry % base; - carry = Math.floor(carry / base); - } - return r; - } - - function shiftLeft(x, n) { - var r = []; - while (n-- > 0) r.push(0); - return r.concat(x); - } - - function multiplyKaratsuba(x, y) { - var n = Math.max(x.length, y.length); - - if (n <= 30) return multiplyLong(x, y); - n = Math.ceil(n / 2); - - var b = x.slice(n), - a = x.slice(0, n), - d = y.slice(n), - c = y.slice(0, n); - - var ac = multiplyKaratsuba(a, c), - bd = multiplyKaratsuba(b, d), - abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d)); - - var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n)); - trim(product); - return product; - } - - // The following function is derived from a surface fit of a graph plotting the performance difference - // between long multiplication and karatsuba multiplication versus the lengths of the two arrays. - function useKaratsuba(l1, l2) { - return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0; - } - - BigInteger.prototype.multiply = function (v) { - var n = parseValue(v), - a = this.value, b = n.value, - sign = this.sign !== n.sign, - abs; - if (n.isSmall) { - if (b === 0) return Integer[0]; - if (b === 1) return this; - if (b === -1) return this.negate(); - abs = Math.abs(b); - if (abs < BASE) { - return new BigInteger(multiplySmall(a, abs), sign); - } - b = smallToArray(abs); - } - if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes - return new BigInteger(multiplyKaratsuba(a, b), sign); - return new BigInteger(multiplyLong(a, b), sign); - }; - - BigInteger.prototype.times = BigInteger.prototype.multiply; - - function multiplySmallAndArray(a, b, sign) { // a >= 0 - if (a < BASE) { - return new BigInteger(multiplySmall(b, a), sign); - } - return new BigInteger(multiplyLong(b, smallToArray(a)), sign); - } - SmallInteger.prototype._multiplyBySmall = function (a) { - if (isPrecise(a.value * this.value)) { - return new SmallInteger(a.value * this.value); - } - return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign); - }; - BigInteger.prototype._multiplyBySmall = function (a) { - if (a.value === 0) return Integer[0]; - if (a.value === 1) return this; - if (a.value === -1) return this.negate(); - return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign); - }; - SmallInteger.prototype.multiply = function (v) { - return parseValue(v)._multiplyBySmall(this); - }; - SmallInteger.prototype.times = SmallInteger.prototype.multiply; - - NativeBigInt.prototype.multiply = function (v) { - return new NativeBigInt(this.value * parseValue(v).value); - } - NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; - - function square(a) { - //console.assert(2 * BASE * BASE < MAX_INT); - var l = a.length, - r = createArray(l + l), - base = BASE, - product, carry, i, a_i, a_j; - for (i = 0; i < l; i++) { - a_i = a[i]; - carry = 0 - a_i * a_i; - for (var j = i; j < l; j++) { - a_j = a[j]; - product = 2 * (a_i * a_j) + r[i + j] + carry; - carry = Math.floor(product / base); - r[i + j] = product - carry * base; - } - r[i + l] = carry; - } - trim(r); - return r; - } - - BigInteger.prototype.square = function () { - return new BigInteger(square(this.value), false); - }; - - SmallInteger.prototype.square = function () { - var value = this.value * this.value; - if (isPrecise(value)) return new SmallInteger(value); - return new BigInteger(square(smallToArray(Math.abs(this.value))), false); - }; - - NativeBigInt.prototype.square = function (v) { - return new NativeBigInt(this.value * this.value); - } - - function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes. - var a_l = a.length, - b_l = b.length, - base = BASE, - result = createArray(b.length), - divisorMostSignificantDigit = b[b_l - 1], - // normalization - lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)), - remainder = multiplySmall(a, lambda), - divisor = multiplySmall(b, lambda), - quotientDigit, shift, carry, borrow, i, l, q; - if (remainder.length <= a_l) remainder.push(0); - divisor.push(0); - divisorMostSignificantDigit = divisor[b_l - 1]; - for (shift = a_l - b_l; shift >= 0; shift--) { - quotientDigit = base - 1; - if (remainder[shift + b_l] !== divisorMostSignificantDigit) { - quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit); - } - // quotientDigit <= base - 1 - carry = 0; - borrow = 0; - l = divisor.length; - for (i = 0; i < l; i++) { - carry += quotientDigit * divisor[i]; - q = Math.floor(carry / base); - borrow += remainder[shift + i] - (carry - q * base); - carry = q; - if (borrow < 0) { - remainder[shift + i] = borrow + base; - borrow = -1; - } else { - remainder[shift + i] = borrow; - borrow = 0; - } - } - while (borrow !== 0) { - quotientDigit -= 1; - carry = 0; - for (i = 0; i < l; i++) { - carry += remainder[shift + i] - base + divisor[i]; - if (carry < 0) { - remainder[shift + i] = carry + base; - carry = 0; - } else { - remainder[shift + i] = carry; - carry = 1; - } - } - borrow += carry; - } - result[shift] = quotientDigit; - } - // denormalization - remainder = divModSmall(remainder, lambda)[0]; - return [arrayToSmall(result), arrayToSmall(remainder)]; - } - - function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/ - // Performs faster than divMod1 on larger input sizes. - var a_l = a.length, - b_l = b.length, - result = [], - part = [], - base = BASE, - guess, xlen, highx, highy, check; - while (a_l) { - part.unshift(a[--a_l]); - trim(part); - if (compareAbs(part, b) < 0) { - result.push(0); - continue; - } - xlen = part.length; - highx = part[xlen - 1] * base + part[xlen - 2]; - highy = b[b_l - 1] * base + b[b_l - 2]; - if (xlen > b_l) { - highx = (highx + 1) * base; - } - guess = Math.ceil(highx / highy); - do { - check = multiplySmall(b, guess); - if (compareAbs(check, part) <= 0) break; - guess--; - } while (guess); - result.push(guess); - part = subtract(part, check); - } - result.reverse(); - return [arrayToSmall(result), arrayToSmall(part)]; - } - - function divModSmall(value, lambda) { - var length = value.length, - quotient = createArray(length), - base = BASE, - i, q, remainder, divisor; - remainder = 0; - for (i = length - 1; i >= 0; --i) { - divisor = remainder * base + value[i]; - q = truncate(divisor / lambda); - remainder = divisor - q * lambda; - quotient[i] = q | 0; - } - return [quotient, remainder | 0]; - } - - function divModAny(self, v) { - var value, n = parseValue(v); - if (supportsNativeBigInt) { - return [new NativeBigInt(self.value / n.value), new NativeBigInt(self.value % n.value)]; - } - var a = self.value, b = n.value; - var quotient; - if (b === 0) throw new Error("Cannot divide by zero"); - if (self.isSmall) { - if (n.isSmall) { - return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)]; - } - return [Integer[0], self]; - } - if (n.isSmall) { - if (b === 1) return [self, Integer[0]]; - if (b == -1) return [self.negate(), Integer[0]]; - var abs = Math.abs(b); - if (abs < BASE) { - value = divModSmall(a, abs); - quotient = arrayToSmall(value[0]); - var remainder = value[1]; - if (self.sign) remainder = -remainder; - if (typeof quotient === "number") { - if (self.sign !== n.sign) quotient = -quotient; - return [new SmallInteger(quotient), new SmallInteger(remainder)]; - } - return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)]; - } - b = smallToArray(abs); - } - var comparison = compareAbs(a, b); - if (comparison === -1) return [Integer[0], self]; - if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]]; - - // divMod1 is faster on smaller input sizes - if (a.length + b.length <= 200) - value = divMod1(a, b); - else value = divMod2(a, b); - - quotient = value[0]; - var qSign = self.sign !== n.sign, - mod = value[1], - mSign = self.sign; - if (typeof quotient === "number") { - if (qSign) quotient = -quotient; - quotient = new SmallInteger(quotient); - } else quotient = new BigInteger(quotient, qSign); - if (typeof mod === "number") { - if (mSign) mod = -mod; - mod = new SmallInteger(mod); - } else mod = new BigInteger(mod, mSign); - return [quotient, mod]; - } - - BigInteger.prototype.divmod = function (v) { - var result = divModAny(this, v); - return { - quotient: result[0], - remainder: result[1] - }; - }; - NativeBigInt.prototype.divmod = SmallInteger.prototype.divmod = BigInteger.prototype.divmod; - - - BigInteger.prototype.divide = function (v) { - return divModAny(this, v)[0]; - }; - NativeBigInt.prototype.over = NativeBigInt.prototype.divide = function (v) { - return new NativeBigInt(this.value / parseValue(v).value); - }; - SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide; - - BigInteger.prototype.mod = function (v) { - return divModAny(this, v)[1]; - }; - NativeBigInt.prototype.mod = NativeBigInt.prototype.remainder = function (v) { - return new NativeBigInt(this.value % parseValue(v).value); - }; - SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod; - - BigInteger.prototype.pow = function (v) { - var n = parseValue(v), - a = this.value, - b = n.value, - value, x, y; - if (b === 0) return Integer[1]; - if (a === 0) return Integer[0]; - if (a === 1) return Integer[1]; - if (a === -1) return n.isEven() ? Integer[1] : Integer[-1]; - if (n.sign) { - return Integer[0]; - } - if (!n.isSmall) throw new Error("The exponent " + n.toString() + " is too large."); - if (this.isSmall) { - if (isPrecise(value = Math.pow(a, b))) - return new SmallInteger(truncate(value)); - } - x = this; - y = Integer[1]; - while (true) { - if (b & 1 === 1) { - y = y.times(x); - --b; - } - if (b === 0) break; - b /= 2; - x = x.square(); - } - return y; - }; - SmallInteger.prototype.pow = BigInteger.prototype.pow; - - NativeBigInt.prototype.pow = function (v) { - var n = parseValue(v); - var a = this.value, b = n.value; - var _0 = BigInt(0), _1 = BigInt(1), _2 = BigInt(2); - if (b === _0) return Integer[1]; - if (a === _0) return Integer[0]; - if (a === _1) return Integer[1]; - if (a === BigInt(-1)) return n.isEven() ? Integer[1] : Integer[-1]; - if (n.isNegative()) return new NativeBigInt(_0); - var x = this; - var y = Integer[1]; - while (true) { - if ((b & _1) === _1) { - y = y.times(x); - --b; - } - if (b === _0) break; - b /= _2; - x = x.square(); - } - return y; - } - - BigInteger.prototype.modPow = function (exp, mod) { - exp = parseValue(exp); - mod = parseValue(mod); - if (mod.isZero()) throw new Error("Cannot take modPow with modulus 0"); - var r = Integer[1], - base = this.mod(mod); - if (exp.isNegative()) { - exp = exp.multiply(Integer[-1]); - base = base.modInv(mod); - } - while (exp.isPositive()) { - if (base.isZero()) return Integer[0]; - if (exp.isOdd()) r = r.multiply(base).mod(mod); - exp = exp.divide(2); - base = base.square().mod(mod); - } - return r; - }; - NativeBigInt.prototype.modPow = SmallInteger.prototype.modPow = BigInteger.prototype.modPow; - - function compareAbs(a, b) { - if (a.length !== b.length) { - return a.length > b.length ? 1 : -1; - } - for (var i = a.length - 1; i >= 0; i--) { - if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1; - } - return 0; - } - - BigInteger.prototype.compareAbs = function (v) { - var n = parseValue(v), - a = this.value, - b = n.value; - if (n.isSmall) return 1; - return compareAbs(a, b); - }; - SmallInteger.prototype.compareAbs = function (v) { - var n = parseValue(v), - a = Math.abs(this.value), - b = n.value; - if (n.isSmall) { - b = Math.abs(b); - return a === b ? 0 : a > b ? 1 : -1; - } - return -1; - }; - NativeBigInt.prototype.compareAbs = function (v) { - var a = this.value; - var b = parseValue(v).value; - a = a >= 0 ? a : -a; - b = b >= 0 ? b : -b; - return a === b ? 0 : a > b ? 1 : -1; - } - - BigInteger.prototype.compare = function (v) { - // See discussion about comparison with Infinity: - // https://github.com/peterolson/BigInteger.js/issues/61 - if (v === Infinity) { - return -1; - } - if (v === -Infinity) { - return 1; - } - - var n = parseValue(v), - a = this.value, - b = n.value; - if (this.sign !== n.sign) { - return n.sign ? 1 : -1; - } - if (n.isSmall) { - return this.sign ? -1 : 1; - } - return compareAbs(a, b) * (this.sign ? -1 : 1); - }; - BigInteger.prototype.compareTo = BigInteger.prototype.compare; - - SmallInteger.prototype.compare = function (v) { - if (v === Infinity) { - return -1; - } - if (v === -Infinity) { - return 1; - } - - var n = parseValue(v), - a = this.value, - b = n.value; - if (n.isSmall) { - return a == b ? 0 : a > b ? 1 : -1; - } - if (a < 0 !== n.sign) { - return a < 0 ? -1 : 1; - } - return a < 0 ? 1 : -1; - }; - SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; - - NativeBigInt.prototype.compare = function (v) { - if (v === Infinity) { - return -1; - } - if (v === -Infinity) { - return 1; - } - var a = this.value; - var b = parseValue(v).value; - return a === b ? 0 : a > b ? 1 : -1; - } - NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; - - BigInteger.prototype.equals = function (v) { - return this.compare(v) === 0; - }; - NativeBigInt.prototype.eq = NativeBigInt.prototype.equals = SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals; - - BigInteger.prototype.notEquals = function (v) { - return this.compare(v) !== 0; - }; - NativeBigInt.prototype.neq = NativeBigInt.prototype.notEquals = SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals; - - BigInteger.prototype.greater = function (v) { - return this.compare(v) > 0; - }; - NativeBigInt.prototype.gt = NativeBigInt.prototype.greater = SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater; - - BigInteger.prototype.lesser = function (v) { - return this.compare(v) < 0; - }; - NativeBigInt.prototype.lt = NativeBigInt.prototype.lesser = SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser; - - BigInteger.prototype.greaterOrEquals = function (v) { - return this.compare(v) >= 0; - }; - NativeBigInt.prototype.geq = NativeBigInt.prototype.greaterOrEquals = SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals; - - BigInteger.prototype.lesserOrEquals = function (v) { - return this.compare(v) <= 0; - }; - NativeBigInt.prototype.leq = NativeBigInt.prototype.lesserOrEquals = SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals; - - BigInteger.prototype.isEven = function () { - return (this.value[0] & 1) === 0; - }; - SmallInteger.prototype.isEven = function () { - return (this.value & 1) === 0; - }; - NativeBigInt.prototype.isEven = function () { - return (this.value & BigInt(1)) === BigInt(0); - } - - BigInteger.prototype.isOdd = function () { - return (this.value[0] & 1) === 1; - }; - SmallInteger.prototype.isOdd = function () { - return (this.value & 1) === 1; - }; - NativeBigInt.prototype.isOdd = function () { - return (this.value & BigInt(1)) === BigInt(1); - } - - BigInteger.prototype.isPositive = function () { - return !this.sign; - }; - SmallInteger.prototype.isPositive = function () { - return this.value > 0; - }; - NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive; - - BigInteger.prototype.isNegative = function () { - return this.sign; - }; - SmallInteger.prototype.isNegative = function () { - return this.value < 0; - }; - NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative; - - BigInteger.prototype.isUnit = function () { - return false; - }; - SmallInteger.prototype.isUnit = function () { - return Math.abs(this.value) === 1; - }; - NativeBigInt.prototype.isUnit = function () { - return this.abs().value === BigInt(1); - } - - BigInteger.prototype.isZero = function () { - return false; - }; - SmallInteger.prototype.isZero = function () { - return this.value === 0; - }; - NativeBigInt.prototype.isZero = function () { - return this.value === BigInt(0); - } - - BigInteger.prototype.isDivisibleBy = function (v) { - var n = parseValue(v); - if (n.isZero()) return false; - if (n.isUnit()) return true; - if (n.compareAbs(2) === 0) return this.isEven(); - return this.mod(n).isZero(); - }; - NativeBigInt.prototype.isDivisibleBy = SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy; - - function isBasicPrime(v) { - var n = v.abs(); - if (n.isUnit()) return false; - if (n.equals(2) || n.equals(3) || n.equals(5)) return true; - if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false; - if (n.lesser(49)) return true; - // we don't know if it's prime: let the other functions figure it out - } - - function millerRabinTest(n, a) { - var nPrev = n.prev(), - b = nPrev, - r = 0, - d, t, i, x; - while (b.isEven()) b = b.divide(2), r++; - next: for (i = 0; i < a.length; i++) { - if (n.lesser(a[i])) continue; - x = bigInt(a[i]).modPow(b, n); - if (x.isUnit() || x.equals(nPrev)) continue; - for (d = r - 1; d != 0; d--) { - x = x.square().mod(n); - if (x.isUnit()) return false; - if (x.equals(nPrev)) continue next; - } - return false; - } - return true; - } - - // Set "strict" to true to force GRH-supported lower bound of 2*log(N)^2 - BigInteger.prototype.isPrime = function (strict) { - var isPrime = isBasicPrime(this); - if (isPrime !== undefined) return isPrime; - var n = this.abs(); - var bits = n.bitLength(); - if (bits <= 64) - return millerRabinTest(n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]); - var logN = Math.log(2) * bits.toJSNumber(); - var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN); - for (var a = [], i = 0; i < t; i++) { - a.push(bigInt(i + 2)); - } - return millerRabinTest(n, a); - }; - NativeBigInt.prototype.isPrime = SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime; - - BigInteger.prototype.isProbablePrime = function (iterations, rng) { - var isPrime = isBasicPrime(this); - if (isPrime !== undefined) return isPrime; - var n = this.abs(); - var t = iterations === undefined ? 5 : iterations; - for (var a = [], i = 0; i < t; i++) { - a.push(bigInt.randBetween(2, n.minus(2), rng)); - } - return millerRabinTest(n, a); - }; - NativeBigInt.prototype.isProbablePrime = SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime; - - BigInteger.prototype.modInv = function (n) { - var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR; - while (!newR.isZero()) { - q = r.divide(newR); - lastT = t; - lastR = r; - t = newT; - r = newR; - newT = lastT.subtract(q.multiply(newT)); - newR = lastR.subtract(q.multiply(newR)); - } - if (!r.isUnit()) throw new Error(this.toString() + " and " + n.toString() + " are not co-prime"); - if (t.compare(0) === -1) { - t = t.add(n); - } - if (this.isNegative()) { - return t.negate(); - } - return t; - }; - - NativeBigInt.prototype.modInv = SmallInteger.prototype.modInv = BigInteger.prototype.modInv; - - BigInteger.prototype.next = function () { - var value = this.value; - if (this.sign) { - return subtractSmall(value, 1, this.sign); - } - return new BigInteger(addSmall(value, 1), this.sign); - }; - SmallInteger.prototype.next = function () { - var value = this.value; - if (value + 1 < MAX_INT) return new SmallInteger(value + 1); - return new BigInteger(MAX_INT_ARR, false); - }; - NativeBigInt.prototype.next = function () { - return new NativeBigInt(this.value + BigInt(1)); - } - - BigInteger.prototype.prev = function () { - var value = this.value; - if (this.sign) { - return new BigInteger(addSmall(value, 1), true); - } - return subtractSmall(value, 1, this.sign); - }; - SmallInteger.prototype.prev = function () { - var value = this.value; - if (value - 1 > -MAX_INT) return new SmallInteger(value - 1); - return new BigInteger(MAX_INT_ARR, true); - }; - NativeBigInt.prototype.prev = function () { - return new NativeBigInt(this.value - BigInt(1)); - } - - var powersOfTwo = [1]; - while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); - var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1]; - - function shift_isSmall(n) { - return Math.abs(n) <= BASE; - } - - BigInteger.prototype.shiftLeft = function (v) { - var n = parseValue(v).toJSNumber(); - if (!shift_isSmall(n)) { - throw new Error(String(n) + " is too large for shifting."); - } - if (n < 0) return this.shiftRight(-n); - var result = this; - if (result.isZero()) return result; - while (n >= powers2Length) { - result = result.multiply(highestPower2); - n -= powers2Length - 1; - } - return result.multiply(powersOfTwo[n]); - }; - NativeBigInt.prototype.shiftLeft = SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft; - - BigInteger.prototype.shiftRight = function (v) { - var remQuo; - var n = parseValue(v).toJSNumber(); - if (!shift_isSmall(n)) { - throw new Error(String(n) + " is too large for shifting."); - } - if (n < 0) return this.shiftLeft(-n); - var result = this; - while (n >= powers2Length) { - if (result.isZero() || (result.isNegative() && result.isUnit())) return result; - remQuo = divModAny(result, highestPower2); - result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; - n -= powers2Length - 1; - } - remQuo = divModAny(result, powersOfTwo[n]); - return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; - }; - NativeBigInt.prototype.shiftRight = SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight; - - function bitwise(x, y, fn) { - y = parseValue(y); - var xSign = x.isNegative(), ySign = y.isNegative(); - var xRem = xSign ? x.not() : x, - yRem = ySign ? y.not() : y; - var xDigit = 0, yDigit = 0; - var xDivMod = null, yDivMod = null; - var result = []; - while (!xRem.isZero() || !yRem.isZero()) { - xDivMod = divModAny(xRem, highestPower2); - xDigit = xDivMod[1].toJSNumber(); - if (xSign) { - xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers - } - - yDivMod = divModAny(yRem, highestPower2); - yDigit = yDivMod[1].toJSNumber(); - if (ySign) { - yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers - } - - xRem = xDivMod[0]; - yRem = yDivMod[0]; - result.push(fn(xDigit, yDigit)); - } - var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0); - for (var i = result.length - 1; i >= 0; i -= 1) { - sum = sum.multiply(highestPower2).add(bigInt(result[i])); - } - return sum; - } - - BigInteger.prototype.not = function () { - return this.negate().prev(); - }; - NativeBigInt.prototype.not = SmallInteger.prototype.not = BigInteger.prototype.not; - - BigInteger.prototype.and = function (n) { - return bitwise(this, n, function (a, b) { return a & b; }); - }; - NativeBigInt.prototype.and = SmallInteger.prototype.and = BigInteger.prototype.and; - - BigInteger.prototype.or = function (n) { - return bitwise(this, n, function (a, b) { return a | b; }); - }; - NativeBigInt.prototype.or = SmallInteger.prototype.or = BigInteger.prototype.or; - - BigInteger.prototype.xor = function (n) { - return bitwise(this, n, function (a, b) { return a ^ b; }); - }; - NativeBigInt.prototype.xor = SmallInteger.prototype.xor = BigInteger.prototype.xor; - - var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I; - function roughLOB(n) { // get lowestOneBit (rough) - // SmallInteger: return Min(lowestOneBit(n), 1 << 30) - // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7] - var v = n.value, - x = typeof v === "number" ? v | LOBMASK_I : - typeof v === "bigint" ? v | BigInt(LOBMASK_I) : - v[0] + v[1] * BASE | LOBMASK_BI; - return x & -x; - } - - function integerLogarithm(value, base) { - if (base.compareTo(value) <= 0) { - var tmp = integerLogarithm(value, base.square(base)); - var p = tmp.p; - var e = tmp.e; - var t = p.multiply(base); - return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 }; - } - return { p: bigInt(1), e: 0 }; - } - - BigInteger.prototype.bitLength = function () { - var n = this; - if (n.compareTo(bigInt(0)) < 0) { - n = n.negate().subtract(bigInt(1)); - } - if (n.compareTo(bigInt(0)) === 0) { - return bigInt(0); - } - return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1)); - } - NativeBigInt.prototype.bitLength = SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength; - - function max(a, b) { - a = parseValue(a); - b = parseValue(b); - return a.greater(b) ? a : b; - } - function min(a, b) { - a = parseValue(a); - b = parseValue(b); - return a.lesser(b) ? a : b; - } - function gcd(a, b) { - a = parseValue(a).abs(); - b = parseValue(b).abs(); - if (a.equals(b)) return a; - if (a.isZero()) return b; - if (b.isZero()) return a; - var c = Integer[1], d, t; - while (a.isEven() && b.isEven()) { - d = min(roughLOB(a), roughLOB(b)); - a = a.divide(d); - b = b.divide(d); - c = c.multiply(d); - } - while (a.isEven()) { - a = a.divide(roughLOB(a)); - } - do { - while (b.isEven()) { - b = b.divide(roughLOB(b)); - } - if (a.greater(b)) { - t = b; b = a; a = t; - } - b = b.subtract(a); - } while (!b.isZero()); - return c.isUnit() ? a : a.multiply(c); - } - function lcm(a, b) { - a = parseValue(a).abs(); - b = parseValue(b).abs(); - return a.divide(gcd(a, b)).multiply(b); - } - function randBetween(a, b, rng) { - a = parseValue(a); - b = parseValue(b); - var usedRNG = rng || Math.random; - var low = min(a, b), high = max(a, b); - var range = high.subtract(low).add(1); - if (range.isSmall) return low.add(Math.floor(usedRNG() * range)); - var digits = toBase(range, BASE).value; - var result = [], restricted = true; - for (var i = 0; i < digits.length; i++) { - var top = restricted ? digits[i] + (i + 1 < digits.length ? digits[i + 1] / BASE : 0) : BASE; - var digit = truncate(usedRNG() * top); - result.push(digit); - if (digit < digits[i]) restricted = false; - } - return low.add(Integer.fromArray(result, BASE, false)); - } - - var parseBase = function (text, base, alphabet, caseSensitive) { - alphabet = alphabet || DEFAULT_ALPHABET; - text = String(text); - if (!caseSensitive) { - text = text.toLowerCase(); - alphabet = alphabet.toLowerCase(); - } - var length = text.length; - var i; - var absBase = Math.abs(base); - var alphabetValues = {}; - for (i = 0; i < alphabet.length; i++) { - alphabetValues[alphabet[i]] = i; - } - for (i = 0; i < length; i++) { - var c = text[i]; - if (c === "-") continue; - if (c in alphabetValues) { - if (alphabetValues[c] >= absBase) { - if (c === "1" && absBase === 1) continue; - throw new Error(c + " is not a valid digit in base " + base + "."); - } - } - } - base = parseValue(base); - var digits = []; - var isNegative = text[0] === "-"; - for (i = isNegative ? 1 : 0; i < text.length; i++) { - var c = text[i]; - if (c in alphabetValues) digits.push(parseValue(alphabetValues[c])); - else if (c === "<") { - var start = i; - do { i++; } while (text[i] !== ">" && i < text.length); - digits.push(parseValue(text.slice(start + 1, i))); - } - else throw new Error(c + " is not a valid character"); - } - return parseBaseFromArray(digits, base, isNegative); - }; - - function parseBaseFromArray(digits, base, isNegative) { - var val = Integer[0], pow = Integer[1], i; - for (i = digits.length - 1; i >= 0; i--) { - val = val.add(digits[i].times(pow)); - pow = pow.times(base); - } - return isNegative ? val.negate() : val; - } - - function stringify(digit, alphabet) { - alphabet = alphabet || DEFAULT_ALPHABET; - if (digit < alphabet.length) { - return alphabet[digit]; - } - return "<" + digit + ">"; - } - - function toBase(n, base) { - base = bigInt(base); - if (base.isZero()) { - if (n.isZero()) return { value: [0], isNegative: false }; - throw new Error("Cannot convert nonzero numbers to base 0."); - } - if (base.equals(-1)) { - if (n.isZero()) return { value: [0], isNegative: false }; - if (n.isNegative()) - return { - value: [].concat.apply([], Array.apply(null, Array(-n.toJSNumber())) - .map(Array.prototype.valueOf, [1, 0]) - ), - isNegative: false - }; - - var arr = Array.apply(null, Array(n.toJSNumber() - 1)) - .map(Array.prototype.valueOf, [0, 1]); - arr.unshift([1]); - return { - value: [].concat.apply([], arr), - isNegative: false - }; - } - - var neg = false; - if (n.isNegative() && base.isPositive()) { - neg = true; - n = n.abs(); - } - if (base.isUnit()) { - if (n.isZero()) return { value: [0], isNegative: false }; - - return { - value: Array.apply(null, Array(n.toJSNumber())) - .map(Number.prototype.valueOf, 1), - isNegative: neg - }; - } - var out = []; - var left = n, divmod; - while (left.isNegative() || left.compareAbs(base) >= 0) { - divmod = left.divmod(base); - left = divmod.quotient; - var digit = divmod.remainder; - if (digit.isNegative()) { - digit = base.minus(digit).abs(); - left = left.next(); - } - out.push(digit.toJSNumber()); - } - out.push(left.toJSNumber()); - return { value: out.reverse(), isNegative: neg }; - } - - function toBaseString(n, base, alphabet) { - var arr = toBase(n, base); - return (arr.isNegative ? "-" : "") + arr.value.map(function (x) { - return stringify(x, alphabet); - }).join(''); - } - - BigInteger.prototype.toArray = function (radix) { - return toBase(this, radix); - }; - - SmallInteger.prototype.toArray = function (radix) { - return toBase(this, radix); - }; - - NativeBigInt.prototype.toArray = function (radix) { - return toBase(this, radix); - }; - - BigInteger.prototype.toString = function (radix, alphabet) { - if (radix === undefined) radix = 10; - if (radix !== 10) return toBaseString(this, radix, alphabet); - var v = this.value, l = v.length, str = String(v[--l]), zeros = "0000000", digit; - while (--l >= 0) { - digit = String(v[l]); - str += zeros.slice(digit.length) + digit; - } - var sign = this.sign ? "-" : ""; - return sign + str; - }; - - SmallInteger.prototype.toString = function (radix, alphabet) { - if (radix === undefined) radix = 10; - if (radix != 10) return toBaseString(this, radix, alphabet); - return String(this.value); - }; - - NativeBigInt.prototype.toString = SmallInteger.prototype.toString; - - NativeBigInt.prototype.toJSON = BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); } - - BigInteger.prototype.valueOf = function () { - return parseInt(this.toString(), 10); - }; - BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; - - SmallInteger.prototype.valueOf = function () { - return this.value; - }; - SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; - NativeBigInt.prototype.valueOf = NativeBigInt.prototype.toJSNumber = function () { - return parseInt(this.toString(), 10); - } - - function parseStringValue(v) { - if (isPrecise(+v)) { - var x = +v; - if (x === truncate(x)) - return supportsNativeBigInt ? new NativeBigInt(BigInt(x)) : new SmallInteger(x); - throw new Error("Invalid integer: " + v); - } - var sign = v[0] === "-"; - if (sign) v = v.slice(1); - var split = v.split(/e/i); - if (split.length > 2) throw new Error("Invalid integer: " + split.join("e")); - if (split.length === 2) { - var exp = split[1]; - if (exp[0] === "+") exp = exp.slice(1); - exp = +exp; - if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error("Invalid integer: " + exp + " is not a valid exponent."); - var text = split[0]; - var decimalPlace = text.indexOf("."); - if (decimalPlace >= 0) { - exp -= text.length - decimalPlace - 1; - text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1); - } - if (exp < 0) throw new Error("Cannot include negative exponent part for integers"); - text += (new Array(exp + 1)).join("0"); - v = text; - } - var isValid = /^([0-9][0-9]*)$/.test(v); - if (!isValid) throw new Error("Invalid integer: " + v); - if (supportsNativeBigInt) { - return new NativeBigInt(BigInt(sign ? "-" + v : v)); - } - var r = [], max = v.length, l = LOG_BASE, min = max - l; - while (max > 0) { - r.push(+v.slice(min, max)); - min -= l; - if (min < 0) min = 0; - max -= l; - } - trim(r); - return new BigInteger(r, sign); - } - - function parseNumberValue(v) { - if (supportsNativeBigInt) { - return new NativeBigInt(BigInt(v)); - } - if (isPrecise(v)) { - if (v !== truncate(v)) throw new Error(v + " is not an integer."); - return new SmallInteger(v); - } - return parseStringValue(v.toString()); - } - - function parseValue(v) { - if (typeof v === "number") { - return parseNumberValue(v); - } - if (typeof v === "string") { - return parseStringValue(v); - } - if (typeof v === "bigint") { - return new NativeBigInt(v); - } - return v; - } - // Pre-define numbers in range [-999,999] - for (var i = 0; i < 1000; i++) { - Integer[i] = parseValue(i); - if (i > 0) Integer[-i] = parseValue(-i); - } - // Backwards compatibility - Integer.one = Integer[1]; - Integer.zero = Integer[0]; - Integer.minusOne = Integer[-1]; - Integer.max = max; - Integer.min = min; - Integer.gcd = gcd; - Integer.lcm = lcm; - Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger || x instanceof NativeBigInt; }; - Integer.randBetween = randBetween; - - Integer.fromArray = function (digits, base, isNegative) { - return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative); - }; - - return Integer; -})(); - -// Node.js check -if (typeof module !== "undefined" && module.hasOwnProperty("exports")) { - module.exports = bigInt; -} - -//amd check -if (typeof define === "function" && define.amd) { - define( function () { - return bigInt; - }); -} diff --git a/build/node_modules/big-integer/BigInteger.min.js b/build/node_modules/big-integer/BigInteger.min.js deleted file mode 100644 index 09835af1..00000000 --- a/build/node_modules/big-integer/BigInteger.min.js +++ /dev/null @@ -1 +0,0 @@ -var bigInt=function(t){"use strict";var e=1e7,r=9007199254740992,o=f(r),n="0123456789abcdefghijklmnopqrstuvwxyz",i="function"==typeof BigInt;function u(t,e,r,o){return void 0===t?u[0]:void 0!==e&&(10!=+e||r)?_(t,e,r,o):K(t)}function p(t,e){this.value=t,this.sign=e,this.isSmall=!1}function a(t){this.value=t,this.sign=t<0,this.isSmall=!0}function s(t){this.value=t}function l(t){return-r0?Math.floor(t):Math.ceil(t)}function c(t,r){var o,n,i=t.length,u=r.length,p=new Array(i),a=0,s=e;for(n=0;n=s?1:0,p[n]=o-a*s;for(;n0&&p.push(a),p}function m(t,e){return t.length>=e.length?c(t,e):c(e,t)}function d(t,r){var o,n,i=t.length,u=new Array(i),p=e;for(n=0;n0;)u[n++]=r%p,r=Math.floor(r/p);return u}function b(t,r){var o,n,i=t.length,u=r.length,p=new Array(i),a=0,s=e;for(o=0;o0;)u[n++]=a%p,a=Math.floor(a/p);return u}function q(t,e){for(var r=[];e-- >0;)r.push(0);return r.concat(t)}function M(t,e){var r=Math.max(t.length,e.length);if(r<=30)return S(t,e);r=Math.ceil(r/2);var o=t.slice(r),n=t.slice(0,r),i=e.slice(r),u=e.slice(0,r),p=M(n,u),a=M(o,i),s=M(m(n,o),m(u,i)),l=m(m(p,q(b(b(s,p),a),r)),q(a,2*r));return h(l),l}function N(t,r,o){return new p(t=0;--r)n=(i=1e7*n+t[r])-(o=g(i/e))*e,p[r]=0|o;return[p,0|n]}function B(t,r){var o,n=K(r);if(i)return[new s(t.value/n.value),new s(t.value%n.value)];var l,c=t.value,m=n.value;if(0===m)throw new Error("Cannot divide by zero");if(t.isSmall)return n.isSmall?[new a(g(c/m)),new a(c%m)]:[u[0],t];if(n.isSmall){if(1===m)return[t,u[0]];if(-1==m)return[t.negate(),u[0]];var d=Math.abs(m);if(d=0;n--){for(o=h-1,d[n+f]!==c&&(o=Math.floor((d[n+f]*h+d[n+f-1])/c)),i=0,u=0,a=b.length,p=0;ps&&(i=(i+1)*y),o=Math.ceil(i/u);do{if(A(p=I(r,o),f)<=0)break;o--}while(o);l.push(o),f=b(f,p)}return l.reverse(),[v(l),v(f)]}(c,m),l=o[0];var q=t.sign!==n.sign,M=o[1],N=t.sign;return"number"==typeof l?(q&&(l=-l),l=new a(l)):l=new p(l,q),"number"==typeof M?(N&&(M=-M),M=new a(M)):M=new p(M,N),[l,M]}function A(t,e){if(t.length!==e.length)return t.length>e.length?1:-1;for(var r=t.length-1;r>=0;r--)if(t[r]!==e[r])return t[r]>e[r]?1:-1;return 0}function P(t){var e=t.abs();return!e.isUnit()&&(!!(e.equals(2)||e.equals(3)||e.equals(5))||!(e.isEven()||e.isDivisibleBy(3)||e.isDivisibleBy(5))&&(!!e.lesser(49)||void 0))}function Z(t,e){for(var r,o,n,i=t.prev(),u=i,p=0;u.isEven();)u=u.divide(2),p++;t:for(o=0;o=0?o=b(t,e):(o=b(e,t),r=!r),"number"==typeof(o=v(o))?(r&&(o=-o),new a(o)):new p(o,r)}(r,o,this.sign)},p.prototype.minus=p.prototype.subtract,a.prototype.subtract=function(t){var e=K(t),r=this.value;if(r<0!==e.sign)return this.add(e.negate());var o=e.value;return e.isSmall?new a(r-o):w(o,Math.abs(r),r>=0)},a.prototype.minus=a.prototype.subtract,s.prototype.subtract=function(t){return new s(this.value-K(t).value)},s.prototype.minus=s.prototype.subtract,p.prototype.negate=function(){return new p(this.value,!this.sign)},a.prototype.negate=function(){var t=this.sign,e=new a(-this.value);return e.sign=!t,e},s.prototype.negate=function(){return new s(-this.value)},p.prototype.abs=function(){return new p(this.value,!1)},a.prototype.abs=function(){return new a(Math.abs(this.value))},s.prototype.abs=function(){return new s(this.value>=0?this.value:-this.value)},p.prototype.multiply=function(t){var r,o,n,i=K(t),a=this.value,s=i.value,l=this.sign!==i.sign;if(i.isSmall){if(0===s)return u[0];if(1===s)return this;if(-1===s)return this.negate();if((r=Math.abs(s))0?M(a,s):S(a,s),l)},p.prototype.times=p.prototype.multiply,a.prototype._multiplyBySmall=function(t){return l(t.value*this.value)?new a(t.value*this.value):N(Math.abs(t.value),f(Math.abs(this.value)),this.sign!==t.sign)},p.prototype._multiplyBySmall=function(t){return 0===t.value?u[0]:1===t.value?this:-1===t.value?this.negate():N(Math.abs(t.value),this.value,this.sign!==t.sign)},a.prototype.multiply=function(t){return K(t)._multiplyBySmall(this)},a.prototype.times=a.prototype.multiply,s.prototype.multiply=function(t){return new s(this.value*K(t).value)},s.prototype.times=s.prototype.multiply,p.prototype.square=function(){return new p(E(this.value),!1)},a.prototype.square=function(){var t=this.value*this.value;return l(t)?new a(t):new p(E(f(Math.abs(this.value))),!1)},s.prototype.square=function(t){return new s(this.value*this.value)},p.prototype.divmod=function(t){var e=B(this,t);return{quotient:e[0],remainder:e[1]}},s.prototype.divmod=a.prototype.divmod=p.prototype.divmod,p.prototype.divide=function(t){return B(this,t)[0]},s.prototype.over=s.prototype.divide=function(t){return new s(this.value/K(t).value)},a.prototype.over=a.prototype.divide=p.prototype.over=p.prototype.divide,p.prototype.mod=function(t){return B(this,t)[1]},s.prototype.mod=s.prototype.remainder=function(t){return new s(this.value%K(t).value)},a.prototype.remainder=a.prototype.mod=p.prototype.remainder=p.prototype.mod,p.prototype.pow=function(t){var e,r,o,n=K(t),i=this.value,p=n.value;if(0===p)return u[1];if(0===i)return u[0];if(1===i)return u[1];if(-1===i)return n.isEven()?u[1]:u[-1];if(n.sign)return u[0];if(!n.isSmall)throw new Error("The exponent "+n.toString()+" is too large.");if(this.isSmall&&l(e=Math.pow(i,p)))return new a(g(e));for(r=this,o=u[1];!0&p&&(o=o.times(r),--p),0!==p;)p/=2,r=r.square();return o},a.prototype.pow=p.prototype.pow,s.prototype.pow=function(t){var e=K(t),r=this.value,o=e.value,n=BigInt(0),i=BigInt(1),p=BigInt(2);if(o===n)return u[1];if(r===n)return u[0];if(r===i)return u[1];if(r===BigInt(-1))return e.isEven()?u[1]:u[-1];if(e.isNegative())return new s(n);for(var a=this,l=u[1];(o&i)===i&&(l=l.times(a),--o),o!==n;)o/=p,a=a.square();return l},p.prototype.modPow=function(t,e){if(t=K(t),(e=K(e)).isZero())throw new Error("Cannot take modPow with modulus 0");var r=u[1],o=this.mod(e);for(t.isNegative()&&(t=t.multiply(u[-1]),o=o.modInv(e));t.isPositive();){if(o.isZero())return u[0];t.isOdd()&&(r=r.multiply(o).mod(e)),t=t.divide(2),o=o.square().mod(e)}return r},s.prototype.modPow=a.prototype.modPow=p.prototype.modPow,p.prototype.compareAbs=function(t){var e=K(t),r=this.value,o=e.value;return e.isSmall?1:A(r,o)},a.prototype.compareAbs=function(t){var e=K(t),r=Math.abs(this.value),o=e.value;return e.isSmall?r===(o=Math.abs(o))?0:r>o?1:-1:-1},s.prototype.compareAbs=function(t){var e=this.value,r=K(t).value;return(e=e>=0?e:-e)===(r=r>=0?r:-r)?0:e>r?1:-1},p.prototype.compare=function(t){if(t===1/0)return-1;if(t===-1/0)return 1;var e=K(t),r=this.value,o=e.value;return this.sign!==e.sign?e.sign?1:-1:e.isSmall?this.sign?-1:1:A(r,o)*(this.sign?-1:1)},p.prototype.compareTo=p.prototype.compare,a.prototype.compare=function(t){if(t===1/0)return-1;if(t===-1/0)return 1;var e=K(t),r=this.value,o=e.value;return e.isSmall?r==o?0:r>o?1:-1:r<0!==e.sign?r<0?-1:1:r<0?1:-1},a.prototype.compareTo=a.prototype.compare,s.prototype.compare=function(t){if(t===1/0)return-1;if(t===-1/0)return 1;var e=this.value,r=K(t).value;return e===r?0:e>r?1:-1},s.prototype.compareTo=s.prototype.compare,p.prototype.equals=function(t){return 0===this.compare(t)},s.prototype.eq=s.prototype.equals=a.prototype.eq=a.prototype.equals=p.prototype.eq=p.prototype.equals,p.prototype.notEquals=function(t){return 0!==this.compare(t)},s.prototype.neq=s.prototype.notEquals=a.prototype.neq=a.prototype.notEquals=p.prototype.neq=p.prototype.notEquals,p.prototype.greater=function(t){return this.compare(t)>0},s.prototype.gt=s.prototype.greater=a.prototype.gt=a.prototype.greater=p.prototype.gt=p.prototype.greater,p.prototype.lesser=function(t){return this.compare(t)<0},s.prototype.lt=s.prototype.lesser=a.prototype.lt=a.prototype.lesser=p.prototype.lt=p.prototype.lesser,p.prototype.greaterOrEquals=function(t){return this.compare(t)>=0},s.prototype.geq=s.prototype.greaterOrEquals=a.prototype.geq=a.prototype.greaterOrEquals=p.prototype.geq=p.prototype.greaterOrEquals,p.prototype.lesserOrEquals=function(t){return this.compare(t)<=0},s.prototype.leq=s.prototype.lesserOrEquals=a.prototype.leq=a.prototype.lesserOrEquals=p.prototype.leq=p.prototype.lesserOrEquals,p.prototype.isEven=function(){return 0==(1&this.value[0])},a.prototype.isEven=function(){return 0==(1&this.value)},s.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)},p.prototype.isOdd=function(){return 1==(1&this.value[0])},a.prototype.isOdd=function(){return 1==(1&this.value)},s.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)},p.prototype.isPositive=function(){return!this.sign},a.prototype.isPositive=function(){return this.value>0},s.prototype.isPositive=a.prototype.isPositive,p.prototype.isNegative=function(){return this.sign},a.prototype.isNegative=function(){return this.value<0},s.prototype.isNegative=a.prototype.isNegative,p.prototype.isUnit=function(){return!1},a.prototype.isUnit=function(){return 1===Math.abs(this.value)},s.prototype.isUnit=function(){return this.abs().value===BigInt(1)},p.prototype.isZero=function(){return!1},a.prototype.isZero=function(){return 0===this.value},s.prototype.isZero=function(){return this.value===BigInt(0)},p.prototype.isDivisibleBy=function(t){var e=K(t);return!e.isZero()&&(!!e.isUnit()||(0===e.compareAbs(2)?this.isEven():this.mod(e).isZero()))},s.prototype.isDivisibleBy=a.prototype.isDivisibleBy=p.prototype.isDivisibleBy,p.prototype.isPrime=function(e){var r=P(this);if(r!==t)return r;var o=this.abs(),n=o.bitLength();if(n<=64)return Z(o,[2,3,5,7,11,13,17,19,23,29,31,37]);for(var i=Math.log(2)*n.toJSNumber(),u=Math.ceil(!0===e?2*Math.pow(i,2):i),p=[],a=0;a-r?new a(t-1):new p(o,!0)},s.prototype.prev=function(){return new s(this.value-BigInt(1))};for(var x=[1];2*x[x.length-1]<=e;)x.push(2*x[x.length-1]);var J=x.length,L=x[J-1];function U(t){return Math.abs(t)<=e}function T(t,e,r){e=K(e);for(var o=t.isNegative(),n=e.isNegative(),i=o?t.not():t,u=n?e.not():e,p=0,a=0,s=null,l=null,f=[];!i.isZero()||!u.isZero();)p=(s=B(i,L))[1].toJSNumber(),o&&(p=L-1-p),a=(l=B(u,L))[1].toJSNumber(),n&&(a=L-1-a),i=s[0],u=l[0],f.push(r(p,a));for(var v=0!==r(o?1:0,n?1:0)?bigInt(-1):bigInt(0),h=f.length-1;h>=0;h-=1)v=v.multiply(L).add(bigInt(f[h]));return v}p.prototype.shiftLeft=function(t){var e=K(t).toJSNumber();if(!U(e))throw new Error(String(e)+" is too large for shifting.");if(e<0)return this.shiftRight(-e);var r=this;if(r.isZero())return r;for(;e>=J;)r=r.multiply(L),e-=J-1;return r.multiply(x[e])},s.prototype.shiftLeft=a.prototype.shiftLeft=p.prototype.shiftLeft,p.prototype.shiftRight=function(t){var e,r=K(t).toJSNumber();if(!U(r))throw new Error(String(r)+" is too large for shifting.");if(r<0)return this.shiftLeft(-r);for(var o=this;r>=J;){if(o.isZero()||o.isNegative()&&o.isUnit())return o;o=(e=B(o,L))[1].isNegative()?e[0].prev():e[0],r-=J-1}return(e=B(o,x[r]))[1].isNegative()?e[0].prev():e[0]},s.prototype.shiftRight=a.prototype.shiftRight=p.prototype.shiftRight,p.prototype.not=function(){return this.negate().prev()},s.prototype.not=a.prototype.not=p.prototype.not,p.prototype.and=function(t){return T(this,t,(function(t,e){return t&e}))},s.prototype.and=a.prototype.and=p.prototype.and,p.prototype.or=function(t){return T(this,t,(function(t,e){return t|e}))},s.prototype.or=a.prototype.or=p.prototype.or,p.prototype.xor=function(t){return T(this,t,(function(t,e){return t^e}))},s.prototype.xor=a.prototype.xor=p.prototype.xor;var j=1<<30;function C(t){var r=t.value,o="number"==typeof r?r|j:"bigint"==typeof r?r|BigInt(j):r[0]+r[1]*e|1073758208;return o&-o}function D(t,e){if(e.compareTo(t)<=0){var r=D(t,e.square(e)),o=r.p,n=r.e,i=o.multiply(e);return i.compareTo(t)<=0?{p:i,e:2*n+1}:{p:o,e:2*n}}return{p:bigInt(1),e:0}}function z(t,e){return t=K(t),e=K(e),t.greater(e)?t:e}function R(t,e){return t=K(t),e=K(e),t.lesser(e)?t:e}function k(t,e){if(t=K(t).abs(),e=K(e).abs(),t.equals(e))return t;if(t.isZero())return e;if(e.isZero())return t;for(var r,o,n=u[1];t.isEven()&&e.isEven();)r=R(C(t),C(e)),t=t.divide(r),e=e.divide(r),n=n.multiply(r);for(;t.isEven();)t=t.divide(C(t));do{for(;e.isEven();)e=e.divide(C(e));t.greater(e)&&(o=e,e=t,t=o),e=e.subtract(t)}while(!e.isZero());return n.isUnit()?t:t.multiply(n)}p.prototype.bitLength=function(){var t=this;return t.compareTo(bigInt(0))<0&&(t=t.negate().subtract(bigInt(1))),0===t.compareTo(bigInt(0))?bigInt(0):bigInt(D(t,bigInt(2)).e).add(bigInt(1))},s.prototype.bitLength=a.prototype.bitLength=p.prototype.bitLength;var _=function(t,e,r,o){r=r||n,t=String(t),o||(t=t.toLowerCase(),r=r.toLowerCase());var i,u=t.length,p=Math.abs(e),a={};for(i=0;i=p)){if("1"===f&&1===p)continue;throw new Error(f+" is not a valid digit in base "+e+".")}}e=K(e);var s=[],l="-"===t[0];for(i=l?1:0;i"!==t[i]&&i=0;o--)n=n.add(t[o].times(i)),i=i.times(e);return r?n.negate():n}function F(t,e){if((e=bigInt(e)).isZero()){if(t.isZero())return{value:[0],isNegative:!1};throw new Error("Cannot convert nonzero numbers to base 0.")}if(e.equals(-1)){if(t.isZero())return{value:[0],isNegative:!1};if(t.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-t.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:!1};var r=Array.apply(null,Array(t.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);return r.unshift([1]),{value:[].concat.apply([],r),isNegative:!1}}var o=!1;if(t.isNegative()&&e.isPositive()&&(o=!0,t=t.abs()),e.isUnit())return t.isZero()?{value:[0],isNegative:!1}:{value:Array.apply(null,Array(t.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:o};for(var n,i=[],u=t;u.isNegative()||u.compareAbs(e)>=0;){n=u.divmod(e),u=n.quotient;var p=n.remainder;p.isNegative()&&(p=e.minus(p).abs(),u=u.next()),i.push(p.toJSNumber())}return i.push(u.toJSNumber()),{value:i.reverse(),isNegative:o}}function G(t,e,r){var o=F(t,e);return(o.isNegative?"-":"")+o.value.map((function(t){return function(t,e){return t<(e=e||n).length?e[t]:"<"+t+">"}(t,r)})).join("")}function H(t){if(l(+t)){var e=+t;if(e===g(e))return i?new s(BigInt(e)):new a(e);throw new Error("Invalid integer: "+t)}var r="-"===t[0];r&&(t=t.slice(1));var o=t.split(/e/i);if(o.length>2)throw new Error("Invalid integer: "+o.join("e"));if(2===o.length){var n=o[1];if("+"===n[0]&&(n=n.slice(1)),(n=+n)!==g(n)||!l(n))throw new Error("Invalid integer: "+n+" is not a valid exponent.");var u=o[0],f=u.indexOf(".");if(f>=0&&(n-=u.length-f-1,u=u.slice(0,f)+u.slice(f+1)),n<0)throw new Error("Cannot include negative exponent part for integers");t=u+=new Array(n+1).join("0")}if(!/^([0-9][0-9]*)$/.test(t))throw new Error("Invalid integer: "+t);if(i)return new s(BigInt(r?"-"+t:t));for(var v=[],y=t.length,c=y-7;y>0;)v.push(+t.slice(c,y)),(c-=7)<0&&(c=0),y-=7;return h(v),new p(v,r)}function K(t){return"number"==typeof t?function(t){if(i)return new s(BigInt(t));if(l(t)){if(t!==g(t))throw new Error(t+" is not an integer.");return new a(t)}return H(t.toString())}(t):"string"==typeof t?H(t):"bigint"==typeof t?new s(t):t}p.prototype.toArray=function(t){return F(this,t)},a.prototype.toArray=function(t){return F(this,t)},s.prototype.toArray=function(t){return F(this,t)},p.prototype.toString=function(e,r){if(e===t&&(e=10),10!==e)return G(this,e,r);for(var o,n=this.value,i=n.length,u=String(n[--i]);--i>=0;)o=String(n[i]),u+="0000000".slice(o.length)+o;return(this.sign?"-":"")+u},a.prototype.toString=function(e,r){return e===t&&(e=10),10!=e?G(this,e,r):String(this.value)},s.prototype.toString=a.prototype.toString,s.prototype.toJSON=p.prototype.toJSON=a.prototype.toJSON=function(){return this.toString()},p.prototype.valueOf=function(){return parseInt(this.toString(),10)},p.prototype.toJSNumber=p.prototype.valueOf,a.prototype.valueOf=function(){return this.value},a.prototype.toJSNumber=a.prototype.valueOf,s.prototype.valueOf=s.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};for(var Q=0;Q<1e3;Q++)u[Q]=K(Q),Q>0&&(u[-Q]=K(-Q));return u.one=u[1],u.zero=u[0],u.minusOne=u[-1],u.max=z,u.min=R,u.gcd=k,u.lcm=function(t,e){return t=K(t).abs(),e=K(e).abs(),t.divide(k(t,e)).multiply(e)},u.isInstance=function(t){return t instanceof p||t instanceof a||t instanceof s},u.randBetween=function(t,r,o){t=K(t),r=K(r);var n=o||Math.random,i=R(t,r),p=z(t,r).subtract(i).add(1);if(p.isSmall)return i.add(Math.floor(n()*p));for(var a=F(p,e).value,s=[],l=!0,f=0;f diff --git a/build/node_modules/big-integer/README.md b/build/node_modules/big-integer/README.md deleted file mode 100644 index d72420fb..00000000 --- a/build/node_modules/big-integer/README.md +++ /dev/null @@ -1,589 +0,0 @@ -# BigInteger.js [![Build Status][travis-img]][travis-url] [![Coverage Status][coveralls-img]][coveralls-url] [![Monthly Downloads][downloads-img]][downloads-url] - -[travis-url]: https://travis-ci.org/peterolson/BigInteger.js -[travis-img]: https://travis-ci.org/peterolson/BigInteger.js.svg?branch=master -[coveralls-url]: https://coveralls.io/github/peterolson/BigInteger.js?branch=master -[coveralls-img]: https://coveralls.io/repos/peterolson/BigInteger.js/badge.svg?branch=master&service=github -[downloads-url]: https://www.npmjs.com/package/big-integer -[downloads-img]: https://img.shields.io/npm/dm/big-integer.svg - -**BigInteger.js** is an arbitrary-length integer library for Javascript, allowing arithmetic operations on integers of unlimited size, notwithstanding memory and time limitations. - -**Update (December 2, 2018):** [`BigInt` is being added as a native feature of JavaScript](https://tc39.github.io/proposal-bigint/). This library now works as a polyfill: if the environment supports the native `BigInt`, this library acts as a thin wrapper over the native implementation. - -## Installation - -If you are using a browser, you can download [BigInteger.js from GitHub](http://peterolson.github.com/BigInteger.js/BigInteger.min.js) or just hotlink to it: - - - -If you are using node, you can install BigInteger with [npm](https://npmjs.org/). - - npm install big-integer - -Then you can include it in your code: - - var bigInt = require("big-integer"); - - -## Usage -### `bigInt(number, [base], [alphabet], [caseSensitive])` - -You can create a bigInt by calling the `bigInt` function. You can pass in - - - a string, which it will parse as an bigInt and throw an `"Invalid integer"` error if the parsing fails. - - a Javascript number, which it will parse as an bigInt and throw an `"Invalid integer"` error if the parsing fails. - - another bigInt. - - nothing, and it will return `bigInt.zero`. - - If you provide a second parameter, then it will parse `number` as a number in base `base`. Note that `base` can be any bigInt (even negative or zero). The letters "a-z" and "A-Z" will be interpreted as the numbers 10 to 35. Higher digits can be specified in angle brackets (`<` and `>`). The default `base` is `10`. - - You can specify a custom alphabet for base conversion with the third parameter. The default `alphabet` is `"0123456789abcdefghijklmnopqrstuvwxyz"`. - - The fourth parameter specifies whether or not the number string should be case-sensitive, i.e. whether `a` and `A` should be treated as different digits. By default `caseSensitive` is `false`. - -Examples: - - var zero = bigInt(); - var ninetyThree = bigInt(93); - var largeNumber = bigInt("75643564363473453456342378564387956906736546456235345"); - var googol = bigInt("1e100"); - var bigNumber = bigInt(largeNumber); - - var maximumByte = bigInt("FF", 16); - var fiftyFiveGoogol = bigInt("<55>0", googol); - -Note that Javascript numbers larger than `9007199254740992` and smaller than `-9007199254740992` are not precisely represented numbers and will not produce exact results. If you are dealing with numbers outside that range, it is better to pass in strings. - -### Method Chaining - -Note that bigInt operations return bigInts, which allows you to chain methods, for example: - - var salary = bigInt(dollarsPerHour).times(hoursWorked).plus(randomBonuses) - -### Constants - -There are three named constants already stored that you do not have to construct with the `bigInt` function yourself: - - - `bigInt.one`, equivalent to `bigInt(1)` - - `bigInt.zero`, equivalent to `bigInt(0)` - - `bigInt.minusOne`, equivalent to `bigInt(-1)` - -The numbers from -999 to 999 are also already prestored and can be accessed using `bigInt[index]`, for example: - - - `bigInt[-999]`, equivalent to `bigInt(-999)` - - `bigInt[256]`, equivalent to `bigInt(256)` - -### Methods - -#### `abs()` - -Returns the absolute value of a bigInt. - - - `bigInt(-45).abs()` => `45` - - `bigInt(45).abs()` => `45` - -#### `add(number)` - -Performs addition. - - - `bigInt(5).add(7)` => `12` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Addition) - -#### `and(number)` - -Performs the bitwise AND operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement). - - - `bigInt(6).and(3)` => `2` - - `bigInt(6).and(-3)` => `4` - -#### `bitLength()` - -Returns the number of digits required to represent a bigInt in binary. - - - `bigInt(5)` => `3` (since 5 is `101` in binary, which is three digits long) - -#### `compare(number)` - -Performs a comparison between two numbers. If the numbers are equal, it returns `0`. If the first number is greater, it returns `1`. If the first number is lesser, it returns `-1`. - - - `bigInt(5).compare(5)` => `0` - - `bigInt(5).compare(4)` => `1` - - `bigInt(4).compare(5)` => `-1` - -#### `compareAbs(number)` - -Performs a comparison between the absolute value of two numbers. - - - `bigInt(5).compareAbs(-5)` => `0` - - `bigInt(5).compareAbs(4)` => `1` - - `bigInt(4).compareAbs(-5)` => `-1` - -#### `compareTo(number)` - -Alias for the `compare` method. - -#### `divide(number)` - -Performs integer division, disregarding the remainder. - - - `bigInt(59).divide(5)` => `11` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division) - -#### `divmod(number)` - -Performs division and returns an object with two properties: `quotient` and `remainder`. The sign of the remainder will match the sign of the dividend. - - - `bigInt(59).divmod(5)` => `{quotient: bigInt(11), remainder: bigInt(4) }` - - `bigInt(-5).divmod(2)` => `{quotient: bigInt(-2), remainder: bigInt(-1) }` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division) - -#### `eq(number)` - -Alias for the `equals` method. - -#### `equals(number)` - -Checks if two numbers are equal. - - - `bigInt(5).equals(5)` => `true` - - `bigInt(4).equals(7)` => `false` - -#### `geq(number)` - -Alias for the `greaterOrEquals` method. - - -#### `greater(number)` - -Checks if the first number is greater than the second. - - - `bigInt(5).greater(6)` => `false` - - `bigInt(5).greater(5)` => `false` - - `bigInt(5).greater(4)` => `true` - -#### `greaterOrEquals(number)` - -Checks if the first number is greater than or equal to the second. - - - `bigInt(5).greaterOrEquals(6)` => `false` - - `bigInt(5).greaterOrEquals(5)` => `true` - - `bigInt(5).greaterOrEquals(4)` => `true` - -#### `gt(number)` - -Alias for the `greater` method. - -#### `isDivisibleBy(number)` - -Returns `true` if the first number is divisible by the second number, `false` otherwise. - - - `bigInt(999).isDivisibleBy(333)` => `true` - - `bigInt(99).isDivisibleBy(5)` => `false` - -#### `isEven()` - -Returns `true` if the number is even, `false` otherwise. - - - `bigInt(6).isEven()` => `true` - - `bigInt(3).isEven()` => `false` - -#### `isNegative()` - -Returns `true` if the number is negative, `false` otherwise. -Returns `false` for `0` and `-0`. - - - `bigInt(-23).isNegative()` => `true` - - `bigInt(50).isNegative()` => `false` - -#### `isOdd()` - -Returns `true` if the number is odd, `false` otherwise. - - - `bigInt(13).isOdd()` => `true` - - `bigInt(40).isOdd()` => `false` - -#### `isPositive()` - -Return `true` if the number is positive, `false` otherwise. -Returns `false` for `0` and `-0`. - - - `bigInt(54).isPositive()` => `true` - - `bigInt(-1).isPositive()` => `false` - -#### `isPrime(strict?)` - -Returns `true` if the number is prime, `false` otherwise. -Set "strict" boolean to true to force GRH-supported lower bound of 2*log(N)^2. - - - `bigInt(5).isPrime()` => `true` - - `bigInt(6).isPrime()` => `false` - -#### `isProbablePrime([iterations], [rng])` - -Returns `true` if the number is very likely to be prime, `false` otherwise. -Supplying `iterations` is optional - it determines the number of iterations of the test (default: `5`). The more iterations, the lower chance of getting a false positive. -This uses the [Miller Rabin test](https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test). - - - `bigInt(5).isProbablePrime()` => `true` - - `bigInt(49).isProbablePrime()` => `false` - - `bigInt(1729).isProbablePrime()` => `false` - -Note that this function is not deterministic, since it relies on random sampling of factors, so the result for some numbers is not always the same - unless you pass a predictable random number generator as `rng`. The behavior and requirements are the same as with `randBetween`. - - - `bigInt(1729).isProbablePrime(1, () => 0.1)` => `false` - - `bigInt(1729).isProbablePrime(1, () => 0.2)` => `true` - -If the number is composite then the Miller–Rabin primality test declares the number probably prime with a probability at most `4` to the power `−iterations`. -If the number is prime, this function always returns `true`. - -#### `isUnit()` - -Returns `true` if the number is `1` or `-1`, `false` otherwise. - - - `bigInt.one.isUnit()` => `true` - - `bigInt.minusOne.isUnit()` => `true` - - `bigInt(5).isUnit()` => `false` - -#### `isZero()` - -Return `true` if the number is `0` or `-0`, `false` otherwise. - - - `bigInt.zero.isZero()` => `true` - - `bigInt("-0").isZero()` => `true` - - `bigInt(50).isZero()` => `false` - -#### `leq(number)` - -Alias for the `lesserOrEquals` method. - -#### `lesser(number)` - -Checks if the first number is lesser than the second. - - - `bigInt(5).lesser(6)` => `true` - - `bigInt(5).lesser(5)` => `false` - - `bigInt(5).lesser(4)` => `false` - -#### `lesserOrEquals(number)` - -Checks if the first number is less than or equal to the second. - - - `bigInt(5).lesserOrEquals(6)` => `true` - - `bigInt(5).lesserOrEquals(5)` => `true` - - `bigInt(5).lesserOrEquals(4)` => `false` - -#### `lt(number)` - -Alias for the `lesser` method. - -#### `minus(number)` - -Alias for the `subtract` method. - - - `bigInt(3).minus(5)` => `-2` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Subtraction) - -#### `mod(number)` - -Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend. - - - `bigInt(59).mod(5)` => `4` - - `bigInt(-5).mod(2)` => `-1` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division) - -#### `modInv(mod)` - -Finds the [multiplicative inverse](https://en.wikipedia.org/wiki/Modular_multiplicative_inverse) of the number modulo `mod`. - - - `bigInt(3).modInv(11)` => `4` - - `bigInt(42).modInv(2017)` => `1969` - -#### `modPow(exp, mod)` - -Takes the number to the power `exp` modulo `mod`. - - - `bigInt(10).modPow(3, 30)` => `10` - -#### `multiply(number)` - -Performs multiplication. - - - `bigInt(111).multiply(111)` => `12321` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Multiplication) - -#### `neq(number)` - -Alias for the `notEquals` method. - -#### `next()` - -Adds one to the number. - - - `bigInt(6).next()` => `7` - -#### `not()` - -Performs the bitwise NOT operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement). - - - `bigInt(10).not()` => `-11` - - `bigInt(0).not()` => `-1` - -#### `notEquals(number)` - -Checks if two numbers are not equal. - - - `bigInt(5).notEquals(5)` => `false` - - `bigInt(4).notEquals(7)` => `true` - -#### `or(number)` - -Performs the bitwise OR operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement). - - - `bigInt(13).or(10)` => `15` - - `bigInt(13).or(-8)` => `-3` - -#### `over(number)` - -Alias for the `divide` method. - - - `bigInt(59).over(5)` => `11` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division) - -#### `plus(number)` - -Alias for the `add` method. - - - `bigInt(5).plus(7)` => `12` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Addition) - -#### `pow(number)` - -Performs exponentiation. If the exponent is less than `0`, `pow` returns `0`. `bigInt.zero.pow(0)` returns `1`. - - - `bigInt(16).pow(16)` => `18446744073709551616` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Exponentiation) - -#### `prev(number)` - -Subtracts one from the number. - - - `bigInt(6).prev()` => `5` - -#### `remainder(number)` - -Alias for the `mod` method. - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division) - -#### `shiftLeft(n)` - -Shifts the number left by `n` places in its binary representation. If a negative number is provided, it will shift right. Throws an error if `n` is outside of the range `[-9007199254740992, 9007199254740992]`. - - - `bigInt(8).shiftLeft(2)` => `32` - - `bigInt(8).shiftLeft(-2)` => `2` - -#### `shiftRight(n)` - -Shifts the number right by `n` places in its binary representation. If a negative number is provided, it will shift left. Throws an error if `n` is outside of the range `[-9007199254740992, 9007199254740992]`. - - - `bigInt(8).shiftRight(2)` => `2` - - `bigInt(8).shiftRight(-2)` => `32` - -#### `square()` - -Squares the number - - - `bigInt(3).square()` => `9` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Squaring) - -#### `subtract(number)` - -Performs subtraction. - - - `bigInt(3).subtract(5)` => `-2` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Subtraction) - -#### `times(number)` - -Alias for the `multiply` method. - - - `bigInt(111).times(111)` => `12321` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Multiplication) - -#### `toArray(radix)` - -Converts a bigInt into an object with the properties "value" and "isNegative." "Value" is an array of integers modulo the given radix. "isNegative" is a boolean that represents the sign of the result. - - - `bigInt("1e9").toArray(10)` => { - value: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], - isNegative: false - } - - `bigInt("1e9").toArray(16)` => { - value: [3, 11, 9, 10, 12, 10, 0, 0], - isNegative: false - } - - `bigInt(567890).toArray(100)` => { - value: [56, 78, 90], - isNegative: false - } - -Negative bases are supported. - - - `bigInt(12345).toArray(-10)` => { - value: [2, 8, 4, 6, 5], - isNegative: false - } - -Base 1 and base -1 are also supported. - - - `bigInt(-15).toArray(1)` => { - value: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - isNegative: true - } - - `bigInt(-15).toArray(-1)` => { - value: [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0], - isNegative: false - } - -Base 0 is only allowed for the number zero. - - - `bigInt(0).toArray(0)` => { - value: [0], - isNegative: false - } - - `bigInt(1).toArray(0)` => `Error: Cannot convert nonzero numbers to base 0.` - -#### `toJSNumber()` - -Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range `[-9007199254740992, 9007199254740992]`. - - - `bigInt("18446744073709551616").toJSNumber()` => `18446744073709552000` - -#### `xor(number)` - -Performs the bitwise XOR operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement). - - - `bigInt(12).xor(5)` => `9` - - `bigInt(12).xor(-5)` => `-9` - -### Static Methods - -#### `fromArray(digits, base = 10, isNegative?)` - -Constructs a bigInt from an array of digits in base `base`. The optional `isNegative` flag will make the number negative. - - - `bigInt.fromArray([1, 2, 3, 4, 5], 10)` => `12345` - - `bigInt.fromArray([1, 0, 0], 2, true)` => `-4` - -#### `gcd(a, b)` - -Finds the greatest common denominator of `a` and `b`. - - - `bigInt.gcd(42,56)` => `14` - -#### `isInstance(x)` - -Returns `true` if `x` is a BigInteger, `false` otherwise. - - - `bigInt.isInstance(bigInt(14))` => `true` - - `bigInt.isInstance(14)` => `false` - -#### `lcm(a,b)` - -Finds the least common multiple of `a` and `b`. - - - `bigInt.lcm(21, 6)` => `42` - -#### `max(a,b)` - -Returns the largest of `a` and `b`. - - - `bigInt.max(77, 432)` => `432` - -#### `min(a,b)` - -Returns the smallest of `a` and `b`. - - - `bigInt.min(77, 432)` => `77` - -#### `randBetween(min, max, [rng])` - -Returns a random number between `min` and `max`, optionally using `rng` to generate randomness. - - - `bigInt.randBetween("-1e100", "1e100")` => (for example) `8494907165436643479673097939554427056789510374838494147955756275846226209006506706784609314471378745` - -`rng` should take no arguments and return a `number` between 0 and 1. It defaults to `Math.random`. - - - `bigInt.randBetween("-1e100", "1e100", () => 0.5)` => (always) `50000005000000500000050000005000000500000050000005000000500000050000005000000500000050000005000000` - - -### Override Methods - -#### `toString(radix = 10, [alphabet])` - -Converts a bigInt to a string. There is an optional radix parameter (which defaults to 10) that converts the number to the given radix. Digits in the range `10-35` will use the letters `a-z`. - - - `bigInt("1e9").toString()` => `"1000000000"` - - `bigInt("1e9").toString(16)` => `"3b9aca00"` - - You can use a custom base alphabet with the second parameter. The default `alphabet` is `"0123456789abcdefghijklmnopqrstuvwxyz"`. - - - `bigInt("5").toString(2, "aA")` => `"AaA"` - -**Note that arithmetical operators will trigger the `valueOf` function rather than the `toString` function.** When converting a bigInteger to a string, you should use the `toString` method or the `String` function instead of adding the empty string. - - - `bigInt("999999999999999999").toString()` => `"999999999999999999"` - - `String(bigInt("999999999999999999"))` => `"999999999999999999"` - - `bigInt("999999999999999999") + ""` => `1000000000000000000` - -Bases larger than 36 are supported. If a digit is greater than or equal to 36, it will be enclosed in angle brackets. - - - `bigInt(567890).toString(100)` => `"<56><78><90>"` - -Negative bases are also supported. - - - `bigInt(12345).toString(-10)` => `"28465"` - -Base 1 and base -1 are also supported. - - - `bigInt(-15).toString(1)` => `"-111111111111111"` - - `bigInt(-15).toString(-1)` => `"101010101010101010101010101010"` - -Base 0 is only allowed for the number zero. - - - `bigInt(0).toString(0)` => `0` - - `bigInt(1).toString(0)` => `Error: Cannot convert nonzero numbers to base 0.` - -[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#toString) - -#### `valueOf()` - -Converts a bigInt to a native Javascript number. This override allows you to use native arithmetic operators without explicit conversion: - - - `bigInt("100") + bigInt("200") === 300; //true` - -## Contributors - -To contribute, just fork the project, make some changes, and submit a pull request. Please verify that the unit tests pass before submitting. - -The unit tests are contained in the `spec/spec.js` file. You can run them locally by opening the `spec/SpecRunner.html` or file or running `npm test`. You can also [run the tests online from GitHub](http://peterolson.github.io/BigInteger.js/spec/SpecRunner.html). - -There are performance benchmarks that can be viewed from the `benchmarks/index.html` page. You can [run them online from GitHub](http://peterolson.github.io/BigInteger.js/benchmark/). - -## License - -This project is public domain. For more details, read about the [Unlicense](http://unlicense.org/). diff --git a/build/node_modules/big-integer/bower.json b/build/node_modules/big-integer/bower.json deleted file mode 100644 index 22dc58f5..00000000 --- a/build/node_modules/big-integer/bower.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "big-integer", - "description": "An arbitrary length integer library for Javascript", - "main": "./BigInteger.js", - "authors": [ - "Peter Olson" - ], - "license": "Unlicense", - "keywords": [ - "math", - "big", - "bignum", - "bigint", - "biginteger", - "integer", - "arbitrary", - "precision", - "arithmetic" - ], - "homepage": "https://github.com/peterolson/BigInteger.js", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "coverage", - "tests" - ] -} diff --git a/build/node_modules/big-integer/package.json b/build/node_modules/big-integer/package.json deleted file mode 100644 index a6eb2011..00000000 --- a/build/node_modules/big-integer/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "big-integer", - "version": "1.6.51", - "author": "Peter Olson ", - "description": "An arbitrary length integer library for Javascript", - "contributors": [], - "bin": {}, - "scripts": { - "test": "tsc && karma start my.conf.js && node spec/tsDefinitions.js", - "minify": "uglifyjs BigInteger.js -o BigInteger.min.js" - }, - "main": "./BigInteger", - "repository": { - "type": "git", - "url": "git@github.com:peterolson/BigInteger.js.git" - }, - "keywords": [ - "math", - "big", - "bignum", - "bigint", - "biginteger", - "integer", - "arbitrary", - "precision", - "arithmetic" - ], - "devDependencies": { - "@types/lodash": "^4.14.175", - "@types/node": "^7.10.2", - "coveralls": "^3.0.6", - "jasmine": "3.5.0", - "jasmine-core": "^3.5.0", - "karma": "^6.3.4", - "karma-cli": "^2.0.0", - "karma-coverage": "^2.0.3", - "karma-jasmine": "^4.0.1", - "karma-phantomjs-launcher": "^1.0.4", - "lodash": "^4.17.21", - "typescript": "^3.6.3", - "uglifyjs": "^2.4.10" - }, - "license": "Unlicense", - "engines": { - "node": ">=0.6" - }, - "typings": "./BigInteger.d.ts" -} diff --git a/build/node_modules/big-integer/tsconfig.json b/build/node_modules/big-integer/tsconfig.json deleted file mode 100644 index dae01d4f..00000000 --- a/build/node_modules/big-integer/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "commonjs", - "lib": [ - "es6" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": false, - "baseUrl": "./", - "moduleResolution": "node", - "allowJs": true, - "typeRoots": [ - "./" - ], - "types": [ - "node" - ], - "forceConsistentCasingInFileNames": true - }, - "files": [ - "BigInteger.d.ts", - "spec/tsDefinitions.ts" - ] -} diff --git a/build/node_modules/big.js/CHANGELOG.md b/build/node_modules/big.js/CHANGELOG.md deleted file mode 100644 index 9c69eecd..00000000 --- a/build/node_modules/big.js/CHANGELOG.md +++ /dev/null @@ -1,146 +0,0 @@ -#### 5.2.2 - -* 18/10/18 -* #109 Remove opencollective dependency. - -#### 5.2.1 - -* Delete *bower.json*. - -#### 5.2.0 - -* 09/10/18 -* #63 Allow negative argument for `round`. -* #107 `sqrt` of large number. - -#### 5.1.2 - -* 24/05/18 -* #95 Add `browser` field to *package.json*. -* Restore named export to enable `import {Big}`. - -#### 5.1.1 - -* 22/05/18 -* #95 Remove named export. - -#### 5.1.0 - -* 22/05/18 -* Amend *.mjs* exports. -* Remove extension from `main` field in *package.json*. - -#### 5.0.3 - -* 23/10/17 -* #89 Optimisation of internal `round` function. - -#### 5.0.2 - -* 13/10/17 -* Update *README.md*. - -#### 5.0.1 - -* 13/10/17 -* Correct `Big.version` number. - -#### 5.0.0 - -* 13/10/17 -* Return `-0` from `valueOf` for negative zero. -* Refactor the methods which return a string. -* Amend error messaging. -* Update API document and change its colour scheme. -* Add `Big.version`. -* Remove bitcoin address. - -#### 4.0.2 - -* 28/09/17 -* Add *big.mjs* for use with Node.js with `--experimental-modules` flag. - -#### 4.0.0 - -* 27/09/17 -* Rename `Big.E_POS` to `Big.PE`, `Big.E_NEG` to `Big.NE`. -* Refactor error messaging. -* Throw if `null` is passed to `toFixed` etc. - -#### 3.2.0 - -* 14/09/17 Aid ES6 import. - -#### 3.1.3 - -* Minor documentation updates. - -#### 3.1.2 - -* README typo. - -#### 3.1.1 - -* API documentation update, including FAQ additions. - -#### 3.1.0 - -* Renamed and exposed `TO_EXP_NEG` and `TO_EXP_POS` as `Big.E_NEG` and `Big.E_POS`. - -#### 3.0.2 - -* Remove *.npmignore*, use `files` field in *package.json* instead. - -#### 3.0.1 - -* Added `sub`, `add` and `mul` aliases. -* Clean-up after lint. - -#### 3.0.0 - -* 10/12/14 Added [multiple constructor functionality](http://mikemcl.github.io/big.js/#faq). -* No breaking changes or other additions, but a major code reorganisation, so *v3* seemed appropiate. - -#### 2.5.2 - -* 1/11/14 Added bower.json. - -#### 2.5.1 - -* 8/06/14 Amend README requires. - -#### 2.5.0 - -* 26/01/14 Added `toJSON` method so serialization uses `toString`. - -#### 2.4.1 - -* 17/10/13 Conform signed zero to IEEEE 754 (2008). - -#### 2.4.0 - -* 19/09/13 Throw instances of `Error`. - -#### 2.3.0 - -* 16/09/13 Added `cmp` method. - -#### 2.2.0 - -* 11/07/13 Added 'round up' mode. - -#### 2.1.0 - -* 26/06/13 Allow e.g. `.1` and `2.`. - -#### 2.0.0 - -* 12/05/13 Added `abs` method and replaced `cmp` with `eq`, `gt`, `gte`, `lt`, and `lte` methods. - -#### 1.0.1 - -* Changed default value of MAX_DP to 1E6 - -#### 1.0.0 - -* 7/11/2012 Initial release diff --git a/build/node_modules/big.js/LICENCE b/build/node_modules/big.js/LICENCE deleted file mode 100644 index c30d30b2..00000000 --- a/build/node_modules/big.js/LICENCE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT Licence (Expat). - -Copyright (c) 2018 Michael Mclaughlin - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/build/node_modules/big.js/README.md b/build/node_modules/big.js/README.md deleted file mode 100644 index 2ecb19df..00000000 --- a/build/node_modules/big.js/README.md +++ /dev/null @@ -1,201 +0,0 @@ -# big.js - -**A small, fast JavaScript library for arbitrary-precision decimal arithmetic.** - -The little sister to [bignumber.js](https://github.com/MikeMcl/bignumber.js/) and [decimal.js](https://github.com/MikeMcl/decimal.js/). See [here](https://github.com/MikeMcl/big.js/wiki) for some notes on the difference between them. - -## Features - - - Faster, smaller and easier-to-use than JavaScript versions of Java's BigDecimal - - Only 5.9 KB minified and 2.7 KB gzipped - - Simple API - - Replicates the `toExponential`, `toFixed` and `toPrecision` methods of JavaScript's Number type - - Includes a `sqrt` method - - Stores values in an accessible decimal floating point format - - No dependencies - - Comprehensive [documentation](http://mikemcl.github.io/big.js/) and test set - -## Set up - -The library is the single JavaScript file *big.js* (or *big.min.js*, which is *big.js* minified). - -Browser: - -```html - -``` - -[Node.js](http://nodejs.org): - -```bash -$ npm install big.js -``` - -```javascript -const Big = require('big.js'); -``` - -ES6 module: - -```javascript -import Big from 'big.mjs'; -``` -## Use - -*In all examples below, `var`, semicolons and `toString` calls are not shown. If a commented-out value is in quotes it means `toString` has been called on the preceding expression.* - -The library exports a single function, `Big`, the constructor of Big number instances. -It accepts a value of type number, string or Big number object. - - x = new Big(123.4567) - y = Big('123456.7e-3') // 'new' is optional - z = new Big(x) - x.eq(y) && x.eq(z) && y.eq(z) // true - -A Big number is immutable in the sense that it is not changed by its methods. - - 0.3 - 0.1 // 0.19999999999999998 - x = new Big(0.3) - x.minus(0.1) // "0.2" - x // "0.3" - -The methods that return a Big number can be chained. - - x.div(y).plus(z).times(9).minus('1.234567801234567e+8').plus(976.54321).div('2598.11772') - x.sqrt().div(y).pow(3).gt(y.mod(z)) // true - -Like JavaScript's Number type, there are `toExponential`, `toFixed` and `toPrecision` methods. - - x = new Big(255.5) - x.toExponential(5) // "2.55500e+2" - x.toFixed(5) // "255.50000" - x.toPrecision(5) // "255.50" - -The arithmetic methods always return the exact result except `div`, `sqrt` and `pow` -(with negative exponent), as these methods involve division. - -The maximum number of decimal places and the rounding mode used to round the results of these methods is determined by the value of the `DP` and `RM` properties of the `Big` number constructor. - - Big.DP = 10 - Big.RM = 1 - - x = new Big(2); - y = new Big(3); - z = x.div(y) // "0.6666666667" - z.sqrt() // "0.8164965809" - z.pow(-3) // "3.3749999995" - z.times(z) // "0.44444444448888888889" - z.times(z).round(10) // "0.4444444445" - -Multiple Big number constructors can be created, each with an independent configuration. - -The value of a Big number is stored in a decimal floating point format in terms of a coefficient, exponent and sign. - - x = new Big(-123.456); - x.c // [1,2,3,4,5,6] coefficient (i.e. significand) - x.e // 2 exponent - x.s // -1 sign - -For further information see the [API](http://mikemcl.github.io/big.js/) reference from the *doc* folder. - -## Test - -The *test* directory contains the test scripts for each Big number method. - -The tests can be run with Node.js or a browser. - -To run all the tests - - $ npm test - -To test a single method - - $ node test/toFixed - -For the browser, see *single-test.html* and *every-test.html* in the *test/browser* directory. - -*big-vs-number.html* is a simple application that enables some of the methods of big.js to be compared with those of JavaScript's Number type. - -## Performance - -The *perf* directory contains two legacy applications and a *lib* directory containing the BigDecimal libraries used by both. - -*big-vs-bigdecimal.html* tests the performance of big.js against the JavaScript translations of two versions of BigDecimal, its use should be more or less self-explanatory. - -* [GWT: java.math.BigDecimal](https://github.com/iriscouch/bigdecimal.js) -* [ICU4J: com.ibm.icu.math.BigDecimal](https://github.com/dtrebbien/BigDecimal.js) - -The BigDecimal in the npm registry is the GWT version. It has some bugs, see the Node.js script *perf/lib/bigdecimal_GWT/bugs.js* for examples of flaws in its *remainder*, *divide* and *compareTo* methods. - -*bigtime.js* is a Node.js command-line application which tests the performance of big.js against the GWT version of -BigDecimal from the npm registry. - -For example, to compare the time taken by the big.js `plus` method and the BigDecimal `add` method - - $ node bigtime plus 10000 40 - -This will time 10000 calls to each, using operands of up to 40 random digits and will check that the results match. - -For help - - $ node bigtime -h - -## Build - -If [uglify-js](https://github.com/mishoo/UglifyJS2) is installed globally - - $ npm install uglify-js -g - -then - - $ npm run build - -will create *big.min.js*. - -## TypeScript - -The [DefinitelyTyped](https://github.com/borisyankov/DefinitelyTyped) project has a Typescript type definitions file for big.js. - - $ npm install @types/big.js - -Any questions about the TypeScript type definitions file should be addressed to the DefinitelyTyped project. - -## Feedback - -Bugs/comments/questions? - -Open an issue, or email Michael - -## Licence - -[MIT](LICENCE) - -## Contributors - -This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. - - - -## Backers - -Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/bigjs#backer)] - - - - -## Sponsors - -Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/bigjs#sponsor)] - - - - - - - - - - - - - diff --git a/build/node_modules/big.js/big.js b/build/node_modules/big.js/big.js deleted file mode 100644 index 55f181ac..00000000 --- a/build/node_modules/big.js/big.js +++ /dev/null @@ -1,941 +0,0 @@ -/* - * big.js v5.2.2 - * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic. - * Copyright (c) 2018 Michael Mclaughlin - * https://github.com/MikeMcl/big.js/LICENCE - */ -;(function (GLOBAL) { - 'use strict'; - var Big, - - -/************************************** EDITABLE DEFAULTS *****************************************/ - - - // The default values below must be integers within the stated ranges. - - /* - * The maximum number of decimal places (DP) of the results of operations involving division: - * div and sqrt, and pow with negative exponents. - */ - DP = 20, // 0 to MAX_DP - - /* - * The rounding mode (RM) used when rounding to the above decimal places. - * - * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN) - * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP) - * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN) - * 3 Away from zero. (ROUND_UP) - */ - RM = 1, // 0, 1, 2 or 3 - - // The maximum value of DP and Big.DP. - MAX_DP = 1E6, // 0 to 1000000 - - // The maximum magnitude of the exponent argument to the pow method. - MAX_POWER = 1E6, // 1 to 1000000 - - /* - * The negative exponent (NE) at and beneath which toString returns exponential notation. - * (JavaScript numbers: -7) - * -1000000 is the minimum recommended exponent value of a Big. - */ - NE = -7, // 0 to -1000000 - - /* - * The positive exponent (PE) at and above which toString returns exponential notation. - * (JavaScript numbers: 21) - * 1000000 is the maximum recommended exponent value of a Big. - * (This limit is not enforced or checked.) - */ - PE = 21, // 0 to 1000000 - - -/**************************************************************************************************/ - - - // Error messages. - NAME = '[big.js] ', - INVALID = NAME + 'Invalid ', - INVALID_DP = INVALID + 'decimal places', - INVALID_RM = INVALID + 'rounding mode', - DIV_BY_ZERO = NAME + 'Division by zero', - - // The shared prototype object. - P = {}, - UNDEFINED = void 0, - NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; - - - /* - * Create and return a Big constructor. - * - */ - function _Big_() { - - /* - * The Big constructor and exported function. - * Create and return a new instance of a Big number object. - * - * n {number|string|Big} A numeric value. - */ - function Big(n) { - var x = this; - - // Enable constructor usage without new. - if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n); - - // Duplicate. - if (n instanceof Big) { - x.s = n.s; - x.e = n.e; - x.c = n.c.slice(); - } else { - parse(x, n); - } - - /* - * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which - * points to Object. - */ - x.constructor = Big; - } - - Big.prototype = P; - Big.DP = DP; - Big.RM = RM; - Big.NE = NE; - Big.PE = PE; - Big.version = '5.2.2'; - - return Big; - } - - - /* - * Parse the number or string value passed to a Big constructor. - * - * x {Big} A Big number instance. - * n {number|string} A numeric value. - */ - function parse(x, n) { - var e, i, nl; - - // Minus zero? - if (n === 0 && 1 / n < 0) n = '-0'; - else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number'); - - // Determine sign. - x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1; - - // Decimal point? - if ((e = n.indexOf('.')) > -1) n = n.replace('.', ''); - - // Exponential form? - if ((i = n.search(/e/i)) > 0) { - - // Determine exponent. - if (e < 0) e = i; - e += +n.slice(i + 1); - n = n.substring(0, i); - } else if (e < 0) { - - // Integer. - e = n.length; - } - - nl = n.length; - - // Determine leading zeros. - for (i = 0; i < nl && n.charAt(i) == '0';) ++i; - - if (i == nl) { - - // Zero. - x.c = [x.e = 0]; - } else { - - // Determine trailing zeros. - for (; nl > 0 && n.charAt(--nl) == '0';); - x.e = e - i - 1; - x.c = []; - - // Convert string to array of digits without leading/trailing zeros. - for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++); - } - - return x; - } - - - /* - * Round Big x to a maximum of dp decimal places using rounding mode rm. - * Called by stringify, P.div, P.round and P.sqrt. - * - * x {Big} The Big to round. - * dp {number} Integer, 0 to MAX_DP inclusive. - * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP) - * [more] {boolean} Whether the result of division was truncated. - */ - function round(x, dp, rm, more) { - var xc = x.c, - i = x.e + dp + 1; - - if (i < xc.length) { - if (rm === 1) { - - // xc[i] is the digit after the digit that may be rounded up. - more = xc[i] >= 5; - } else if (rm === 2) { - more = xc[i] > 5 || xc[i] == 5 && - (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1); - } else if (rm === 3) { - more = more || !!xc[0]; - } else { - more = false; - if (rm !== 0) throw Error(INVALID_RM); - } - - if (i < 1) { - xc.length = 1; - - if (more) { - - // 1, 0.1, 0.01, 0.001, 0.0001 etc. - x.e = -dp; - xc[0] = 1; - } else { - - // Zero. - xc[0] = x.e = 0; - } - } else { - - // Remove any digits after the required decimal places. - xc.length = i--; - - // Round up? - if (more) { - - // Rounding up may mean the previous digit has to be rounded up. - for (; ++xc[i] > 9;) { - xc[i] = 0; - if (!i--) { - ++x.e; - xc.unshift(1); - } - } - } - - // Remove trailing zeros. - for (i = xc.length; !xc[--i];) xc.pop(); - } - } else if (rm < 0 || rm > 3 || rm !== ~~rm) { - throw Error(INVALID_RM); - } - - return x; - } - - - /* - * Return a string representing the value of Big x in normal or exponential notation. - * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf. - * - * x {Big} - * id? {number} Caller id. - * 1 toExponential - * 2 toFixed - * 3 toPrecision - * 4 valueOf - * n? {number|undefined} Caller's argument. - * k? {number|undefined} - */ - function stringify(x, id, n, k) { - var e, s, - Big = x.constructor, - z = !x.c[0]; - - if (n !== UNDEFINED) { - if (n !== ~~n || n < (id == 3) || n > MAX_DP) { - throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP); - } - - x = new Big(x); - - // The index of the digit that may be rounded up. - n = k - x.e; - - // Round? - if (x.c.length > ++k) round(x, n, Big.RM); - - // toFixed: recalculate k as x.e may have changed if value rounded up. - if (id == 2) k = x.e + n + 1; - - // Append zeros? - for (; x.c.length < k;) x.c.push(0); - } - - e = x.e; - s = x.c.join(''); - n = s.length; - - // Exponential notation? - if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) { - s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e; - - // Normal notation. - } else if (e < 0) { - for (; ++e;) s = '0' + s; - s = '0.' + s; - } else if (e > 0) { - if (++e > n) for (e -= n; e--;) s += '0'; - else if (e < n) s = s.slice(0, e) + '.' + s.slice(e); - } else if (n > 1) { - s = s.charAt(0) + '.' + s.slice(1); - } - - return x.s < 0 && (!z || id == 4) ? '-' + s : s; - } - - - // Prototype/instance methods - - - /* - * Return a new Big whose value is the absolute value of this Big. - */ - P.abs = function () { - var x = new this.constructor(this); - x.s = 1; - return x; - }; - - - /* - * Return 1 if the value of this Big is greater than the value of Big y, - * -1 if the value of this Big is less than the value of Big y, or - * 0 if they have the same value. - */ - P.cmp = function (y) { - var isneg, - x = this, - xc = x.c, - yc = (y = new x.constructor(y)).c, - i = x.s, - j = y.s, - k = x.e, - l = y.e; - - // Either zero? - if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i; - - // Signs differ? - if (i != j) return i; - - isneg = i < 0; - - // Compare exponents. - if (k != l) return k > l ^ isneg ? 1 : -1; - - j = (k = xc.length) < (l = yc.length) ? k : l; - - // Compare digit by digit. - for (i = -1; ++i < j;) { - if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1; - } - - // Compare lengths. - return k == l ? 0 : k > l ^ isneg ? 1 : -1; - }; - - - /* - * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded, - * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. - */ - P.div = function (y) { - var x = this, - Big = x.constructor, - a = x.c, // dividend - b = (y = new Big(y)).c, // divisor - k = x.s == y.s ? 1 : -1, - dp = Big.DP; - - if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP); - - // Divisor is zero? - if (!b[0]) throw Error(DIV_BY_ZERO); - - // Dividend is 0? Return +-0. - if (!a[0]) return new Big(k * 0); - - var bl, bt, n, cmp, ri, - bz = b.slice(), - ai = bl = b.length, - al = a.length, - r = a.slice(0, bl), // remainder - rl = r.length, - q = y, // quotient - qc = q.c = [], - qi = 0, - d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result - - q.s = k; - k = d < 0 ? 0 : d; - - // Create version of divisor with leading zero. - bz.unshift(0); - - // Add zeros to make remainder as long as divisor. - for (; rl++ < bl;) r.push(0); - - do { - - // n is how many times the divisor goes into current remainder. - for (n = 0; n < 10; n++) { - - // Compare divisor and remainder. - if (bl != (rl = r.length)) { - cmp = bl > rl ? 1 : -1; - } else { - for (ri = -1, cmp = 0; ++ri < bl;) { - if (b[ri] != r[ri]) { - cmp = b[ri] > r[ri] ? 1 : -1; - break; - } - } - } - - // If divisor < remainder, subtract divisor from remainder. - if (cmp < 0) { - - // Remainder can't be more than 1 digit longer than divisor. - // Equalise lengths using divisor with extra leading zero? - for (bt = rl == bl ? b : bz; rl;) { - if (r[--rl] < bt[rl]) { - ri = rl; - for (; ri && !r[--ri];) r[ri] = 9; - --r[ri]; - r[rl] += 10; - } - r[rl] -= bt[rl]; - } - - for (; !r[0];) r.shift(); - } else { - break; - } - } - - // Add the digit n to the result array. - qc[qi++] = cmp ? n : ++n; - - // Update the remainder. - if (r[0] && cmp) r[rl] = a[ai] || 0; - else r = [a[ai]]; - - } while ((ai++ < al || r[0] !== UNDEFINED) && k--); - - // Leading zero? Do not remove if result is simply zero (qi == 1). - if (!qc[0] && qi != 1) { - - // There can't be more than one zero. - qc.shift(); - q.e--; - } - - // Round? - if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED); - - return q; - }; - - - /* - * Return true if the value of this Big is equal to the value of Big y, otherwise return false. - */ - P.eq = function (y) { - return !this.cmp(y); - }; - - - /* - * Return true if the value of this Big is greater than the value of Big y, otherwise return - * false. - */ - P.gt = function (y) { - return this.cmp(y) > 0; - }; - - - /* - * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise - * return false. - */ - P.gte = function (y) { - return this.cmp(y) > -1; - }; - - - /* - * Return true if the value of this Big is less than the value of Big y, otherwise return false. - */ - P.lt = function (y) { - return this.cmp(y) < 0; - }; - - - /* - * Return true if the value of this Big is less than or equal to the value of Big y, otherwise - * return false. - */ - P.lte = function (y) { - return this.cmp(y) < 1; - }; - - - /* - * Return a new Big whose value is the value of this Big minus the value of Big y. - */ - P.minus = P.sub = function (y) { - var i, j, t, xlty, - x = this, - Big = x.constructor, - a = x.s, - b = (y = new Big(y)).s; - - // Signs differ? - if (a != b) { - y.s = -b; - return x.plus(y); - } - - var xc = x.c.slice(), - xe = x.e, - yc = y.c, - ye = y.e; - - // Either zero? - if (!xc[0] || !yc[0]) { - - // y is non-zero? x is non-zero? Or both are zero. - return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0); - } - - // Determine which is the bigger number. Prepend zeros to equalise exponents. - if (a = xe - ye) { - - if (xlty = a < 0) { - a = -a; - t = xc; - } else { - ye = xe; - t = yc; - } - - t.reverse(); - for (b = a; b--;) t.push(0); - t.reverse(); - } else { - - // Exponents equal. Check digit by digit. - j = ((xlty = xc.length < yc.length) ? xc : yc).length; - - for (a = b = 0; b < j; b++) { - if (xc[b] != yc[b]) { - xlty = xc[b] < yc[b]; - break; - } - } - } - - // x < y? Point xc to the array of the bigger number. - if (xlty) { - t = xc; - xc = yc; - yc = t; - y.s = -y.s; - } - - /* - * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only - * needs to start at yc.length. - */ - if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0; - - // Subtract yc from xc. - for (b = i; j > a;) { - if (xc[--j] < yc[j]) { - for (i = j; i && !xc[--i];) xc[i] = 9; - --xc[i]; - xc[j] += 10; - } - - xc[j] -= yc[j]; - } - - // Remove trailing zeros. - for (; xc[--b] === 0;) xc.pop(); - - // Remove leading zeros and adjust exponent accordingly. - for (; xc[0] === 0;) { - xc.shift(); - --ye; - } - - if (!xc[0]) { - - // n - n = +0 - y.s = 1; - - // Result must be zero. - xc = [ye = 0]; - } - - y.c = xc; - y.e = ye; - - return y; - }; - - - /* - * Return a new Big whose value is the value of this Big modulo the value of Big y. - */ - P.mod = function (y) { - var ygtx, - x = this, - Big = x.constructor, - a = x.s, - b = (y = new Big(y)).s; - - if (!y.c[0]) throw Error(DIV_BY_ZERO); - - x.s = y.s = 1; - ygtx = y.cmp(x) == 1; - x.s = a; - y.s = b; - - if (ygtx) return new Big(x); - - a = Big.DP; - b = Big.RM; - Big.DP = Big.RM = 0; - x = x.div(y); - Big.DP = a; - Big.RM = b; - - return this.minus(x.times(y)); - }; - - - /* - * Return a new Big whose value is the value of this Big plus the value of Big y. - */ - P.plus = P.add = function (y) { - var t, - x = this, - Big = x.constructor, - a = x.s, - b = (y = new Big(y)).s; - - // Signs differ? - if (a != b) { - y.s = -b; - return x.minus(y); - } - - var xe = x.e, - xc = x.c, - ye = y.e, - yc = y.c; - - // Either zero? y is non-zero? x is non-zero? Or both are zero. - if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0); - - xc = xc.slice(); - - // Prepend zeros to equalise exponents. - // Note: reverse faster than unshifts. - if (a = xe - ye) { - if (a > 0) { - ye = xe; - t = yc; - } else { - a = -a; - t = xc; - } - - t.reverse(); - for (; a--;) t.push(0); - t.reverse(); - } - - // Point xc to the longer array. - if (xc.length - yc.length < 0) { - t = yc; - yc = xc; - xc = t; - } - - a = yc.length; - - // Only start adding at yc.length - 1 as the further digits of xc can be left as they are. - for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0; - - // No need to check for zero, as +x + +y != 0 && -x + -y != 0 - - if (b) { - xc.unshift(b); - ++ye; - } - - // Remove trailing zeros. - for (a = xc.length; xc[--a] === 0;) xc.pop(); - - y.c = xc; - y.e = ye; - - return y; - }; - - - /* - * Return a Big whose value is the value of this Big raised to the power n. - * If n is negative, round to a maximum of Big.DP decimal places using rounding - * mode Big.RM. - * - * n {number} Integer, -MAX_POWER to MAX_POWER inclusive. - */ - P.pow = function (n) { - var x = this, - one = new x.constructor(1), - y = one, - isneg = n < 0; - - if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent'); - if (isneg) n = -n; - - for (;;) { - if (n & 1) y = y.times(x); - n >>= 1; - if (!n) break; - x = x.times(x); - } - - return isneg ? one.div(y) : y; - }; - - - /* - * Return a new Big whose value is the value of this Big rounded using rounding mode rm - * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a - * multiple of 10**-dp. - * If dp is not specified, round to 0 decimal places. - * If rm is not specified, use Big.RM. - * - * dp? {number} Integer, -MAX_DP to MAX_DP inclusive. - * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP) - */ - P.round = function (dp, rm) { - var Big = this.constructor; - if (dp === UNDEFINED) dp = 0; - else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP); - return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm); - }; - - - /* - * Return a new Big whose value is the square root of the value of this Big, rounded, if - * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. - */ - P.sqrt = function () { - var r, c, t, - x = this, - Big = x.constructor, - s = x.s, - e = x.e, - half = new Big(0.5); - - // Zero? - if (!x.c[0]) return new Big(x); - - // Negative? - if (s < 0) throw Error(NAME + 'No square root'); - - // Estimate. - s = Math.sqrt(x + ''); - - // Math.sqrt underflow/overflow? - // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent. - if (s === 0 || s === 1 / 0) { - c = x.c.join(''); - if (!(c.length + e & 1)) c += '0'; - s = Math.sqrt(c); - e = ((e + 1) / 2 | 0) - (e < 0 || e & 1); - r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e); - } else { - r = new Big(s); - } - - e = r.e + (Big.DP += 4); - - // Newton-Raphson iteration. - do { - t = r; - r = half.times(t.plus(x.div(t))); - } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join('')); - - return round(r, Big.DP -= 4, Big.RM); - }; - - - /* - * Return a new Big whose value is the value of this Big times the value of Big y. - */ - P.times = P.mul = function (y) { - var c, - x = this, - Big = x.constructor, - xc = x.c, - yc = (y = new Big(y)).c, - a = xc.length, - b = yc.length, - i = x.e, - j = y.e; - - // Determine sign of result. - y.s = x.s == y.s ? 1 : -1; - - // Return signed 0 if either 0. - if (!xc[0] || !yc[0]) return new Big(y.s * 0); - - // Initialise exponent of result as x.e + y.e. - y.e = i + j; - - // If array xc has fewer digits than yc, swap xc and yc, and lengths. - if (a < b) { - c = xc; - xc = yc; - yc = c; - j = a; - a = b; - b = j; - } - - // Initialise coefficient array of result with zeros. - for (c = new Array(j = a + b); j--;) c[j] = 0; - - // Multiply. - - // i is initially xc.length. - for (i = b; i--;) { - b = 0; - - // a is yc.length. - for (j = a + i; j > i;) { - - // Current sum of products at this digit position, plus carry. - b = c[j] + yc[i] * xc[j - i - 1] + b; - c[j--] = b % 10; - - // carry - b = b / 10 | 0; - } - - c[j] = (c[j] + b) % 10; - } - - // Increment result exponent if there is a final carry, otherwise remove leading zero. - if (b) ++y.e; - else c.shift(); - - // Remove trailing zeros. - for (i = c.length; !c[--i];) c.pop(); - y.c = c; - - return y; - }; - - - /* - * Return a string representing the value of this Big in exponential notation to dp fixed decimal - * places and rounded using Big.RM. - * - * dp? {number} Integer, 0 to MAX_DP inclusive. - */ - P.toExponential = function (dp) { - return stringify(this, 1, dp, dp); - }; - - - /* - * Return a string representing the value of this Big in normal notation to dp fixed decimal - * places and rounded using Big.RM. - * - * dp? {number} Integer, 0 to MAX_DP inclusive. - * - * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. - * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. - */ - P.toFixed = function (dp) { - return stringify(this, 2, dp, this.e + dp); - }; - - - /* - * Return a string representing the value of this Big rounded to sd significant digits using - * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent - * the integer part of the value in normal notation. - * - * sd {number} Integer, 1 to MAX_DP inclusive. - */ - P.toPrecision = function (sd) { - return stringify(this, 3, sd, sd - 1); - }; - - - /* - * Return a string representing the value of this Big. - * Return exponential notation if this Big has a positive exponent equal to or greater than - * Big.PE, or a negative exponent equal to or less than Big.NE. - * Omit the sign for negative zero. - */ - P.toString = function () { - return stringify(this); - }; - - - /* - * Return a string representing the value of this Big. - * Return exponential notation if this Big has a positive exponent equal to or greater than - * Big.PE, or a negative exponent equal to or less than Big.NE. - * Include the sign for negative zero. - */ - P.valueOf = P.toJSON = function () { - return stringify(this, 4); - }; - - - // Export - - - Big = _Big_(); - - Big['default'] = Big.Big = Big; - - //AMD. - if (typeof define === 'function' && define.amd) { - define(function () { return Big; }); - - // Node and other CommonJS-like environments that support module.exports. - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = Big; - - //Browser. - } else { - GLOBAL.Big = Big; - } -})(this); diff --git a/build/node_modules/big.js/big.min.js b/build/node_modules/big.js/big.min.js deleted file mode 100644 index eb82fe80..00000000 --- a/build/node_modules/big.js/big.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* big.js v5.2.2 https://github.com/MikeMcl/big.js/LICENCE */ -!function(e){"use strict";var r,i=20,s=1,P=1e6,o=-7,f=21,c="[big.js] ",u=c+"Invalid ",b=u+"decimal places",h=u+"rounding mode",x=c+"Division by zero",l={},D=void 0,a=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function R(e,r,t,n){var i=e.c,s=e.e+r+1;if(s++n&&R(e,t,o.RM),2==r&&(n=e.e+t+1);e.c.length=o.PE))s=s.charAt(0)+(1t)for(i-=t;i--;)s+="0";else ii[s]^r?1:-1;return f==c?0:cw[l]?1:-1;break}if(!(h<0))break;for(c=d==f?i:a;d;){if(w[--d]>=1;)r=r.times(r);return i?t.div(n):n},l.round=function(e,r){var t=this.constructor;if(e===D)e=0;else if(e!==~~e||e<-P||P - * https://github.com/MikeMcl/big.js/LICENCE - */ - - -/************************************** EDITABLE DEFAULTS *****************************************/ - - - // The default values below must be integers within the stated ranges. - - /* - * The maximum number of decimal places (DP) of the results of operations involving division: - * div and sqrt, and pow with negative exponents. - */ -var DP = 20, // 0 to MAX_DP - - /* - * The rounding mode (RM) used when rounding to the above decimal places. - * - * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN) - * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP) - * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN) - * 3 Away from zero. (ROUND_UP) - */ - RM = 1, // 0, 1, 2 or 3 - - // The maximum value of DP and Big.DP. - MAX_DP = 1E6, // 0 to 1000000 - - // The maximum magnitude of the exponent argument to the pow method. - MAX_POWER = 1E6, // 1 to 1000000 - - /* - * The negative exponent (NE) at and beneath which toString returns exponential notation. - * (JavaScript numbers: -7) - * -1000000 is the minimum recommended exponent value of a Big. - */ - NE = -7, // 0 to -1000000 - - /* - * The positive exponent (PE) at and above which toString returns exponential notation. - * (JavaScript numbers: 21) - * 1000000 is the maximum recommended exponent value of a Big. - * (This limit is not enforced or checked.) - */ - PE = 21, // 0 to 1000000 - - -/**************************************************************************************************/ - - - // Error messages. - NAME = '[big.js] ', - INVALID = NAME + 'Invalid ', - INVALID_DP = INVALID + 'decimal places', - INVALID_RM = INVALID + 'rounding mode', - DIV_BY_ZERO = NAME + 'Division by zero', - - // The shared prototype object. - P = {}, - UNDEFINED = void 0, - NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; - - -/* - * Create and return a Big constructor. - * - */ -function _Big_() { - - /* - * The Big constructor and exported function. - * Create and return a new instance of a Big number object. - * - * n {number|string|Big} A numeric value. - */ - function Big(n) { - var x = this; - - // Enable constructor usage without new. - if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n); - - // Duplicate. - if (n instanceof Big) { - x.s = n.s; - x.e = n.e; - x.c = n.c.slice(); - } else { - parse(x, n); - } - - /* - * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which - * points to Object. - */ - x.constructor = Big; - } - - Big.prototype = P; - Big.DP = DP; - Big.RM = RM; - Big.NE = NE; - Big.PE = PE; - Big.version = '5.2.2'; - - return Big; -} - - -/* - * Parse the number or string value passed to a Big constructor. - * - * x {Big} A Big number instance. - * n {number|string} A numeric value. - */ -function parse(x, n) { - var e, i, nl; - - // Minus zero? - if (n === 0 && 1 / n < 0) n = '-0'; - else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number'); - - // Determine sign. - x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1; - - // Decimal point? - if ((e = n.indexOf('.')) > -1) n = n.replace('.', ''); - - // Exponential form? - if ((i = n.search(/e/i)) > 0) { - - // Determine exponent. - if (e < 0) e = i; - e += +n.slice(i + 1); - n = n.substring(0, i); - } else if (e < 0) { - - // Integer. - e = n.length; - } - - nl = n.length; - - // Determine leading zeros. - for (i = 0; i < nl && n.charAt(i) == '0';) ++i; - - if (i == nl) { - - // Zero. - x.c = [x.e = 0]; - } else { - - // Determine trailing zeros. - for (; nl > 0 && n.charAt(--nl) == '0';); - x.e = e - i - 1; - x.c = []; - - // Convert string to array of digits without leading/trailing zeros. - for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++); - } - - return x; -} - - -/* - * Round Big x to a maximum of dp decimal places using rounding mode rm. - * Called by stringify, P.div, P.round and P.sqrt. - * - * x {Big} The Big to round. - * dp {number} Integer, 0 to MAX_DP inclusive. - * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP) - * [more] {boolean} Whether the result of division was truncated. - */ -function round(x, dp, rm, more) { - var xc = x.c, - i = x.e + dp + 1; - - if (i < xc.length) { - if (rm === 1) { - - // xc[i] is the digit after the digit that may be rounded up. - more = xc[i] >= 5; - } else if (rm === 2) { - more = xc[i] > 5 || xc[i] == 5 && - (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1); - } else if (rm === 3) { - more = more || !!xc[0]; - } else { - more = false; - if (rm !== 0) throw Error(INVALID_RM); - } - - if (i < 1) { - xc.length = 1; - - if (more) { - - // 1, 0.1, 0.01, 0.001, 0.0001 etc. - x.e = -dp; - xc[0] = 1; - } else { - - // Zero. - xc[0] = x.e = 0; - } - } else { - - // Remove any digits after the required decimal places. - xc.length = i--; - - // Round up? - if (more) { - - // Rounding up may mean the previous digit has to be rounded up. - for (; ++xc[i] > 9;) { - xc[i] = 0; - if (!i--) { - ++x.e; - xc.unshift(1); - } - } - } - - // Remove trailing zeros. - for (i = xc.length; !xc[--i];) xc.pop(); - } - } else if (rm < 0 || rm > 3 || rm !== ~~rm) { - throw Error(INVALID_RM); - } - - return x; -} - - -/* - * Return a string representing the value of Big x in normal or exponential notation. - * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf. - * - * x {Big} - * id? {number} Caller id. - * 1 toExponential - * 2 toFixed - * 3 toPrecision - * 4 valueOf - * n? {number|undefined} Caller's argument. - * k? {number|undefined} - */ -function stringify(x, id, n, k) { - var e, s, - Big = x.constructor, - z = !x.c[0]; - - if (n !== UNDEFINED) { - if (n !== ~~n || n < (id == 3) || n > MAX_DP) { - throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP); - } - - x = new Big(x); - - // The index of the digit that may be rounded up. - n = k - x.e; - - // Round? - if (x.c.length > ++k) round(x, n, Big.RM); - - // toFixed: recalculate k as x.e may have changed if value rounded up. - if (id == 2) k = x.e + n + 1; - - // Append zeros? - for (; x.c.length < k;) x.c.push(0); - } - - e = x.e; - s = x.c.join(''); - n = s.length; - - // Exponential notation? - if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) { - s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e; - - // Normal notation. - } else if (e < 0) { - for (; ++e;) s = '0' + s; - s = '0.' + s; - } else if (e > 0) { - if (++e > n) for (e -= n; e--;) s += '0'; - else if (e < n) s = s.slice(0, e) + '.' + s.slice(e); - } else if (n > 1) { - s = s.charAt(0) + '.' + s.slice(1); - } - - return x.s < 0 && (!z || id == 4) ? '-' + s : s; -} - - -// Prototype/instance methods - - -/* - * Return a new Big whose value is the absolute value of this Big. - */ -P.abs = function () { - var x = new this.constructor(this); - x.s = 1; - return x; -}; - - -/* - * Return 1 if the value of this Big is greater than the value of Big y, - * -1 if the value of this Big is less than the value of Big y, or - * 0 if they have the same value. -*/ -P.cmp = function (y) { - var isneg, - x = this, - xc = x.c, - yc = (y = new x.constructor(y)).c, - i = x.s, - j = y.s, - k = x.e, - l = y.e; - - // Either zero? - if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i; - - // Signs differ? - if (i != j) return i; - - isneg = i < 0; - - // Compare exponents. - if (k != l) return k > l ^ isneg ? 1 : -1; - - j = (k = xc.length) < (l = yc.length) ? k : l; - - // Compare digit by digit. - for (i = -1; ++i < j;) { - if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1; - } - - // Compare lengths. - return k == l ? 0 : k > l ^ isneg ? 1 : -1; -}; - - -/* - * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded, - * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. - */ -P.div = function (y) { - var x = this, - Big = x.constructor, - a = x.c, // dividend - b = (y = new Big(y)).c, // divisor - k = x.s == y.s ? 1 : -1, - dp = Big.DP; - - if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP); - - // Divisor is zero? - if (!b[0]) throw Error(DIV_BY_ZERO); - - // Dividend is 0? Return +-0. - if (!a[0]) return new Big(k * 0); - - var bl, bt, n, cmp, ri, - bz = b.slice(), - ai = bl = b.length, - al = a.length, - r = a.slice(0, bl), // remainder - rl = r.length, - q = y, // quotient - qc = q.c = [], - qi = 0, - d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result - - q.s = k; - k = d < 0 ? 0 : d; - - // Create version of divisor with leading zero. - bz.unshift(0); - - // Add zeros to make remainder as long as divisor. - for (; rl++ < bl;) r.push(0); - - do { - - // n is how many times the divisor goes into current remainder. - for (n = 0; n < 10; n++) { - - // Compare divisor and remainder. - if (bl != (rl = r.length)) { - cmp = bl > rl ? 1 : -1; - } else { - for (ri = -1, cmp = 0; ++ri < bl;) { - if (b[ri] != r[ri]) { - cmp = b[ri] > r[ri] ? 1 : -1; - break; - } - } - } - - // If divisor < remainder, subtract divisor from remainder. - if (cmp < 0) { - - // Remainder can't be more than 1 digit longer than divisor. - // Equalise lengths using divisor with extra leading zero? - for (bt = rl == bl ? b : bz; rl;) { - if (r[--rl] < bt[rl]) { - ri = rl; - for (; ri && !r[--ri];) r[ri] = 9; - --r[ri]; - r[rl] += 10; - } - r[rl] -= bt[rl]; - } - - for (; !r[0];) r.shift(); - } else { - break; - } - } - - // Add the digit n to the result array. - qc[qi++] = cmp ? n : ++n; - - // Update the remainder. - if (r[0] && cmp) r[rl] = a[ai] || 0; - else r = [a[ai]]; - - } while ((ai++ < al || r[0] !== UNDEFINED) && k--); - - // Leading zero? Do not remove if result is simply zero (qi == 1). - if (!qc[0] && qi != 1) { - - // There can't be more than one zero. - qc.shift(); - q.e--; - } - - // Round? - if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED); - - return q; -}; - - -/* - * Return true if the value of this Big is equal to the value of Big y, otherwise return false. - */ -P.eq = function (y) { - return !this.cmp(y); -}; - - -/* - * Return true if the value of this Big is greater than the value of Big y, otherwise return - * false. - */ -P.gt = function (y) { - return this.cmp(y) > 0; -}; - - -/* - * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise - * return false. - */ -P.gte = function (y) { - return this.cmp(y) > -1; -}; - - -/* - * Return true if the value of this Big is less than the value of Big y, otherwise return false. - */ -P.lt = function (y) { - return this.cmp(y) < 0; -}; - - -/* - * Return true if the value of this Big is less than or equal to the value of Big y, otherwise - * return false. - */ -P.lte = function (y) { - return this.cmp(y) < 1; -}; - - -/* - * Return a new Big whose value is the value of this Big minus the value of Big y. - */ -P.minus = P.sub = function (y) { - var i, j, t, xlty, - x = this, - Big = x.constructor, - a = x.s, - b = (y = new Big(y)).s; - - // Signs differ? - if (a != b) { - y.s = -b; - return x.plus(y); - } - - var xc = x.c.slice(), - xe = x.e, - yc = y.c, - ye = y.e; - - // Either zero? - if (!xc[0] || !yc[0]) { - - // y is non-zero? x is non-zero? Or both are zero. - return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0); - } - - // Determine which is the bigger number. Prepend zeros to equalise exponents. - if (a = xe - ye) { - - if (xlty = a < 0) { - a = -a; - t = xc; - } else { - ye = xe; - t = yc; - } - - t.reverse(); - for (b = a; b--;) t.push(0); - t.reverse(); - } else { - - // Exponents equal. Check digit by digit. - j = ((xlty = xc.length < yc.length) ? xc : yc).length; - - for (a = b = 0; b < j; b++) { - if (xc[b] != yc[b]) { - xlty = xc[b] < yc[b]; - break; - } - } - } - - // x < y? Point xc to the array of the bigger number. - if (xlty) { - t = xc; - xc = yc; - yc = t; - y.s = -y.s; - } - - /* - * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only - * needs to start at yc.length. - */ - if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0; - - // Subtract yc from xc. - for (b = i; j > a;) { - if (xc[--j] < yc[j]) { - for (i = j; i && !xc[--i];) xc[i] = 9; - --xc[i]; - xc[j] += 10; - } - - xc[j] -= yc[j]; - } - - // Remove trailing zeros. - for (; xc[--b] === 0;) xc.pop(); - - // Remove leading zeros and adjust exponent accordingly. - for (; xc[0] === 0;) { - xc.shift(); - --ye; - } - - if (!xc[0]) { - - // n - n = +0 - y.s = 1; - - // Result must be zero. - xc = [ye = 0]; - } - - y.c = xc; - y.e = ye; - - return y; -}; - - -/* - * Return a new Big whose value is the value of this Big modulo the value of Big y. - */ -P.mod = function (y) { - var ygtx, - x = this, - Big = x.constructor, - a = x.s, - b = (y = new Big(y)).s; - - if (!y.c[0]) throw Error(DIV_BY_ZERO); - - x.s = y.s = 1; - ygtx = y.cmp(x) == 1; - x.s = a; - y.s = b; - - if (ygtx) return new Big(x); - - a = Big.DP; - b = Big.RM; - Big.DP = Big.RM = 0; - x = x.div(y); - Big.DP = a; - Big.RM = b; - - return this.minus(x.times(y)); -}; - - -/* - * Return a new Big whose value is the value of this Big plus the value of Big y. - */ -P.plus = P.add = function (y) { - var t, - x = this, - Big = x.constructor, - a = x.s, - b = (y = new Big(y)).s; - - // Signs differ? - if (a != b) { - y.s = -b; - return x.minus(y); - } - - var xe = x.e, - xc = x.c, - ye = y.e, - yc = y.c; - - // Either zero? y is non-zero? x is non-zero? Or both are zero. - if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0); - - xc = xc.slice(); - - // Prepend zeros to equalise exponents. - // Note: reverse faster than unshifts. - if (a = xe - ye) { - if (a > 0) { - ye = xe; - t = yc; - } else { - a = -a; - t = xc; - } - - t.reverse(); - for (; a--;) t.push(0); - t.reverse(); - } - - // Point xc to the longer array. - if (xc.length - yc.length < 0) { - t = yc; - yc = xc; - xc = t; - } - - a = yc.length; - - // Only start adding at yc.length - 1 as the further digits of xc can be left as they are. - for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0; - - // No need to check for zero, as +x + +y != 0 && -x + -y != 0 - - if (b) { - xc.unshift(b); - ++ye; - } - - // Remove trailing zeros. - for (a = xc.length; xc[--a] === 0;) xc.pop(); - - y.c = xc; - y.e = ye; - - return y; -}; - - -/* - * Return a Big whose value is the value of this Big raised to the power n. - * If n is negative, round to a maximum of Big.DP decimal places using rounding - * mode Big.RM. - * - * n {number} Integer, -MAX_POWER to MAX_POWER inclusive. - */ -P.pow = function (n) { - var x = this, - one = new x.constructor(1), - y = one, - isneg = n < 0; - - if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent'); - if (isneg) n = -n; - - for (;;) { - if (n & 1) y = y.times(x); - n >>= 1; - if (!n) break; - x = x.times(x); - } - - return isneg ? one.div(y) : y; -}; - - -/* - * Return a new Big whose value is the value of this Big rounded using rounding mode rm - * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a - * multiple of 10**-dp. - * If dp is not specified, round to 0 decimal places. - * If rm is not specified, use Big.RM. - * - * dp? {number} Integer, -MAX_DP to MAX_DP inclusive. - * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP) - */ -P.round = function (dp, rm) { - var Big = this.constructor; - if (dp === UNDEFINED) dp = 0; - else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP); - return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm); -}; - - -/* - * Return a new Big whose value is the square root of the value of this Big, rounded, if - * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. - */ -P.sqrt = function () { - var r, c, t, - x = this, - Big = x.constructor, - s = x.s, - e = x.e, - half = new Big(0.5); - - // Zero? - if (!x.c[0]) return new Big(x); - - // Negative? - if (s < 0) throw Error(NAME + 'No square root'); - - // Estimate. - s = Math.sqrt(x + ''); - - // Math.sqrt underflow/overflow? - // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent. - if (s === 0 || s === 1 / 0) { - c = x.c.join(''); - if (!(c.length + e & 1)) c += '0'; - s = Math.sqrt(c); - e = ((e + 1) / 2 | 0) - (e < 0 || e & 1); - r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e); - } else { - r = new Big(s); - } - - e = r.e + (Big.DP += 4); - - // Newton-Raphson iteration. - do { - t = r; - r = half.times(t.plus(x.div(t))); - } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join('')); - - return round(r, Big.DP -= 4, Big.RM); -}; - - -/* - * Return a new Big whose value is the value of this Big times the value of Big y. - */ -P.times = P.mul = function (y) { - var c, - x = this, - Big = x.constructor, - xc = x.c, - yc = (y = new Big(y)).c, - a = xc.length, - b = yc.length, - i = x.e, - j = y.e; - - // Determine sign of result. - y.s = x.s == y.s ? 1 : -1; - - // Return signed 0 if either 0. - if (!xc[0] || !yc[0]) return new Big(y.s * 0); - - // Initialise exponent of result as x.e + y.e. - y.e = i + j; - - // If array xc has fewer digits than yc, swap xc and yc, and lengths. - if (a < b) { - c = xc; - xc = yc; - yc = c; - j = a; - a = b; - b = j; - } - - // Initialise coefficient array of result with zeros. - for (c = new Array(j = a + b); j--;) c[j] = 0; - - // Multiply. - - // i is initially xc.length. - for (i = b; i--;) { - b = 0; - - // a is yc.length. - for (j = a + i; j > i;) { - - // Current sum of products at this digit position, plus carry. - b = c[j] + yc[i] * xc[j - i - 1] + b; - c[j--] = b % 10; - - // carry - b = b / 10 | 0; - } - - c[j] = (c[j] + b) % 10; - } - - // Increment result exponent if there is a final carry, otherwise remove leading zero. - if (b) ++y.e; - else c.shift(); - - // Remove trailing zeros. - for (i = c.length; !c[--i];) c.pop(); - y.c = c; - - return y; -}; - - -/* - * Return a string representing the value of this Big in exponential notation to dp fixed decimal - * places and rounded using Big.RM. - * - * dp? {number} Integer, 0 to MAX_DP inclusive. - */ -P.toExponential = function (dp) { - return stringify(this, 1, dp, dp); -}; - - -/* - * Return a string representing the value of this Big in normal notation to dp fixed decimal - * places and rounded using Big.RM. - * - * dp? {number} Integer, 0 to MAX_DP inclusive. - * - * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. - * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. - */ -P.toFixed = function (dp) { - return stringify(this, 2, dp, this.e + dp); -}; - - -/* - * Return a string representing the value of this Big rounded to sd significant digits using - * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent - * the integer part of the value in normal notation. - * - * sd {number} Integer, 1 to MAX_DP inclusive. - */ -P.toPrecision = function (sd) { - return stringify(this, 3, sd, sd - 1); -}; - - -/* - * Return a string representing the value of this Big. - * Return exponential notation if this Big has a positive exponent equal to or greater than - * Big.PE, or a negative exponent equal to or less than Big.NE. - * Omit the sign for negative zero. - */ -P.toString = function () { - return stringify(this); -}; - - -/* - * Return a string representing the value of this Big. - * Return exponential notation if this Big has a positive exponent equal to or greater than - * Big.PE, or a negative exponent equal to or less than Big.NE. - * Include the sign for negative zero. - */ -P.valueOf = P.toJSON = function () { - return stringify(this, 4); -}; - - -// Export - - -export var Big = _Big_(); - -export default Big; diff --git a/build/node_modules/big.js/package.json b/build/node_modules/big.js/package.json deleted file mode 100644 index 9da9b921..00000000 --- a/build/node_modules/big.js/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "big.js", - "description": "A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic", - "version": "5.2.2", - "keywords": [ - "arbitrary", - "precision", - "arithmetic", - "big", - "number", - "decimal", - "float", - "biginteger", - "bigdecimal", - "bignumber", - "bigint", - "bignum" - ], - "repository": { - "type": "git", - "url": "https://github.com/MikeMcl/big.js.git" - }, - "main": "big", - "browser": "big.js", - "module": "big.mjs", - "author": { - "name": "Michael Mclaughlin", - "email": "M8ch88l@gmail.com" - }, - "bugs": { - "url": "https://github.com/MikeMcl/big.js/issues" - }, - "engines": { - "node": "*" - }, - "license": "MIT", - "scripts": { - "test": "node ./test/every-test.js", - "build": "uglifyjs big.js --source-map -c -m -o big.min.js" - }, - "files": [ - "big.js", - "big.mjs", - "big.min.js" - ], - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" - } -} \ No newline at end of file diff --git a/build/node_modules/binary-extensions/binary-extensions.json b/build/node_modules/binary-extensions/binary-extensions.json deleted file mode 100644 index 4aab3837..00000000 --- a/build/node_modules/binary-extensions/binary-extensions.json +++ /dev/null @@ -1,260 +0,0 @@ -[ - "3dm", - "3ds", - "3g2", - "3gp", - "7z", - "a", - "aac", - "adp", - "ai", - "aif", - "aiff", - "alz", - "ape", - "apk", - "appimage", - "ar", - "arj", - "asf", - "au", - "avi", - "bak", - "baml", - "bh", - "bin", - "bk", - "bmp", - "btif", - "bz2", - "bzip2", - "cab", - "caf", - "cgm", - "class", - "cmx", - "cpio", - "cr2", - "cur", - "dat", - "dcm", - "deb", - "dex", - "djvu", - "dll", - "dmg", - "dng", - "doc", - "docm", - "docx", - "dot", - "dotm", - "dra", - "DS_Store", - "dsk", - "dts", - "dtshd", - "dvb", - "dwg", - "dxf", - "ecelp4800", - "ecelp7470", - "ecelp9600", - "egg", - "eol", - "eot", - "epub", - "exe", - "f4v", - "fbs", - "fh", - "fla", - "flac", - "flatpak", - "fli", - "flv", - "fpx", - "fst", - "fvt", - "g3", - "gh", - "gif", - "graffle", - "gz", - "gzip", - "h261", - "h263", - "h264", - "icns", - "ico", - "ief", - "img", - "ipa", - "iso", - "jar", - "jpeg", - "jpg", - "jpgv", - "jpm", - "jxr", - "key", - "ktx", - "lha", - "lib", - "lvp", - "lz", - "lzh", - "lzma", - "lzo", - "m3u", - "m4a", - "m4v", - "mar", - "mdi", - "mht", - "mid", - "midi", - "mj2", - "mka", - "mkv", - "mmr", - "mng", - "mobi", - "mov", - "movie", - "mp3", - "mp4", - "mp4a", - "mpeg", - "mpg", - "mpga", - "mxu", - "nef", - "npx", - "numbers", - "nupkg", - "o", - "odp", - "ods", - "odt", - "oga", - "ogg", - "ogv", - "otf", - "ott", - "pages", - "pbm", - "pcx", - "pdb", - "pdf", - "pea", - "pgm", - "pic", - "png", - "pnm", - "pot", - "potm", - "potx", - "ppa", - "ppam", - "ppm", - "pps", - "ppsm", - "ppsx", - "ppt", - "pptm", - "pptx", - "psd", - "pya", - "pyc", - "pyo", - "pyv", - "qt", - "rar", - "ras", - "raw", - "resources", - "rgb", - "rip", - "rlc", - "rmf", - "rmvb", - "rpm", - "rtf", - "rz", - "s3m", - "s7z", - "scpt", - "sgi", - "shar", - "snap", - "sil", - "sketch", - "slk", - "smv", - "snk", - "so", - "stl", - "suo", - "sub", - "swf", - "tar", - "tbz", - "tbz2", - "tga", - "tgz", - "thmx", - "tif", - "tiff", - "tlz", - "ttc", - "ttf", - "txz", - "udf", - "uvh", - "uvi", - "uvm", - "uvp", - "uvs", - "uvu", - "viv", - "vob", - "war", - "wav", - "wax", - "wbmp", - "wdp", - "weba", - "webm", - "webp", - "whl", - "wim", - "wm", - "wma", - "wmv", - "wmx", - "woff", - "woff2", - "wrm", - "wvx", - "xbm", - "xif", - "xla", - "xlam", - "xls", - "xlsb", - "xlsm", - "xlsx", - "xlt", - "xltm", - "xltx", - "xm", - "xmind", - "xpi", - "xpm", - "xwd", - "xz", - "z", - "zip", - "zipx" -] diff --git a/build/node_modules/binary-extensions/binary-extensions.json.d.ts b/build/node_modules/binary-extensions/binary-extensions.json.d.ts deleted file mode 100644 index 94a248c2..00000000 --- a/build/node_modules/binary-extensions/binary-extensions.json.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const binaryExtensionsJson: readonly string[]; - -export = binaryExtensionsJson; diff --git a/build/node_modules/binary-extensions/index.d.ts b/build/node_modules/binary-extensions/index.d.ts deleted file mode 100644 index f469ac5f..00000000 --- a/build/node_modules/binary-extensions/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** -List of binary file extensions. - -@example -``` -import binaryExtensions = require('binary-extensions'); - -console.log(binaryExtensions); -//=> ['3ds', '3g2', …] -``` -*/ -declare const binaryExtensions: readonly string[]; - -export = binaryExtensions; diff --git a/build/node_modules/binary-extensions/index.js b/build/node_modules/binary-extensions/index.js deleted file mode 100644 index d46e4688..00000000 --- a/build/node_modules/binary-extensions/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./binary-extensions.json'); diff --git a/build/node_modules/binary-extensions/license b/build/node_modules/binary-extensions/license deleted file mode 100644 index 401b1c73..00000000 --- a/build/node_modules/binary-extensions/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/binary-extensions/package.json b/build/node_modules/binary-extensions/package.json deleted file mode 100644 index c4d36417..00000000 --- a/build/node_modules/binary-extensions/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "binary-extensions", - "version": "2.2.0", - "description": "List of binary file extensions", - "license": "MIT", - "repository": "sindresorhus/binary-extensions", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "binary-extensions.json", - "binary-extensions.json.d.ts" - ], - "keywords": [ - "binary", - "extensions", - "extension", - "file", - "json", - "list", - "array" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/binary-extensions/readme.md b/build/node_modules/binary-extensions/readme.md deleted file mode 100644 index 3e25dd83..00000000 --- a/build/node_modules/binary-extensions/readme.md +++ /dev/null @@ -1,41 +0,0 @@ -# binary-extensions - -> List of binary file extensions - -The list is just a [JSON file](binary-extensions.json) and can be used anywhere. - - -## Install - -``` -$ npm install binary-extensions -``` - - -## Usage - -```js -const binaryExtensions = require('binary-extensions'); - -console.log(binaryExtensions); -//=> ['3ds', '3g2', …] -``` - - -## Related - -- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file -- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/body-parser/HISTORY.md b/build/node_modules/body-parser/HISTORY.md deleted file mode 100644 index fb212b36..00000000 --- a/build/node_modules/body-parser/HISTORY.md +++ /dev/null @@ -1,657 +0,0 @@ -1.20.1 / 2022-10-06 -=================== - - * deps: qs@6.11.0 - * perf: remove unnecessary object clone - -1.20.0 / 2022-04-02 -=================== - - * Fix error message for json parse whitespace in `strict` - * Fix internal error when inflated body exceeds limit - * Prevent loss of async hooks context - * Prevent hanging when request already read - * deps: depd@2.0.0 - - Replace internal `eval` usage with `Function` constructor - - Use instance methods on `process` to check for listeners - * deps: http-errors@2.0.0 - - deps: depd@2.0.0 - - deps: statuses@2.0.1 - * deps: on-finished@2.4.1 - * deps: qs@6.10.3 - * deps: raw-body@2.5.1 - - deps: http-errors@2.0.0 - -1.19.2 / 2022-02-15 -=================== - - * deps: bytes@3.1.2 - * deps: qs@6.9.7 - * Fix handling of `__proto__` keys - * deps: raw-body@2.4.3 - - deps: bytes@3.1.2 - -1.19.1 / 2021-12-10 -=================== - - * deps: bytes@3.1.1 - * deps: http-errors@1.8.1 - - deps: inherits@2.0.4 - - deps: toidentifier@1.0.1 - - deps: setprototypeof@1.2.0 - * deps: qs@6.9.6 - * deps: raw-body@2.4.2 - - deps: bytes@3.1.1 - - deps: http-errors@1.8.1 - * deps: safe-buffer@5.2.1 - * deps: type-is@~1.6.18 - -1.19.0 / 2019-04-25 -=================== - - * deps: bytes@3.1.0 - - Add petabyte (`pb`) support - * deps: http-errors@1.7.2 - - Set constructor name when possible - - deps: setprototypeof@1.1.1 - - deps: statuses@'>= 1.5.0 < 2' - * deps: iconv-lite@0.4.24 - - Added encoding MIK - * deps: qs@6.7.0 - - Fix parsing array brackets after index - * deps: raw-body@2.4.0 - - deps: bytes@3.1.0 - - deps: http-errors@1.7.2 - - deps: iconv-lite@0.4.24 - * deps: type-is@~1.6.17 - - deps: mime-types@~2.1.24 - - perf: prevent internal `throw` on invalid type - -1.18.3 / 2018-05-14 -=================== - - * Fix stack trace for strict json parse error - * deps: depd@~1.1.2 - - perf: remove argument reassignment - * deps: http-errors@~1.6.3 - - deps: depd@~1.1.2 - - deps: setprototypeof@1.1.0 - - deps: statuses@'>= 1.3.1 < 2' - * deps: iconv-lite@0.4.23 - - Fix loading encoding with year appended - - Fix deprecation warnings on Node.js 10+ - * deps: qs@6.5.2 - * deps: raw-body@2.3.3 - - deps: http-errors@1.6.3 - - deps: iconv-lite@0.4.23 - * deps: type-is@~1.6.16 - - deps: mime-types@~2.1.18 - -1.18.2 / 2017-09-22 -=================== - - * deps: debug@2.6.9 - * perf: remove argument reassignment - -1.18.1 / 2017-09-12 -=================== - - * deps: content-type@~1.0.4 - - perf: remove argument reassignment - - perf: skip parameter parsing when no parameters - * deps: iconv-lite@0.4.19 - - Fix ISO-8859-1 regression - - Update Windows-1255 - * deps: qs@6.5.1 - - Fix parsing & compacting very deep objects - * deps: raw-body@2.3.2 - - deps: iconv-lite@0.4.19 - -1.18.0 / 2017-09-08 -=================== - - * Fix JSON strict violation error to match native parse error - * Include the `body` property on verify errors - * Include the `type` property on all generated errors - * Use `http-errors` to set status code on errors - * deps: bytes@3.0.0 - * deps: debug@2.6.8 - * deps: depd@~1.1.1 - - Remove unnecessary `Buffer` loading - * deps: http-errors@~1.6.2 - - deps: depd@1.1.1 - * deps: iconv-lite@0.4.18 - - Add support for React Native - - Add a warning if not loaded as utf-8 - - Fix CESU-8 decoding in Node.js 8 - - Improve speed of ISO-8859-1 encoding - * deps: qs@6.5.0 - * deps: raw-body@2.3.1 - - Use `http-errors` for standard emitted errors - - deps: bytes@3.0.0 - - deps: iconv-lite@0.4.18 - - perf: skip buffer decoding on overage chunk - * perf: prevent internal `throw` when missing charset - -1.17.2 / 2017-05-17 -=================== - - * deps: debug@2.6.7 - - Fix `DEBUG_MAX_ARRAY_LENGTH` - - deps: ms@2.0.0 - * deps: type-is@~1.6.15 - - deps: mime-types@~2.1.15 - -1.17.1 / 2017-03-06 -=================== - - * deps: qs@6.4.0 - - Fix regression parsing keys starting with `[` - -1.17.0 / 2017-03-01 -=================== - - * deps: http-errors@~1.6.1 - - Make `message` property enumerable for `HttpError`s - - deps: setprototypeof@1.0.3 - * deps: qs@6.3.1 - - Fix compacting nested arrays - -1.16.1 / 2017-02-10 -=================== - - * deps: debug@2.6.1 - - Fix deprecation messages in WebStorm and other editors - - Undeprecate `DEBUG_FD` set to `1` or `2` - -1.16.0 / 2017-01-17 -=================== - - * deps: debug@2.6.0 - - Allow colors in workers - - Deprecated `DEBUG_FD` environment variable - - Fix error when running under React Native - - Use same color for same namespace - - deps: ms@0.7.2 - * deps: http-errors@~1.5.1 - - deps: inherits@2.0.3 - - deps: setprototypeof@1.0.2 - - deps: statuses@'>= 1.3.1 < 2' - * deps: iconv-lite@0.4.15 - - Added encoding MS-31J - - Added encoding MS-932 - - Added encoding MS-936 - - Added encoding MS-949 - - Added encoding MS-950 - - Fix GBK/GB18030 handling of Euro character - * deps: qs@6.2.1 - - Fix array parsing from skipping empty values - * deps: raw-body@~2.2.0 - - deps: iconv-lite@0.4.15 - * deps: type-is@~1.6.14 - - deps: mime-types@~2.1.13 - -1.15.2 / 2016-06-19 -=================== - - * deps: bytes@2.4.0 - * deps: content-type@~1.0.2 - - perf: enable strict mode - * deps: http-errors@~1.5.0 - - Use `setprototypeof` module to replace `__proto__` setting - - deps: statuses@'>= 1.3.0 < 2' - - perf: enable strict mode - * deps: qs@6.2.0 - * deps: raw-body@~2.1.7 - - deps: bytes@2.4.0 - - perf: remove double-cleanup on happy path - * deps: type-is@~1.6.13 - - deps: mime-types@~2.1.11 - -1.15.1 / 2016-05-05 -=================== - - * deps: bytes@2.3.0 - - Drop partial bytes on all parsed units - - Fix parsing byte string that looks like hex - * deps: raw-body@~2.1.6 - - deps: bytes@2.3.0 - * deps: type-is@~1.6.12 - - deps: mime-types@~2.1.10 - -1.15.0 / 2016-02-10 -=================== - - * deps: http-errors@~1.4.0 - - Add `HttpError` export, for `err instanceof createError.HttpError` - - deps: inherits@2.0.1 - - deps: statuses@'>= 1.2.1 < 2' - * deps: qs@6.1.0 - * deps: type-is@~1.6.11 - - deps: mime-types@~2.1.9 - -1.14.2 / 2015-12-16 -=================== - - * deps: bytes@2.2.0 - * deps: iconv-lite@0.4.13 - * deps: qs@5.2.0 - * deps: raw-body@~2.1.5 - - deps: bytes@2.2.0 - - deps: iconv-lite@0.4.13 - * deps: type-is@~1.6.10 - - deps: mime-types@~2.1.8 - -1.14.1 / 2015-09-27 -=================== - - * Fix issue where invalid charset results in 400 when `verify` used - * deps: iconv-lite@0.4.12 - - Fix CESU-8 decoding in Node.js 4.x - * deps: raw-body@~2.1.4 - - Fix masking critical errors from `iconv-lite` - - deps: iconv-lite@0.4.12 - * deps: type-is@~1.6.9 - - deps: mime-types@~2.1.7 - -1.14.0 / 2015-09-16 -=================== - - * Fix JSON strict parse error to match syntax errors - * Provide static `require` analysis in `urlencoded` parser - * deps: depd@~1.1.0 - - Support web browser loading - * deps: qs@5.1.0 - * deps: raw-body@~2.1.3 - - Fix sync callback when attaching data listener causes sync read - * deps: type-is@~1.6.8 - - Fix type error when given invalid type to match against - - deps: mime-types@~2.1.6 - -1.13.3 / 2015-07-31 -=================== - - * deps: type-is@~1.6.6 - - deps: mime-types@~2.1.4 - -1.13.2 / 2015-07-05 -=================== - - * deps: iconv-lite@0.4.11 - * deps: qs@4.0.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix user-visible incompatibilities from 3.1.0 - - Fix various parsing edge cases - * deps: raw-body@~2.1.2 - - Fix error stack traces to skip `makeError` - - deps: iconv-lite@0.4.11 - * deps: type-is@~1.6.4 - - deps: mime-types@~2.1.2 - - perf: enable strict mode - - perf: remove argument reassignment - -1.13.1 / 2015-06-16 -=================== - - * deps: qs@2.4.2 - - Downgraded from 3.1.0 because of user-visible incompatibilities - -1.13.0 / 2015-06-14 -=================== - - * Add `statusCode` property on `Error`s, in addition to `status` - * Change `type` default to `application/json` for JSON parser - * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser - * Provide static `require` analysis - * Use the `http-errors` module to generate errors - * deps: bytes@2.1.0 - - Slight optimizations - * deps: iconv-lite@0.4.10 - - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails - - Leading BOM is now removed when decoding - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * deps: qs@3.1.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix various parsing edge cases - - Parsed object now has `null` prototype - * deps: raw-body@~2.1.1 - - Use `unpipe` module for unpiping requests - - deps: iconv-lite@0.4.10 - * deps: type-is@~1.6.3 - - deps: mime-types@~2.1.1 - - perf: reduce try block size - - perf: remove bitwise operations - * perf: enable strict mode - * perf: remove argument reassignment - * perf: remove delete call - -1.12.4 / 2015-05-10 -=================== - - * deps: debug@~2.2.0 - * deps: qs@2.4.2 - - Fix allowing parameters like `constructor` - * deps: on-finished@~2.2.1 - * deps: raw-body@~2.0.1 - - Fix a false-positive when unpiping in Node.js 0.8 - - deps: bytes@2.0.1 - * deps: type-is@~1.6.2 - - deps: mime-types@~2.0.11 - -1.12.3 / 2015-04-15 -=================== - - * Slight efficiency improvement when not debugging - * deps: depd@~1.0.1 - * deps: iconv-lite@0.4.8 - - Add encoding alias UNICODE-1-1-UTF-7 - * deps: raw-body@1.3.4 - - Fix hanging callback if request aborts during read - - deps: iconv-lite@0.4.8 - -1.12.2 / 2015-03-16 -=================== - - * deps: qs@2.4.1 - - Fix error when parameter `hasOwnProperty` is present - -1.12.1 / 2015-03-15 -=================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: type-is@~1.6.1 - - deps: mime-types@~2.0.10 - -1.12.0 / 2015-02-13 -=================== - - * add `debug` messages - * accept a function for the `type` option - * use `content-type` to parse `Content-Type` headers - * deps: iconv-lite@0.4.7 - - Gracefully support enumerables on `Object.prototype` - * deps: raw-body@1.3.3 - - deps: iconv-lite@0.4.7 - * deps: type-is@~1.6.0 - - fix argument reassignment - - fix false-positives in `hasBody` `Transfer-Encoding` check - - support wildcard for both type and subtype (`*/*`) - - deps: mime-types@~2.0.9 - -1.11.0 / 2015-01-30 -=================== - - * make internal `extended: true` depth limit infinity - * deps: type-is@~1.5.6 - - deps: mime-types@~2.0.8 - -1.10.2 / 2015-01-20 -=================== - - * deps: iconv-lite@0.4.6 - - Fix rare aliases of single-byte encodings - * deps: raw-body@1.3.2 - - deps: iconv-lite@0.4.6 - -1.10.1 / 2015-01-01 -=================== - - * deps: on-finished@~2.2.0 - * deps: type-is@~1.5.5 - - deps: mime-types@~2.0.7 - -1.10.0 / 2014-12-02 -=================== - - * make internal `extended: true` array limit dynamic - -1.9.3 / 2014-11-21 -================== - - * deps: iconv-lite@0.4.5 - - Fix Windows-31J and X-SJIS encoding support - * deps: qs@2.3.3 - - Fix `arrayLimit` behavior - * deps: raw-body@1.3.1 - - deps: iconv-lite@0.4.5 - * deps: type-is@~1.5.3 - - deps: mime-types@~2.0.3 - -1.9.2 / 2014-10-27 -================== - - * deps: qs@2.3.2 - - Fix parsing of mixed objects and values - -1.9.1 / 2014-10-22 -================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - * deps: qs@2.3.0 - - Fix parsing of mixed implicit and explicit arrays - * deps: type-is@~1.5.2 - - deps: mime-types@~2.0.2 - -1.9.0 / 2014-09-24 -================== - - * include the charset in "unsupported charset" error message - * include the encoding in "unsupported content encoding" error message - * deps: depd@~1.0.0 - -1.8.4 / 2014-09-23 -================== - - * fix content encoding to be case-insensitive - -1.8.3 / 2014-09-19 -================== - - * deps: qs@2.2.4 - - Fix issue with object keys starting with numbers truncated - -1.8.2 / 2014-09-15 -================== - - * deps: depd@0.4.5 - -1.8.1 / 2014-09-07 -================== - - * deps: media-typer@0.3.0 - * deps: type-is@~1.5.1 - -1.8.0 / 2014-09-05 -================== - - * make empty-body-handling consistent between chunked requests - - empty `json` produces `{}` - - empty `raw` produces `new Buffer(0)` - - empty `text` produces `''` - - empty `urlencoded` produces `{}` - * deps: qs@2.2.3 - - Fix issue where first empty value in array is discarded - * deps: type-is@~1.5.0 - - fix `hasbody` to be true for `content-length: 0` - -1.7.0 / 2014-09-01 -================== - - * add `parameterLimit` option to `urlencoded` parser - * change `urlencoded` extended array limit to 100 - * respond with 413 when over `parameterLimit` in `urlencoded` - -1.6.7 / 2014-08-29 -================== - - * deps: qs@2.2.2 - - Remove unnecessary cloning - -1.6.6 / 2014-08-27 -================== - - * deps: qs@2.2.0 - - Array parsing fix - - Performance improvements - -1.6.5 / 2014-08-16 -================== - - * deps: on-finished@2.1.0 - -1.6.4 / 2014-08-14 -================== - - * deps: qs@1.2.2 - -1.6.3 / 2014-08-10 -================== - - * deps: qs@1.2.1 - -1.6.2 / 2014-08-07 -================== - - * deps: qs@1.2.0 - - Fix parsing array of objects - -1.6.1 / 2014-08-06 -================== - - * deps: qs@1.1.0 - - Accept urlencoded square brackets - - Accept empty values in implicit array notation - -1.6.0 / 2014-08-05 -================== - - * deps: qs@1.0.2 - - Complete rewrite - - Limits array length to 20 - - Limits object depth to 5 - - Limits parameters to 1,000 - -1.5.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -1.5.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -1.5.0 / 2014-07-20 -================== - - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - * deps: raw-body@1.3.0 - - deps: iconv-lite@0.4.4 - - Added encoding UTF-7 - - Fix `Cannot switch to old mode now` error on Node.js 0.10+ - * deps: type-is@~1.3.2 - -1.4.3 / 2014-06-19 -================== - - * deps: type-is@1.3.1 - - fix global variable leak - -1.4.2 / 2014-06-19 -================== - - * deps: type-is@1.3.0 - - improve type parsing - -1.4.1 / 2014-06-19 -================== - - * fix urlencoded extended deprecation message - -1.4.0 / 2014-06-19 -================== - - * add `text` parser - * add `raw` parser - * check accepted charset in content-type (accepts utf-8) - * check accepted encoding in content-encoding (accepts identity) - * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed - * deprecate `urlencoded()` without provided `extended` option - * lazy-load urlencoded parsers - * parsers split into files for reduced mem usage - * support gzip and deflate bodies - - set `inflate: false` to turn off - * deps: raw-body@1.2.2 - - Support all encodings from `iconv-lite` - -1.3.1 / 2014-06-11 -================== - - * deps: type-is@1.2.1 - - Switch dependency from mime to mime-types@1.0.0 - -1.3.0 / 2014-05-31 -================== - - * add `extended` option to urlencoded parser - -1.2.2 / 2014-05-27 -================== - - * deps: raw-body@1.1.6 - - assert stream encoding on node.js 0.8 - - assert stream encoding on node.js < 0.10.6 - - deps: bytes@1 - -1.2.1 / 2014-05-26 -================== - - * invoke `next(err)` after request fully read - - prevents hung responses and socket hang ups - -1.2.0 / 2014-05-11 -================== - - * add `verify` option - * deps: type-is@1.2.0 - - support suffix matching - -1.1.2 / 2014-05-11 -================== - - * improve json parser speed - -1.1.1 / 2014-05-11 -================== - - * fix repeated limit parsing with every request - -1.1.0 / 2014-05-10 -================== - - * add `type` option - * deps: pin for safety and consistency - -1.0.2 / 2014-04-14 -================== - - * use `type-is` module - -1.0.1 / 2014-03-20 -================== - - * lower default limits to 100kb diff --git a/build/node_modules/body-parser/LICENSE b/build/node_modules/body-parser/LICENSE deleted file mode 100644 index 386b7b69..00000000 --- a/build/node_modules/body-parser/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2014-2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/body-parser/README.md b/build/node_modules/body-parser/README.md deleted file mode 100644 index c507cbb0..00000000 --- a/build/node_modules/body-parser/README.md +++ /dev/null @@ -1,464 +0,0 @@ -# body-parser - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][github-actions-ci-image]][github-actions-ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Node.js body parsing middleware. - -Parse incoming request bodies in a middleware before your handlers, available -under the `req.body` property. - -**Note** As `req.body`'s shape is based on user-controlled input, all -properties and values in this object are untrusted and should be validated -before trusting. For example, `req.body.foo.toString()` may fail in multiple -ways, for example the `foo` property may not be there or may not be a string, -and `toString` may not be a function and instead a string or other user input. - -[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). - -_This does not handle multipart bodies_, due to their complex and typically -large nature. For multipart bodies, you may be interested in the following -modules: - - * [busboy](https://www.npmjs.org/package/busboy#readme) and - [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) - * [multiparty](https://www.npmjs.org/package/multiparty#readme) and - [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) - * [formidable](https://www.npmjs.org/package/formidable#readme) - * [multer](https://www.npmjs.org/package/multer#readme) - -This module provides the following parsers: - - * [JSON body parser](#bodyparserjsonoptions) - * [Raw body parser](#bodyparserrawoptions) - * [Text body parser](#bodyparsertextoptions) - * [URL-encoded form body parser](#bodyparserurlencodedoptions) - -Other body parsers you might be interested in: - -- [body](https://www.npmjs.org/package/body#readme) -- [co-body](https://www.npmjs.org/package/co-body#readme) - -## Installation - -```sh -$ npm install body-parser -``` - -## API - -```js -var bodyParser = require('body-parser') -``` - -The `bodyParser` object exposes various factories to create middlewares. All -middlewares will populate the `req.body` property with the parsed body when -the `Content-Type` request header matches the `type` option, or an empty -object (`{}`) if there was no body to parse, the `Content-Type` was not matched, -or an error occurred. - -The various errors returned by this module are described in the -[errors section](#errors). - -### bodyParser.json([options]) - -Returns middleware that only parses `json` and only looks at requests where -the `Content-Type` header matches the `type` option. This parser accepts any -Unicode encoding of the body and supports automatic inflation of `gzip` and -`deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). - -#### Options - -The `json` function takes an optional `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### reviver - -The `reviver` option is passed directly to `JSON.parse` as the second -argument. You can find more information on this argument -[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). - -##### strict - -When set to `true`, will only accept arrays and objects; when `false` will -accept anything `JSON.parse` accepts. Defaults to `true`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not a -function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `json`), a mime type (like `application/json`), or -a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` -option is called as `fn(req)` and the request is parsed if it returns a truthy -value. Defaults to `application/json`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.raw([options]) - -Returns middleware that parses all bodies as a `Buffer` and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser supports automatic inflation of `gzip` and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a `Buffer` object -of the body. - -#### Options - -The `raw` function takes an optional `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. -If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this -can be an extension name (like `bin`), a mime type (like -`application/octet-stream`), or a mime type with a wildcard (like `*/*` or -`application/*`). If a function, the `type` option is called as `fn(req)` -and the request is parsed if it returns a truthy value. Defaults to -`application/octet-stream`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.text([options]) - -Returns middleware that parses all bodies as a string and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser supports automatic inflation of `gzip` and `deflate` encodings. - -A new `body` string containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a string of the -body. - -#### Options - -The `text` function takes an optional `options` object that may contain any of -the following keys: - -##### defaultCharset - -Specify the default character set for the text content if the charset is not -specified in the `Content-Type` header of the request. Defaults to `utf-8`. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not -a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `txt`), a mime type (like `text/plain`), or a mime -type with a wildcard (like `*/*` or `text/*`). If a function, the `type` -option is called as `fn(req)` and the request is parsed if it returns a -truthy value. Defaults to `text/plain`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.urlencoded([options]) - -Returns middleware that only parses `urlencoded` bodies and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser accepts only UTF-8 encoding of the body and supports automatic -inflation of `gzip` and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This object will contain -key-value pairs, where the value can be a string or array (when `extended` is -`false`), or any type (when `extended` is `true`). - -#### Options - -The `urlencoded` function takes an optional `options` object that may contain -any of the following keys: - -##### extended - -The `extended` option allows to choose between parsing the URL-encoded data -with the `querystring` library (when `false`) or the `qs` library (when -`true`). The "extended" syntax allows for rich objects and arrays to be -encoded into the URL-encoded format, allowing for a JSON-like experience -with URL-encoded. For more information, please -[see the qs library](https://www.npmjs.org/package/qs#readme). - -Defaults to `true`, but using the default has been deprecated. Please -research into the difference between `qs` and `querystring` and choose the -appropriate setting. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### parameterLimit - -The `parameterLimit` option controls the maximum number of parameters that -are allowed in the URL-encoded data. If a request contains more parameters -than this value, a 413 will be returned to the client. Defaults to `1000`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not -a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `urlencoded`), a mime type (like -`application/x-www-form-urlencoded`), or a mime type with a wildcard (like -`*/x-www-form-urlencoded`). If a function, the `type` option is called as -`fn(req)` and the request is parsed if it returns a truthy value. Defaults -to `application/x-www-form-urlencoded`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -## Errors - -The middlewares provided by this module create errors using the -[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors -will typically have a `status`/`statusCode` property that contains the suggested -HTTP response code, an `expose` property to determine if the `message` property -should be displayed to the client, a `type` property to determine the type of -error without matching against the `message`, and a `body` property containing -the read body, if available. - -The following are the common errors created, though any error can come through -for various reasons. - -### content encoding unsupported - -This error will occur when the request had a `Content-Encoding` header that -contained an encoding but the "inflation" option was set to `false`. The -`status` property is set to `415`, the `type` property is set to -`'encoding.unsupported'`, and the `charset` property will be set to the -encoding that is unsupported. - -### entity parse failed - -This error will occur when the request contained an entity that could not be -parsed by the middleware. The `status` property is set to `400`, the `type` -property is set to `'entity.parse.failed'`, and the `body` property is set to -the entity value that failed parsing. - -### entity verify failed - -This error will occur when the request contained an entity that could not be -failed verification by the defined `verify` option. The `status` property is -set to `403`, the `type` property is set to `'entity.verify.failed'`, and the -`body` property is set to the entity value that failed verification. - -### request aborted - -This error will occur when the request is aborted by the client before reading -the body has finished. The `received` property will be set to the number of -bytes received before the request was aborted and the `expected` property is -set to the number of expected bytes. The `status` property is set to `400` -and `type` property is set to `'request.aborted'`. - -### request entity too large - -This error will occur when the request body's size is larger than the "limit" -option. The `limit` property will be set to the byte limit and the `length` -property will be set to the request body's length. The `status` property is -set to `413` and the `type` property is set to `'entity.too.large'`. - -### request size did not match content length - -This error will occur when the request's length did not match the length from -the `Content-Length` header. This typically occurs when the request is malformed, -typically when the `Content-Length` header was calculated based on characters -instead of bytes. The `status` property is set to `400` and the `type` property -is set to `'request.size.invalid'`. - -### stream encoding should not be set - -This error will occur when something called the `req.setEncoding` method prior -to this middleware. This module operates directly on bytes only and you cannot -call `req.setEncoding` when using this module. The `status` property is set to -`500` and the `type` property is set to `'stream.encoding.set'`. - -### stream is not readable - -This error will occur when the request is no longer readable when this middleware -attempts to read it. This typically means something other than a middleware from -this module read the request body already and the middleware was also configured to -read the same request. The `status` property is set to `500` and the `type` -property is set to `'stream.not.readable'`. - -### too many parameters - -This error will occur when the content of the request exceeds the configured -`parameterLimit` for the `urlencoded` parser. The `status` property is set to -`413` and the `type` property is set to `'parameters.too.many'`. - -### unsupported charset "BOGUS" - -This error will occur when the request had a charset parameter in the -`Content-Type` header, but the `iconv-lite` module does not support it OR the -parser does not support it. The charset is contained in the message as well -as in the `charset` property. The `status` property is set to `415`, the -`type` property is set to `'charset.unsupported'`, and the `charset` property -is set to the charset that is unsupported. - -### unsupported content encoding "bogus" - -This error will occur when the request had a `Content-Encoding` header that -contained an unsupported encoding. The encoding is contained in the message -as well as in the `encoding` property. The `status` property is set to `415`, -the `type` property is set to `'encoding.unsupported'`, and the `encoding` -property is set to the encoding that is unsupported. - -## Examples - -### Express/Connect top-level generic - -This example demonstrates adding a generic JSON and URL-encoded parser as a -top-level middleware, which will parse the bodies of all incoming requests. -This is the simplest setup. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// parse application/x-www-form-urlencoded -app.use(bodyParser.urlencoded({ extended: false })) - -// parse application/json -app.use(bodyParser.json()) - -app.use(function (req, res) { - res.setHeader('Content-Type', 'text/plain') - res.write('you posted:\n') - res.end(JSON.stringify(req.body, null, 2)) -}) -``` - -### Express route-specific - -This example demonstrates adding body parsers specifically to the routes that -need them. In general, this is the most recommended way to use body-parser with -Express. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// create application/json parser -var jsonParser = bodyParser.json() - -// create application/x-www-form-urlencoded parser -var urlencodedParser = bodyParser.urlencoded({ extended: false }) - -// POST /login gets urlencoded bodies -app.post('/login', urlencodedParser, function (req, res) { - res.send('welcome, ' + req.body.username) -}) - -// POST /api/users gets JSON bodies -app.post('/api/users', jsonParser, function (req, res) { - // create user in req.body -}) -``` - -### Change accepted type for parsers - -All the parsers accept a `type` option which allows you to change the -`Content-Type` that the middleware will parse. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// parse various different custom JSON types as JSON -app.use(bodyParser.json({ type: 'application/*+json' })) - -// parse some custom thing into a Buffer -app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) - -// parse an HTML body into a string -app.use(bodyParser.text({ type: 'text/html' })) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/body-parser.svg -[npm-url]: https://npmjs.org/package/body-parser -[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master -[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg -[downloads-url]: https://npmjs.org/package/body-parser -[github-actions-ci-image]: https://img.shields.io/github/workflow/status/expressjs/body-parser/ci/master?label=ci -[github-actions-ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml diff --git a/build/node_modules/body-parser/SECURITY.md b/build/node_modules/body-parser/SECURITY.md deleted file mode 100644 index 9694d429..00000000 --- a/build/node_modules/body-parser/SECURITY.md +++ /dev/null @@ -1,25 +0,0 @@ -# Security Policies and Procedures - -## Reporting a Bug - -The Express team and community take all security bugs seriously. Thank you -for improving the security of Express. We appreciate your efforts and -responsible disclosure and will make every effort to acknowledge your -contributions. - -Report security bugs by emailing the current owner(s) of `body-parser`. This -information can be found in the npm registry using the command -`npm owner ls body-parser`. -If unsure or unable to get the information from the above, open an issue -in the [project issue tracker](https://github.com/expressjs/body-parser/issues) -asking for the current contact information. - -To ensure the timely response to your report, please ensure that the entirety -of the report is contained within the email body and not solely behind a web -link or an attachment. - -At least one owner will acknowledge your email within 48 hours, and will send a -more detailed response within 48 hours indicating the next steps in handling -your report. After the initial reply to your report, the owners will -endeavor to keep you informed of the progress towards a fix and full -announcement, and may ask for additional information or guidance. diff --git a/build/node_modules/body-parser/index.js b/build/node_modules/body-parser/index.js deleted file mode 100644 index bb24d739..00000000 --- a/build/node_modules/body-parser/index.js +++ /dev/null @@ -1,156 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var deprecate = require('depd')('body-parser') - -/** - * Cache of loaded parsers. - * @private - */ - -var parsers = Object.create(null) - -/** - * @typedef Parsers - * @type {function} - * @property {function} json - * @property {function} raw - * @property {function} text - * @property {function} urlencoded - */ - -/** - * Module exports. - * @type {Parsers} - */ - -exports = module.exports = deprecate.function(bodyParser, - 'bodyParser: use individual json/urlencoded middlewares') - -/** - * JSON parser. - * @public - */ - -Object.defineProperty(exports, 'json', { - configurable: true, - enumerable: true, - get: createParserGetter('json') -}) - -/** - * Raw parser. - * @public - */ - -Object.defineProperty(exports, 'raw', { - configurable: true, - enumerable: true, - get: createParserGetter('raw') -}) - -/** - * Text parser. - * @public - */ - -Object.defineProperty(exports, 'text', { - configurable: true, - enumerable: true, - get: createParserGetter('text') -}) - -/** - * URL-encoded parser. - * @public - */ - -Object.defineProperty(exports, 'urlencoded', { - configurable: true, - enumerable: true, - get: createParserGetter('urlencoded') -}) - -/** - * Create a middleware to parse json and urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @deprecated - * @public - */ - -function bodyParser (options) { - // use default type for parsers - var opts = Object.create(options || null, { - type: { - configurable: true, - enumerable: true, - value: undefined, - writable: true - } - }) - - var _urlencoded = exports.urlencoded(opts) - var _json = exports.json(opts) - - return function bodyParser (req, res, next) { - _json(req, res, function (err) { - if (err) return next(err) - _urlencoded(req, res, next) - }) - } -} - -/** - * Create a getter for loading a parser. - * @private - */ - -function createParserGetter (name) { - return function get () { - return loadParser(name) - } -} - -/** - * Load a parser module. - * @private - */ - -function loadParser (parserName) { - var parser = parsers[parserName] - - if (parser !== undefined) { - return parser - } - - // this uses a switch for static require analysis - switch (parserName) { - case 'json': - parser = require('./lib/types/json') - break - case 'raw': - parser = require('./lib/types/raw') - break - case 'text': - parser = require('./lib/types/text') - break - case 'urlencoded': - parser = require('./lib/types/urlencoded') - break - } - - // store to prevent invoking require() - return (parsers[parserName] = parser) -} diff --git a/build/node_modules/body-parser/package.json b/build/node_modules/body-parser/package.json deleted file mode 100644 index 9cd2ccbb..00000000 --- a/build/node_modules/body-parser/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "body-parser", - "description": "Node.js body parsing middleware", - "version": "1.20.1", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "repository": "expressjs/body-parser", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "devDependencies": { - "eslint": "8.24.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.26.0", - "eslint-plugin-markdown": "3.0.0", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "6.0.1", - "eslint-plugin-standard": "4.1.0", - "methods": "1.1.2", - "mocha": "10.0.0", - "nyc": "15.1.0", - "safe-buffer": "5.2.1", - "supertest": "6.3.0" - }, - "files": [ - "lib/", - "LICENSE", - "HISTORY.md", - "SECURITY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", - "test-ci": "nyc --reporter=lcov --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/build/node_modules/bonjour-service/LICENSE b/build/node_modules/bonjour-service/LICENSE deleted file mode 100644 index cdb72f16..00000000 --- a/build/node_modules/bonjour-service/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright (https://github.com/onlxltd/bonjour-service) (c) 2021 ON LX Limited - -Portions Copyright (Bonjour - https://github.com/watson/bonjour) (c) 2015-2016 Thomas Watson Steen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/bonjour-service/README.md b/build/node_modules/bonjour-service/README.md deleted file mode 100644 index 50b0ddf9..00000000 --- a/build/node_modules/bonjour-service/README.md +++ /dev/null @@ -1,195 +0,0 @@ -# bonjour-service - -![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/onlxltd/bonjour-service/publish-release.yml?style=flat-square) ![npm bundle size](https://img.shields.io/bundlephobia/min/bonjour-service?style=flat-square) ![GitHub Release Date](https://img.shields.io/github/release-date/onlxltd/bonjour-service?style=flat-square) ![npm](https://img.shields.io/npm/dw/bonjour-service?color=%23888&style=flat-square) ![GitHub](https://img.shields.io/github/license/onlxltd/bonjour-service?style=flat-square) [![DeepScan grade](https://deepscan.io/api/teams/13435/projects/16430/branches/352351/badge/grade.svg?style=flat-square)](https://deepscan.io/dashboard#view=project&tid=13435&pid=16430&bid=352351) - -A Bonjour/Zeroconf protocol implementation in TypeScript. Publish -services on the local network or discover existing services using -multicast DNS. - -This is a rewrite of the project Bonjour (https://github.com/watson/bonjour) into modern TypeScript. - - - -## Installation -Add to your project dependencies using Yarn or NPM. - -#### Install with Yarn -``` -yarn add bonjour-service -``` -#### Install with NPM -``` -npm install bonjour-service -``` - -## Usage - -```js -import Bonjour from 'bonjour-service' - -const instance = new Bonjour() - -// advertise an HTTP server on port 3000 -instance.publish({ name: 'My Web Server', type: 'http', port: 3000 }) - -// browse for all http services -instance.find({ type: 'http' }, function (service) { - console.log('Found an HTTP server:', service) -}) -``` - -## API - -### Initializing - -```js -var instance = new Bonjour({ options }, errorCallback) -``` - -The `options` are optional and will be used when initializing the -underlying multicast-dns server. For details see [the multicast-dns -documentation](https://github.com/mafintosh/multicast-dns#mdns--multicastdnsoptions). - -`errorCallback` is an optional callback used to gracefully handle errors that would otherwise -crash the process. While not being strictly required, providing this is highly recommended - -### Publishing - -#### `var service = bonjour.publish(options)` - -Publishes a new service. - -Options are: - -- `name` (string) -- `host` (string, optional) - defaults to local hostname -- `port` (number) -- `type` (string) -- `subtypes` (array of strings, optional) -- `protocol` (string, optional) - `udp` or `tcp` (default) -- `txt` (object, optional) - a key/value object to broadcast as the TXT - record - -IANA maintains a [list of official service types and port -numbers](http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml). - -#### `bonjour.unpublishAll([callback])` - -Unpublish all services. The optional `callback` will be called when the -services have been unpublished. - -#### `bonjour.destroy()` - -Destroy the mdns instance. Closes the udp socket. - -### Browser - -#### `var browser = bonjour.find(options[, onup])` - -Listen for services advertised on the network. An optional callback can -be provided as the 2nd argument and will be added as an event listener -for the `up` event. - -Options (all optional): - -- `type` (string) -- `subtypes` (array of strings) -- `protocol` (string) - defaults to `tcp` -- `txt` (object) - passed into [dns-txt - module](https://github.com/watson/dns-txt) contructor. Set to `{ - binary: true }` if you want to keep the TXT records in binary - -#### `var browser = bonjour.findOne(options[, callback])` - -Listen for and call the `callback` with the first instance of a service -matching the `options`. If no `callback` is given, it's expected that -you listen for the `up` event. The returned `browser` will automatically -stop it self after the first matching service. - -Options are the same as given in the `browser.find` function. - -#### `Event: up` - -Emitted every time a new service is found that matches the browser. - -#### `Event: down` - -Emitted every time an existing service emmits a goodbye message. - -#### `browser.services()` - -An array of services known by the browser to be online. - -#### `browser.start()` - -Start looking for matching services. - -#### `browser.stop()` - -Stop looking for matching services. - -#### `browser.update()` - -Broadcast the query again. - -### Service - -#### `Event: up` - -Emitted when the service is up. - -#### `Event: error` - -Emitted if an error occurrs while publishing the service. - -#### `service.stop([callback])` - -Unpublish the service. The optional `callback` will be called when the -service have been unpublished. - -#### `service.start()` - -Publish the service. - -#### `service.name` - -The name of the service, e.g. `Apple TV`. - -#### `service.type` - -The type of the service, e.g. `http`. - -#### `service.subtypes` - -An array of subtypes. Note that this property might be `null`. - -#### `service.protocol` - -The protocol used by the service, e.g. `tcp`. - -#### `service.host` - -The hostname or ip address where the service resides. - -#### `service.port` - -The port on which the service listens, e.g. `5000`. - -#### `service.fqdn` - -The fully qualified domain name of the service. E.g. if given the name -`Foo Bar`, the type `http` and the protocol `tcp`, the `service.fqdn` -property will be `Foo Bar._http._tcp.local`. - -#### `service.txt` - -The TXT record advertised by the service (a key/value object). Note that -this property might be `null`. - -#### `service.published` - -A boolean indicating if the service is currently published. - -## License - -MIT diff --git a/build/node_modules/bonjour-service/package.json b/build/node_modules/bonjour-service/package.json deleted file mode 100644 index 85c84c62..00000000 --- a/build/node_modules/bonjour-service/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "bonjour-service", - "version": "1.1.1", - "description": "A Bonjour/Zeroconf implementation in TypeScript", - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - }, - "devDependencies": { - "@types/node": "^16.18.11", - "@typescript-eslint/eslint-plugin": "^5.22.0", - "@typescript-eslint/parser": "^5.22.0", - "after-all": "^2.0.2", - "eslint": "^8.15.0", - "standard": "^17.0.0", - "tape": "^5.2.2", - "ts-node-dev": "^2.0.0", - "typescript": "^4.4.4" - }, - "scripts": { - "test": "standard --fix && tape test/*.js", - "build": "tsc --removeComments true", - "dev": "ts-node-dev --respawn --transpile-only ./src/index.ts", - "example:simple": "node examples/simple" - }, - "repository": { - "type": "git", - "url": "https://github.com/onlxltd/bonjour-service.git" - }, - "keywords": [ - "bonjour", - "zeroconf", - "zero", - "configuration", - "mdns", - "dns", - "service", - "discovery", - "multicast", - "broadcast", - "dns-sd" - ], - "author": "ON LX Lited (https://labs.onlx.ltd)", - "license": "MIT", - "bugs": { - "url": "https://github.com/onlxltd/bonjour-service/issues" - }, - "homepage": "https://github.com/onlxltd/bonjour-service" -} diff --git a/build/node_modules/boolbase/README.md b/build/node_modules/boolbase/README.md deleted file mode 100644 index 85eefa5e..00000000 --- a/build/node_modules/boolbase/README.md +++ /dev/null @@ -1,10 +0,0 @@ -#boolbase -This very simple module provides two basic functions, one that always returns true (`trueFunc`) and one that always returns false (`falseFunc`). - -###WTF? - -By having only a single instance of these functions around, it's possible to do some nice optimizations. Eg. [`CSSselect`](https://github.com/fb55/CSSselect) uses these functions to determine whether a selector won't match any elements. If that's the case, the DOM doesn't even have to be touched. - -###And why is this a separate module? - -I'm trying to modularize `CSSselect` and most modules depend on these functions. IMHO, having a separate module is the easiest solution to this problem. \ No newline at end of file diff --git a/build/node_modules/boolbase/index.js b/build/node_modules/boolbase/index.js deleted file mode 100644 index 8799fd95..00000000 --- a/build/node_modules/boolbase/index.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - trueFunc: function trueFunc(){ - return true; - }, - falseFunc: function falseFunc(){ - return false; - } -}; \ No newline at end of file diff --git a/build/node_modules/boolbase/package.json b/build/node_modules/boolbase/package.json deleted file mode 100644 index 78330a8f..00000000 --- a/build/node_modules/boolbase/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "boolbase", - "version": "1.0.0", - "description": "two functions: One that returns true, one that returns false", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "https://github.com/fb55/boolbase" - }, - "keywords": [ - "boolean", - "function" - ], - "author": "Felix Boehm ", - "license": "ISC", - "bugs": { - "url": "https://github.com/fb55/boolbase/issues" - }, - "homepage": "https://github.com/fb55/boolbase" -} diff --git a/build/node_modules/bootstrap/LICENSE b/build/node_modules/bootstrap/LICENSE deleted file mode 100644 index 6633b55f..00000000 --- a/build/node_modules/bootstrap/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2023 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/bootstrap/README.md b/build/node_modules/bootstrap/README.md deleted file mode 100644 index 98262939..00000000 --- a/build/node_modules/bootstrap/README.md +++ /dev/null @@ -1,246 +0,0 @@ -

- - Bootstrap logo - -

- -

Bootstrap

- -

- Sleek, intuitive, and powerful front-end framework for faster and easier web development. -
- Explore Bootstrap docs » -
-
- Report bug - · - Request feature - · - Themes - · - Blog -

- - -## Bootstrap 5 - -Our default branch is for development of our Bootstrap 5 release. Head to the [`v4-dev` branch](https://github.com/twbs/bootstrap/tree/v4-dev) to view the readme, documentation, and source code for Bootstrap 4. - - -## Table of contents - -- [Quick start](#quick-start) -- [Status](#status) -- [What's included](#whats-included) -- [Bugs and feature requests](#bugs-and-feature-requests) -- [Documentation](#documentation) -- [Contributing](#contributing) -- [Community](#community) -- [Versioning](#versioning) -- [Creators](#creators) -- [Thanks](#thanks) -- [Copyright and license](#copyright-and-license) - - -## Quick start - -Several quick start options are available: - -- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.3.2.zip) -- Clone the repo: `git clone https://github.com/twbs/bootstrap.git` -- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.3.2` -- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.3.2` -- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.3.2` -- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass` - -Read the [Getting started page](https://getbootstrap.com/docs/5.3/getting-started/introduction/) for information on the framework contents, templates, examples, and more. - - -## Status - -[![Build Status](https://img.shields.io/github/actions/workflow/status/twbs/bootstrap/js.yml?branch=main&label=JS%20Tests&logo=github)](https://github.com/twbs/bootstrap/actions/workflows/js.yml?query=workflow%3AJS+branch%3Amain) -[![npm version](https://img.shields.io/npm/v/bootstrap?logo=npm&logoColor=fff)](https://www.npmjs.com/package/bootstrap) -[![Gem version](https://img.shields.io/gem/v/bootstrap?logo=rubygems&logoColor=fff)](https://rubygems.org/gems/bootstrap) -[![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue?logo=meteor&logoColor=fff)](https://atmospherejs.com/twbs/bootstrap) -[![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap?logo=packagist&logoColor=fff)](https://packagist.org/packages/twbs/bootstrap) -[![NuGet](https://img.shields.io/nuget/vpre/bootstrap?logo=nuget&logoColor=fff)](https://www.nuget.org/packages/bootstrap/absoluteLatest) -[![Coverage Status](https://img.shields.io/coveralls/github/twbs/bootstrap/main?logo=coveralls&logoColor=fff)](https://coveralls.io/github/twbs/bootstrap?branch=main) -[![CSS gzip size](https://img.badgesize.io/twbs/bootstrap/main/dist/css/bootstrap.min.css?compression=gzip&label=CSS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap.min.css) -[![CSS Brotli size](https://img.badgesize.io/twbs/bootstrap/main/dist/css/bootstrap.min.css?compression=brotli&label=CSS%20Brotli%20size)](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap.min.css) -[![JS gzip size](https://img.badgesize.io/twbs/bootstrap/main/dist/js/bootstrap.min.js?compression=gzip&label=JS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/main/dist/js/bootstrap.min.js) -[![JS Brotli size](https://img.badgesize.io/twbs/bootstrap/main/dist/js/bootstrap.min.js?compression=brotli&label=JS%20Brotli%20size)](https://github.com/twbs/bootstrap/blob/main/dist/js/bootstrap.min.js) -[![Backers on Open Collective](https://img.shields.io/opencollective/backers/bootstrap?logo=opencollective&logoColor=fff)](#backers) -[![Sponsors on Open Collective](https://img.shields.io/opencollective/sponsors/bootstrap?logo=opencollective&logoColor=fff)](#sponsors) - - -## What's included - -Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. - -
- Download contents - - ```text - bootstrap/ - ├── css/ - │ ├── bootstrap-grid.css - │ ├── bootstrap-grid.css.map - │ ├── bootstrap-grid.min.css - │ ├── bootstrap-grid.min.css.map - │ ├── bootstrap-grid.rtl.css - │ ├── bootstrap-grid.rtl.css.map - │ ├── bootstrap-grid.rtl.min.css - │ ├── bootstrap-grid.rtl.min.css.map - │ ├── bootstrap-reboot.css - │ ├── bootstrap-reboot.css.map - │ ├── bootstrap-reboot.min.css - │ ├── bootstrap-reboot.min.css.map - │ ├── bootstrap-reboot.rtl.css - │ ├── bootstrap-reboot.rtl.css.map - │ ├── bootstrap-reboot.rtl.min.css - │ ├── bootstrap-reboot.rtl.min.css.map - │ ├── bootstrap-utilities.css - │ ├── bootstrap-utilities.css.map - │ ├── bootstrap-utilities.min.css - │ ├── bootstrap-utilities.min.css.map - │ ├── bootstrap-utilities.rtl.css - │ ├── bootstrap-utilities.rtl.css.map - │ ├── bootstrap-utilities.rtl.min.css - │ ├── bootstrap-utilities.rtl.min.css.map - │ ├── bootstrap.css - │ ├── bootstrap.css.map - │ ├── bootstrap.min.css - │ ├── bootstrap.min.css.map - │ ├── bootstrap.rtl.css - │ ├── bootstrap.rtl.css.map - │ ├── bootstrap.rtl.min.css - │ └── bootstrap.rtl.min.css.map - └── js/ - ├── bootstrap.bundle.js - ├── bootstrap.bundle.js.map - ├── bootstrap.bundle.min.js - ├── bootstrap.bundle.min.js.map - ├── bootstrap.esm.js - ├── bootstrap.esm.js.map - ├── bootstrap.esm.min.js - ├── bootstrap.esm.min.js.map - ├── bootstrap.js - ├── bootstrap.js.map - ├── bootstrap.min.js - └── bootstrap.min.js.map - ``` -
- -We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). [Source maps](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Bundled JS files (`bootstrap.bundle.js` and minified `bootstrap.bundle.min.js`) include [Popper](https://popper.js.org/). - - -## Bugs and feature requests - -Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/main/.github/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new/choose). - - -## Documentation - -Bootstrap's documentation, included in this repo in the root directory, is built with [Hugo](https://gohugo.io/) and publicly hosted on GitHub Pages at . The docs may also be run locally. - -Documentation search is powered by [Algolia's DocSearch](https://docsearch.algolia.com/). - -### Running documentation locally - -1. Run `npm install` to install the Node.js dependencies, including Hugo (the site builder). -2. Run `npm run test` (or a specific npm script) to rebuild distributed CSS and JavaScript files, as well as our docs assets. -3. From the root `/bootstrap` directory, run `npm run docs-serve` in the command line. -4. Open `http://localhost:9001/` in your browser, and voilà. - -Learn more about using Hugo by reading its [documentation](https://gohugo.io/documentation/). - -### Documentation for previous releases - -You can find all our previous releases docs on . - -[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. - - -## Contributing - -Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/main/.github/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. - -Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/main/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). - -Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/main/.editorconfig) for easy use in common text editors. Read more and download plugins at . - - -## Community - -Get updates on Bootstrap's development and chat with the project maintainers and community members. - -- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). -- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/). -- Ask questions and explore [our GitHub Discussions](https://github.com/twbs/bootstrap/discussions). -- Discuss, ask questions, and more on [the community Discord](https://discord.gg/bZUvakRU3M) or [Bootstrap subreddit](https://reddit.com/r/bootstrap). -- Chat with fellow Bootstrappers in IRC. On the `irc.libera.chat` server, in the `#bootstrap` channel. -- Implementation help may be found at Stack Overflow (tagged [`bootstrap-5`](https://stackoverflow.com/questions/tagged/bootstrap-5)). -- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. - - -## Versioning - -For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](https://semver.org/). Sometimes we screw up, but we adhere to those rules whenever possible. - -See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com/) contain summaries of the most noteworthy changes made in each release. - - -## Creators - -**Mark Otto** - -- -- - -**Jacob Thornton** - -- -- - - -## Thanks - - - BrowserStack - - -Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers! - - - Netlify - - -Thanks to [Netlify](https://www.netlify.com/) for providing us with Deploy Previews! - - -## Sponsors - -Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/bootstrap#sponsor)] - -[![OC sponsor 0](https://opencollective.com/bootstrap/sponsor/0/avatar.svg)](https://opencollective.com/bootstrap/sponsor/0/website) -[![OC sponsor 1](https://opencollective.com/bootstrap/sponsor/1/avatar.svg)](https://opencollective.com/bootstrap/sponsor/1/website) -[![OC sponsor 2](https://opencollective.com/bootstrap/sponsor/2/avatar.svg)](https://opencollective.com/bootstrap/sponsor/2/website) -[![OC sponsor 3](https://opencollective.com/bootstrap/sponsor/3/avatar.svg)](https://opencollective.com/bootstrap/sponsor/3/website) -[![OC sponsor 4](https://opencollective.com/bootstrap/sponsor/4/avatar.svg)](https://opencollective.com/bootstrap/sponsor/4/website) -[![OC sponsor 5](https://opencollective.com/bootstrap/sponsor/5/avatar.svg)](https://opencollective.com/bootstrap/sponsor/5/website) -[![OC sponsor 6](https://opencollective.com/bootstrap/sponsor/6/avatar.svg)](https://opencollective.com/bootstrap/sponsor/6/website) -[![OC sponsor 7](https://opencollective.com/bootstrap/sponsor/7/avatar.svg)](https://opencollective.com/bootstrap/sponsor/7/website) -[![OC sponsor 8](https://opencollective.com/bootstrap/sponsor/8/avatar.svg)](https://opencollective.com/bootstrap/sponsor/8/website) -[![OC sponsor 9](https://opencollective.com/bootstrap/sponsor/9/avatar.svg)](https://opencollective.com/bootstrap/sponsor/9/website) - - -## Backers - -Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/bootstrap#backer)] - -[![Backers](https://opencollective.com/bootstrap/backers.svg?width=890)](https://opencollective.com/bootstrap#backers) - - -## Copyright and license - -Code and documentation copyright 2011–2023 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors). Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/). diff --git a/build/node_modules/bootstrap/package.json b/build/node_modules/bootstrap/package.json deleted file mode 100644 index b5a4039b..00000000 --- a/build/node_modules/bootstrap/package.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "version": "5.3.2", - "config": { - "version_short": "5.3" - }, - "keywords": [ - "css", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "https://getbootstrap.com/", - "author": "The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/twbs/bootstrap.git" - }, - "bugs": { - "url": "https://github.com/twbs/bootstrap/issues" - }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/twbs" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - } - ], - "main": "dist/js/bootstrap.js", - "module": "dist/js/bootstrap.esm.js", - "sass": "scss/bootstrap.scss", - "style": "dist/css/bootstrap.css", - "scripts": { - "start": "npm-run-all --parallel watch docs-serve", - "bundlewatch": "bundlewatch --config .bundlewatch.config.json", - "css": "npm-run-all css-compile css-prefix css-rtl css-minify", - "css-compile": "sass --style expanded --source-map --embed-sources --no-error-css scss/:dist/css/", - "css-rtl": "cross-env NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir \"dist/css\" --ext \".rtl.css\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*.rtl.css\"", - "css-lint": "npm-run-all --aggregate-output --continue-on-error --parallel css-lint-*", - "css-lint-stylelint": "stylelint \"**/*.{css,scss}\" --cache --cache-location .cache/.stylelintcache", - "css-lint-vars": "fusv scss/ site/assets/scss/", - "css-minify": "npm-run-all --aggregate-output --parallel css-minify-*", - "css-minify-main": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*.css\" \"!dist/css/*.min.css\" \"!dist/css/*rtl*.css\"", - "css-minify-rtl": "cleancss -O1 --format breakWith=lf --with-rebase --source-map --source-map-inline-sources --output dist/css/ --batch --batch-suffix \".min\" \"dist/css/*rtl.css\" \"!dist/css/*.min.css\"", - "css-prefix": "npm-run-all --aggregate-output --parallel css-prefix-*", - "css-prefix-main": "postcss --config build/postcss.config.mjs --replace \"dist/css/*.css\" \"!dist/css/*.rtl*.css\" \"!dist/css/*.min.css\"", - "css-prefix-examples": "postcss --config build/postcss.config.mjs --replace \"site/content/**/*.css\"", - "css-prefix-examples-rtl": "cross-env-shell NODE_ENV=RTL postcss --config build/postcss.config.mjs --dir \"site/content/docs/$npm_package_config_version_short/examples/\" --ext \".rtl.css\" --base \"site/content/docs/$npm_package_config_version_short/examples/\" \"site/content/docs/$npm_package_config_version_short/examples/{blog,carousel,dashboard,cheatsheet}/*.css\" \"!site/content/docs/$npm_package_config_version_short/examples/{blog,carousel,dashboard,cheatsheet}/*.rtl.css\"", - "css-test": "jasmine --config=scss/tests/jasmine.js", - "js": "npm-run-all js-compile js-minify", - "js-compile": "npm-run-all --aggregate-output --parallel js-compile-*", - "js-compile-standalone": "rollup --environment BUNDLE:false --config build/rollup.config.mjs --sourcemap", - "js-compile-standalone-esm": "rollup --environment ESM:true,BUNDLE:false --config build/rollup.config.mjs --sourcemap", - "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.mjs --sourcemap", - "js-compile-plugins": "node build/build-plugins.mjs", - "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js,.mjs,.md .", - "js-minify": "npm-run-all --aggregate-output --parallel js-minify-*", - "js-minify-standalone": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js", - "js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.esm.js.map,includeSources,url=bootstrap.esm.min.js.map\" --output dist/js/bootstrap.esm.min.js dist/js/bootstrap.esm.js", - "js-minify-bundle": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map\" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js", - "js-test": "npm-run-all --aggregate-output --parallel js-test-karma js-test-jquery js-test-integration-*", - "js-debug": "cross-env DEBUG=true npm run js-test-karma", - "js-test-karma": "karma start js/tests/karma.conf.js", - "js-test-integration-bundle": "rollup --config js/tests/integration/rollup.bundle.js", - "js-test-integration-modularity": "rollup --config js/tests/integration/rollup.bundle-modularity.js", - "js-test-cloud": "cross-env BROWSERSTACK=true npm run js-test-karma", - "js-test-jquery": "cross-env JQUERY=true npm run js-test-karma", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel js-lint css-lint lockfile-lint", - "docs": "npm-run-all docs-build docs-lint", - "docs-build": "hugo --cleanDestinationDir --printUnusedTemplates", - "docs-compile": "npm run docs-build", - "docs-vnu": "node build/vnu-jar.mjs", - "docs-lint": "npm run docs-vnu", - "docs-serve": "hugo server --port 9001 --disableFastRender --printUnusedTemplates", - "docs-serve-only": "npx sirv-cli _site --port 9001", - "lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json", - "update-deps": "ncu -u -x globby,jasmine,karma-browserstack-launcher,karma-rollup-preprocessor && echo Manually update site/assets/js/vendor", - "release": "npm-run-all dist release-sri docs-build release-zip*", - "release-sri": "node build/generate-sri.mjs", - "release-version": "node build/change-version.mjs", - "release-zip": "cross-env-shell \"rm -rf bootstrap-$npm_package_version-dist bootstrap-$npm_package_version-dist.zip && cp -r dist/ bootstrap-$npm_package_version-dist && zip -qr9 bootstrap-$npm_package_version-dist.zip bootstrap-$npm_package_version-dist && rm -rf bootstrap-$npm_package_version-dist\"", - "release-zip-examples": "node build/zip-examples.mjs", - "dist": "npm-run-all --aggregate-output --parallel css js", - "test": "npm-run-all lint dist js-test docs-build docs-lint", - "netlify": "cross-env-shell HUGO_BASEURL=$DEPLOY_PRIME_URL npm-run-all dist release-sri docs-build", - "watch": "npm-run-all --parallel watch-*", - "watch-css-main": "nodemon --watch scss/ --ext scss --exec \"npm-run-all css-lint css-compile css-prefix\"", - "watch-css-dist": "nodemon --watch dist/css/ --ext css --ignore \"dist/css/*.rtl.*\" --exec \"npm run css-rtl\"", - "watch-css-docs": "nodemon --watch site/assets/scss/ --ext scss --exec \"npm run css-lint\"", - "watch-css-test": "nodemon --watch scss/ --ext scss,js --exec \"npm run css-test\"", - "watch-js-main": "nodemon --watch js/src/ --ext js --exec \"npm-run-all js-lint js-compile\"", - "watch-js-docs": "nodemon --watch site/assets/js/ --ext js --exec \"npm run js-lint\"" - }, - "peerDependencies": { - "@popperjs/core": "^2.11.8" - }, - "devDependencies": { - "@babel/cli": "^7.22.15", - "@babel/core": "^7.22.17", - "@babel/preset-env": "^7.22.15", - "@popperjs/core": "^2.11.8", - "@rollup/plugin-babel": "^6.0.3", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-node-resolve": "^15.2.1", - "@rollup/plugin-replace": "^5.0.2", - "autoprefixer": "^10.4.15", - "bundlewatch": "^0.3.3", - "clean-css-cli": "^5.6.2", - "cross-env": "^7.0.3", - "eslint": "^8.49.0", - "eslint-config-xo": "^0.43.1", - "eslint-plugin-html": "^7.1.0", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-markdown": "^3.0.1", - "eslint-plugin-unicorn": "^48.0.1", - "find-unused-sass-variables": "^5.0.0", - "globby": "^11.1.0", - "hammer-simulator": "0.0.1", - "hugo-bin": "^0.114.2", - "ip": "^2.0.0", - "jasmine": "^4.6.0", - "jquery": "^3.7.1", - "karma": "^6.4.2", - "karma-browserstack-launcher": "1.4.0", - "karma-chrome-launcher": "^3.2.0", - "karma-coverage-istanbul-reporter": "^3.0.3", - "karma-detect-browsers": "^2.3.3", - "karma-firefox-launcher": "^2.1.2", - "karma-jasmine": "^5.1.0", - "karma-jasmine-html-reporter": "^2.1.0", - "karma-rollup-preprocessor": "7.0.7", - "lockfile-lint": "^4.12.1", - "nodemon": "^3.0.1", - "npm-run-all2": "^6.0.6", - "postcss": "^8.4.29", - "postcss-cli": "^10.1.0", - "rollup": "^3.29.1", - "rollup-plugin-istanbul": "^4.0.0", - "rtlcss": "^4.1.0", - "sass": "^1.66.1", - "sass-true": "^7.0.0", - "shelljs": "^0.8.5", - "stylelint": "^15.10.3", - "stylelint-config-twbs-bootstrap": "^11.0.1", - "terser": "^5.19.4", - "vnu-jar": "23.4.11" - }, - "files": [ - "dist/{css,js}/*.{css,js,map}", - "js/{src,dist}/**/*.{js,map}", - "js/index.{esm,umd}.js", - "scss/**/*.scss", - "!scss/tests/**" - ], - "hugo-bin": { - "buildTags": "extended" - }, - "jspm": { - "registry": "npm", - "main": "js/bootstrap", - "directories": { - "lib": "dist" - }, - "shim": { - "js/bootstrap": { - "deps": [ - "@popperjs/core" - ] - } - }, - "dependencies": {}, - "peerDependencies": { - "@popperjs/core": "^2.11.8" - } - } -} diff --git a/build/node_modules/bplist-parser/README.md b/build/node_modules/bplist-parser/README.md deleted file mode 100644 index eb540642..00000000 --- a/build/node_modules/bplist-parser/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# bplist-parser - -Binary Mac OS X Plist (property list) parser. - -## Installation - -```bash -$ npm install bplist-parser -``` - -## Quick Examples - -```javascript -const bplist = require('bplist-parser'); - -(async () => { - - const obj = await bplist.parseFile('myPlist.bplist'); - - console.log(JSON.stringify(obj)); - -})(); -``` - -## License - -(The MIT License) - -Copyright (c) 2012 Near Infinity Corporation - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/bplist-parser/bplistParser.js b/build/node_modules/bplist-parser/bplistParser.js deleted file mode 100644 index 410afdeb..00000000 --- a/build/node_modules/bplist-parser/bplistParser.js +++ /dev/null @@ -1,363 +0,0 @@ -'use strict'; - -// adapted from http://code.google.com/p/plist/source/browse/trunk/src/com/dd/plist/BinaryPropertyListParser.java - -const fs = require('fs'); -const bigInt = require("big-integer"); -const debug = false; - -exports.maxObjectSize = 100 * 1000 * 1000; // 100Meg -exports.maxObjectCount = 32768; - -// EPOCH = new SimpleDateFormat("yyyy MM dd zzz").parse("2001 01 01 GMT").getTime(); -// ...but that's annoying in a static initializer because it can throw exceptions, ick. -// So we just hardcode the correct value. -const EPOCH = 978307200000; - -// UID object definition -const UID = exports.UID = function(id) { - this.UID = id; -}; - -const parseFile = exports.parseFile = function (fileNameOrBuffer, callback) { - return new Promise(function (resolve, reject) { - function tryParseBuffer(buffer) { - let err = null; - let result; - try { - result = parseBuffer(buffer); - resolve(result); - } catch (ex) { - err = ex; - reject(err); - } finally { - if (callback) callback(err, result); - } - } - - if (Buffer.isBuffer(fileNameOrBuffer)) { - return tryParseBuffer(fileNameOrBuffer); - } - fs.readFile(fileNameOrBuffer, function (err, data) { - if (err) { - reject(err); - return callback(err); - } - tryParseBuffer(data); - }); - }); -}; - -const parseBuffer = exports.parseBuffer = function (buffer) { - // check header - const header = buffer.slice(0, 'bplist'.length).toString('utf8'); - if (header !== 'bplist') { - throw new Error("Invalid binary plist. Expected 'bplist' at offset 0."); - } - - // Handle trailer, last 32 bytes of the file - const trailer = buffer.slice(buffer.length - 32, buffer.length); - // 6 null bytes (index 0 to 5) - const offsetSize = trailer.readUInt8(6); - if (debug) { - console.log("offsetSize: " + offsetSize); - } - const objectRefSize = trailer.readUInt8(7); - if (debug) { - console.log("objectRefSize: " + objectRefSize); - } - const numObjects = readUInt64BE(trailer, 8); - if (debug) { - console.log("numObjects: " + numObjects); - } - const topObject = readUInt64BE(trailer, 16); - if (debug) { - console.log("topObject: " + topObject); - } - const offsetTableOffset = readUInt64BE(trailer, 24); - if (debug) { - console.log("offsetTableOffset: " + offsetTableOffset); - } - - if (numObjects > exports.maxObjectCount) { - throw new Error("maxObjectCount exceeded"); - } - - // Handle offset table - const offsetTable = []; - - for (let i = 0; i < numObjects; i++) { - const offsetBytes = buffer.slice(offsetTableOffset + i * offsetSize, offsetTableOffset + (i + 1) * offsetSize); - offsetTable[i] = readUInt(offsetBytes, 0); - if (debug) { - console.log("Offset for Object #" + i + " is " + offsetTable[i] + " [" + offsetTable[i].toString(16) + "]"); - } - } - - // Parses an object inside the currently parsed binary property list. - // For the format specification check - // - // Apple's binary property list parser implementation. - function parseObject(tableOffset) { - const offset = offsetTable[tableOffset]; - const type = buffer[offset]; - const objType = (type & 0xF0) >> 4; //First 4 bits - const objInfo = (type & 0x0F); //Second 4 bits - switch (objType) { - case 0x0: - return parseSimple(); - case 0x1: - return parseInteger(); - case 0x8: - return parseUID(); - case 0x2: - return parseReal(); - case 0x3: - return parseDate(); - case 0x4: - return parseData(); - case 0x5: // ASCII - return parsePlistString(); - case 0x6: // UTF-16 - return parsePlistString(true); - case 0xA: - return parseArray(); - case 0xD: - return parseDictionary(); - default: - throw new Error("Unhandled type 0x" + objType.toString(16)); - } - - function parseSimple() { - //Simple - switch (objInfo) { - case 0x0: // null - return null; - case 0x8: // false - return false; - case 0x9: // true - return true; - case 0xF: // filler byte - return null; - default: - throw new Error("Unhandled simple type 0x" + objType.toString(16)); - } - } - - function bufferToHexString(buffer) { - let str = ''; - let i; - for (i = 0; i < buffer.length; i++) { - if (buffer[i] != 0x00) { - break; - } - } - for (; i < buffer.length; i++) { - const part = '00' + buffer[i].toString(16); - str += part.substr(part.length - 2); - } - return str; - } - - function parseInteger() { - const length = Math.pow(2, objInfo); - - if (objInfo == 0x4) { - const data = buffer.slice(offset + 1, offset + 1 + length); - const str = bufferToHexString(data); - return bigInt(str, 16); - } - if (objInfo == 0x3) { - return buffer.readInt32BE(offset + 1); - } - if (length < exports.maxObjectSize) { - return readUInt(buffer.slice(offset + 1, offset + 1 + length)); - } - throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available."); - } - - function parseUID() { - const length = objInfo + 1; - if (length < exports.maxObjectSize) { - return new UID(readUInt(buffer.slice(offset + 1, offset + 1 + length))); - } - throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available."); - } - - function parseReal() { - const length = Math.pow(2, objInfo); - if (length < exports.maxObjectSize) { - const realBuffer = buffer.slice(offset + 1, offset + 1 + length); - if (length === 4) { - return realBuffer.readFloatBE(0); - } - if (length === 8) { - return realBuffer.readDoubleBE(0); - } - } else { - throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available."); - } - } - - function parseDate() { - if (objInfo != 0x3) { - console.error("Unknown date type :" + objInfo + ". Parsing anyway..."); - } - const dateBuffer = buffer.slice(offset + 1, offset + 9); - return new Date(EPOCH + (1000 * dateBuffer.readDoubleBE(0))); - } - - function parseData() { - let dataoffset = 1; - let length = objInfo; - if (objInfo == 0xF) { - const int_type = buffer[offset + 1]; - const intType = (int_type & 0xF0) / 0x10; - if (intType != 0x1) { - console.error("0x4: UNEXPECTED LENGTH-INT TYPE! " + intType); - } - const intInfo = int_type & 0x0F; - const intLength = Math.pow(2, intInfo); - dataoffset = 2 + intLength; - if (intLength < 3) { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } else { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } - } - if (length < exports.maxObjectSize) { - return buffer.slice(offset + dataoffset, offset + dataoffset + length); - } - throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available."); - } - - function parsePlistString (isUtf16) { - isUtf16 = isUtf16 || 0; - let enc = "utf8"; - let length = objInfo; - let stroffset = 1; - if (objInfo == 0xF) { - const int_type = buffer[offset + 1]; - const intType = (int_type & 0xF0) / 0x10; - if (intType != 0x1) { - console.err("UNEXPECTED LENGTH-INT TYPE! " + intType); - } - const intInfo = int_type & 0x0F; - const intLength = Math.pow(2, intInfo); - stroffset = 2 + intLength; - if (intLength < 3) { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } else { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } - } - // length is String length -> to get byte length multiply by 2, as 1 character takes 2 bytes in UTF-16 - length *= (isUtf16 + 1); - if (length < exports.maxObjectSize) { - let plistString = Buffer.from(buffer.slice(offset + stroffset, offset + stroffset + length)); - if (isUtf16) { - plistString = swapBytes(plistString); - enc = "ucs2"; - } - return plistString.toString(enc); - } - throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available."); - } - - function parseArray() { - let length = objInfo; - let arrayoffset = 1; - if (objInfo == 0xF) { - const int_type = buffer[offset + 1]; - const intType = (int_type & 0xF0) / 0x10; - if (intType != 0x1) { - console.error("0xa: UNEXPECTED LENGTH-INT TYPE! " + intType); - } - const intInfo = int_type & 0x0F; - const intLength = Math.pow(2, intInfo); - arrayoffset = 2 + intLength; - if (intLength < 3) { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } else { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } - } - if (length * objectRefSize > exports.maxObjectSize) { - throw new Error("To little heap space available!"); - } - const array = []; - for (let i = 0; i < length; i++) { - const objRef = readUInt(buffer.slice(offset + arrayoffset + i * objectRefSize, offset + arrayoffset + (i + 1) * objectRefSize)); - array[i] = parseObject(objRef); - } - return array; - } - - function parseDictionary() { - let length = objInfo; - let dictoffset = 1; - if (objInfo == 0xF) { - const int_type = buffer[offset + 1]; - const intType = (int_type & 0xF0) / 0x10; - if (intType != 0x1) { - console.error("0xD: UNEXPECTED LENGTH-INT TYPE! " + intType); - } - const intInfo = int_type & 0x0F; - const intLength = Math.pow(2, intInfo); - dictoffset = 2 + intLength; - if (intLength < 3) { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } else { - length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength)); - } - } - if (length * 2 * objectRefSize > exports.maxObjectSize) { - throw new Error("To little heap space available!"); - } - if (debug) { - console.log("Parsing dictionary #" + tableOffset); - } - const dict = {}; - for (let i = 0; i < length; i++) { - const keyRef = readUInt(buffer.slice(offset + dictoffset + i * objectRefSize, offset + dictoffset + (i + 1) * objectRefSize)); - const valRef = readUInt(buffer.slice(offset + dictoffset + (length * objectRefSize) + i * objectRefSize, offset + dictoffset + (length * objectRefSize) + (i + 1) * objectRefSize)); - const key = parseObject(keyRef); - const val = parseObject(valRef); - if (debug) { - console.log(" DICT #" + tableOffset + ": Mapped " + key + " to " + val); - } - dict[key] = val; - } - return dict; - } - } - - return [ parseObject(topObject) ]; -}; - -function readUInt(buffer, start) { - start = start || 0; - - let l = 0; - for (let i = start; i < buffer.length; i++) { - l <<= 8; - l |= buffer[i] & 0xFF; - } - return l; -} - -// we're just going to toss the high order bits because javascript doesn't have 64-bit ints -function readUInt64BE(buffer, start) { - const data = buffer.slice(start, start + 8); - return data.readUInt32BE(4, 8); -} - -function swapBytes(buffer) { - const len = buffer.length; - for (let i = 0; i < len; i += 2) { - const a = buffer[i]; - buffer[i] = buffer[i+1]; - buffer[i+1] = a; - } - return buffer; -} diff --git a/build/node_modules/bplist-parser/package.json b/build/node_modules/bplist-parser/package.json deleted file mode 100644 index b85a0340..00000000 --- a/build/node_modules/bplist-parser/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "bplist-parser", - "version": "0.2.0", - "description": "Binary plist parser.", - "main": "bplistParser.js", - "scripts": { - "test": "mocha test" - }, - "keywords": [ - "bplist", - "plist", - "parser" - ], - "author": "Joe Ferner ", - "contributors": [ - "Brett Zamir" - ], - "license": "MIT", - "devDependencies": { - "mocha": "^6.1.4" - }, - "homepage": "https://github.com/nearinfinity/node-bplist-parser", - "bugs": "https://github.com/nearinfinity/node-bplist-parser/issues", - "engines": { - "node": ">= 5.10.0" - }, - "repository": { - "type": "git", - "url": "https://github.com/nearinfinity/node-bplist-parser.git" - }, - "dependencies": { - "big-integer": "^1.6.44" - } -} diff --git a/build/node_modules/brace-expansion/LICENSE b/build/node_modules/brace-expansion/LICENSE deleted file mode 100644 index de322667..00000000 --- a/build/node_modules/brace-expansion/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Julian Gruber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/brace-expansion/README.md b/build/node_modules/brace-expansion/README.md deleted file mode 100644 index 6b4e0e16..00000000 --- a/build/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) -[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## Sponsors - -This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! - -Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/brace-expansion/index.js b/build/node_modules/brace-expansion/index.js deleted file mode 100644 index 0478be81..00000000 --- a/build/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,201 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/build/node_modules/brace-expansion/package.json b/build/node_modules/brace-expansion/package.json deleted file mode 100644 index a18faa8f..00000000 --- a/build/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.11", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh", - "bench": "matcha test/perf/bench.js" - }, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - } -} diff --git a/build/node_modules/braces/CHANGELOG.md b/build/node_modules/braces/CHANGELOG.md deleted file mode 100644 index 36f798b0..00000000 --- a/build/node_modules/braces/CHANGELOG.md +++ /dev/null @@ -1,184 +0,0 @@ -# Release history - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - -
- Guiding Principles - -- Changelogs are for humans, not machines. -- There should be an entry for every single version. -- The same types of changes should be grouped. -- Versions and sections should be linkable. -- The latest version comes first. -- The release date of each versions is displayed. -- Mention whether you follow Semantic Versioning. - -
- -
- Types of changes - -Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): - -- `Added` for new features. -- `Changed` for changes in existing functionality. -- `Deprecated` for soon-to-be removed features. -- `Removed` for now removed features. -- `Fixed` for any bug fixes. -- `Security` in case of vulnerabilities. - -
- -## [3.0.0] - 2018-04-08 - -v3.0 is a complete refactor, resulting in a faster, smaller codebase, with fewer deps, and a more accurate parser and compiler. - -**Breaking Changes** - -- The undocumented `.makeRe` method was removed - -**Non-breaking changes** - -- Caching was removed - -## [2.3.2] - 2018-04-08 - -- start refactoring -- cover sets -- better range handling - -## [2.3.1] - 2018-02-17 - -- Remove unnecessary escape in Regex. (#14) - -## [2.3.0] - 2017-10-19 - -- minor code reorganization -- optimize regex -- expose `maxLength` option - -## [2.2.1] - 2017-05-30 - -- don't condense when braces contain extglobs - -## [2.2.0] - 2017-05-28 - -- ensure word boundaries are preserved -- fixes edge case where extglob characters precede a brace pattern - -## [2.1.1] - 2017-04-27 - -- use snapdragon-node -- handle edge case -- optimizations, lint - -## [2.0.4] - 2017-04-11 - -- pass opts to compiler -- minor optimization in create method -- re-write parser handlers to remove negation regex - -## [2.0.3] - 2016-12-10 - -- use split-string -- clear queue at the end -- adds sequences example -- add unit tests - -## [2.0.2] - 2016-10-21 - -- fix comma handling in nested extglobs - -## [2.0.1] - 2016-10-20 - -- add comments -- more tests, ensure quotes are stripped - -## [2.0.0] - 2016-10-19 - -- don't expand braces inside character classes -- add quantifier pattern - -## [1.8.5] - 2016-05-21 - -- Refactor (#10) - -## [1.8.4] - 2016-04-20 - -- fixes https://github.com/jonschlinkert/micromatch/issues/66 - -## [1.8.0] - 2015-03-18 - -- adds exponent examples, tests -- fixes the first example in https://github.com/jonschlinkert/micromatch/issues/38 - -## [1.6.0] - 2015-01-30 - -- optimizations, `bash` mode: -- improve path escaping - -## [1.5.0] - 2015-01-28 - -- Merge pull request #5 from eush77/lib-files - -## [1.4.0] - 2015-01-24 - -- add extglob tests -- externalize exponent function -- better whitespace handling - -## [1.3.0] - 2015-01-24 - -- make regex patterns explicity - -## [1.1.0] - 2015-01-11 - -- don't create a match group with `makeRe` - -## [1.0.0] - 2014-12-23 - -- Merge commit '97b05f5544f8348736a8efaecf5c32bbe3e2ad6e' -- support empty brace syntax -- better bash coverage -- better support for regex strings - -## [0.1.4] - 2014-11-14 - -- improve recognition of bad args, recognize mismatched argument types -- support escaping -- remove pathname-expansion -- support whitespace in patterns - -## [0.1.0] - -- first commit - -[2.3.2]: https://github.com/micromatch/braces/compare/2.3.1...2.3.2 -[2.3.1]: https://github.com/micromatch/braces/compare/2.3.0...2.3.1 -[2.3.0]: https://github.com/micromatch/braces/compare/2.2.1...2.3.0 -[2.2.1]: https://github.com/micromatch/braces/compare/2.2.0...2.2.1 -[2.2.0]: https://github.com/micromatch/braces/compare/2.1.1...2.2.0 -[2.1.1]: https://github.com/micromatch/braces/compare/2.1.0...2.1.1 -[2.1.0]: https://github.com/micromatch/braces/compare/2.0.4...2.1.0 -[2.0.4]: https://github.com/micromatch/braces/compare/2.0.3...2.0.4 -[2.0.3]: https://github.com/micromatch/braces/compare/2.0.2...2.0.3 -[2.0.2]: https://github.com/micromatch/braces/compare/2.0.1...2.0.2 -[2.0.1]: https://github.com/micromatch/braces/compare/2.0.0...2.0.1 -[2.0.0]: https://github.com/micromatch/braces/compare/1.8.5...2.0.0 -[1.8.5]: https://github.com/micromatch/braces/compare/1.8.4...1.8.5 -[1.8.4]: https://github.com/micromatch/braces/compare/1.8.0...1.8.4 -[1.8.0]: https://github.com/micromatch/braces/compare/1.6.0...1.8.0 -[1.6.0]: https://github.com/micromatch/braces/compare/1.5.0...1.6.0 -[1.5.0]: https://github.com/micromatch/braces/compare/1.4.0...1.5.0 -[1.4.0]: https://github.com/micromatch/braces/compare/1.3.0...1.4.0 -[1.3.0]: https://github.com/micromatch/braces/compare/1.2.0...1.3.0 -[1.2.0]: https://github.com/micromatch/braces/compare/1.1.0...1.2.0 -[1.1.0]: https://github.com/micromatch/braces/compare/1.0.0...1.1.0 -[1.0.0]: https://github.com/micromatch/braces/compare/0.1.4...1.0.0 -[0.1.4]: https://github.com/micromatch/braces/compare/0.1.0...0.1.4 - -[Unreleased]: https://github.com/micromatch/braces/compare/0.1.0...HEAD -[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog \ No newline at end of file diff --git a/build/node_modules/braces/LICENSE b/build/node_modules/braces/LICENSE deleted file mode 100644 index d32ab442..00000000 --- a/build/node_modules/braces/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2018, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/braces/README.md b/build/node_modules/braces/README.md deleted file mode 100644 index cba2f600..00000000 --- a/build/node_modules/braces/README.md +++ /dev/null @@ -1,593 +0,0 @@ -# braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces) - -> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save braces -``` - -## v3.0.0 Released!! - -See the [changelog](CHANGELOG.md) for details. - -## Why use braces? - -Brace patterns make globs more powerful by adding the ability to match specific ranges and sequences of characters. - -* **Accurate** - complete support for the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/) specification (passes all of the Bash braces tests) -* **[fast and performant](#benchmarks)** - Starts fast, runs fast and [scales well](#performance) as patterns increase in complexity. -* **Organized code base** - The parser and compiler are easy to maintain and update when edge cases crop up. -* **Well-tested** - Thousands of test assertions, and passes all of the Bash, minimatch, and [brace-expansion](https://github.com/juliangruber/brace-expansion) unit tests (as of the date this was written). -* **Safer** - You shouldn't have to worry about users defining aggressive or malicious brace patterns that can break your application. Braces takes measures to prevent malicious regex that can be used for DDoS attacks (see [catastrophic backtracking](https://www.regular-expressions.info/catastrophic.html)). -* [Supports lists](#lists) - (aka "sets") `a/{b,c}/d` => `['a/b/d', 'a/c/d']` -* [Supports sequences](#sequences) - (aka "ranges") `{01..03}` => `['01', '02', '03']` -* [Supports steps](#steps) - (aka "increments") `{2..10..2}` => `['2', '4', '6', '8', '10']` -* [Supports escaping](#escaping) - To prevent evaluation of special characters. - -## Usage - -The main export is a function that takes one or more brace `patterns` and `options`. - -```js -const braces = require('braces'); -// braces(patterns[, options]); - -console.log(braces(['{01..05}', '{a..e}'])); -//=> ['(0[1-5])', '([a-e])'] - -console.log(braces(['{01..05}', '{a..e}'], { expand: true })); -//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e'] -``` - -### Brace Expansion vs. Compilation - -By default, brace patterns are compiled into strings that are optimized for creating regular expressions and matching. - -**Compiled** - -```js -console.log(braces('a/{x,y,z}/b')); -//=> ['a/(x|y|z)/b'] -console.log(braces(['a/{01..20}/b', 'a/{1..5}/b'])); -//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ] -``` - -**Expanded** - -Enable brace expansion by setting the `expand` option to true, or by using [braces.expand()](#expand) (returns an array similar to what you'd expect from Bash, or `echo {1..5}`, or [minimatch](https://github.com/isaacs/minimatch)): - -```js -console.log(braces('a/{x,y,z}/b', { expand: true })); -//=> ['a/x/b', 'a/y/b', 'a/z/b'] - -console.log(braces.expand('{01..10}')); -//=> ['01','02','03','04','05','06','07','08','09','10'] -``` - -### Lists - -Expand lists (like Bash "sets"): - -```js -console.log(braces('a/{foo,bar,baz}/*.js')); -//=> ['a/(foo|bar|baz)/*.js'] - -console.log(braces.expand('a/{foo,bar,baz}/*.js')); -//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js'] -``` - -### Sequences - -Expand ranges of characters (like Bash "sequences"): - -```js -console.log(braces.expand('{1..3}')); // ['1', '2', '3'] -console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b'] -console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c'] -console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c'] - -// supports zero-padded ranges -console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b'] -console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b'] -``` - -See [fill-range](https://github.com/jonschlinkert/fill-range) for all available range-expansion options. - -### Steppped ranges - -Steps, or increments, may be used with ranges: - -```js -console.log(braces.expand('{2..10..2}')); -//=> ['2', '4', '6', '8', '10'] - -console.log(braces('{2..10..2}')); -//=> ['(2|4|6|8|10)'] -``` - -When the [.optimize](#optimize) method is used, or [options.optimize](#optionsoptimize) is set to true, sequences are passed to [to-regex-range](https://github.com/jonschlinkert/to-regex-range) for expansion. - -### Nesting - -Brace patterns may be nested. The results of each expanded string are not sorted, and left to right order is preserved. - -**"Expanded" braces** - -```js -console.log(braces.expand('a{b,c,/{x,y}}/e')); -//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e'] - -console.log(braces.expand('a/{x,{1..5},y}/c')); -//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c'] -``` - -**"Optimized" braces** - -```js -console.log(braces('a{b,c,/{x,y}}/e')); -//=> ['a(b|c|/(x|y))/e'] - -console.log(braces('a/{x,{1..5},y}/c')); -//=> ['a/(x|([1-5])|y)/c'] -``` - -### Escaping - -**Escaping braces** - -A brace pattern will not be expanded or evaluted if _either the opening or closing brace is escaped_: - -```js -console.log(braces.expand('a\\{d,c,b}e')); -//=> ['a{d,c,b}e'] - -console.log(braces.expand('a{d,c,b\\}e')); -//=> ['a{d,c,b}e'] -``` - -**Escaping commas** - -Commas inside braces may also be escaped: - -```js -console.log(braces.expand('a{b\\,c}d')); -//=> ['a{b,c}d'] - -console.log(braces.expand('a{d\\,c,b}e')); -//=> ['ad,ce', 'abe'] -``` - -**Single items** - -Following bash conventions, a brace pattern is also not expanded when it contains a single character: - -```js -console.log(braces.expand('a{b}c')); -//=> ['a{b}c'] -``` - -## Options - -### options.maxLength - -**Type**: `Number` - -**Default**: `65,536` - -**Description**: Limit the length of the input string. Useful when the input string is generated or your application allows users to pass a string, et cetera. - -```js -console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error -``` - -### options.expand - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: Generate an "expanded" brace pattern (alternatively you can use the `braces.expand()` method, which does the same thing). - -```js -console.log(braces('a/{b,c}/d', { expand: true })); -//=> [ 'a/b/d', 'a/c/d' ] -``` - -### options.nodupes - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: Remove duplicates from the returned array. - -### options.rangeLimit - -**Type**: `Number` - -**Default**: `1000` - -**Description**: To prevent malicious patterns from being passed by users, an error is thrown when `braces.expand()` is used or `options.expand` is true and the generated range will exceed the `rangeLimit`. - -You can customize `options.rangeLimit` or set it to `Inifinity` to disable this altogether. - -**Examples** - -```js -// pattern exceeds the "rangeLimit", so it's optimized automatically -console.log(braces.expand('{1..1000}')); -//=> ['([1-9]|[1-9][0-9]{1,2}|1000)'] - -// pattern does not exceed "rangeLimit", so it's NOT optimized -console.log(braces.expand('{1..100}')); -//=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100'] -``` - -### options.transform - -**Type**: `Function` - -**Default**: `undefined` - -**Description**: Customize range expansion. - -**Example: Transforming non-numeric values** - -```js -const alpha = braces.expand('x/{a..e}/y', { - transform(value, index) { - // When non-numeric values are passed, "value" is a character code. - return 'foo/' + String.fromCharCode(value) + '-' + index; - } -}); -console.log(alpha); -//=> [ 'x/foo/a-0/y', 'x/foo/b-1/y', 'x/foo/c-2/y', 'x/foo/d-3/y', 'x/foo/e-4/y' ] -``` - -**Example: Transforming numeric values** - -```js -const numeric = braces.expand('{1..5}', { - transform(value) { - // when numeric values are passed, "value" is a number - return 'foo/' + value * 2; - } -}); -console.log(numeric); -//=> [ 'foo/2', 'foo/4', 'foo/6', 'foo/8', 'foo/10' ] -``` - -### options.quantifiers - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: In regular expressions, quanitifiers can be used to specify how many times a token can be repeated. For example, `a{1,3}` will match the letter `a` one to three times. - -Unfortunately, regex quantifiers happen to share the same syntax as [Bash lists](#lists) - -The `quantifiers` option tells braces to detect when [regex quantifiers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#quantifiers) are defined in the given pattern, and not to try to expand them as lists. - -**Examples** - -```js -const braces = require('braces'); -console.log(braces('a/b{1,3}/{x,y,z}')); -//=> [ 'a/b(1|3)/(x|y|z)' ] -console.log(braces('a/b{1,3}/{x,y,z}', {quantifiers: true})); -//=> [ 'a/b{1,3}/(x|y|z)' ] -console.log(braces('a/b{1,3}/{x,y,z}', {quantifiers: true, expand: true})); -//=> [ 'a/b{1,3}/x', 'a/b{1,3}/y', 'a/b{1,3}/z' ] -``` - -### options.unescape - -**Type**: `Boolean` - -**Default**: `undefined` - -**Description**: Strip backslashes that were used for escaping from the result. - -## What is "brace expansion"? - -Brace expansion is a type of parameter expansion that was made popular by unix shells for generating lists of strings, as well as regex-like matching when used alongside wildcards (globs). - -In addition to "expansion", braces are also used for matching. In other words: - -* [brace expansion](#brace-expansion) is for generating new lists -* [brace matching](#brace-matching) is for filtering existing lists - -
-More about brace expansion (click to expand) - -There are two main types of brace expansion: - -1. **lists**: which are defined using comma-separated values inside curly braces: `{a,b,c}` -2. **sequences**: which are defined using a starting value and an ending value, separated by two dots: `a{1..3}b`. Optionally, a third argument may be passed to define a "step" or increment to use: `a{1..100..10}b`. These are also sometimes referred to as "ranges". - -Here are some example brace patterns to illustrate how they work: - -**Sets** - -``` -{a,b,c} => a b c -{a,b,c}{1,2} => a1 a2 b1 b2 c1 c2 -``` - -**Sequences** - -``` -{1..9} => 1 2 3 4 5 6 7 8 9 -{4..-4} => 4 3 2 1 0 -1 -2 -3 -4 -{1..20..3} => 1 4 7 10 13 16 19 -{a..j} => a b c d e f g h i j -{j..a} => j i h g f e d c b a -{a..z..3} => a d g j m p s v y -``` - -**Combination** - -Sets and sequences can be mixed together or used along with any other strings. - -``` -{a,b,c}{1..3} => a1 a2 a3 b1 b2 b3 c1 c2 c3 -foo/{a,b,c}/bar => foo/a/bar foo/b/bar foo/c/bar -``` - -The fact that braces can be "expanded" from relatively simple patterns makes them ideal for quickly generating test fixtures, file paths, and similar use cases. - -## Brace matching - -In addition to _expansion_, brace patterns are also useful for performing regular-expression-like matching. - -For example, the pattern `foo/{1..3}/bar` would match any of following strings: - -``` -foo/1/bar -foo/2/bar -foo/3/bar -``` - -But not: - -``` -baz/1/qux -baz/2/qux -baz/3/qux -``` - -Braces can also be combined with [glob patterns](https://github.com/jonschlinkert/micromatch) to perform more advanced wildcard matching. For example, the pattern `*/{1..3}/*` would match any of following strings: - -``` -foo/1/bar -foo/2/bar -foo/3/bar -baz/1/qux -baz/2/qux -baz/3/qux -``` - -## Brace matching pitfalls - -Although brace patterns offer a user-friendly way of matching ranges or sets of strings, there are also some major disadvantages and potential risks you should be aware of. - -### tldr - -**"brace bombs"** - -* brace expansion can eat up a huge amount of processing resources -* as brace patterns increase _linearly in size_, the system resources required to expand the pattern increase exponentially -* users can accidentally (or intentially) exhaust your system's resources resulting in the equivalent of a DoS attack (bonus: no programming knowledge is required!) - -For a more detailed explanation with examples, see the [geometric complexity](#geometric-complexity) section. - -### The solution - -Jump to the [performance section](#performance) to see how Braces solves this problem in comparison to other libraries. - -### Geometric complexity - -At minimum, brace patterns with sets limited to two elements have quadradic or `O(n^2)` complexity. But the complexity of the algorithm increases exponentially as the number of sets, _and elements per set_, increases, which is `O(n^c)`. - -For example, the following sets demonstrate quadratic (`O(n^2)`) complexity: - -``` -{1,2}{3,4} => (2X2) => 13 14 23 24 -{1,2}{3,4}{5,6} => (2X2X2) => 135 136 145 146 235 236 245 246 -``` - -But add an element to a set, and we get a n-fold Cartesian product with `O(n^c)` complexity: - -``` -{1,2,3}{4,5,6}{7,8,9} => (3X3X3) => 147 148 149 157 158 159 167 168 169 247 248 - 249 257 258 259 267 268 269 347 348 349 357 - 358 359 367 368 369 -``` - -Now, imagine how this complexity grows given that each element is a n-tuple: - -``` -{1..100}{1..100} => (100X100) => 10,000 elements (38.4 kB) -{1..100}{1..100}{1..100} => (100X100X100) => 1,000,000 elements (5.76 MB) -``` - -Although these examples are clearly contrived, they demonstrate how brace patterns can quickly grow out of control. - -**More information** - -Interested in learning more about brace expansion? - -* [linuxjournal/bash-brace-expansion](http://www.linuxjournal.com/content/bash-brace-expansion) -* [rosettacode/Brace_expansion](https://rosettacode.org/wiki/Brace_expansion) -* [cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) - -
- -## Performance - -Braces is not only screaming fast, it's also more accurate the other brace expansion libraries. - -### Better algorithms - -Fortunately there is a solution to the ["brace bomb" problem](#brace-matching-pitfalls): _don't expand brace patterns into an array when they're used for matching_. - -Instead, convert the pattern into an optimized regular expression. This is easier said than done, and braces is the only library that does this currently. - -**The proof is in the numbers** - -Minimatch gets exponentially slower as patterns increase in complexity, braces does not. The following results were generated using `braces()` and `minimatch.braceExpand()`, respectively. - -| **Pattern** | **braces** | **[minimatch][]** | -| --- | --- | --- | -| `{1..9007199254740991}`[^1] | `298 B` (5ms 459μs)| N/A (freezes) | -| `{1..1000000000000000}` | `41 B` (1ms 15μs) | N/A (freezes) | -| `{1..100000000000000}` | `40 B` (890μs) | N/A (freezes) | -| `{1..10000000000000}` | `39 B` (2ms 49μs) | N/A (freezes) | -| `{1..1000000000000}` | `38 B` (608μs) | N/A (freezes) | -| `{1..100000000000}` | `37 B` (397μs) | N/A (freezes) | -| `{1..10000000000}` | `35 B` (983μs) | N/A (freezes) | -| `{1..1000000000}` | `34 B` (798μs) | N/A (freezes) | -| `{1..100000000}` | `33 B` (733μs) | N/A (freezes) | -| `{1..10000000}` | `32 B` (5ms 632μs) | `78.89 MB` (16s 388ms 569μs) | -| `{1..1000000}` | `31 B` (1ms 381μs) | `6.89 MB` (1s 496ms 887μs) | -| `{1..100000}` | `30 B` (950μs) | `588.89 kB` (146ms 921μs) | -| `{1..10000}` | `29 B` (1ms 114μs) | `48.89 kB` (14ms 187μs) | -| `{1..1000}` | `28 B` (760μs) | `3.89 kB` (1ms 453μs) | -| `{1..100}` | `22 B` (345μs) | `291 B` (196μs) | -| `{1..10}` | `10 B` (533μs) | `20 B` (37μs) | -| `{1..3}` | `7 B` (190μs) | `5 B` (27μs) | - -### Faster algorithms - -When you need expansion, braces is still much faster. - -_(the following results were generated using `braces.expand()` and `minimatch.braceExpand()`, respectively)_ - -| **Pattern** | **braces** | **[minimatch][]** | -| --- | --- | --- | -| `{1..10000000}` | `78.89 MB` (2s 698ms 642μs) | `78.89 MB` (18s 601ms 974μs) | -| `{1..1000000}` | `6.89 MB` (458ms 576μs) | `6.89 MB` (1s 491ms 621μs) | -| `{1..100000}` | `588.89 kB` (20ms 728μs) | `588.89 kB` (156ms 919μs) | -| `{1..10000}` | `48.89 kB` (2ms 202μs) | `48.89 kB` (13ms 641μs) | -| `{1..1000}` | `3.89 kB` (1ms 796μs) | `3.89 kB` (1ms 958μs) | -| `{1..100}` | `291 B` (424μs) | `291 B` (211μs) | -| `{1..10}` | `20 B` (487μs) | `20 B` (72μs) | -| `{1..3}` | `5 B` (166μs) | `5 B` (27μs) | - -If you'd like to run these comparisons yourself, see [test/support/generate.js](test/support/generate.js). - -## Benchmarks - -### Running benchmarks - -Install dev dependencies: - -```bash -npm i -d && npm benchmark -``` - -### Latest results - -Braces is more accurate, without sacrificing performance. - -```bash -# range (expanded) - braces x 29,040 ops/sec ±3.69% (91 runs sampled)) - minimatch x 4,735 ops/sec ±1.28% (90 runs sampled) - -# range (optimized for regex) - braces x 382,878 ops/sec ±0.56% (94 runs sampled) - minimatch x 1,040 ops/sec ±0.44% (93 runs sampled) - -# nested ranges (expanded) - braces x 19,744 ops/sec ±2.27% (92 runs sampled)) - minimatch x 4,579 ops/sec ±0.50% (93 runs sampled) - -# nested ranges (optimized for regex) - braces x 246,019 ops/sec ±2.02% (93 runs sampled) - minimatch x 1,028 ops/sec ±0.39% (94 runs sampled) - -# set (expanded) - braces x 138,641 ops/sec ±0.53% (95 runs sampled) - minimatch x 219,582 ops/sec ±0.98% (94 runs sampled) - -# set (optimized for regex) - braces x 388,408 ops/sec ±0.41% (95 runs sampled) - minimatch x 44,724 ops/sec ±0.91% (89 runs sampled) - -# nested sets (expanded) - braces x 84,966 ops/sec ±0.48% (94 runs sampled) - minimatch x 140,720 ops/sec ±0.37% (95 runs sampled) - -# nested sets (optimized for regex) - braces x 263,340 ops/sec ±2.06% (92 runs sampled) - minimatch x 28,714 ops/sec ±0.40% (90 runs sampled) -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 197 | [jonschlinkert](https://github.com/jonschlinkert) | -| 4 | [doowb](https://github.com/doowb) | -| 1 | [es128](https://github.com/es128) | -| 1 | [eush77](https://github.com/eush77) | -| 1 | [hemanth](https://github.com/hemanth) | -| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | - -### Author - -**Jon Schlinkert** - -* [GitHub Profile](https://github.com/jonschlinkert) -* [Twitter Profile](https://twitter.com/jonschlinkert) -* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) - -### License - -Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/build/node_modules/braces/index.js b/build/node_modules/braces/index.js deleted file mode 100644 index 0eee0f56..00000000 --- a/build/node_modules/braces/index.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -const stringify = require('./lib/stringify'); -const compile = require('./lib/compile'); -const expand = require('./lib/expand'); -const parse = require('./lib/parse'); - -/** - * Expand the given pattern or create a regex-compatible string. - * - * ```js - * const braces = require('braces'); - * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] - * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ - -const braces = (input, options = {}) => { - let output = []; - - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options); - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); - } - } - } else { - output = [].concat(braces.create(input, options)); - } - - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; - } - return output; -}; - -/** - * Parse the given `str` with the given `options`. - * - * ```js - * // braces.parse(pattern, [, options]); - * const ast = braces.parse('a/{b,c}/d'); - * console.log(ast); - * ``` - * @param {String} pattern Brace pattern to parse - * @param {Object} options - * @return {Object} Returns an AST - * @api public - */ - -braces.parse = (input, options = {}) => parse(input, options); - -/** - * Creates a braces string from an AST, or an AST node. - * - * ```js - * const braces = require('braces'); - * let ast = braces.parse('foo/{a,b}/bar'); - * console.log(stringify(ast.nodes[2])); //=> '{a,b}' - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.stringify = (input, options = {}) => { - if (typeof input === 'string') { - return stringify(braces.parse(input, options), options); - } - return stringify(input, options); -}; - -/** - * Compiles a brace pattern into a regex-compatible, optimized string. - * This method is called by the main [braces](#braces) function by default. - * - * ```js - * const braces = require('braces'); - * console.log(braces.compile('a/{b,c}/d')); - * //=> ['a/(b|c)/d'] - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.compile = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - return compile(input, options); -}; - -/** - * Expands a brace pattern into an array. This method is called by the - * main [braces](#braces) function when `options.expand` is true. Before - * using this method it's recommended that you read the [performance notes](#performance)) - * and advantages of using [.compile](#compile) instead. - * - * ```js - * const braces = require('braces'); - * console.log(braces.expand('a/{b,c}/d')); - * //=> ['a/b/d', 'a/c/d']; - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.expand = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - - let result = expand(input, options); - - // filter out empty strings if specified - if (options.noempty === true) { - result = result.filter(Boolean); - } - - // filter out duplicates if specified - if (options.nodupes === true) { - result = [...new Set(result)]; - } - - return result; -}; - -/** - * Processes a brace pattern and returns either an expanded array - * (if `options.expand` is true), a highly optimized regex-compatible string. - * This method is called by the main [braces](#braces) function. - * - * ```js - * const braces = require('braces'); - * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) - * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ - -braces.create = (input, options = {}) => { - if (input === '' || input.length < 3) { - return [input]; - } - - return options.expand !== true - ? braces.compile(input, options) - : braces.expand(input, options); -}; - -/** - * Expose "braces" - */ - -module.exports = braces; diff --git a/build/node_modules/braces/package.json b/build/node_modules/braces/package.json deleted file mode 100644 index 3f52e346..00000000 --- a/build/node_modules/braces/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "braces", - "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", - "version": "3.0.2", - "homepage": "https://github.com/micromatch/braces", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Elan Shanker (https://github.com/es128)", - "Eugene Sharygin (https://github.com/eush77)", - "hemanth.hm (http://h3manth.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" - ], - "repository": "micromatch/braces", - "bugs": { - "url": "https://github.com/micromatch/braces/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "lib" - ], - "main": "index.js", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "mocha", - "benchmark": "node benchmark" - }, - "dependencies": { - "fill-range": "^7.0.1" - }, - "devDependencies": { - "ansi-colors": "^3.2.4", - "bash-path": "^2.0.1", - "gulp-format-md": "^2.0.0", - "mocha": "^6.1.1" - }, - "keywords": [ - "alpha", - "alphabetical", - "bash", - "brace", - "braces", - "expand", - "expansion", - "filepath", - "fill", - "fs", - "glob", - "globbing", - "letter", - "match", - "matches", - "matching", - "number", - "numerical", - "path", - "range", - "ranges", - "sh" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "lint": { - "reflinks": true - }, - "plugins": [ - "gulp-format-md" - ] - } -} diff --git a/build/node_modules/browserslist/LICENSE b/build/node_modules/browserslist/LICENSE deleted file mode 100644 index 90b6b916..00000000 --- a/build/node_modules/browserslist/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright 2014 Andrey Sitnik and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/browserslist/README.md b/build/node_modules/browserslist/README.md deleted file mode 100644 index abac4aae..00000000 --- a/build/node_modules/browserslist/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Browserslist [![Cult Of Martians][cult-img]][cult] - -Browserslist logo by Anton Popov - -The config to share target browsers and Node.js versions between different -front-end tools. It is used in: - -* [Autoprefixer] -* [Babel] -* [postcss-preset-env] -* [eslint-plugin-compat] -* [stylelint-no-unsupported-browser-features] -* [postcss-normalize] -* [obsolete-webpack-plugin] - -All tools will find target browsers automatically, -when you add the following to `package.json`: - -```json - "browserslist": [ - "defaults and fully supports es6-module", - "maintained node versions" - ] -``` - -Or in `.browserslistrc` config: - -```yaml -# Browsers that we support - -defaults and fully supports es6-module -maintained node versions -``` - -Developers set their version lists using queries like `last 2 versions` -to be free from updating versions manually. -Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries. - -You can check how config works at our playground: [`browsersl.ist`](https://browsersl.ist/) - - - browsersl.ist website - - -
-
-
- - Sponsored by Evil Martians -    - Supported by Cube - -
- -[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features -[obsolete-webpack-plugin]: https://github.com/ElemeFE/obsolete-webpack-plugin -[eslint-plugin-compat]: https://github.com/amilajack/eslint-plugin-compat -[Browserslist Example]: https://github.com/browserslist/browserslist-example -[postcss-preset-env]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env -[postcss-normalize]: https://github.com/csstools/postcss-normalize -[`browsersl.ist`]: https://browsersl.ist/ -[`caniuse-lite`]: https://github.com/ben-eb/caniuse-lite -[Autoprefixer]: https://github.com/postcss/autoprefixer -[Can I Use]: https://caniuse.com/ -[Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env -[cult-img]: https://cultofmartians.com/assets/badges/badge.svg -[cult]: https://cultofmartians.com/done.html - -## Docs -Read full docs **[here](https://github.com/browserslist/browserslist#readme)**. diff --git a/build/node_modules/browserslist/browser.js b/build/node_modules/browserslist/browser.js deleted file mode 100644 index 6828bdbe..00000000 --- a/build/node_modules/browserslist/browser.js +++ /dev/null @@ -1,52 +0,0 @@ -var BrowserslistError = require('./error') - -function noop() {} - -module.exports = { - loadQueries: function loadQueries() { - throw new BrowserslistError( - 'Sharable configs are not supported in client-side build of Browserslist' - ) - }, - - getStat: function getStat(opts) { - return opts.stats - }, - - loadConfig: function loadConfig(opts) { - if (opts.config) { - throw new BrowserslistError( - 'Browserslist config are not supported in client-side build' - ) - } - }, - - loadCountry: function loadCountry() { - throw new BrowserslistError( - 'Country statistics are not supported ' + - 'in client-side build of Browserslist' - ) - }, - - loadFeature: function loadFeature() { - throw new BrowserslistError( - 'Supports queries are not available in client-side build of Browserslist' - ) - }, - - currentNode: function currentNode(resolve, context) { - return resolve(['maintained node versions'], context)[0] - }, - - parseConfig: noop, - - readConfig: noop, - - findConfig: noop, - - clearCaches: noop, - - oldDataWarning: noop, - - env: {} -} diff --git a/build/node_modules/browserslist/cli.js b/build/node_modules/browserslist/cli.js deleted file mode 100644 index 7b5236da..00000000 --- a/build/node_modules/browserslist/cli.js +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env node - -var updateDb = require('update-browserslist-db') -var fs = require('fs') - -var browserslist = require('./') -var pkg = require('./package.json') - -var args = process.argv.slice(2) - -var USAGE = - 'Usage:\n' + - ' npx browserslist\n' + - ' npx browserslist "QUERIES"\n' + - ' npx browserslist --json "QUERIES"\n' + - ' npx browserslist --config="path/to/browserlist/file"\n' + - ' npx browserslist --coverage "QUERIES"\n' + - ' npx browserslist --coverage=US "QUERIES"\n' + - ' npx browserslist --coverage=US,RU,global "QUERIES"\n' + - ' npx browserslist --env="environment name defined in config"\n' + - ' npx browserslist --stats="path/to/browserlist/stats/file"\n' + - ' npx browserslist --mobile-to-desktop\n' + - ' npx browserslist --ignore-unknown-versions\n' - -function isArg(arg) { - return args.some(function (str) { - return str === arg || str.indexOf(arg + '=') === 0 - }) -} - -function error(msg) { - process.stderr.write('browserslist: ' + msg + '\n') - process.exit(1) -} - -if (isArg('--help') || isArg('-h')) { - process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n') -} else if (isArg('--version') || isArg('-v')) { - process.stdout.write('browserslist ' + pkg.version + '\n') -} else if (isArg('--update-db')) { - /* c8 ignore next 8 */ - process.stdout.write( - 'The --update-db command is deprecated.\n' + - 'Please use npx update-browserslist-db@latest instead.\n' - ) - process.stdout.write('Browserslist DB update will still be made.\n') - updateDb(function (str) { - process.stdout.write(str) - }) -} else { - var mode = 'browsers' - var opts = {} - var queries - var areas - - for (var i = 0; i < args.length; i++) { - if (args[i][0] !== '-') { - queries = args[i].replace(/^["']|["']$/g, '') - continue - } - - var arg = args[i].split('=') - var name = arg[0] - var value = arg[1] - - if (value) value = value.replace(/^["']|["']$/g, '') - - if (name === '--config' || name === '-b') { - opts.config = value - } else if (name === '--env' || name === '-e') { - opts.env = value - } else if (name === '--stats' || name === '-s') { - opts.stats = value - } else if (name === '--coverage' || name === '-c') { - if (mode !== 'json') mode = 'coverage' - if (value) { - areas = value.split(',') - } else { - areas = ['global'] - } - } else if (name === '--json') { - mode = 'json' - } else if (name === '--mobile-to-desktop') { - /* c8 ignore next */ - opts.mobileToDesktop = true - } else if (name === '--ignore-unknown-versions') { - /* c8 ignore next */ - opts.ignoreUnknownVersions = true - } else { - error('Unknown arguments ' + args[i] + '.\n\n' + USAGE) - } - } - - var browsers - try { - browsers = browserslist(queries, opts) - } catch (e) { - if (e.name === 'BrowserslistError') { - error(e.message) - } /* c8 ignore start */ else { - throw e - } /* c8 ignore end */ - } - - var coverage - if (mode === 'browsers') { - browsers.forEach(function (browser) { - process.stdout.write(browser + '\n') - }) - } else if (areas) { - coverage = areas.map(function (area) { - var stats - if (area !== 'global') { - stats = area - } else if (opts.stats) { - stats = JSON.parse(fs.readFileSync(opts.stats)) - } - var result = browserslist.coverage(browsers, stats) - var round = Math.round(result * 100) / 100.0 - - return [area, round] - }) - - if (mode === 'coverage') { - var prefix = 'These browsers account for ' - process.stdout.write(prefix) - coverage.forEach(function (data, index) { - var area = data[0] - var round = data[1] - var end = 'globally' - if (area && area !== 'global') { - end = 'in the ' + area.toUpperCase() - } else if (opts.stats) { - end = 'in custom statistics' - } - - if (index !== 0) { - process.stdout.write(prefix.replace(/./g, ' ')) - } - - process.stdout.write(round + '% of all users ' + end + '\n') - }) - } - } - - if (mode === 'json') { - var data = { browsers: browsers } - if (coverage) { - data.coverage = coverage.reduce(function (object, j) { - object[j[0]] = j[1] - return object - }, {}) - } - process.stdout.write(JSON.stringify(data, null, ' ') + '\n') - } -} diff --git a/build/node_modules/browserslist/error.d.ts b/build/node_modules/browserslist/error.d.ts deleted file mode 100644 index 12ff9213..00000000 --- a/build/node_modules/browserslist/error.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare class BrowserslistError extends Error { - constructor(message: any) - name: 'BrowserslistError' - browserslist: true -} - -export = BrowserslistError diff --git a/build/node_modules/browserslist/error.js b/build/node_modules/browserslist/error.js deleted file mode 100644 index 6e5da7a8..00000000 --- a/build/node_modules/browserslist/error.js +++ /dev/null @@ -1,12 +0,0 @@ -function BrowserslistError(message) { - this.name = 'BrowserslistError' - this.message = message - this.browserslist = true - if (Error.captureStackTrace) { - Error.captureStackTrace(this, BrowserslistError) - } -} - -BrowserslistError.prototype = Error.prototype - -module.exports = BrowserslistError diff --git a/build/node_modules/browserslist/index.d.ts b/build/node_modules/browserslist/index.d.ts deleted file mode 100644 index 7f8e7605..00000000 --- a/build/node_modules/browserslist/index.d.ts +++ /dev/null @@ -1,200 +0,0 @@ -/** - * Return array of browsers by selection queries. - * - * ```js - * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] - * ``` - * - * @param queries Browser queries. - * @param opts Options. - * @returns Array with browser names in Can I Use. - */ -declare function browserslist( - queries?: string | readonly string[] | null, - opts?: browserslist.Options -): string[] - -declare namespace browserslist { - interface Query { - compose: 'or' | 'and' - type: string - query: string - not?: true - } - - interface Options { - /** - * Path to processed file. It will be used to find config files. - */ - path?: string | false - /** - * Processing environment. It will be used to take right queries - * from config file. - */ - env?: string - /** - * Custom browser usage statistics for "> 1% in my stats" query. - */ - stats?: Stats | string - /** - * Path to config file with queries. - */ - config?: string - /** - * Do not throw on unknown version in direct query. - */ - ignoreUnknownVersions?: boolean - /** - * Throw an error if env is not found. - */ - throwOnMissing?: boolean - /** - * Disable security checks for extend query. - */ - dangerousExtend?: boolean - /** - * Alias mobile browsers to the desktop version when Can I Use - * doesn’t have data about the specified version. - */ - mobileToDesktop?: boolean - } - - type Config = { - defaults: string[] - [section: string]: string[] | undefined - } - - interface Stats { - [browser: string]: { - [version: string]: number - } - } - - /** - * Browser names aliases. - */ - let aliases: { - [alias: string]: string | undefined - } - - /** - * Aliases to work with joined versions like `ios_saf 7.0-7.1`. - */ - let versionAliases: { - [browser: string]: - | { - [version: string]: string | undefined - } - | undefined - } - - /** - * Can I Use only provides a few versions for some browsers (e.g. `and_chr`). - * - * Fallback to a similar browser for unknown versions. - */ - let desktopNames: { - [browser: string]: string | undefined - } - - let data: { - [browser: string]: - | { - name: string - versions: string[] - released: string[] - releaseDate: { - [version: string]: number | undefined | null - } - } - | undefined - } - - let nodeVersions: string[] - - interface Usage { - [version: string]: number - } - - let usage: { - global?: Usage - custom?: Usage | null - [country: string]: Usage | undefined | null - } - - let cache: { - [feature: string]: { - [name: string]: { - [version: string]: string - } - } - } - - /** - * Default browsers query - */ - let defaults: readonly string[] - - /** - * Which statistics should be used. Country code or custom statistics. - * Pass `"my stats"` to load statistics from `Browserslist` files. - */ - type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats } - - /** - * Return browsers market coverage. - * - * ```js - * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 - * ``` - * - * @param browsers Browsers names in Can I Use. - * @param stats Which statistics should be used. - * @returns Total market coverage for all selected browsers. - */ - function coverage(browsers: readonly string[], stats?: StatsOptions): number - - /** - * Get queries AST to analyze the config content. - * - * @param queries Browser queries. - * @param opts Options. - * @returns An array of the data of each query in the config. - */ - function parse( - queries?: string | readonly string[] | null, - opts?: browserslist.Options - ): Query[] - - function clearCaches(): void - - function parseConfig(string: string): Config - - function readConfig(file: string): Config - - function findConfig(...pathSegments: string[]): Config | undefined - - interface LoadConfigOptions { - config?: string - path?: string - env?: string - } - - function loadConfig(options: LoadConfigOptions): string[] | undefined -} - -declare global { - namespace NodeJS { - interface ProcessEnv { - BROWSERSLIST?: string - BROWSERSLIST_CONFIG?: string - BROWSERSLIST_DANGEROUS_EXTEND?: string - BROWSERSLIST_DISABLE_CACHE?: string - BROWSERSLIST_ENV?: string - BROWSERSLIST_IGNORE_OLD_DATA?: string - BROWSERSLIST_STATS?: string - } - } -} - -export = browserslist diff --git a/build/node_modules/browserslist/index.js b/build/node_modules/browserslist/index.js deleted file mode 100644 index 18021be3..00000000 --- a/build/node_modules/browserslist/index.js +++ /dev/null @@ -1,1197 +0,0 @@ -var jsReleases = require('node-releases/data/processed/envs.json') -var agents = require('caniuse-lite/dist/unpacker/agents').agents -var jsEOL = require('node-releases/data/release-schedule/release-schedule.json') -var path = require('path') -var e2c = require('electron-to-chromium/versions') - -var BrowserslistError = require('./error') -var parse = require('./parse') -var env = require('./node') // Will load browser.js in webpack - -var YEAR = 365.259641 * 24 * 60 * 60 * 1000 -var ANDROID_EVERGREEN_FIRST = '37' -var OP_MOB_BLINK_FIRST = 14 - -// Helpers - -function isVersionsMatch(versionA, versionB) { - return (versionA + '.').indexOf(versionB + '.') === 0 -} - -function isEolReleased(name) { - var version = name.slice(1) - return browserslist.nodeVersions.some(function (i) { - return isVersionsMatch(i, version) - }) -} - -function normalize(versions) { - return versions.filter(function (version) { - return typeof version === 'string' - }) -} - -function normalizeElectron(version) { - var versionToUse = version - if (version.split('.').length === 3) { - versionToUse = version.split('.').slice(0, -1).join('.') - } - return versionToUse -} - -function nameMapper(name) { - return function mapName(version) { - return name + ' ' + version - } -} - -function getMajor(version) { - return parseInt(version.split('.')[0]) -} - -function getMajorVersions(released, number) { - if (released.length === 0) return [] - var majorVersions = uniq(released.map(getMajor)) - var minimum = majorVersions[majorVersions.length - number] - if (!minimum) { - return released - } - var selected = [] - for (var i = released.length - 1; i >= 0; i--) { - if (minimum > getMajor(released[i])) break - selected.unshift(released[i]) - } - return selected -} - -function uniq(array) { - var filtered = [] - for (var i = 0; i < array.length; i++) { - if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) - } - return filtered -} - -function fillUsage(result, name, data) { - for (var i in data) { - result[name + ' ' + i] = data[i] - } -} - -function generateFilter(sign, version) { - version = parseFloat(version) - if (sign === '>') { - return function (v) { - return parseFloat(v) > version - } - } else if (sign === '>=') { - return function (v) { - return parseFloat(v) >= version - } - } else if (sign === '<') { - return function (v) { - return parseFloat(v) < version - } - } else { - return function (v) { - return parseFloat(v) <= version - } - } -} - -function generateSemverFilter(sign, version) { - version = version.split('.').map(parseSimpleInt) - version[1] = version[1] || 0 - version[2] = version[2] || 0 - if (sign === '>') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) > 0 - } - } else if (sign === '>=') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) >= 0 - } - } else if (sign === '<') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) > 0 - } - } else { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) >= 0 - } - } -} - -function parseSimpleInt(x) { - return parseInt(x) -} - -function compare(a, b) { - if (a < b) return -1 - if (a > b) return +1 - return 0 -} - -function compareSemver(a, b) { - return ( - compare(parseInt(a[0]), parseInt(b[0])) || - compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || - compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) - ) -} - -// this follows the npm-like semver behavior -function semverFilterLoose(operator, range) { - range = range.split('.').map(parseSimpleInt) - if (typeof range[1] === 'undefined') { - range[1] = 'x' - } - // ignore any patch version because we only return minor versions - // range[2] = 'x' - switch (operator) { - case '<=': - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) <= 0 - } - case '>=': - default: - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) >= 0 - } - } -} - -// this follows the npm-like semver behavior -function compareSemverLoose(version, range) { - if (version[0] !== range[0]) { - return version[0] < range[0] ? -1 : +1 - } - if (range[1] === 'x') { - return 0 - } - if (version[1] !== range[1]) { - return version[1] < range[1] ? -1 : +1 - } - return 0 -} - -function resolveVersion(data, version) { - if (data.versions.indexOf(version) !== -1) { - return version - } else if (browserslist.versionAliases[data.name][version]) { - return browserslist.versionAliases[data.name][version] - } else { - return false - } -} - -function normalizeVersion(data, version) { - var resolved = resolveVersion(data, version) - if (resolved) { - return resolved - } else if (data.versions.length === 1) { - return data.versions[0] - } else { - return false - } -} - -function filterByYear(since, context) { - since = since / 1000 - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var versions = Object.keys(data.releaseDate).filter(function (v) { - var date = data.releaseDate[v] - return date !== null && date >= since - }) - return selected.concat(versions.map(nameMapper(data.name))) - }, []) -} - -function cloneData(data) { - return { - name: data.name, - versions: data.versions, - released: data.released, - releaseDate: data.releaseDate - } -} - -function byName(name, context) { - name = name.toLowerCase() - name = browserslist.aliases[name] || name - if (context.mobileToDesktop && browserslist.desktopNames[name]) { - var desktop = browserslist.data[browserslist.desktopNames[name]] - if (name === 'android') { - return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) - } else { - var cloned = cloneData(desktop) - cloned.name = name - return cloned - } - } - return browserslist.data[name] -} - -function normalizeAndroidVersions(androidVersions, chromeVersions) { - var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST) - return androidVersions - .filter(function (version) { - return /^(?:[2-4]\.|[34]$)/.test(version) - }) - .concat(chromeVersions.slice(iFirstEvergreen)) -} - -function normalizeAndroidData(android, chrome) { - android.released = normalizeAndroidVersions(android.released, chrome.released) - android.versions = normalizeAndroidVersions(android.versions, chrome.versions) - android.released.forEach(function (v) { - if (android.releaseDate[v] === undefined) { - android.releaseDate[v] = chrome.releaseDate[v] - } - }) - return android -} - -function checkName(name, context) { - var data = byName(name, context) - if (!data) throw new BrowserslistError('Unknown browser ' + name) - return data -} - -function unknownQuery(query) { - return new BrowserslistError( - 'Unknown browser query `' + - query + - '`. ' + - 'Maybe you are using old Browserslist or made typo in query.' - ) -} - -// Adjusts last X versions queries for some mobile browsers, -// where caniuse data jumps from a legacy version to the latest -function filterJumps(list, name, nVersions, context) { - var jump = 1 - switch (name) { - case 'android': - if (context.mobileToDesktop) return list - var released = browserslist.data.chrome.released - jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) - break - case 'op_mob': - var latest = browserslist.data.op_mob.released.slice(-1)[0] - jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1 - break - default: - return list - } - if (nVersions <= jump) { - return list.slice(-1) - } - return list.slice(jump - 1 - nVersions) -} - -function isSupported(flags, withPartial) { - return ( - typeof flags === 'string' && - (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) - ) -} - -function resolve(queries, context) { - return parse(QUERIES, queries).reduce(function (result, node, index) { - if (node.not && index === 0) { - throw new BrowserslistError( - 'Write any browsers query (for instance, `defaults`) ' + - 'before `' + - node.query + - '`' - ) - } - var type = QUERIES[node.type] - var array = type.select.call(browserslist, context, node).map(function (j) { - var parts = j.split(' ') - if (parts[1] === '0') { - return parts[0] + ' ' + byName(parts[0], context).versions[0] - } else { - return j - } - }) - - if (node.compose === 'and') { - if (node.not) { - return result.filter(function (j) { - return array.indexOf(j) === -1 - }) - } else { - return result.filter(function (j) { - return array.indexOf(j) !== -1 - }) - } - } else { - if (node.not) { - var filter = {} - array.forEach(function (j) { - filter[j] = true - }) - return result.filter(function (j) { - return !filter[j] - }) - } - return result.concat(array) - } - }, []) -} - -function prepareOpts(opts) { - if (typeof opts === 'undefined') opts = {} - - if (typeof opts.path === 'undefined') { - opts.path = path.resolve ? path.resolve('.') : '.' - } - - return opts -} - -function prepareQueries(queries, opts) { - if (typeof queries === 'undefined' || queries === null) { - var config = browserslist.loadConfig(opts) - if (config) { - queries = config - } else { - queries = browserslist.defaults - } - } - - return queries -} - -function checkQueries(queries) { - if (!(typeof queries === 'string' || Array.isArray(queries))) { - throw new BrowserslistError( - 'Browser queries must be an array or string. Got ' + typeof queries + '.' - ) - } -} - -var cache = {} - -function browserslist(queries, opts) { - opts = prepareOpts(opts) - queries = prepareQueries(queries, opts) - checkQueries(queries) - - var context = { - ignoreUnknownVersions: opts.ignoreUnknownVersions, - dangerousExtend: opts.dangerousExtend, - mobileToDesktop: opts.mobileToDesktop, - path: opts.path, - env: opts.env - } - - env.oldDataWarning(browserslist.data) - var stats = env.getStat(opts, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - - var cacheKey = JSON.stringify([queries, context]) - if (cache[cacheKey]) return cache[cacheKey] - - var result = uniq(resolve(queries, context)).sort(function (name1, name2) { - name1 = name1.split(' ') - name2 = name2.split(' ') - if (name1[0] === name2[0]) { - // assumptions on caniuse data - // 1) version ranges never overlaps - // 2) if version is not a range, it never contains `-` - var version1 = name1[1].split('-')[0] - var version2 = name2[1].split('-')[0] - return compareSemver(version2.split('.'), version1.split('.')) - } else { - return compare(name1[0], name2[0]) - } - }) - if (!env.env.BROWSERSLIST_DISABLE_CACHE) { - cache[cacheKey] = result - } - return result -} - -browserslist.parse = function (queries, opts) { - opts = prepareOpts(opts) - queries = prepareQueries(queries, opts) - checkQueries(queries) - return parse(QUERIES, queries) -} - -// Will be filled by Can I Use data below -browserslist.cache = {} -browserslist.data = {} -browserslist.usage = { - global: {}, - custom: null -} - -// Default browsers query -browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] - -// Browser names aliases -browserslist.aliases = { - fx: 'firefox', - ff: 'firefox', - ios: 'ios_saf', - explorer: 'ie', - blackberry: 'bb', - explorermobile: 'ie_mob', - operamini: 'op_mini', - operamobile: 'op_mob', - chromeandroid: 'and_chr', - firefoxandroid: 'and_ff', - ucandroid: 'and_uc', - qqandroid: 'and_qq' -} - -// Can I Use only provides a few versions for some browsers (e.g. and_chr). -// Fallback to a similar browser for unknown versions -// Note op_mob is not included as its chromium versions are not in sync with Opera desktop -browserslist.desktopNames = { - and_chr: 'chrome', - and_ff: 'firefox', - ie_mob: 'ie', - android: 'chrome' // has extra processing logic -} - -// Aliases to work with joined versions like `ios_saf 7.0-7.1` -browserslist.versionAliases = {} - -browserslist.clearCaches = env.clearCaches -browserslist.parseConfig = env.parseConfig -browserslist.readConfig = env.readConfig -browserslist.findConfig = env.findConfig -browserslist.loadConfig = env.loadConfig - -browserslist.coverage = function (browsers, stats) { - var data - if (typeof stats === 'undefined') { - data = browserslist.usage.global - } else if (stats === 'my stats') { - var opts = {} - opts.path = path.resolve ? path.resolve('.') : '.' - var customStats = env.getStat(opts) - if (!customStats) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - data = {} - for (var browser in customStats) { - fillUsage(data, browser, customStats[browser]) - } - } else if (typeof stats === 'string') { - if (stats.length > 2) { - stats = stats.toLowerCase() - } else { - stats = stats.toUpperCase() - } - env.loadCountry(browserslist.usage, stats, browserslist.data) - data = browserslist.usage[stats] - } else { - if ('dataByBrowser' in stats) { - stats = stats.dataByBrowser - } - data = {} - for (var name in stats) { - for (var version in stats[name]) { - data[name + ' ' + version] = stats[name][version] - } - } - } - - return browsers.reduce(function (all, i) { - var usage = data[i] - if (usage === undefined) { - usage = data[i.replace(/ \S+$/, ' 0')] - } - return all + (usage || 0) - }, 0) -} - -function nodeQuery(context, node) { - var matched = browserslist.nodeVersions.filter(function (i) { - return isVersionsMatch(i, node.version) - }) - if (matched.length === 0) { - if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + node.version + ' of Node.js' - ) - } - } - return ['node ' + matched[matched.length - 1]] -} - -function sinceQuery(context, node) { - var year = parseInt(node.year) - var month = parseInt(node.month || '01') - 1 - var day = parseInt(node.day || '01') - return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) -} - -function coverQuery(context, node) { - var coverage = parseFloat(node.coverage) - var usage = browserslist.usage.global - if (node.place) { - if (node.place.match(/^my\s+stats$/i)) { - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - usage = context.customUsage - } else { - var place - if (node.place.length === 2) { - place = node.place.toUpperCase() - } else { - place = node.place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - usage = browserslist.usage[place] - } - } - var versions = Object.keys(usage).sort(function (a, b) { - return usage[b] - usage[a] - }) - var coveraged = 0 - var result = [] - var version - for (var i = 0; i < versions.length; i++) { - version = versions[i] - if (usage[version] === 0) break - coveraged += usage[version] - result.push(version) - if (coveraged >= coverage) break - } - return result -} - -var QUERIES = { - last_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+major\s+versions?$/i, - select: function (context, node) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = getMajorVersions(data.released, node.versions) - list = list.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return selected.concat(list) - }, []) - } - }, - last_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+versions?$/i, - select: function (context, node) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.released.slice(-node.versions) - list = list.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return selected.concat(list) - }, []) - } - }, - last_electron_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, - select: function (context, node) { - var validVersions = getMajorVersions(Object.keys(e2c), node.versions) - return validVersions.map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - last_node_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, - select: function (context, node) { - return getMajorVersions(browserslist.nodeVersions, node.versions).map( - function (version) { - return 'node ' + version - } - ) - } - }, - last_browser_major_versions: { - matches: ['versions', 'browser'], - regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var validVersions = getMajorVersions(data.released, node.versions) - var list = validVersions.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return list - } - }, - last_electron_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, - select: function (context, node) { - return Object.keys(e2c) - .slice(-node.versions) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - last_node_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+node\s+versions?$/i, - select: function (context, node) { - return browserslist.nodeVersions - .slice(-node.versions) - .map(function (version) { - return 'node ' + version - }) - } - }, - last_browser_versions: { - matches: ['versions', 'browser'], - regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var list = data.released.slice(-node.versions).map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return list - } - }, - unreleased_versions: { - matches: [], - regexp: /^unreleased\s+versions$/i, - select: function (context) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.versions.filter(function (v) { - return data.released.indexOf(v) === -1 - }) - list = list.map(nameMapper(data.name)) - return selected.concat(list) - }, []) - } - }, - unreleased_electron_versions: { - matches: [], - regexp: /^unreleased\s+electron\s+versions?$/i, - select: function () { - return [] - } - }, - unreleased_browser_versions: { - matches: ['browser'], - regexp: /^unreleased\s+(\w+)\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - return data.versions - .filter(function (v) { - return data.released.indexOf(v) === -1 - }) - .map(nameMapper(data.name)) - } - }, - last_years: { - matches: ['years'], - regexp: /^last\s+(\d*.?\d+)\s+years?$/i, - select: function (context, node) { - return filterByYear(Date.now() - YEAR * node.years, context) - } - }, - since_y: { - matches: ['year'], - regexp: /^since (\d+)$/i, - select: sinceQuery - }, - since_y_m: { - matches: ['year', 'month'], - regexp: /^since (\d+)-(\d+)$/i, - select: sinceQuery - }, - since_y_m_d: { - matches: ['year', 'month', 'day'], - regexp: /^since (\d+)-(\d+)-(\d+)$/i, - select: sinceQuery - }, - popularity: { - matches: ['sign', 'popularity'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var usage = browserslist.usage.global - return Object.keys(usage).reduce(function (result, version) { - if (node.sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_my_stats: { - matches: ['sign', 'popularity'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_config_stats: { - matches: ['sign', 'popularity', 'config'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var stats = env.loadStat(context, node.config, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_place: { - matches: ['sign', 'popularity', 'place'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var place = node.place - if (place.length === 2) { - place = place.toUpperCase() - } else { - place = place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - var usage = browserslist.usage[place] - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - cover: { - matches: ['coverage'], - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, - select: coverQuery - }, - cover_in: { - matches: ['coverage', 'place'], - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, - select: coverQuery - }, - supports: { - matches: ['supportType', 'feature'], - regexp: /^(?:(fully|partially) )?supports\s+([\w-]+)$/, - select: function (context, node) { - env.loadFeature(browserslist.cache, node.feature) - var withPartial = node.supportType !== 'fully' - var features = browserslist.cache[node.feature] - var result = [] - for (var name in features) { - var data = byName(name, context) - // Only check desktop when latest released mobile has support - var checkDesktop = - context.mobileToDesktop && - name in browserslist.desktopNames && - isSupported(features[name][data.released.slice(-1)[0]], withPartial) - data.versions.forEach(function (version) { - var flags = features[name][version] - if (flags === undefined && checkDesktop) { - flags = features[browserslist.desktopNames[name]][version] - } - if (isSupported(flags, withPartial)) { - result.push(name + ' ' + version) - } - }) - } - return result - } - }, - electron_range: { - matches: ['from', 'to'], - regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - var fromToUse = normalizeElectron(node.from) - var toToUse = normalizeElectron(node.to) - var from = parseFloat(node.from) - var to = parseFloat(node.to) - if (!e2c[fromToUse]) { - throw new BrowserslistError('Unknown version ' + from + ' of electron') - } - if (!e2c[toToUse]) { - throw new BrowserslistError('Unknown version ' + to + ' of electron') - } - return Object.keys(e2c) - .filter(function (i) { - var parsed = parseFloat(i) - return parsed >= from && parsed <= to - }) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - node_range: { - matches: ['from', 'to'], - regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - return browserslist.nodeVersions - .filter(semverFilterLoose('>=', node.from)) - .filter(semverFilterLoose('<=', node.to)) - .map(function (v) { - return 'node ' + v - }) - } - }, - browser_range: { - matches: ['browser', 'from', 'to'], - regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var from = parseFloat(normalizeVersion(data, node.from) || node.from) - var to = parseFloat(normalizeVersion(data, node.to) || node.to) - function filter(v) { - var parsed = parseFloat(v) - return parsed >= from && parsed <= to - } - return data.released.filter(filter).map(nameMapper(data.name)) - } - }, - electron_ray: { - matches: ['sign', 'version'], - regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, node) { - var versionToUse = normalizeElectron(node.version) - return Object.keys(e2c) - .filter(generateFilter(node.sign, versionToUse)) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - node_ray: { - matches: ['sign', 'version'], - regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, node) { - return browserslist.nodeVersions - .filter(generateSemverFilter(node.sign, node.version)) - .map(function (v) { - return 'node ' + v - }) - } - }, - browser_ray: { - matches: ['browser', 'sign', 'version'], - regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, - select: function (context, node) { - var version = node.version - var data = checkName(node.browser, context) - var alias = browserslist.versionAliases[data.name][version] - if (alias) version = alias - return data.released - .filter(generateFilter(node.sign, version)) - .map(function (v) { - return data.name + ' ' + v - }) - } - }, - firefox_esr: { - matches: [], - regexp: /^(firefox|ff|fx)\s+esr$/i, - select: function () { - return ['firefox 115'] - } - }, - opera_mini_all: { - matches: [], - regexp: /(operamini|op_mini)\s+all/i, - select: function () { - return ['op_mini all'] - } - }, - electron_version: { - matches: ['version'], - regexp: /^electron\s+([\d.]+)$/i, - select: function (context, node) { - var versionToUse = normalizeElectron(node.version) - var chrome = e2c[versionToUse] - if (!chrome) { - throw new BrowserslistError( - 'Unknown version ' + node.version + ' of electron' - ) - } - return ['chrome ' + chrome] - } - }, - node_major_version: { - matches: ['version'], - regexp: /^node\s+(\d+)$/i, - select: nodeQuery - }, - node_minor_version: { - matches: ['version'], - regexp: /^node\s+(\d+\.\d+)$/i, - select: nodeQuery - }, - node_patch_version: { - matches: ['version'], - regexp: /^node\s+(\d+\.\d+\.\d+)$/i, - select: nodeQuery - }, - current_node: { - matches: [], - regexp: /^current\s+node$/i, - select: function (context) { - return [env.currentNode(resolve, context)] - } - }, - maintained_node: { - matches: [], - regexp: /^maintained\s+node\s+versions$/i, - select: function (context) { - var now = Date.now() - var queries = Object.keys(jsEOL) - .filter(function (key) { - return ( - now < Date.parse(jsEOL[key].end) && - now > Date.parse(jsEOL[key].start) && - isEolReleased(key) - ) - }) - .map(function (key) { - return 'node ' + key.slice(1) - }) - return resolve(queries, context) - } - }, - phantomjs_1_9: { - matches: [], - regexp: /^phantomjs\s+1.9$/i, - select: function () { - return ['safari 5'] - } - }, - phantomjs_2_1: { - matches: [], - regexp: /^phantomjs\s+2.1$/i, - select: function () { - return ['safari 6'] - } - }, - browser_version: { - matches: ['browser', 'version'], - regexp: /^(\w+)\s+(tp|[\d.]+)$/i, - select: function (context, node) { - var version = node.version - if (/^tp$/i.test(version)) version = 'TP' - var data = checkName(node.browser, context) - var alias = normalizeVersion(data, version) - if (alias) { - version = alias - } else { - if (version.indexOf('.') === -1) { - alias = version + '.0' - } else { - alias = version.replace(/\.0$/, '') - } - alias = normalizeVersion(data, alias) - if (alias) { - version = alias - } else if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + version + ' of ' + node.browser - ) - } - } - return [data.name + ' ' + version] - } - }, - browserslist_config: { - matches: [], - regexp: /^browserslist config$/i, - select: function (context) { - return browserslist(undefined, context) - } - }, - extends: { - matches: ['config'], - regexp: /^extends (.+)$/i, - select: function (context, node) { - return resolve(env.loadQueries(context, node.config), context) - } - }, - defaults: { - matches: [], - regexp: /^defaults$/i, - select: function (context) { - return resolve(browserslist.defaults, context) - } - }, - dead: { - matches: [], - regexp: /^dead$/i, - select: function (context) { - var dead = [ - 'Baidu >= 0', - 'ie <= 11', - 'ie_mob <= 11', - 'bb <= 10', - 'op_mob <= 12.1', - 'samsung 4' - ] - return resolve(dead, context) - } - }, - unknown: { - matches: [], - regexp: /^(\w+)$/i, - select: function (context, node) { - if (byName(node.query, context)) { - throw new BrowserslistError( - 'Specify versions in Browserslist query for browser ' + node.query - ) - } else { - throw unknownQuery(node.query) - } - } - } -} - -// Get and convert Can I Use data - -;(function () { - for (var name in agents) { - var browser = agents[name] - browserslist.data[name] = { - name: name, - versions: normalize(agents[name].versions), - released: normalize(agents[name].versions.slice(0, -3)), - releaseDate: agents[name].release_date - } - fillUsage(browserslist.usage.global, name, browser.usage_global) - - browserslist.versionAliases[name] = {} - for (var i = 0; i < browser.versions.length; i++) { - var full = browser.versions[i] - if (!full) continue - - if (full.indexOf('-') !== -1) { - var interval = full.split('-') - for (var j = 0; j < interval.length; j++) { - browserslist.versionAliases[name][interval[j]] = full - } - } - } - } - - browserslist.nodeVersions = jsReleases.map(function (release) { - return release.version - }) -})() - -module.exports = browserslist diff --git a/build/node_modules/browserslist/node.js b/build/node_modules/browserslist/node.js deleted file mode 100644 index 100ded66..00000000 --- a/build/node_modules/browserslist/node.js +++ /dev/null @@ -1,410 +0,0 @@ -var feature = require('caniuse-lite/dist/unpacker/feature').default -var region = require('caniuse-lite/dist/unpacker/region').default -var path = require('path') -var fs = require('fs') - -var BrowserslistError = require('./error') - -var IS_SECTION = /^\s*\[(.+)]\s*$/ -var CONFIG_PATTERN = /^browserslist-config-/ -var SCOPED_CONFIG__PATTERN = /@[^/]+\/browserslist-config(-|$|\/)/ -var TIME_TO_UPDATE_CANIUSE = 6 * 30 * 24 * 60 * 60 * 1000 -var FORMAT = - 'Browserslist config should be a string or an array ' + - 'of strings with browser queries' - -var dataTimeChecked = false -var filenessCache = {} -var configCache = {} -function checkExtend(name) { - var use = ' Use `dangerousExtend` option to disable.' - if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) { - throw new BrowserslistError( - 'Browserslist config needs `browserslist-config-` prefix. ' + use - ) - } - if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) { - throw new BrowserslistError( - '`.` not allowed in Browserslist config name. ' + use - ) - } - if (name.indexOf('node_modules') !== -1) { - throw new BrowserslistError( - '`node_modules` not allowed in Browserslist config.' + use - ) - } -} - -function isFile(file) { - if (file in filenessCache) { - return filenessCache[file] - } - var result = fs.existsSync(file) && fs.statSync(file).isFile() - if (!process.env.BROWSERSLIST_DISABLE_CACHE) { - filenessCache[file] = result - } - return result -} - -function eachParent(file, callback) { - var dir = isFile(file) ? path.dirname(file) : file - var loc = path.resolve(dir) - do { - var result = callback(loc) - if (typeof result !== 'undefined') return result - } while (loc !== (loc = path.dirname(loc))) - return undefined -} - -function check(section) { - if (Array.isArray(section)) { - for (var i = 0; i < section.length; i++) { - if (typeof section[i] !== 'string') { - throw new BrowserslistError(FORMAT) - } - } - } else if (typeof section !== 'string') { - throw new BrowserslistError(FORMAT) - } -} - -function pickEnv(config, opts) { - if (typeof config !== 'object') return config - - var name - if (typeof opts.env === 'string') { - name = opts.env - } else if (process.env.BROWSERSLIST_ENV) { - name = process.env.BROWSERSLIST_ENV - } else if (process.env.NODE_ENV) { - name = process.env.NODE_ENV - } else { - name = 'production' - } - - if (opts.throwOnMissing) { - if (name && name !== 'defaults' && !config[name]) { - throw new BrowserslistError( - 'Missing config for Browserslist environment `' + name + '`' - ) - } - } - - return config[name] || config.defaults -} - -function parsePackage(file) { - var config = JSON.parse( - fs - .readFileSync(file) - .toString() - .replace(/^\uFEFF/m, '') - ) - if (config.browserlist && !config.browserslist) { - throw new BrowserslistError( - '`browserlist` key instead of `browserslist` in ' + file - ) - } - var list = config.browserslist - if (Array.isArray(list) || typeof list === 'string') { - list = { defaults: list } - } - for (var i in list) { - check(list[i]) - } - - return list -} - -function latestReleaseTime(agents) { - var latest = 0 - for (var name in agents) { - var dates = agents[name].releaseDate || {} - for (var key in dates) { - if (latest < dates[key]) { - latest = dates[key] - } - } - } - return latest * 1000 -} - -function normalizeStats(data, stats) { - if (!data) { - data = {} - } - if (stats && 'dataByBrowser' in stats) { - stats = stats.dataByBrowser - } - - if (typeof stats !== 'object') return undefined - - var normalized = {} - for (var i in stats) { - var versions = Object.keys(stats[i]) - if (versions.length === 1 && data[i] && data[i].versions.length === 1) { - var normal = data[i].versions[0] - normalized[i] = {} - normalized[i][normal] = stats[i][versions[0]] - } else { - normalized[i] = stats[i] - } - } - - return normalized -} - -function normalizeUsageData(usageData, data) { - for (var browser in usageData) { - var browserUsage = usageData[browser] - // eslint-disable-next-line max-len - // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615 - // caniuse-db returns { 0: "percentage" } for `and_*` regional stats - if ('0' in browserUsage) { - var versions = data[browser].versions - browserUsage[versions[versions.length - 1]] = browserUsage[0] - delete browserUsage[0] - } - } -} - -module.exports = { - loadQueries: function loadQueries(ctx, name) { - if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { - checkExtend(name) - } - var queries = require(require.resolve(name, { paths: ['.', ctx.path] })) - if (queries) { - if (Array.isArray(queries)) { - return queries - } else if (typeof queries === 'object') { - if (!queries.defaults) queries.defaults = [] - return pickEnv(queries, ctx, name) - } - } - throw new BrowserslistError( - '`' + - name + - '` config exports not an array of queries' + - ' or an object of envs' - ) - }, - - loadStat: function loadStat(ctx, name, data) { - if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { - checkExtend(name) - } - var stats = require(require.resolve( - path.join(name, 'browserslist-stats.json'), - { paths: ['.'] } - )) - return normalizeStats(data, stats) - }, - - getStat: function getStat(opts, data) { - var stats - if (opts.stats) { - stats = opts.stats - } else if (process.env.BROWSERSLIST_STATS) { - stats = process.env.BROWSERSLIST_STATS - } else if (opts.path && path.resolve && fs.existsSync) { - stats = eachParent(opts.path, function (dir) { - var file = path.join(dir, 'browserslist-stats.json') - return isFile(file) ? file : undefined - }) - } - if (typeof stats === 'string') { - try { - stats = JSON.parse(fs.readFileSync(stats)) - } catch (e) { - throw new BrowserslistError("Can't read " + stats) - } - } - return normalizeStats(data, stats) - }, - - loadConfig: function loadConfig(opts) { - if (process.env.BROWSERSLIST) { - return process.env.BROWSERSLIST - } else if (opts.config || process.env.BROWSERSLIST_CONFIG) { - var file = opts.config || process.env.BROWSERSLIST_CONFIG - if (path.basename(file) === 'package.json') { - return pickEnv(parsePackage(file), opts) - } else { - return pickEnv(module.exports.readConfig(file), opts) - } - } else if (opts.path) { - return pickEnv(module.exports.findConfig(opts.path), opts) - } else { - return undefined - } - }, - - loadCountry: function loadCountry(usage, country, data) { - var code = country.replace(/[^\w-]/g, '') - if (!usage[code]) { - var compressed - try { - compressed = require('caniuse-lite/data/regions/' + code + '.js') - } catch (e) { - throw new BrowserslistError('Unknown region name `' + code + '`.') - } - var usageData = region(compressed) - normalizeUsageData(usageData, data) - usage[country] = {} - for (var i in usageData) { - for (var j in usageData[i]) { - usage[country][i + ' ' + j] = usageData[i][j] - } - } - } - }, - - loadFeature: function loadFeature(features, name) { - name = name.replace(/[^\w-]/g, '') - if (features[name]) return - var compressed - try { - compressed = require('caniuse-lite/data/features/' + name + '.js') - } catch (e) { - throw new BrowserslistError('Unknown feature name `' + name + '`.') - } - var stats = feature(compressed).stats - features[name] = {} - for (var i in stats) { - features[name][i] = {} - for (var j in stats[i]) { - features[name][i][j] = stats[i][j] - } - } - }, - - parseConfig: function parseConfig(string) { - var result = { defaults: [] } - var sections = ['defaults'] - - string - .toString() - .replace(/#[^\n]*/g, '') - .split(/\n|,/) - .map(function (line) { - return line.trim() - }) - .filter(function (line) { - return line !== '' - }) - .forEach(function (line) { - if (IS_SECTION.test(line)) { - sections = line.match(IS_SECTION)[1].trim().split(' ') - sections.forEach(function (section) { - if (result[section]) { - throw new BrowserslistError( - 'Duplicate section ' + section + ' in Browserslist config' - ) - } - result[section] = [] - }) - } else { - sections.forEach(function (section) { - result[section].push(line) - }) - } - }) - - return result - }, - - readConfig: function readConfig(file) { - if (!isFile(file)) { - throw new BrowserslistError("Can't read " + file + ' config') - } - return module.exports.parseConfig(fs.readFileSync(file)) - }, - - findConfig: function findConfig(from) { - from = path.resolve(from) - - var passed = [] - var resolved = eachParent(from, function (dir) { - if (dir in configCache) { - return configCache[dir] - } - - passed.push(dir) - - var config = path.join(dir, 'browserslist') - var pkg = path.join(dir, 'package.json') - var rc = path.join(dir, '.browserslistrc') - - var pkgBrowserslist - if (isFile(pkg)) { - try { - pkgBrowserslist = parsePackage(pkg) - } catch (e) { - if (e.name === 'BrowserslistError') throw e - console.warn( - '[Browserslist] Could not parse ' + pkg + '. Ignoring it.' - ) - } - } - - if (isFile(config) && pkgBrowserslist) { - throw new BrowserslistError( - dir + ' contains both browserslist and package.json with browsers' - ) - } else if (isFile(rc) && pkgBrowserslist) { - throw new BrowserslistError( - dir + ' contains both .browserslistrc and package.json with browsers' - ) - } else if (isFile(config) && isFile(rc)) { - throw new BrowserslistError( - dir + ' contains both .browserslistrc and browserslist' - ) - } else if (isFile(config)) { - return module.exports.readConfig(config) - } else if (isFile(rc)) { - return module.exports.readConfig(rc) - } else { - return pkgBrowserslist - } - }) - if (!process.env.BROWSERSLIST_DISABLE_CACHE) { - passed.forEach(function (dir) { - configCache[dir] = resolved - }) - } - return resolved - }, - - clearCaches: function clearCaches() { - dataTimeChecked = false - filenessCache = {} - configCache = {} - - this.cache = {} - }, - - oldDataWarning: function oldDataWarning(agentsObj) { - if (dataTimeChecked) return - dataTimeChecked = true - if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return - - var latest = latestReleaseTime(agentsObj) - var halfYearAgo = Date.now() - TIME_TO_UPDATE_CANIUSE - - if (latest !== 0 && latest < halfYearAgo) { - console.warn( - 'Browserslist: caniuse-lite is outdated. Please run:\n' + - ' npx update-browserslist-db@latest\n' + - ' Why you should do it regularly: ' + - 'https://github.com/browserslist/update-db#readme' - ) - } - }, - - currentNode: function currentNode() { - return 'node ' + process.versions.node - }, - - env: process.env -} diff --git a/build/node_modules/browserslist/package.json b/build/node_modules/browserslist/package.json deleted file mode 100644 index 13bd3cd1..00000000 --- a/build/node_modules/browserslist/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "browserslist", - "version": "4.22.1", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" - ], - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "bin": { - "browserslist": "cli.js" - }, - "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } -} diff --git a/build/node_modules/browserslist/parse.js b/build/node_modules/browserslist/parse.js deleted file mode 100644 index 56b534ab..00000000 --- a/build/node_modules/browserslist/parse.js +++ /dev/null @@ -1,78 +0,0 @@ -var AND_REGEXP = /^\s+and\s+(.*)/i -var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i - -function flatten(array) { - if (!Array.isArray(array)) return [array] - return array.reduce(function (a, b) { - return a.concat(flatten(b)) - }, []) -} - -function find(string, predicate) { - for (var n = 1, max = string.length; n <= max; n++) { - var parsed = string.substr(-n, n) - if (predicate(parsed, n, max)) { - return string.slice(0, -n) - } - } - return '' -} - -function matchQuery(all, query) { - var node = { query: query } - if (query.indexOf('not ') === 0) { - node.not = true - query = query.slice(4) - } - - for (var name in all) { - var type = all[name] - var match = query.match(type.regexp) - if (match) { - node.type = name - for (var i = 0; i < type.matches.length; i++) { - node[type.matches[i]] = match[i + 1] - } - return node - } - } - - node.type = 'unknown' - return node -} - -function matchBlock(all, string, qs) { - var node - return find(string, function (parsed, n, max) { - if (AND_REGEXP.test(parsed)) { - node = matchQuery(all, parsed.match(AND_REGEXP)[1]) - node.compose = 'and' - qs.unshift(node) - return true - } else if (OR_REGEXP.test(parsed)) { - node = matchQuery(all, parsed.match(OR_REGEXP)[1]) - node.compose = 'or' - qs.unshift(node) - return true - } else if (n === max) { - node = matchQuery(all, parsed.trim()) - node.compose = 'or' - qs.unshift(node) - return true - } - return false - }) -} - -module.exports = function parse(all, queries) { - if (!Array.isArray(queries)) queries = [queries] - return flatten( - queries.map(function (block) { - var qs = [] - do { - block = matchBlock(all, block, qs) - } while (block) - return qs - }) - ) -} diff --git a/build/node_modules/buffer-alloc-unsafe/index.js b/build/node_modules/buffer-alloc-unsafe/index.js deleted file mode 100644 index 0bd335ff..00000000 --- a/build/node_modules/buffer-alloc-unsafe/index.js +++ /dev/null @@ -1,17 +0,0 @@ -function allocUnsafe (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } - - if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - - if (Buffer.allocUnsafe) { - return Buffer.allocUnsafe(size) - } else { - return new Buffer(size) - } -} - -module.exports = allocUnsafe diff --git a/build/node_modules/buffer-alloc-unsafe/package.json b/build/node_modules/buffer-alloc-unsafe/package.json deleted file mode 100644 index c2ab9042..00000000 --- a/build/node_modules/buffer-alloc-unsafe/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "buffer-alloc-unsafe", - "version": "1.1.0", - "license": "MIT", - "repository": "LinusU/buffer-alloc-unsafe", - "files": [ - "index.js" - ], - "scripts": { - "test": "standard && node test" - }, - "devDependencies": { - "standard": "^7.1.2" - }, - "keywords": [ - "allocUnsafe", - "allocate", - "buffer allocUnsafe", - "buffer unsafe allocate", - "buffer", - "ponyfill", - "unsafe allocate" - ] -} diff --git a/build/node_modules/buffer-alloc-unsafe/readme.md b/build/node_modules/buffer-alloc-unsafe/readme.md deleted file mode 100644 index 8725ecf6..00000000 --- a/build/node_modules/buffer-alloc-unsafe/readme.md +++ /dev/null @@ -1,46 +0,0 @@ -# Buffer Alloc Unsafe - -A [ponyfill](https://ponyfill.com) for `Buffer.allocUnsafe`. - -Works as Node.js: `v7.0.0`
-Works on Node.js: `v0.10.0` - -## Installation - -```sh -npm install --save buffer-alloc-unsafe -``` - -## Usage - -```js -const allocUnsafe = require('buffer-alloc-unsafe') - -console.log(allocUnsafe(10)) -//=> - -console.log(allocUnsafe(10)) -//=> - -console.log(allocUnsafe(10)) -//=> - -allocUnsafe(-10) -//=> RangeError: "size" argument must not be negative -``` - -## API - -### allocUnsafe(size) - -- `size` <Integer> The desired length of the new `Buffer` - -Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must be -less than or equal to the value of `buffer.kMaxLength` and greater than or equal -to zero. Otherwise, a `RangeError` is thrown. - -## See also - -- [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc` -- [buffer-fill](https://github.com/LinusU/buffer-fill) A ponyfill for `Buffer.fill` -- [buffer-from](https://github.com/LinusU/buffer-from) A ponyfill for `Buffer.from` diff --git a/build/node_modules/buffer-alloc/index.js b/build/node_modules/buffer-alloc/index.js deleted file mode 100644 index fe658606..00000000 --- a/build/node_modules/buffer-alloc/index.js +++ /dev/null @@ -1,32 +0,0 @@ -var bufferFill = require('buffer-fill') -var allocUnsafe = require('buffer-alloc-unsafe') - -module.exports = function alloc (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } - - if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - - if (Buffer.alloc) { - return Buffer.alloc(size, fill, encoding) - } - - var buffer = allocUnsafe(size) - - if (size === 0) { - return buffer - } - - if (fill === undefined) { - return bufferFill(buffer, 0) - } - - if (typeof encoding !== 'string') { - encoding = undefined - } - - return bufferFill(buffer, fill, encoding) -} diff --git a/build/node_modules/buffer-alloc/package.json b/build/node_modules/buffer-alloc/package.json deleted file mode 100644 index a8a3c3ac..00000000 --- a/build/node_modules/buffer-alloc/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "buffer-alloc", - "version": "1.2.0", - "license": "MIT", - "repository": "LinusU/buffer-alloc", - "files": [ - "index.js" - ], - "scripts": { - "test": "standard && node test" - }, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - }, - "devDependencies": { - "standard": "^7.1.2" - }, - "keywords": [ - "alloc", - "allocate", - "buffer alloc", - "buffer allocate", - "buffer" - ] -} diff --git a/build/node_modules/buffer-alloc/readme.md b/build/node_modules/buffer-alloc/readme.md deleted file mode 100644 index 80c7d7bb..00000000 --- a/build/node_modules/buffer-alloc/readme.md +++ /dev/null @@ -1,43 +0,0 @@ -# Buffer Alloc - -A [ponyfill](https://ponyfill.com) for `Buffer.alloc`. - -Works as Node.js: `v7.0.0`
-Works on Node.js: `v0.10.0` - -## Installation - -```sh -npm install --save buffer-alloc -``` - -## Usage - -```js -const alloc = require('buffer-alloc') - -console.log(alloc(4)) -//=> - -console.log(alloc(6, 0x41)) -//=> - -console.log(alloc(10, 'linus', 'utf8')) -//=> -``` - -## API - -### alloc(size[, fill[, encoding]]) - -- `size` <Integer> The desired length of the new `Buffer` -- `fill` <String> | <Buffer> | <Integer> A value to pre-fill the new `Buffer` with. **Default:** `0` -- `encoding` <String> If `fill` is a string, this is its encoding. **Default:** `'utf8'` - -Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the `Buffer` will be zero-filled. - -## See also - -- [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe` -- [buffer-fill](https://github.com/LinusU/buffer-fill) A ponyfill for `Buffer.fill` -- [buffer-from](https://github.com/LinusU/buffer-from) A ponyfill for `Buffer.from` diff --git a/build/node_modules/buffer-fill/index.js b/build/node_modules/buffer-fill/index.js deleted file mode 100644 index 428a9e1f..00000000 --- a/build/node_modules/buffer-fill/index.js +++ /dev/null @@ -1,113 +0,0 @@ -/* Node.js 6.4.0 and up has full support */ -var hasFullSupport = (function () { - try { - if (!Buffer.isEncoding('latin1')) { - return false - } - - var buf = Buffer.alloc ? Buffer.alloc(4) : new Buffer(4) - - buf.fill('ab', 'ucs2') - - return (buf.toString('hex') === '61006200') - } catch (_) { - return false - } -}()) - -function isSingleByte (val) { - return (val.length === 1 && val.charCodeAt(0) < 256) -} - -function fillWithNumber (buffer, val, start, end) { - if (start < 0 || end > buffer.length) { - throw new RangeError('Out of range index') - } - - start = start >>> 0 - end = end === undefined ? buffer.length : end >>> 0 - - if (end > start) { - buffer.fill(val, start, end) - } - - return buffer -} - -function fillWithBuffer (buffer, val, start, end) { - if (start < 0 || end > buffer.length) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return buffer - } - - start = start >>> 0 - end = end === undefined ? buffer.length : end >>> 0 - - var pos = start - var len = val.length - while (pos <= (end - len)) { - val.copy(buffer, pos) - pos += len - } - - if (pos !== end) { - val.copy(buffer, pos, 0, end - pos) - } - - return buffer -} - -function fill (buffer, val, start, end, encoding) { - if (hasFullSupport) { - return buffer.fill(val, start, end, encoding) - } - - if (typeof val === 'number') { - return fillWithNumber(buffer, val, start, end) - } - - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = buffer.length - } else if (typeof end === 'string') { - encoding = end - end = buffer.length - } - - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - - if (encoding === 'latin1') { - encoding = 'binary' - } - - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - - if (val === '') { - return fillWithNumber(buffer, 0, start, end) - } - - if (isSingleByte(val)) { - return fillWithNumber(buffer, val.charCodeAt(0), start, end) - } - - val = new Buffer(val, encoding) - } - - if (Buffer.isBuffer(val)) { - return fillWithBuffer(buffer, val, start, end) - } - - // Other values (e.g. undefined, boolean, object) results in zero-fill - return fillWithNumber(buffer, 0, start, end) -} - -module.exports = fill diff --git a/build/node_modules/buffer-fill/package.json b/build/node_modules/buffer-fill/package.json deleted file mode 100644 index b8f67c58..00000000 --- a/build/node_modules/buffer-fill/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "buffer-fill", - "version": "1.0.0", - "license": "MIT", - "repository": "LinusU/buffer-fill", - "files": [ - "index.js" - ], - "scripts": { - "test": "standard && node test" - }, - "devDependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "standard": "^7.1.2" - } -} diff --git a/build/node_modules/buffer-fill/readme.md b/build/node_modules/buffer-fill/readme.md deleted file mode 100644 index ac307383..00000000 --- a/build/node_modules/buffer-fill/readme.md +++ /dev/null @@ -1,54 +0,0 @@ -# Buffer Fill - -A [ponyfill](https://ponyfill.com) for `Buffer.fill`. - -Works as Node.js: `v6.4.0`
-Works on Node.js: `v0.10.0` - -## Installation - -```sh -npm install --save buffer-fill -``` - -## Usage - -```js -const fill = require('buffer-fill') -const buf = Buffer.allocUnsafe(5) - -console.log(buf.fill(8)) -//=> - -console.log(buf.fill(9, 2, 4)) -//=> - -console.log(buf.fill('linus', 'latin1')) -//=> - -console.log(buf.fill('\u0222')) -//=> -``` - -## API - -### fill(buf, value[, offset[, end]][, encoding]) - -- `value` <String> | <Buffer> | <Integer> The value to fill `buf` with -- `offset` <Integer> Where to start filling `buf`. **Default:** `0` -- `end` <Integer> Where to stop filling `buf` (not inclusive). **Default:** `buf.length` -- `encoding` <String> If `value` is a string, this is its encoding. **Default:** `'utf8'` -- Return: <Buffer> A reference to `buf` - -Fills `buf` with the specified `value`. If the `offset` and `end` are not given, -the entire `buf` will be filled. This is meant to be a small simplification to -allow the creation and filling of a `Buffer` to be done on a single line. - -If the final write of a `fill()` operation falls on a multi-byte character, then -only the first bytes of that character that fit into `buf` are written. - -## See also - -- [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe` -- [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc` -- [buffer-from](https://github.com/LinusU/buffer-from) A ponyfill for `Buffer.from` diff --git a/build/node_modules/buffer-from/LICENSE b/build/node_modules/buffer-from/LICENSE deleted file mode 100644 index e4bf1d69..00000000 --- a/build/node_modules/buffer-from/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016, 2018 Linus Unnebäck - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/buffer-from/index.js b/build/node_modules/buffer-from/index.js deleted file mode 100644 index e1a58b5e..00000000 --- a/build/node_modules/buffer-from/index.js +++ /dev/null @@ -1,72 +0,0 @@ -/* eslint-disable node/no-deprecated-api */ - -var toString = Object.prototype.toString - -var isModern = ( - typeof Buffer !== 'undefined' && - typeof Buffer.alloc === 'function' && - typeof Buffer.allocUnsafe === 'function' && - typeof Buffer.from === 'function' -) - -function isArrayBuffer (input) { - return toString.call(input).slice(8, -1) === 'ArrayBuffer' -} - -function fromArrayBuffer (obj, byteOffset, length) { - byteOffset >>>= 0 - - var maxLength = obj.byteLength - byteOffset - - if (maxLength < 0) { - throw new RangeError("'offset' is out of bounds") - } - - if (length === undefined) { - length = maxLength - } else { - length >>>= 0 - - if (length > maxLength) { - throw new RangeError("'length' is out of bounds") - } - } - - return isModern - ? Buffer.from(obj.slice(byteOffset, byteOffset + length)) - : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length))) -} - -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - return isModern - ? Buffer.from(string, encoding) - : new Buffer(string, encoding) -} - -function bufferFrom (value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (isArrayBuffer(value)) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - return isModern - ? Buffer.from(value) - : new Buffer(value) -} - -module.exports = bufferFrom diff --git a/build/node_modules/buffer-from/package.json b/build/node_modules/buffer-from/package.json deleted file mode 100644 index 6ac5327b..00000000 --- a/build/node_modules/buffer-from/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "buffer-from", - "version": "1.1.2", - "license": "MIT", - "repository": "LinusU/buffer-from", - "files": [ - "index.js" - ], - "scripts": { - "test": "standard && node test" - }, - "devDependencies": { - "standard": "^12.0.1" - }, - "keywords": [ - "buffer", - "buffer from" - ] -} diff --git a/build/node_modules/buffer-from/readme.md b/build/node_modules/buffer-from/readme.md deleted file mode 100644 index 9880a558..00000000 --- a/build/node_modules/buffer-from/readme.md +++ /dev/null @@ -1,69 +0,0 @@ -# Buffer From - -A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available. - -## Installation - -```sh -npm install --save buffer-from -``` - -## Usage - -```js -const bufferFrom = require('buffer-from') - -console.log(bufferFrom([1, 2, 3, 4])) -//=> - -const arr = new Uint8Array([1, 2, 3, 4]) -console.log(bufferFrom(arr.buffer, 1, 2)) -//=> - -console.log(bufferFrom('test', 'utf8')) -//=> - -const buf = bufferFrom('test') -console.log(bufferFrom(buf)) -//=> -``` - -## API - -### bufferFrom(array) - -- `array` <Array> - -Allocates a new `Buffer` using an `array` of octets. - -### bufferFrom(arrayBuffer[, byteOffset[, length]]) - -- `arrayBuffer` <ArrayBuffer> The `.buffer` property of a TypedArray or ArrayBuffer -- `byteOffset` <Integer> Where to start copying from `arrayBuffer`. **Default:** `0` -- `length` <Integer> How many bytes to copy from `arrayBuffer`. **Default:** `arrayBuffer.length - byteOffset` - -When passed a reference to the `.buffer` property of a TypedArray instance, the -newly created `Buffer` will share the same allocated memory as the TypedArray. - -The optional `byteOffset` and `length` arguments specify a memory range within -the `arrayBuffer` that will be shared by the `Buffer`. - -### bufferFrom(buffer) - -- `buffer` <Buffer> An existing `Buffer` to copy data from - -Copies the passed `buffer` data onto a new `Buffer` instance. - -### bufferFrom(string[, encoding]) - -- `string` <String> A string to encode. -- `encoding` <String> The encoding of `string`. **Default:** `'utf8'` - -Creates a new `Buffer` containing the given JavaScript string `string`. If -provided, the `encoding` parameter identifies the character encoding of -`string`. - -## See also - -- [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc` -- [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe` diff --git a/build/node_modules/buffer/AUTHORS.md b/build/node_modules/buffer/AUTHORS.md deleted file mode 100644 index 468aa190..00000000 --- a/build/node_modules/buffer/AUTHORS.md +++ /dev/null @@ -1,73 +0,0 @@ -# Authors - -#### Ordered by first contribution. - -- Romain Beauxis (toots@rastageeks.org) -- Tobias Koppers (tobias.koppers@googlemail.com) -- Janus (ysangkok@gmail.com) -- Rainer Dreyer (rdrey1@gmail.com) -- Tõnis Tiigi (tonistiigi@gmail.com) -- James Halliday (mail@substack.net) -- Michael Williamson (mike@zwobble.org) -- elliottcable (github@elliottcable.name) -- rafael (rvalle@livelens.net) -- Andrew Kelley (superjoe30@gmail.com) -- Andreas Madsen (amwebdk@gmail.com) -- Mike Brevoort (mike.brevoort@pearson.com) -- Brian White (mscdex@mscdex.net) -- Feross Aboukhadijeh (feross@feross.org) -- Ruben Verborgh (ruben@verborgh.org) -- eliang (eliang.cs@gmail.com) -- Jesse Tane (jesse.tane@gmail.com) -- Alfonso Boza (alfonso@cloud.com) -- Mathias Buus (mathiasbuus@gmail.com) -- Devon Govett (devongovett@gmail.com) -- Daniel Cousens (github@dcousens.com) -- Joseph Dykstra (josephdykstra@gmail.com) -- Parsha Pourkhomami (parshap+git@gmail.com) -- Damjan Košir (damjan.kosir@gmail.com) -- daverayment (dave.rayment@gmail.com) -- kawanet (u-suke@kawa.net) -- Linus Unnebäck (linus@folkdatorn.se) -- Nolan Lawson (nolan.lawson@gmail.com) -- Calvin Metcalf (calvin.metcalf@gmail.com) -- Koki Takahashi (hakatasiloving@gmail.com) -- Guy Bedford (guybedford@gmail.com) -- Jan Schär (jscissr@gmail.com) -- RaulTsc (tomescu.raul@gmail.com) -- Matthieu Monsch (monsch@alum.mit.edu) -- Dan Ehrenberg (littledan@chromium.org) -- Kirill Fomichev (fanatid@ya.ru) -- Yusuke Kawasaki (u-suke@kawa.net) -- DC (dcposch@dcpos.ch) -- John-David Dalton (john.david.dalton@gmail.com) -- adventure-yunfei (adventure030@gmail.com) -- Emil Bay (github@tixz.dk) -- Sam Sudar (sudar.sam@gmail.com) -- Volker Mische (volker.mische@gmail.com) -- David Walton (support@geekstocks.com) -- Сковорода Никита Андреевич (chalkerx@gmail.com) -- greenkeeper[bot] (greenkeeper[bot]@users.noreply.github.com) -- ukstv (sergey.ukustov@machinomy.com) -- Renée Kooi (renee@kooi.me) -- ranbochen (ranbochen@qq.com) -- Vladimir Borovik (bobahbdb@gmail.com) -- greenkeeper[bot] (23040076+greenkeeper[bot]@users.noreply.github.com) -- kumavis (aaron@kumavis.me) -- Sergey Ukustov (sergey.ukustov@machinomy.com) -- Fei Liu (liu.feiwood@gmail.com) -- Blaine Bublitz (blaine.bublitz@gmail.com) -- clement (clement@seald.io) -- Koushik Dutta (koushd@gmail.com) -- Jordan Harband (ljharb@gmail.com) -- Niklas Mischkulnig (mischnic@users.noreply.github.com) -- Nikolai Vavilov (vvnicholas@gmail.com) -- Fedor Nezhivoi (gyzerok@users.noreply.github.com) -- shuse2 (shus.toda@gmail.com) -- Peter Newman (peternewman@users.noreply.github.com) -- mathmakgakpak (44949126+mathmakgakpak@users.noreply.github.com) -- jkkang (jkkang@smartauth.kr) -- Deklan Webster (deklanw@gmail.com) -- Martin Heidegger (martin.heidegger@gmail.com) - -#### Generated by bin/update-authors.sh. diff --git a/build/node_modules/buffer/LICENSE b/build/node_modules/buffer/LICENSE deleted file mode 100644 index d6bf75dc..00000000 --- a/build/node_modules/buffer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Feross Aboukhadijeh, and other contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/buffer/README.md b/build/node_modules/buffer/README.md deleted file mode 100644 index 451e2357..00000000 --- a/build/node_modules/buffer/README.md +++ /dev/null @@ -1,410 +0,0 @@ -# buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] - -[travis-image]: https://img.shields.io/travis/feross/buffer/master.svg -[travis-url]: https://travis-ci.org/feross/buffer -[npm-image]: https://img.shields.io/npm/v/buffer.svg -[npm-url]: https://npmjs.org/package/buffer -[downloads-image]: https://img.shields.io/npm/dm/buffer.svg -[downloads-url]: https://npmjs.org/package/buffer -[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg -[standard-url]: https://standardjs.com - -#### The buffer module from [node.js](https://nodejs.org/), for the browser. - -[![saucelabs][saucelabs-image]][saucelabs-url] - -[saucelabs-image]: https://saucelabs.com/browser-matrix/buffer.svg -[saucelabs-url]: https://saucelabs.com/u/buffer - -With [browserify](http://browserify.org), simply `require('buffer')` or use the `Buffer` global and you will get this module. - -The goal is to provide an API that is 100% identical to -[node's Buffer API](https://nodejs.org/api/buffer.html). Read the -[official docs](https://nodejs.org/api/buffer.html) for the full list of properties, -instance methods, and class methods that are supported. - -## features - -- Manipulate binary data like a boss, in all browsers! -- Super fast. Backed by Typed Arrays (`Uint8Array`/`ArrayBuffer`, not `Object`) -- Extremely small bundle size (**6.75KB minified + gzipped**, 51.9KB with comments) -- Excellent browser support (Chrome, Firefox, Edge, Safari 11+, iOS 11+, Android, etc.) -- Preserves Node API exactly, with one minor difference (see below) -- Square-bracket `buf[4]` notation works! -- Does not modify any browser prototypes or put anything on `window` -- Comprehensive test suite (including all buffer tests from node.js core) - -## install - -To use this module directly (without browserify), install it: - -```bash -npm install buffer -``` - -This module was previously called **native-buffer-browserify**, but please use **buffer** -from now on. - -If you do not use a bundler, you can use the [standalone script](https://bundle.run/buffer). - -## usage - -The module's API is identical to node's `Buffer` API. Read the -[official docs](https://nodejs.org/api/buffer.html) for the full list of properties, -instance methods, and class methods that are supported. - -As mentioned above, `require('buffer')` or use the `Buffer` global with -[browserify](http://browserify.org) and this module will automatically be included -in your bundle. Almost any npm module will work in the browser, even if it assumes that -the node `Buffer` API will be available. - -To depend on this module explicitly (without browserify), require it like this: - -```js -var Buffer = require('buffer/').Buffer // note: the trailing slash is important! -``` - -To require this module explicitly, use `require('buffer/')` which tells the node.js module -lookup algorithm (also used by browserify) to use the **npm module** named `buffer` -instead of the **node.js core** module named `buffer`! - - -## how does it work? - -The Buffer constructor returns instances of `Uint8Array` that have their prototype -changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of `Uint8Array`, -so the returned instances will have all the node `Buffer` methods and the -`Uint8Array` methods. Square bracket notation works as expected -- it returns a -single octet. - -The `Uint8Array` prototype remains unmodified. - - -## tracking the latest node api - -This module tracks the Buffer API in the latest (unstable) version of node.js. The Buffer -API is considered **stable** in the -[node stability index](https://nodejs.org/docs/latest/api/documentation.html#documentation_stability_index), -so it is unlikely that there will ever be breaking changes. -Nonetheless, when/if the Buffer API changes in node, this module's API will change -accordingly. - -## related packages - -- [`buffer-reverse`](https://www.npmjs.com/package/buffer-reverse) - Reverse a buffer -- [`buffer-xor`](https://www.npmjs.com/package/buffer-xor) - Bitwise xor a buffer -- [`is-buffer`](https://www.npmjs.com/package/is-buffer) - Determine if an object is a Buffer without including the whole `Buffer` package - -## conversion packages - -### convert typed array to buffer - -Use [`typedarray-to-buffer`](https://www.npmjs.com/package/typedarray-to-buffer) to convert any kind of typed array to a `Buffer`. Does not perform a copy, so it's super fast. - -### convert buffer to typed array - -`Buffer` is a subclass of `Uint8Array` (which is a typed array). So there is no need to explicitly convert to typed array. Just use the buffer as a `Uint8Array`. - -### convert blob to buffer - -Use [`blob-to-buffer`](https://www.npmjs.com/package/blob-to-buffer) to convert a `Blob` to a `Buffer`. - -### convert buffer to blob - -To convert a `Buffer` to a `Blob`, use the `Blob` constructor: - -```js -var blob = new Blob([ buffer ]) -``` - -Optionally, specify a mimetype: - -```js -var blob = new Blob([ buffer ], { type: 'text/html' }) -``` - -### convert arraybuffer to buffer - -To convert an `ArrayBuffer` to a `Buffer`, use the `Buffer.from` function. Does not perform a copy, so it's super fast. - -```js -var buffer = Buffer.from(arrayBuffer) -``` - -### convert buffer to arraybuffer - -To convert a `Buffer` to an `ArrayBuffer`, use the `.buffer` property (which is present on all `Uint8Array` objects): - -```js -var arrayBuffer = buffer.buffer.slice( - buffer.byteOffset, buffer.byteOffset + buffer.byteLength -) -``` - -Alternatively, use the [`to-arraybuffer`](https://www.npmjs.com/package/to-arraybuffer) module. - -## performance - -See perf tests in `/perf`. - -`BrowserBuffer` is the browser `buffer` module (this repo). `Uint8Array` is included as a -sanity check (since `BrowserBuffer` uses `Uint8Array` under the hood, `Uint8Array` will -always be at least a bit faster). Finally, `NodeBuffer` is the node.js buffer module, -which is included to compare against. - -NOTE: Performance has improved since these benchmarks were taken. PR welcome to update the README. - -### Chrome 38 - -| Method | Operations | Accuracy | Sampled | Fastest | -|:-------|:-----------|:---------|:--------|:-------:| -| BrowserBuffer#bracket-notation | 11,457,464 ops/sec | ±0.86% | 66 | ✓ | -| Uint8Array#bracket-notation | 10,824,332 ops/sec | ±0.74% | 65 | | -| | | | | -| BrowserBuffer#concat | 450,532 ops/sec | ±0.76% | 68 | | -| Uint8Array#concat | 1,368,911 ops/sec | ±1.50% | 62 | ✓ | -| | | | | -| BrowserBuffer#copy(16000) | 903,001 ops/sec | ±0.96% | 67 | | -| Uint8Array#copy(16000) | 1,422,441 ops/sec | ±1.04% | 66 | ✓ | -| | | | | -| BrowserBuffer#copy(16) | 11,431,358 ops/sec | ±0.46% | 69 | | -| Uint8Array#copy(16) | 13,944,163 ops/sec | ±1.12% | 68 | ✓ | -| | | | | -| BrowserBuffer#new(16000) | 106,329 ops/sec | ±6.70% | 44 | | -| Uint8Array#new(16000) | 131,001 ops/sec | ±2.85% | 31 | ✓ | -| | | | | -| BrowserBuffer#new(16) | 1,554,491 ops/sec | ±1.60% | 65 | | -| Uint8Array#new(16) | 6,623,930 ops/sec | ±1.66% | 65 | ✓ | -| | | | | -| BrowserBuffer#readDoubleBE | 112,830 ops/sec | ±0.51% | 69 | ✓ | -| DataView#getFloat64 | 93,500 ops/sec | ±0.57% | 68 | | -| | | | | -| BrowserBuffer#readFloatBE | 146,678 ops/sec | ±0.95% | 68 | ✓ | -| DataView#getFloat32 | 99,311 ops/sec | ±0.41% | 67 | | -| | | | | -| BrowserBuffer#readUInt32LE | 843,214 ops/sec | ±0.70% | 69 | ✓ | -| DataView#getUint32 | 103,024 ops/sec | ±0.64% | 67 | | -| | | | | -| BrowserBuffer#slice | 1,013,941 ops/sec | ±0.75% | 67 | | -| Uint8Array#subarray | 1,903,928 ops/sec | ±0.53% | 67 | ✓ | -| | | | | -| BrowserBuffer#writeFloatBE | 61,387 ops/sec | ±0.90% | 67 | | -| DataView#setFloat32 | 141,249 ops/sec | ±0.40% | 66 | ✓ | - - -### Firefox 33 - -| Method | Operations | Accuracy | Sampled | Fastest | -|:-------|:-----------|:---------|:--------|:-------:| -| BrowserBuffer#bracket-notation | 20,800,421 ops/sec | ±1.84% | 60 | | -| Uint8Array#bracket-notation | 20,826,235 ops/sec | ±2.02% | 61 | ✓ | -| | | | | -| BrowserBuffer#concat | 153,076 ops/sec | ±2.32% | 61 | | -| Uint8Array#concat | 1,255,674 ops/sec | ±8.65% | 52 | ✓ | -| | | | | -| BrowserBuffer#copy(16000) | 1,105,312 ops/sec | ±1.16% | 63 | | -| Uint8Array#copy(16000) | 1,615,911 ops/sec | ±0.55% | 66 | ✓ | -| | | | | -| BrowserBuffer#copy(16) | 16,357,599 ops/sec | ±0.73% | 68 | | -| Uint8Array#copy(16) | 31,436,281 ops/sec | ±1.05% | 68 | ✓ | -| | | | | -| BrowserBuffer#new(16000) | 52,995 ops/sec | ±6.01% | 35 | | -| Uint8Array#new(16000) | 87,686 ops/sec | ±5.68% | 45 | ✓ | -| | | | | -| BrowserBuffer#new(16) | 252,031 ops/sec | ±1.61% | 66 | | -| Uint8Array#new(16) | 8,477,026 ops/sec | ±0.49% | 68 | ✓ | -| | | | | -| BrowserBuffer#readDoubleBE | 99,871 ops/sec | ±0.41% | 69 | | -| DataView#getFloat64 | 285,663 ops/sec | ±0.70% | 68 | ✓ | -| | | | | -| BrowserBuffer#readFloatBE | 115,540 ops/sec | ±0.42% | 69 | | -| DataView#getFloat32 | 288,722 ops/sec | ±0.82% | 68 | ✓ | -| | | | | -| BrowserBuffer#readUInt32LE | 633,926 ops/sec | ±1.08% | 67 | ✓ | -| DataView#getUint32 | 294,808 ops/sec | ±0.79% | 64 | | -| | | | | -| BrowserBuffer#slice | 349,425 ops/sec | ±0.46% | 69 | | -| Uint8Array#subarray | 5,965,819 ops/sec | ±0.60% | 65 | ✓ | -| | | | | -| BrowserBuffer#writeFloatBE | 59,980 ops/sec | ±0.41% | 67 | | -| DataView#setFloat32 | 317,634 ops/sec | ±0.63% | 68 | ✓ | - -### Safari 8 - -| Method | Operations | Accuracy | Sampled | Fastest | -|:-------|:-----------|:---------|:--------|:-------:| -| BrowserBuffer#bracket-notation | 10,279,729 ops/sec | ±2.25% | 56 | ✓ | -| Uint8Array#bracket-notation | 10,030,767 ops/sec | ±2.23% | 59 | | -| | | | | -| BrowserBuffer#concat | 144,138 ops/sec | ±1.38% | 65 | | -| Uint8Array#concat | 4,950,764 ops/sec | ±1.70% | 63 | ✓ | -| | | | | -| BrowserBuffer#copy(16000) | 1,058,548 ops/sec | ±1.51% | 64 | | -| Uint8Array#copy(16000) | 1,409,666 ops/sec | ±1.17% | 65 | ✓ | -| | | | | -| BrowserBuffer#copy(16) | 6,282,529 ops/sec | ±1.88% | 58 | | -| Uint8Array#copy(16) | 11,907,128 ops/sec | ±2.87% | 58 | ✓ | -| | | | | -| BrowserBuffer#new(16000) | 101,663 ops/sec | ±3.89% | 57 | | -| Uint8Array#new(16000) | 22,050,818 ops/sec | ±6.51% | 46 | ✓ | -| | | | | -| BrowserBuffer#new(16) | 176,072 ops/sec | ±2.13% | 64 | | -| Uint8Array#new(16) | 24,385,731 ops/sec | ±5.01% | 51 | ✓ | -| | | | | -| BrowserBuffer#readDoubleBE | 41,341 ops/sec | ±1.06% | 67 | | -| DataView#getFloat64 | 322,280 ops/sec | ±0.84% | 68 | ✓ | -| | | | | -| BrowserBuffer#readFloatBE | 46,141 ops/sec | ±1.06% | 65 | | -| DataView#getFloat32 | 337,025 ops/sec | ±0.43% | 69 | ✓ | -| | | | | -| BrowserBuffer#readUInt32LE | 151,551 ops/sec | ±1.02% | 66 | | -| DataView#getUint32 | 308,278 ops/sec | ±0.94% | 67 | ✓ | -| | | | | -| BrowserBuffer#slice | 197,365 ops/sec | ±0.95% | 66 | | -| Uint8Array#subarray | 9,558,024 ops/sec | ±3.08% | 58 | ✓ | -| | | | | -| BrowserBuffer#writeFloatBE | 17,518 ops/sec | ±1.03% | 63 | | -| DataView#setFloat32 | 319,751 ops/sec | ±0.48% | 68 | ✓ | - - -### Node 0.11.14 - -| Method | Operations | Accuracy | Sampled | Fastest | -|:-------|:-----------|:---------|:--------|:-------:| -| BrowserBuffer#bracket-notation | 10,489,828 ops/sec | ±3.25% | 90 | | -| Uint8Array#bracket-notation | 10,534,884 ops/sec | ±0.81% | 92 | ✓ | -| NodeBuffer#bracket-notation | 10,389,910 ops/sec | ±0.97% | 87 | | -| | | | | -| BrowserBuffer#concat | 487,830 ops/sec | ±2.58% | 88 | | -| Uint8Array#concat | 1,814,327 ops/sec | ±1.28% | 88 | ✓ | -| NodeBuffer#concat | 1,636,523 ops/sec | ±1.88% | 73 | | -| | | | | -| BrowserBuffer#copy(16000) | 1,073,665 ops/sec | ±0.77% | 90 | | -| Uint8Array#copy(16000) | 1,348,517 ops/sec | ±0.84% | 89 | ✓ | -| NodeBuffer#copy(16000) | 1,289,533 ops/sec | ±0.82% | 93 | | -| | | | | -| BrowserBuffer#copy(16) | 12,782,706 ops/sec | ±0.74% | 85 | | -| Uint8Array#copy(16) | 14,180,427 ops/sec | ±0.93% | 92 | ✓ | -| NodeBuffer#copy(16) | 11,083,134 ops/sec | ±1.06% | 89 | | -| | | | | -| BrowserBuffer#new(16000) | 141,678 ops/sec | ±3.30% | 67 | | -| Uint8Array#new(16000) | 161,491 ops/sec | ±2.96% | 60 | | -| NodeBuffer#new(16000) | 292,699 ops/sec | ±3.20% | 55 | ✓ | -| | | | | -| BrowserBuffer#new(16) | 1,655,466 ops/sec | ±2.41% | 82 | | -| Uint8Array#new(16) | 14,399,926 ops/sec | ±0.91% | 94 | ✓ | -| NodeBuffer#new(16) | 3,894,696 ops/sec | ±0.88% | 92 | | -| | | | | -| BrowserBuffer#readDoubleBE | 109,582 ops/sec | ±0.75% | 93 | ✓ | -| DataView#getFloat64 | 91,235 ops/sec | ±0.81% | 90 | | -| NodeBuffer#readDoubleBE | 88,593 ops/sec | ±0.96% | 81 | | -| | | | | -| BrowserBuffer#readFloatBE | 139,854 ops/sec | ±1.03% | 85 | ✓ | -| DataView#getFloat32 | 98,744 ops/sec | ±0.80% | 89 | | -| NodeBuffer#readFloatBE | 92,769 ops/sec | ±0.94% | 93 | | -| | | | | -| BrowserBuffer#readUInt32LE | 710,861 ops/sec | ±0.82% | 92 | | -| DataView#getUint32 | 117,893 ops/sec | ±0.84% | 91 | | -| NodeBuffer#readUInt32LE | 851,412 ops/sec | ±0.72% | 93 | ✓ | -| | | | | -| BrowserBuffer#slice | 1,673,877 ops/sec | ±0.73% | 94 | | -| Uint8Array#subarray | 6,919,243 ops/sec | ±0.67% | 90 | ✓ | -| NodeBuffer#slice | 4,617,604 ops/sec | ±0.79% | 93 | | -| | | | | -| BrowserBuffer#writeFloatBE | 66,011 ops/sec | ±0.75% | 93 | | -| DataView#setFloat32 | 127,760 ops/sec | ±0.72% | 93 | ✓ | -| NodeBuffer#writeFloatBE | 103,352 ops/sec | ±0.83% | 93 | | - -### iojs 1.8.1 - -| Method | Operations | Accuracy | Sampled | Fastest | -|:-------|:-----------|:---------|:--------|:-------:| -| BrowserBuffer#bracket-notation | 10,990,488 ops/sec | ±1.11% | 91 | | -| Uint8Array#bracket-notation | 11,268,757 ops/sec | ±0.65% | 97 | | -| NodeBuffer#bracket-notation | 11,353,260 ops/sec | ±0.83% | 94 | ✓ | -| | | | | -| BrowserBuffer#concat | 378,954 ops/sec | ±0.74% | 94 | | -| Uint8Array#concat | 1,358,288 ops/sec | ±0.97% | 87 | | -| NodeBuffer#concat | 1,934,050 ops/sec | ±1.11% | 78 | ✓ | -| | | | | -| BrowserBuffer#copy(16000) | 894,538 ops/sec | ±0.56% | 84 | | -| Uint8Array#copy(16000) | 1,442,656 ops/sec | ±0.71% | 96 | | -| NodeBuffer#copy(16000) | 1,457,898 ops/sec | ±0.53% | 92 | ✓ | -| | | | | -| BrowserBuffer#copy(16) | 12,870,457 ops/sec | ±0.67% | 95 | | -| Uint8Array#copy(16) | 16,643,989 ops/sec | ±0.61% | 93 | ✓ | -| NodeBuffer#copy(16) | 14,885,848 ops/sec | ±0.74% | 94 | | -| | | | | -| BrowserBuffer#new(16000) | 109,264 ops/sec | ±4.21% | 63 | | -| Uint8Array#new(16000) | 138,916 ops/sec | ±1.87% | 61 | | -| NodeBuffer#new(16000) | 281,449 ops/sec | ±3.58% | 51 | ✓ | -| | | | | -| BrowserBuffer#new(16) | 1,362,935 ops/sec | ±0.56% | 99 | | -| Uint8Array#new(16) | 6,193,090 ops/sec | ±0.64% | 95 | ✓ | -| NodeBuffer#new(16) | 4,745,425 ops/sec | ±1.56% | 90 | | -| | | | | -| BrowserBuffer#readDoubleBE | 118,127 ops/sec | ±0.59% | 93 | ✓ | -| DataView#getFloat64 | 107,332 ops/sec | ±0.65% | 91 | | -| NodeBuffer#readDoubleBE | 116,274 ops/sec | ±0.94% | 95 | | -| | | | | -| BrowserBuffer#readFloatBE | 150,326 ops/sec | ±0.58% | 95 | ✓ | -| DataView#getFloat32 | 110,541 ops/sec | ±0.57% | 98 | | -| NodeBuffer#readFloatBE | 121,599 ops/sec | ±0.60% | 87 | | -| | | | | -| BrowserBuffer#readUInt32LE | 814,147 ops/sec | ±0.62% | 93 | | -| DataView#getUint32 | 137,592 ops/sec | ±0.64% | 90 | | -| NodeBuffer#readUInt32LE | 931,650 ops/sec | ±0.71% | 96 | ✓ | -| | | | | -| BrowserBuffer#slice | 878,590 ops/sec | ±0.68% | 93 | | -| Uint8Array#subarray | 2,843,308 ops/sec | ±1.02% | 90 | | -| NodeBuffer#slice | 4,998,316 ops/sec | ±0.68% | 90 | ✓ | -| | | | | -| BrowserBuffer#writeFloatBE | 65,927 ops/sec | ±0.74% | 93 | | -| DataView#setFloat32 | 139,823 ops/sec | ±0.97% | 89 | ✓ | -| NodeBuffer#writeFloatBE | 135,763 ops/sec | ±0.65% | 96 | | -| | | | | - -## Testing the project - -First, install the project: - - npm install - -Then, to run tests in Node.js, run: - - npm run test-node - -To test locally in a browser, you can run: - - npm run test-browser-es5-local # For ES5 browsers that don't support ES6 - npm run test-browser-es6-local # For ES6 compliant browsers - -This will print out a URL that you can then open in a browser to run the tests, using [airtap](https://www.npmjs.com/package/airtap). - -To run automated browser tests using Saucelabs, ensure that your `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` environment variables are set, then run: - - npm test - -This is what's run in Travis, to check against various browsers. The list of browsers is kept in the `bin/airtap-es5.yml` and `bin/airtap-es6.yml` files. - -## JavaScript Standard Style - -This module uses [JavaScript Standard Style](https://github.com/feross/standard). - -[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) - -To test that the code conforms to the style, `npm install` and run: - - ./node_modules/.bin/standard - -## credit - -This was originally forked from [buffer-browserify](https://github.com/toots/buffer-browserify). - -## Security Policies and Procedures - -The `buffer` team and community take all security bugs in `buffer` seriously. Please see our [security policies and procedures](https://github.com/feross/security) document to learn how to report issues. - -## license - -MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org), and other contributors. Originally forked from an MIT-licensed module by Romain Beauxis. diff --git a/build/node_modules/buffer/index.d.ts b/build/node_modules/buffer/index.d.ts deleted file mode 100644 index 07096a2f..00000000 --- a/build/node_modules/buffer/index.d.ts +++ /dev/null @@ -1,194 +0,0 @@ -export class Buffer extends Uint8Array { - length: number - write(string: string, offset?: number, length?: number, encoding?: string): number; - toString(encoding?: string, start?: number, end?: number): string; - toJSON(): { type: 'Buffer', data: any[] }; - equals(otherBuffer: Buffer): boolean; - compare(otherBuffer: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; - copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; - slice(start?: number, end?: number): Buffer; - writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; - readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; - readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; - readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; - readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; - readUInt8(offset: number, noAssert?: boolean): number; - readUInt16LE(offset: number, noAssert?: boolean): number; - readUInt16BE(offset: number, noAssert?: boolean): number; - readUInt32LE(offset: number, noAssert?: boolean): number; - readUInt32BE(offset: number, noAssert?: boolean): number; - readBigUInt64LE(offset: number): BigInt; - readBigUInt64BE(offset: number): BigInt; - readInt8(offset: number, noAssert?: boolean): number; - readInt16LE(offset: number, noAssert?: boolean): number; - readInt16BE(offset: number, noAssert?: boolean): number; - readInt32LE(offset: number, noAssert?: boolean): number; - readInt32BE(offset: number, noAssert?: boolean): number; - readBigInt64LE(offset: number): BigInt; - readBigInt64BE(offset: number): BigInt; - readFloatLE(offset: number, noAssert?: boolean): number; - readFloatBE(offset: number, noAssert?: boolean): number; - readDoubleLE(offset: number, noAssert?: boolean): number; - readDoubleBE(offset: number, noAssert?: boolean): number; - reverse(): this; - swap16(): Buffer; - swap32(): Buffer; - swap64(): Buffer; - writeUInt8(value: number, offset: number, noAssert?: boolean): number; - writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; - writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; - writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; - writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; - writeBigUInt64LE(value: number, offset: number): BigInt; - writeBigUInt64BE(value: number, offset: number): BigInt; - writeInt8(value: number, offset: number, noAssert?: boolean): number; - writeInt16LE(value: number, offset: number, noAssert?: boolean): number; - writeInt16BE(value: number, offset: number, noAssert?: boolean): number; - writeInt32LE(value: number, offset: number, noAssert?: boolean): number; - writeInt32BE(value: number, offset: number, noAssert?: boolean): number; - writeBigInt64LE(value: number, offset: number): BigInt; - writeBigInt64BE(value: number, offset: number): BigInt; - writeFloatLE(value: number, offset: number, noAssert?: boolean): number; - writeFloatBE(value: number, offset: number, noAssert?: boolean): number; - writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; - writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; - fill(value: any, offset?: number, end?: number): this; - indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; - lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; - includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; - - /** - * Allocates a new buffer containing the given {str}. - * - * @param str String to store in buffer. - * @param encoding encoding to use, optional. Default is 'utf8' - */ - constructor (str: string, encoding?: string); - /** - * Allocates a new buffer of {size} octets. - * - * @param size count of octets to allocate. - */ - constructor (size: number); - /** - * Allocates a new buffer containing the given {array} of octets. - * - * @param array The octets to store. - */ - constructor (array: Uint8Array); - /** - * Produces a Buffer backed by the same allocated memory as - * the given {ArrayBuffer}. - * - * - * @param arrayBuffer The ArrayBuffer with which to share memory. - */ - constructor (arrayBuffer: ArrayBuffer); - /** - * Allocates a new buffer containing the given {array} of octets. - * - * @param array The octets to store. - */ - constructor (array: any[]); - /** - * Copies the passed {buffer} data onto a new {Buffer} instance. - * - * @param buffer The buffer to copy. - */ - constructor (buffer: Buffer); - prototype: Buffer; - /** - * Allocates a new Buffer using an {array} of octets. - * - * @param array - */ - static from(array: any[]): Buffer; - /** - * When passed a reference to the .buffer property of a TypedArray instance, - * the newly created Buffer will share the same allocated memory as the TypedArray. - * The optional {byteOffset} and {length} arguments specify a memory range - * within the {arrayBuffer} that will be shared by the Buffer. - * - * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() - * @param byteOffset - * @param length - */ - static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; - /** - * Copies the passed {buffer} data onto a new Buffer instance. - * - * @param buffer - */ - static from(buffer: Buffer | Uint8Array): Buffer; - /** - * Creates a new Buffer containing the given JavaScript string {str}. - * If provided, the {encoding} parameter identifies the character encoding. - * If not provided, {encoding} defaults to 'utf8'. - * - * @param str - */ - static from(str: string, encoding?: string): Buffer; - /** - * Returns true if {obj} is a Buffer - * - * @param obj object to test. - */ - static isBuffer(obj: any): obj is Buffer; - /** - * Returns true if {encoding} is a valid encoding argument. - * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' - * - * @param encoding string to test. - */ - static isEncoding(encoding: string): boolean; - /** - * Gives the actual byte length of a string. encoding defaults to 'utf8'. - * This is not the same as String.prototype.length since that returns the number of characters in a string. - * - * @param string string to test. - * @param encoding encoding used to evaluate (defaults to 'utf8') - */ - static byteLength(string: string, encoding?: string): number; - /** - * Returns a buffer which is the result of concatenating all the buffers in the list together. - * - * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. - * If the list has exactly one item, then the first item of the list is returned. - * If the list has more than one item, then a new Buffer is created. - * - * @param list An array of Buffer objects to concatenate - * @param totalLength Total length of the buffers when concatenated. - * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. - */ - static concat(list: Uint8Array[], totalLength?: number): Buffer; - /** - * The same as buf1.compare(buf2). - */ - static compare(buf1: Uint8Array, buf2: Uint8Array): number; - /** - * Allocates a new buffer of {size} octets. - * - * @param size count of octets to allocate. - * @param fill if specified, buffer will be initialized by calling buf.fill(fill). - * If parameter is omitted, buffer will be filled with zeros. - * @param encoding encoding used for call to buf.fill while initializing - */ - static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; - /** - * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents - * of the newly created Buffer are unknown and may contain sensitive data. - * - * @param size count of octets to allocate - */ - static allocUnsafe(size: number): Buffer; - /** - * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents - * of the newly created Buffer are unknown and may contain sensitive data. - * - * @param size count of octets to allocate - */ - static allocUnsafeSlow(size: number): Buffer; -} diff --git a/build/node_modules/buffer/index.js b/build/node_modules/buffer/index.js deleted file mode 100644 index 7a0e9c2a..00000000 --- a/build/node_modules/buffer/index.js +++ /dev/null @@ -1,2106 +0,0 @@ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - -'use strict' - -const base64 = require('base64-js') -const ieee754 = require('ieee754') -const customInspectSymbol = - (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation - ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation - : null - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 - -const K_MAX_LENGTH = 0x7fffffff -exports.kMaxLength = K_MAX_LENGTH - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ -Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() - -if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) -} - -function typedArraySupport () { - // Can typed array instances can be augmented? - try { - const arr = new Uint8Array(1) - const proto = { foo: function () { return 42 } } - Object.setPrototypeOf(proto, Uint8Array.prototype) - Object.setPrototypeOf(arr, proto) - return arr.foo() === 42 - } catch (e) { - return false - } -} - -Object.defineProperty(Buffer.prototype, 'parent', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.buffer - } -}) - -Object.defineProperty(Buffer.prototype, 'offset', { - enumerable: true, - get: function () { - if (!Buffer.isBuffer(this)) return undefined - return this.byteOffset - } -}) - -function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('The value "' + length + '" is invalid for option "size"') - } - // Return an augmented `Uint8Array` instance - const buf = new Uint8Array(length) - Object.setPrototypeOf(buf, Buffer.prototype) - return buf -} - -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - -function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new TypeError( - 'The "string" argument must be of type string. Received type number' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) -} - -Buffer.poolSize = 8192 // not used by this implementation - -function from (value, encodingOrOffset, length) { - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - if (ArrayBuffer.isView(value)) { - return fromArrayView(value) - } - - if (value == null) { - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) - } - - if (isInstance(value, ArrayBuffer) || - (value && isInstance(value.buffer, ArrayBuffer))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof SharedArrayBuffer !== 'undefined' && - (isInstance(value, SharedArrayBuffer) || - (value && isInstance(value.buffer, SharedArrayBuffer)))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'number') { - throw new TypeError( - 'The "value" argument must not be of type number. Received type number' - ) - } - - const valueOf = value.valueOf && value.valueOf() - if (valueOf != null && valueOf !== value) { - return Buffer.from(valueOf, encodingOrOffset, length) - } - - const b = fromObject(value) - if (b) return b - - if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && - typeof value[Symbol.toPrimitive] === 'function') { - return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length) - } - - throw new TypeError( - 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + - 'or Array-like Object. Received type ' + (typeof value) - ) -} - -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) -} - -// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: -// https://github.com/feross/buffer/pull/148 -Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype) -Object.setPrototypeOf(Buffer, Uint8Array) - -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be of type number') - } else if (size < 0) { - throw new RangeError('The value "' + size + '" is invalid for option "size"') - } -} - -function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpreted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) -} - -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) -} - -function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) -} - -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) -} - -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - - const length = byteLength(string, encoding) | 0 - let buf = createBuffer(length) - - const actual = buf.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } - - return buf -} - -function fromArrayLike (array) { - const length = array.length < 0 ? 0 : checked(array.length) | 0 - const buf = createBuffer(length) - for (let i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf -} - -function fromArrayView (arrayView) { - if (isInstance(arrayView, Uint8Array)) { - const copy = new Uint8Array(arrayView) - return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength) - } - return fromArrayLike(arrayView) -} - -function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('"offset" is outside of buffer bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('"length" is outside of buffer bounds') - } - - let buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } - - // Return an augmented `Uint8Array` instance - Object.setPrototypeOf(buf, Buffer.prototype) - - return buf -} - -function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - const len = checked(obj.length) | 0 - const buf = createBuffer(len) - - if (buf.length === 0) { - return buf - } - - obj.copy(buf, 0, 0, len) - return buf - } - - if (obj.length !== undefined) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } - - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } -} - -function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} - -Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true && - b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false -} - -Buffer.compare = function compare (a, b) { - if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) - if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError( - 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' - ) - } - - if (a === b) return 0 - - let x = a.length - let y = b.length - - for (let i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - let i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - const buffer = Buffer.allocUnsafe(length) - let pos = 0 - for (i = 0; i < list.length; ++i) { - let buf = list[i] - if (isInstance(buf, Uint8Array)) { - if (pos + buf.length > buffer.length) { - if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) - buf.copy(buffer, pos) - } else { - Uint8Array.prototype.set.call( - buffer, - buf, - pos - ) - } - } else if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } else { - buf.copy(buffer, pos) - } - pos += buf.length - } - return buffer -} - -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - throw new TypeError( - 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + - 'Received type ' + typeof string - ) - } - - const len = string.length - const mustMatch = (arguments.length > 2 && arguments[2] === true) - if (!mustMatch && len === 0) return 0 - - // Use a for loop to avoid recursion - let loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) { - return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 - } - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - let loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coercion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) -// to detect a Buffer instance. It's not possible to use `instanceof Buffer` -// reliably in a browserify context because there could be multiple different -// copies of the 'buffer' package in use. This method works even for Buffer -// instances that were created from another copy of the `buffer` package. -// See: https://github.com/feross/buffer/issues/154 -Buffer.prototype._isBuffer = true - -function swap (b, n, m) { - const i = b[n] - b[n] = b[m] - b[m] = i -} - -Buffer.prototype.swap16 = function swap16 () { - const len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (let i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - const len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (let i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - const len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (let i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} - -Buffer.prototype.toString = function toString () { - const length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.toLocaleString = Buffer.prototype.toString - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - let str = '' - const max = exports.INSPECT_MAX_BYTES - str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() - if (this.length > max) str += ' ... ' - return '' -} -if (customInspectSymbol) { - Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect -} - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (isInstance(target, Uint8Array)) { - target = Buffer.from(target, target.offset, target.byteLength) - } - if (!Buffer.isBuffer(target)) { - throw new TypeError( - 'The "target" argument must be one of type Buffer or Uint8Array. ' + - 'Received type ' + (typeof target) - ) - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - let x = thisEnd - thisStart - let y = end - start - const len = Math.min(x, y) - - const thisCopy = this.slice(thisStart, thisEnd) - const targetCopy = target.slice(start, end) - - for (let i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - let indexSize = 1 - let arrLength = arr.length - let valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - let i - if (dir) { - let foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - let found = true - for (let j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - const remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - const strLen = string.length - - if (length > strLen / 2) { - length = strLen / 2 - } - let i - for (i = 0; i < length; ++i) { - const parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - const remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - let loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - case 'latin1': - case 'binary': - return asciiWrite(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - const res = [] - - let i = start - while (i < end) { - const firstByte = buf[i] - let codePoint = null - let bytesPerSequence = (firstByte > 0xEF) - ? 4 - : (firstByte > 0xDF) - ? 3 - : (firstByte > 0xBF) - ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - let secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -const MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - const len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - let res = '' - let i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - let ret = '' - end = Math.min(buf.length, end) - - for (let i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function latin1Slice (buf, start, end) { - let ret = '' - end = Math.min(buf.length, end) - - for (let i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - const len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - let out = '' - for (let i = start; i < end; ++i) { - out += hexSliceLookupTable[buf[i]] - } - return out -} - -function utf16leSlice (buf, start, end) { - const bytes = buf.slice(start, end) - let res = '' - // If bytes.length is odd, the last 8 bits must be ignored (same as node.js) - for (let i = 0; i < bytes.length - 1; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - const len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - const newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - Object.setPrototypeOf(newBuf, Buffer.prototype) - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUintLE = -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - let val = this[offset] - let mul = 1 - let i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUintBE = -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - let val = this[offset + --byteLength] - let mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUint8 = -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUint16LE = -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUint16BE = -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUint32LE = -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUint32BE = -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const lo = first + - this[++offset] * 2 ** 8 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 24 - - const hi = this[++offset] + - this[++offset] * 2 ** 8 + - this[++offset] * 2 ** 16 + - last * 2 ** 24 - - return BigInt(lo) + (BigInt(hi) << BigInt(32)) -}) - -Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const hi = first * 2 ** 24 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - this[++offset] - - const lo = this[++offset] * 2 ** 24 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - last - - return (BigInt(hi) << BigInt(32)) + BigInt(lo) -}) - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - let val = this[offset] - let mul = 1 - let i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - let i = byteLength - let mul = 1 - let val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - const val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - const val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const val = this[offset + 4] + - this[offset + 5] * 2 ** 8 + - this[offset + 6] * 2 ** 16 + - (last << 24) // Overflow - - return (BigInt(val) << BigInt(32)) + - BigInt(first + - this[++offset] * 2 ** 8 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 24) -}) - -Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) { - offset = offset >>> 0 - validateNumber(offset, 'offset') - const first = this[offset] - const last = this[offset + 7] - if (first === undefined || last === undefined) { - boundsError(offset, this.length - 8) - } - - const val = (first << 24) + // Overflow - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - this[++offset] - - return (BigInt(val) << BigInt(32)) + - BigInt(this[++offset] * 2 ** 24 + - this[++offset] * 2 ** 16 + - this[++offset] * 2 ** 8 + - last) -}) - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') -} - -Buffer.prototype.writeUintLE = -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - const maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - let mul = 1 - let i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUintBE = -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - const maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - let i = byteLength - 1 - let mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUint8 = -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeUint16LE = -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 -} - -Buffer.prototype.writeUint16BE = -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 -} - -Buffer.prototype.writeUint32LE = -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 -} - -Buffer.prototype.writeUint32BE = -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 -} - -function wrtBigUInt64LE (buf, value, offset, min, max) { - checkIntBI(value, min, max, buf, offset, 7) - - let lo = Number(value & BigInt(0xffffffff)) - buf[offset++] = lo - lo = lo >> 8 - buf[offset++] = lo - lo = lo >> 8 - buf[offset++] = lo - lo = lo >> 8 - buf[offset++] = lo - let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) - buf[offset++] = hi - hi = hi >> 8 - buf[offset++] = hi - hi = hi >> 8 - buf[offset++] = hi - hi = hi >> 8 - buf[offset++] = hi - return offset -} - -function wrtBigUInt64BE (buf, value, offset, min, max) { - checkIntBI(value, min, max, buf, offset, 7) - - let lo = Number(value & BigInt(0xffffffff)) - buf[offset + 7] = lo - lo = lo >> 8 - buf[offset + 6] = lo - lo = lo >> 8 - buf[offset + 5] = lo - lo = lo >> 8 - buf[offset + 4] = lo - let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) - buf[offset + 3] = hi - hi = hi >> 8 - buf[offset + 2] = hi - hi = hi >> 8 - buf[offset + 1] = hi - hi = hi >> 8 - buf[offset] = hi - return offset + 8 -} - -Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) { - return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) -}) - -Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) { - return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) -}) - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - const limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - let i = 0 - let mul = 1 - let sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - const limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - let i = byteLength - 1 - let mul = 1 - let sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 -} - -Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) { - return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) -}) - -Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) { - return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) -}) - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('Index out of range') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - const len = end - start - - if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { - // Use built-in when available, missing from IE11 - this.copyWithin(targetStart, start, end) - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, end), - targetStart - ) - } - - return len -} - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - if (val.length === 1) { - const code = val.charCodeAt(0) - if ((encoding === 'utf8' && code < 128) || - encoding === 'latin1') { - // Fast path: If `val` fits into a single byte, use that numeric value. - val = code - } - } - } else if (typeof val === 'number') { - val = val & 255 - } else if (typeof val === 'boolean') { - val = Number(val) - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - let i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - const bytes = Buffer.isBuffer(val) - ? val - : Buffer.from(val, encoding) - const len = bytes.length - if (len === 0) { - throw new TypeError('The value "' + val + - '" is invalid for argument "value"') - } - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this -} - -// CUSTOM ERRORS -// ============= - -// Simplified versions from Node, changed for Buffer-only usage -const errors = {} -function E (sym, getMessage, Base) { - errors[sym] = class NodeError extends Base { - constructor () { - super() - - Object.defineProperty(this, 'message', { - value: getMessage.apply(this, arguments), - writable: true, - configurable: true - }) - - // Add the error code to the name to include it in the stack trace. - this.name = `${this.name} [${sym}]` - // Access the stack to generate the error message including the error code - // from the name. - this.stack // eslint-disable-line no-unused-expressions - // Reset the name to the actual name. - delete this.name - } - - get code () { - return sym - } - - set code (value) { - Object.defineProperty(this, 'code', { - configurable: true, - enumerable: true, - value, - writable: true - }) - } - - toString () { - return `${this.name} [${sym}]: ${this.message}` - } - } -} - -E('ERR_BUFFER_OUT_OF_BOUNDS', - function (name) { - if (name) { - return `${name} is outside of buffer bounds` - } - - return 'Attempt to access memory outside buffer bounds' - }, RangeError) -E('ERR_INVALID_ARG_TYPE', - function (name, actual) { - return `The "${name}" argument must be of type number. Received type ${typeof actual}` - }, TypeError) -E('ERR_OUT_OF_RANGE', - function (str, range, input) { - let msg = `The value of "${str}" is out of range.` - let received = input - if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { - received = addNumericalSeparator(String(input)) - } else if (typeof input === 'bigint') { - received = String(input) - if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { - received = addNumericalSeparator(received) - } - received += 'n' - } - msg += ` It must be ${range}. Received ${received}` - return msg - }, RangeError) - -function addNumericalSeparator (val) { - let res = '' - let i = val.length - const start = val[0] === '-' ? 1 : 0 - for (; i >= start + 4; i -= 3) { - res = `_${val.slice(i - 3, i)}${res}` - } - return `${val.slice(0, i)}${res}` -} - -// CHECK FUNCTIONS -// =============== - -function checkBounds (buf, offset, byteLength) { - validateNumber(offset, 'offset') - if (buf[offset] === undefined || buf[offset + byteLength] === undefined) { - boundsError(offset, buf.length - (byteLength + 1)) - } -} - -function checkIntBI (value, min, max, buf, offset, byteLength) { - if (value > max || value < min) { - const n = typeof min === 'bigint' ? 'n' : '' - let range - if (byteLength > 3) { - if (min === 0 || min === BigInt(0)) { - range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}` - } else { - range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + - `${(byteLength + 1) * 8 - 1}${n}` - } - } else { - range = `>= ${min}${n} and <= ${max}${n}` - } - throw new errors.ERR_OUT_OF_RANGE('value', range, value) - } - checkBounds(buf, offset, byteLength) -} - -function validateNumber (value, name) { - if (typeof value !== 'number') { - throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value) - } -} - -function boundsError (value, length, type) { - if (Math.floor(value) !== value) { - validateNumber(value, type) - throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value) - } - - if (length < 0) { - throw new errors.ERR_BUFFER_OUT_OF_BOUNDS() - } - - throw new errors.ERR_OUT_OF_RANGE(type || 'offset', - `>= ${type ? 1 : 0} and <= ${length}`, - value) -} - -// HELPER FUNCTIONS -// ================ - -const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node takes equal signs as end of the Base64 encoding - str = str.split('=')[0] - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function utf8ToBytes (string, units) { - units = units || Infinity - let codePoint - const length = string.length - let leadSurrogate = null - const bytes = [] - - for (let i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - const byteArray = [] - for (let i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - let c, hi, lo - const byteArray = [] - for (let i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - let i - for (i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass -// the `instanceof` check but they should be treated as of that type. -// See: https://github.com/feross/buffer/issues/166 -function isInstance (obj, type) { - return obj instanceof type || - (obj != null && obj.constructor != null && obj.constructor.name != null && - obj.constructor.name === type.name) -} -function numberIsNaN (obj) { - // For IE11 support - return obj !== obj // eslint-disable-line no-self-compare -} - -// Create lookup table for `toString('hex')` -// See: https://github.com/feross/buffer/issues/219 -const hexSliceLookupTable = (function () { - const alphabet = '0123456789abcdef' - const table = new Array(256) - for (let i = 0; i < 16; ++i) { - const i16 = i * 16 - for (let j = 0; j < 16; ++j) { - table[i16 + j] = alphabet[i] + alphabet[j] - } - } - return table -})() - -// Return not function with Error if BigInt not supported -function defineBigIntMethod (fn) { - return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn -} - -function BufferBigIntNotDefined () { - throw new Error('BigInt not supported') -} diff --git a/build/node_modules/buffer/package.json b/build/node_modules/buffer/package.json deleted file mode 100644 index ca1ad9a7..00000000 --- a/build/node_modules/buffer/package.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "buffer", - "description": "Node.js Buffer API, for the browser", - "version": "6.0.3", - "author": { - "name": "Feross Aboukhadijeh", - "email": "feross@feross.org", - "url": "https://feross.org" - }, - "bugs": { - "url": "https://github.com/feross/buffer/issues" - }, - "contributors": [ - "Romain Beauxis ", - "James Halliday " - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - }, - "devDependencies": { - "airtap": "^3.0.0", - "benchmark": "^2.1.4", - "browserify": "^17.0.0", - "concat-stream": "^2.0.0", - "hyperquest": "^2.1.3", - "is-buffer": "^2.0.5", - "is-nan": "^1.3.0", - "split": "^1.0.1", - "standard": "*", - "tape": "^5.0.1", - "through2": "^4.0.2", - "uglify-js": "^3.11.5" - }, - "homepage": "https://github.com/feross/buffer", - "jspm": { - "map": { - "./index.js": { - "node": "@node/buffer" - } - } - }, - "keywords": [ - "arraybuffer", - "browser", - "browserify", - "buffer", - "compatible", - "dataview", - "uint8array" - ], - "license": "MIT", - "main": "index.js", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "git://github.com/feross/buffer.git" - }, - "scripts": { - "perf": "browserify --debug perf/bracket-notation.js > perf/bundle.js && open perf/index.html", - "perf-node": "node perf/bracket-notation.js && node perf/concat.js && node perf/copy-big.js && node perf/copy.js && node perf/new-big.js && node perf/new.js && node perf/readDoubleBE.js && node perf/readFloatBE.js && node perf/readUInt32LE.js && node perf/slice.js && node perf/writeFloatBE.js", - "size": "browserify -r ./ | uglifyjs -c -m | gzip | wc -c", - "test": "standard && node ./bin/test.js", - "test-browser-old": "airtap -- test/*.js", - "test-browser-old-local": "airtap --local -- test/*.js", - "test-browser-new": "airtap -- test/*.js test/node/*.js", - "test-browser-new-local": "airtap --local -- test/*.js test/node/*.js", - "test-node": "tape test/*.js test/node/*.js", - "update-authors": "./bin/update-authors.sh" - }, - "standard": { - "ignore": [ - "test/node/**/*.js", - "test/common.js", - "test/_polyfill.js", - "perf/**/*.js" - ] - }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] -} diff --git a/build/node_modules/builtin-modules/builtin-modules.json b/build/node_modules/builtin-modules/builtin-modules.json deleted file mode 100644 index f2f4dbd5..00000000 --- a/build/node_modules/builtin-modules/builtin-modules.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - "assert", - "async_hooks", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "diagnostics_channel", - "dns", - "domain", - "events", - "fs", - "http", - "http2", - "https", - "inspector", - "module", - "net", - "os", - "path", - "perf_hooks", - "process", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "string_decoder", - "timers", - "tls", - "trace_events", - "tty", - "url", - "util", - "v8", - "vm", - "wasi", - "worker_threads", - "zlib" -] diff --git a/build/node_modules/builtin-modules/index.d.ts b/build/node_modules/builtin-modules/index.d.ts deleted file mode 100644 index 765dcfec..00000000 --- a/build/node_modules/builtin-modules/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** -List of the Node.js builtin modules. - -@example -``` -import builtinModules = require('builtin-modules'); - -console.log(builtinModules); -//=> ['assert', 'buffer', …] -``` -*/ -declare const builtinModules: readonly string[]; - -export = builtinModules; diff --git a/build/node_modules/builtin-modules/index.js b/build/node_modules/builtin-modules/index.js deleted file mode 100644 index 8596b8da..00000000 --- a/build/node_modules/builtin-modules/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; -const {builtinModules} = require('module'); - -const ignoreList = [ - 'sys' -]; - -// eslint-disable-next-line node/no-deprecated-api -module.exports = (builtinModules || (process.binding ? Object.keys(process.binding('natives')) : []) || []) - .filter(x => !/^_|^(internal|v8|node-inspect)\/|\//.test(x) && !ignoreList.includes(x)) - .sort(); diff --git a/build/node_modules/builtin-modules/license b/build/node_modules/builtin-modules/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/builtin-modules/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/builtin-modules/package.json b/build/node_modules/builtin-modules/package.json deleted file mode 100644 index 39ddc446..00000000 --- a/build/node_modules/builtin-modules/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "builtin-modules", - "version": "3.3.0", - "description": "List of the Node.js builtin modules", - "license": "MIT", - "repository": "sindresorhus/builtin-modules", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd", - "make": "node make.js" - }, - "files": [ - "index.js", - "index.d.ts", - "static.js", - "static.d.ts", - "builtin-modules.json" - ], - "keywords": [ - "builtin", - "built-in", - "builtins", - "node", - "modules", - "core", - "bundled", - "list", - "array", - "names" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/builtin-modules/readme.md b/build/node_modules/builtin-modules/readme.md deleted file mode 100644 index 9126b64d..00000000 --- a/build/node_modules/builtin-modules/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -# builtin-modules - -> List of the Node.js builtin modules - -The list is just a [JSON file](builtin-modules.json) and can be used anywhere. - -## Install - -``` -$ npm install builtin-modules -``` - -## Usage - -```js -const builtinModules = require('builtin-modules'); - -console.log(builtinModules); -//=> ['assert', 'buffer', ...] -``` - -## API - -Returns an array of builtin modules fetched from the running Node.js version. - -### Static list - -This module also comes bundled with a static array of builtin modules generated from the latest Node.js version. You can get it with `require('builtin-modules/static');` - -## Related - -- [is-builtin-module](https://github.com/sindresorhus/is-builtin-module) - Check if a string matches the name of a Node.js builtin module - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/builtin-modules/static.d.ts b/build/node_modules/builtin-modules/static.d.ts deleted file mode 100644 index cfbd5653..00000000 --- a/build/node_modules/builtin-modules/static.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** -Static list of the Node.js builtin modules. - -@example -``` -import builtinModulesStatic = require('builtin-modules/static'); - -console.log(builtinModulesStatic); -//=> ['assert', 'buffer', …] -``` -*/ -declare const builtinModulesStatic: readonly string[]; - -export = builtinModulesStatic; diff --git a/build/node_modules/builtin-modules/static.js b/build/node_modules/builtin-modules/static.js deleted file mode 100644 index 39662803..00000000 --- a/build/node_modules/builtin-modules/static.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -module.exports = require('./builtin-modules'); diff --git a/build/node_modules/builtins/.travis.yml b/build/node_modules/builtins/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/build/node_modules/builtins/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/build/node_modules/builtins/History.md b/build/node_modules/builtins/History.md deleted file mode 100644 index 0eb45c42..00000000 --- a/build/node_modules/builtins/History.md +++ /dev/null @@ -1,39 +0,0 @@ - -0.0.7 / 2014-09-01 -================== - - * update .repository - -0.0.6 / 2014-09-01 -================== - - * add travis - * add test script - * add constants - -0.0.5 / 2014-06-27 -================== - - * add module - * publish to public npm - -0.0.4 / 2014-04-25 -================== - - * add timers - -0.0.3 / 2014-02-22 -================== - - * add buffer - -0.0.2 / 2014-02-11 -================== - - * add assert - -0.0.1 / 2014-02-11 -================== - - * add main - * initial commit diff --git a/build/node_modules/builtins/License b/build/node_modules/builtins/License deleted file mode 100644 index b142e5dc..00000000 --- a/build/node_modules/builtins/License +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2015 Julian Gruber - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/builtins/Readme.md b/build/node_modules/builtins/Readme.md deleted file mode 100644 index 96f4b1f6..00000000 --- a/build/node_modules/builtins/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ - -# builtins - - List of node.js [builtin modules](http://nodejs.org/api/). - - [![build status](https://secure.travis-ci.org/juliangruber/builtins.svg)](http://travis-ci.org/juliangruber/builtins) - -## Example - -```js -var builtins = require('builtins'); - -assert(builtins.indexOf('http') > -1); -``` - -## License - - MIT diff --git a/build/node_modules/builtins/builtins.json b/build/node_modules/builtins/builtins.json deleted file mode 100644 index 45c05225..00000000 --- a/build/node_modules/builtins/builtins.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - "assert", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "dns", - "domain", - "events", - "fs", - "http", - "https", - "module", - "net", - "os", - "path", - "process", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "string_decoder", - "timers", - "tls", - "tty", - "url", - "util", - "v8", - "vm", - "zlib" -] diff --git a/build/node_modules/builtins/package.json b/build/node_modules/builtins/package.json deleted file mode 100644 index 81999653..00000000 --- a/build/node_modules/builtins/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "builtins", - "version": "1.0.3", - "description": "List of node.js builtin modules", - "repository": "juliangruber/builtins", - "license": "MIT", - "main": "builtins.json", - "publishConfig": { - "registry": "https://registry.npmjs.org" - }, - "scripts": { - "test": "node test.js" - } -} diff --git a/build/node_modules/builtins/test.js b/build/node_modules/builtins/test.js deleted file mode 100644 index ffbe8389..00000000 --- a/build/node_modules/builtins/test.js +++ /dev/null @@ -1,5 +0,0 @@ -var builtins = require('./builtins'); - -builtins.forEach(function(name){ - require(name); -}); diff --git a/build/node_modules/bundle-name/index.js b/build/node_modules/bundle-name/index.js deleted file mode 100644 index 8b6dc11b..00000000 --- a/build/node_modules/bundle-name/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import {runAppleScriptAsync} from 'run-applescript'; - -export default async function bundleName(bundleId) { - return runAppleScriptAsync(`tell application "Finder" to set app_path to application file id "${bundleId}" as string\ntell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`); -} diff --git a/build/node_modules/bundle-name/license b/build/node_modules/bundle-name/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/bundle-name/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/bundle-name/package.json b/build/node_modules/bundle-name/package.json deleted file mode 100644 index aecd4f23..00000000 --- a/build/node_modules/bundle-name/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "bundle-name", - "version": "3.0.0", - "description": "Get bundle name from a bundle identifier (macOS): `com.apple.Safari` → `Safari`", - "license": "MIT", - "repository": "sindresorhus/bundle-name", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "type": "module", - "exports": "./index.js", - "engines": { - "node": ">=12" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "macos", - "plist", - "applescript", - "bundle", - "bundleid", - "bundlename", - "id", - "identifier", - "CFBundleName", - "CFBundleIdentifier", - "uti" - ], - "dependencies": { - "run-applescript": "^5.0.0" - }, - "devDependencies": { - "ava": "^3.15.0", - "xo": "^0.38.2" - } -} diff --git a/build/node_modules/bundle-name/readme.md b/build/node_modules/bundle-name/readme.md deleted file mode 100644 index 2cbc5d19..00000000 --- a/build/node_modules/bundle-name/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# bundle-name - -> Get [bundle name](https://developer.apple.com/library/Mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/plist/info/CFBundleName) from a [bundle identifier](https://developer.apple.com/library/Mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/plist/info/CFBundleIdentifier) (macOS): `com.apple.Safari` → `Safari` - -## Install - -``` -$ npm install bundle-name -``` - -## Usage - -```js -import bundleName from 'bundle-name'; - -console.log(await bundleName('com.apple.Safari')); -//=> 'Safari' -``` - -## Related - -- [bundle-name-cli](https://github.com/sindresorhus/bundle-name-cli) - CLI for this module -- [bundle-id](https://github.com/sindresorhus/bundle-id) - Get bundle identifier from a bundle name diff --git a/build/node_modules/bytes/History.md b/build/node_modules/bytes/History.md deleted file mode 100644 index d60ce0e6..00000000 --- a/build/node_modules/bytes/History.md +++ /dev/null @@ -1,97 +0,0 @@ -3.1.2 / 2022-01-27 -================== - - * Fix return value for un-parsable strings - -3.1.1 / 2021-11-15 -================== - - * Fix "thousandsSeparator" incorrecting formatting fractional part - -3.1.0 / 2019-01-22 -================== - - * Add petabyte (`pb`) support - -3.0.0 / 2017-08-31 -================== - - * Change "kB" to "KB" in format output - * Remove support for Node.js 0.6 - * Remove support for ComponentJS - -2.5.0 / 2017-03-24 -================== - - * Add option "unit" - -2.4.0 / 2016-06-01 -================== - - * Add option "unitSeparator" - -2.3.0 / 2016-02-15 -================== - - * Drop partial bytes on all parsed units - * Fix non-finite numbers to `.format` to return `null` - * Fix parsing byte string that looks like hex - * perf: hoist regular expressions - -2.2.0 / 2015-11-13 -================== - - * add option "decimalPlaces" - * add option "fixedDecimals" - -2.1.0 / 2015-05-21 -================== - - * add `.format` export - * add `.parse` export - -2.0.2 / 2015-05-20 -================== - - * remove map recreation - * remove unnecessary object construction - -2.0.1 / 2015-05-07 -================== - - * fix browserify require - * remove node.extend dependency - -2.0.0 / 2015-04-12 -================== - - * add option "case" - * add option "thousandsSeparator" - * return "null" on invalid parse input - * support proper round-trip: bytes(bytes(num)) === num - * units no longer case sensitive when parsing - -1.0.0 / 2014-05-05 -================== - - * add negative support. fixes #6 - -0.3.0 / 2014-03-19 -================== - - * added terabyte support - -0.2.1 / 2013-04-01 -================== - - * add .component - -0.2.0 / 2012-10-28 -================== - - * bytes(200).should.eql('200b') - -0.1.0 / 2012-07-04 -================== - - * add bytes to string conversion [yields] diff --git a/build/node_modules/bytes/LICENSE b/build/node_modules/bytes/LICENSE deleted file mode 100644 index 63e95a96..00000000 --- a/build/node_modules/bytes/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 TJ Holowaychuk -Copyright (c) 2015 Jed Watson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/bytes/Readme.md b/build/node_modules/bytes/Readme.md deleted file mode 100644 index 5790e23e..00000000 --- a/build/node_modules/bytes/Readme.md +++ /dev/null @@ -1,152 +0,0 @@ -# Bytes utility - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][ci-image]][ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```bash -$ npm install bytes -``` - -## Usage - -```js -var bytes = require('bytes'); -``` - -#### bytes(number|string value, [options]): number|string|null - -Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. - -**Arguments** - -| Name | Type | Description | -|---------|----------|--------------------| -| value | `number`|`string` | Number value to format or string value to parse | -| options | `Object` | Conversion options for `format` | - -**Returns** - -| Name | Type | Description | -|---------|------------------|-------------------------------------------------| -| results | `string`|`number`|`null` | Return null upon error. Numeric value in bytes, or string value otherwise. | - -**Example** - -```js -bytes(1024); -// output: '1KB' - -bytes('1KB'); -// output: 1024 -``` - -#### bytes.format(number value, [options]): string|null - -Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is - rounded. - -**Arguments** - -| Name | Type | Description | -|---------|----------|--------------------| -| value | `number` | Value in bytes | -| options | `Object` | Conversion options | - -**Options** - -| Property | Type | Description | -|-------------------|--------|-----------------------------------------------------------------------------------------| -| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | -| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | -| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | -| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | -| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | - -**Returns** - -| Name | Type | Description | -|---------|------------------|-------------------------------------------------| -| results | `string`|`null` | Return null upon error. String value otherwise. | - -**Example** - -```js -bytes.format(1024); -// output: '1KB' - -bytes.format(1000); -// output: '1000B' - -bytes.format(1000, {thousandsSeparator: ' '}); -// output: '1 000B' - -bytes.format(1024 * 1.7, {decimalPlaces: 0}); -// output: '2KB' - -bytes.format(1024, {unitSeparator: ' '}); -// output: '1 KB' -``` - -#### bytes.parse(string|number value): number|null - -Parse the string value into an integer in bytes. If no unit is given, or `value` -is a number, it is assumed the value is in bytes. - -Supported units and abbreviations are as follows and are case-insensitive: - - * `b` for bytes - * `kb` for kilobytes - * `mb` for megabytes - * `gb` for gigabytes - * `tb` for terabytes - * `pb` for petabytes - -The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. - -**Arguments** - -| Name | Type | Description | -|---------------|--------|--------------------| -| value | `string`|`number` | String to parse, or number in bytes. | - -**Returns** - -| Name | Type | Description | -|---------|-------------|-------------------------| -| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | - -**Example** - -```js -bytes.parse('1KB'); -// output: 1024 - -bytes.parse('1024'); -// output: 1024 - -bytes.parse(1024); -// output: 1024 -``` - -## License - -[MIT](LICENSE) - -[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci -[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci -[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master -[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master -[downloads-image]: https://badgen.net/npm/dm/bytes -[downloads-url]: https://npmjs.org/package/bytes -[npm-image]: https://badgen.net/npm/v/bytes -[npm-url]: https://npmjs.org/package/bytes diff --git a/build/node_modules/bytes/index.js b/build/node_modules/bytes/index.js deleted file mode 100644 index 6f2d0f89..00000000 --- a/build/node_modules/bytes/index.js +++ /dev/null @@ -1,170 +0,0 @@ -/*! - * bytes - * Copyright(c) 2012-2014 TJ Holowaychuk - * Copyright(c) 2015 Jed Watson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -module.exports = bytes; -module.exports.format = format; -module.exports.parse = parse; - -/** - * Module variables. - * @private - */ - -var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; - -var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; - -var map = { - b: 1, - kb: 1 << 10, - mb: 1 << 20, - gb: 1 << 30, - tb: Math.pow(1024, 4), - pb: Math.pow(1024, 5), -}; - -var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; - -/** - * Convert the given value in bytes into a string or parse to string to an integer in bytes. - * - * @param {string|number} value - * @param {{ - * case: [string], - * decimalPlaces: [number] - * fixedDecimals: [boolean] - * thousandsSeparator: [string] - * unitSeparator: [string] - * }} [options] bytes options. - * - * @returns {string|number|null} - */ - -function bytes(value, options) { - if (typeof value === 'string') { - return parse(value); - } - - if (typeof value === 'number') { - return format(value, options); - } - - return null; -} - -/** - * Format the given value in bytes into a string. - * - * If the value is negative, it is kept as such. If it is a float, - * it is rounded. - * - * @param {number} value - * @param {object} [options] - * @param {number} [options.decimalPlaces=2] - * @param {number} [options.fixedDecimals=false] - * @param {string} [options.thousandsSeparator=] - * @param {string} [options.unit=] - * @param {string} [options.unitSeparator=] - * - * @returns {string|null} - * @public - */ - -function format(value, options) { - if (!Number.isFinite(value)) { - return null; - } - - var mag = Math.abs(value); - var thousandsSeparator = (options && options.thousandsSeparator) || ''; - var unitSeparator = (options && options.unitSeparator) || ''; - var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; - var fixedDecimals = Boolean(options && options.fixedDecimals); - var unit = (options && options.unit) || ''; - - if (!unit || !map[unit.toLowerCase()]) { - if (mag >= map.pb) { - unit = 'PB'; - } else if (mag >= map.tb) { - unit = 'TB'; - } else if (mag >= map.gb) { - unit = 'GB'; - } else if (mag >= map.mb) { - unit = 'MB'; - } else if (mag >= map.kb) { - unit = 'KB'; - } else { - unit = 'B'; - } - } - - var val = value / map[unit.toLowerCase()]; - var str = val.toFixed(decimalPlaces); - - if (!fixedDecimals) { - str = str.replace(formatDecimalsRegExp, '$1'); - } - - if (thousandsSeparator) { - str = str.split('.').map(function (s, i) { - return i === 0 - ? s.replace(formatThousandsRegExp, thousandsSeparator) - : s - }).join('.'); - } - - return str + unitSeparator + unit; -} - -/** - * Parse the string value into an integer in bytes. - * - * If no unit is given, it is assumed the value is in bytes. - * - * @param {number|string} val - * - * @returns {number|null} - * @public - */ - -function parse(val) { - if (typeof val === 'number' && !isNaN(val)) { - return val; - } - - if (typeof val !== 'string') { - return null; - } - - // Test if the string passed is valid - var results = parseRegExp.exec(val); - var floatValue; - var unit = 'b'; - - if (!results) { - // Nothing could be extracted from the given string - floatValue = parseInt(val, 10); - unit = 'b' - } else { - // Retrieve the value and the unit - floatValue = parseFloat(results[1]); - unit = results[4].toLowerCase(); - } - - if (isNaN(floatValue)) { - return null; - } - - return Math.floor(map[unit] * floatValue); -} diff --git a/build/node_modules/bytes/package.json b/build/node_modules/bytes/package.json deleted file mode 100644 index f2b6a8b0..00000000 --- a/build/node_modules/bytes/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "bytes", - "description": "Utility to parse a string bytes to bytes and vice-versa", - "version": "3.1.2", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Jed Watson ", - "Théo FIDRY " - ], - "license": "MIT", - "keywords": [ - "byte", - "bytes", - "utility", - "parse", - "parser", - "convert", - "converter" - ], - "repository": "visionmedia/bytes.js", - "devDependencies": { - "eslint": "7.32.0", - "eslint-plugin-markdown": "2.2.1", - "mocha": "9.2.0", - "nyc": "15.1.0" - }, - "files": [ - "History.md", - "LICENSE", - "Readme.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --check-leaks --reporter spec", - "test-ci": "nyc --reporter=lcov --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/build/node_modules/cacache/LICENSE.md b/build/node_modules/cacache/LICENSE.md deleted file mode 100644 index 8d28acf8..00000000 --- a/build/node_modules/cacache/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -ISC License - -Copyright (c) npm, Inc. - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted, provided that the -above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/cacache/README.md b/build/node_modules/cacache/README.md deleted file mode 100644 index 6dc11bab..00000000 --- a/build/node_modules/cacache/README.md +++ /dev/null @@ -1,703 +0,0 @@ -# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/npm/cacache.svg)](https://travis-ci.org/npm/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/cacache?svg=true)](https://ci.appveyor.com/project/npm/cacache) [![Coverage Status](https://coveralls.io/repos/github/npm/cacache/badge.svg?branch=latest)](https://coveralls.io/github/npm/cacache?branch=latest) - -[`cacache`](https://github.com/npm/cacache) is a Node.js library for managing -local key and content address caches. It's really fast, really good at -concurrency, and it will never give you corrupted data, even if cache files -get corrupted or manipulated. - -On systems that support user and group settings on files, cacache will -match the `uid` and `gid` values to the folder where the cache lives, even -when running as `root`. - -It was written to be used as [npm](https://npm.im)'s local cache, but can -just as easily be used on its own. - -## Install - -`$ npm install --save cacache` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * [Using localized APIs](#localized-api) - * Reading - * [`ls`](#ls) - * [`ls.stream`](#ls-stream) - * [`get`](#get-data) - * [`get.stream`](#get-stream) - * [`get.info`](#get-info) - * [`get.hasContent`](#get-hasContent) - * Writing - * [`put`](#put-data) - * [`put.stream`](#put-stream) - * [`rm.all`](#rm-all) - * [`rm.entry`](#rm-entry) - * [`rm.content`](#rm-content) - * [`index.compact`](#index-compact) - * [`index.insert`](#index-insert) - * Utilities - * [`clearMemoized`](#clear-memoized) - * [`tmp.mkdir`](#tmp-mkdir) - * [`tmp.withTmp`](#with-tmp) - * Integrity - * [Subresource Integrity](#integrity) - * [`verify`](#verify) - * [`verify.lastRun`](#verify-last-run) - -### Example - -```javascript -const cacache = require('cacache') -const fs = require('fs') - -const tarball = '/path/to/mytar.tgz' -const cachePath = '/tmp/my-toy-cache' -const key = 'my-unique-key-1234' - -// Cache it! Use `cachePath` as the root of the content cache -cacache.put(cachePath, key, '10293801983029384').then(integrity => { - console.log(`Saved content to ${cachePath}.`) -}) - -const destination = '/tmp/mytar.tgz' - -// Copy the contents out of the cache and into their destination! -// But this time, use stream instead! -cacache.get.stream( - cachePath, key -).pipe( - fs.createWriteStream(destination) -).on('finish', () => { - console.log('done extracting!') -}) - -// The same thing, but skip the key index. -cacache.get.byDigest(cachePath, integrityHash).then(data => { - fs.writeFile(destination, data, err => { - console.log('tarball data fetched based on its sha512sum and written out!') - }) -}) -``` - -### Features - -* Extraction by key or by content address (shasum, etc) -* [Subresource Integrity](#integrity) web standard support -* Multi-hash support - safely host sha1, sha512, etc, in a single cache -* Automatic content deduplication -* Fault tolerance (immune to corruption, partial writes, process races, etc) -* Consistency guarantees on read and write (full data verification) -* Lockless, high-concurrency cache access -* Streaming support -* Promise support -* Fast -- sub-millisecond reads and writes including verification -* Arbitrary metadata storage -* Garbage collection and additional offline verification -* Thorough test coverage -* There's probably a bloom filter in there somewhere. Those are cool, right? 🤔 - -### Contributing - -The cacache team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear. - -All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other. - -Please refer to the [Changelog](CHANGELOG.md) for project history details, too. - -Happy hacking! - -### API - -#### `> cacache.ls(cache) -> Promise` - -Lists info for all entries currently in the cache as a single large object. Each -entry in the object will be keyed by the unique index key, with corresponding -[`get.info`](#get-info) objects as the values. - -##### Example - -```javascript -cacache.ls(cachePath).then(console.log) -// Output -{ - 'my-thing': { - key: 'my-thing', - integrity: 'sha512-BaSe64/EnCoDED+HAsh==' - path: '.testcache/content/deadbeef', // joined with `cachePath` - time: 12345698490, - size: 4023948, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } - }, - 'other-thing': { - key: 'other-thing', - integrity: 'sha1-ANothER+hasH=', - path: '.testcache/content/bada55', - time: 11992309289, - size: 111112 - } -} -``` - -#### `> cacache.ls.stream(cache) -> Readable` - -Lists info for all entries currently in the cache as a single large object. - -This works just like [`ls`](#ls), except [`get.info`](#get-info) entries are -returned as `'data'` events on the returned stream. - -##### Example - -```javascript -cacache.ls.stream(cachePath).on('data', console.log) -// Output -{ - key: 'my-thing', - integrity: 'sha512-BaSe64HaSh', - path: '.testcache/content/deadbeef', // joined with `cachePath` - time: 12345698490, - size: 13423, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } -} - -{ - key: 'other-thing', - integrity: 'whirlpool-WoWSoMuchSupport', - path: '.testcache/content/bada55', - time: 11992309289, - size: 498023984029 -} - -{ - ... -} -``` - -#### `> cacache.get(cache, key, [opts]) -> Promise({data, metadata, integrity})` - -Returns an object with the cached data, digest, and metadata identified by -`key`. The `data` property of this object will be a `Buffer` instance that -presumably holds some data that means something to you. I'm sure you know what -to do with it! cacache just won't care. - -`integrity` is a [Subresource -Integrity](#integrity) -string. That is, a string that can be used to verify `data`, which looks like -`-`. - -If there is no content identified by `key`, or if the locally-stored data does -not pass the validity checksum, the promise will be rejected. - -A sub-function, `get.byDigest` may be used for identical behavior, except lookup -will happen by integrity hash, bypassing the index entirely. This version of the -function *only* returns `data` itself, without any wrapper. - -See: [options](#get-options) - -##### Note - -This function loads the entire cache entry into memory before returning it. If -you're dealing with Very Large data, consider using [`get.stream`](#get-stream) -instead. - -##### Example - -```javascript -// Look up by key -cache.get(cachePath, 'my-thing').then(console.log) -// Output: -{ - metadata: { - thingName: 'my' - }, - integrity: 'sha512-BaSe64HaSh', - data: Buffer#, - size: 9320 -} - -// Look up by digest -cache.get.byDigest(cachePath, 'sha512-BaSe64HaSh').then(console.log) -// Output: -Buffer# -``` - -#### `> cacache.get.stream(cache, key, [opts]) -> Readable` - -Returns a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) of the cached data identified by `key`. - -If there is no content identified by `key`, or if the locally-stored data does -not pass the validity checksum, an error will be emitted. - -`metadata` and `integrity` events will be emitted before the stream closes, if -you need to collect that extra data about the cached entry. - -A sub-function, `get.stream.byDigest` may be used for identical behavior, -except lookup will happen by integrity hash, bypassing the index entirely. This -version does not emit the `metadata` and `integrity` events at all. - -See: [options](#get-options) - -##### Example - -```javascript -// Look up by key -cache.get.stream( - cachePath, 'my-thing' -).on('metadata', metadata => { - console.log('metadata:', metadata) -}).on('integrity', integrity => { - console.log('integrity:', integrity) -}).pipe( - fs.createWriteStream('./x.tgz') -) -// Outputs: -metadata: { ... } -integrity: 'sha512-SoMeDIGest+64==' - -// Look up by digest -cache.get.stream.byDigest( - cachePath, 'sha512-SoMeDIGest+64==' -).pipe( - fs.createWriteStream('./x.tgz') -) -``` - -#### `> cacache.get.info(cache, key) -> Promise` - -Looks up `key` in the cache index, returning information about the entry if -one exists. - -##### Fields - -* `key` - Key the entry was looked up under. Matches the `key` argument. -* `integrity` - [Subresource Integrity hash](#integrity) for the content this entry refers to. -* `path` - Filesystem path where content is stored, joined with `cache` argument. -* `time` - Timestamp the entry was first added on. -* `metadata` - User-assigned metadata associated with the entry/content. - -##### Example - -```javascript -cacache.get.info(cachePath, 'my-thing').then(console.log) - -// Output -{ - key: 'my-thing', - integrity: 'sha256-MUSTVERIFY+ALL/THINGS==' - path: '.testcache/content/deadbeef', - time: 12345698490, - size: 849234, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } -} -``` - -#### `> cacache.get.hasContent(cache, integrity) -> Promise` - -Looks up a [Subresource Integrity hash](#integrity) in the cache. If content -exists for this `integrity`, it will return an object, with the specific single integrity hash -that was found in `sri` key, and the size of the found content as `size`. If no content exists for this integrity, it will return `false`. - -##### Example - -```javascript -cacache.get.hasContent(cachePath, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log) - -// Output -{ - sri: { - source: 'sha256-MUSTVERIFY+ALL/THINGS==', - algorithm: 'sha256', - digest: 'MUSTVERIFY+ALL/THINGS==', - options: [] - }, - size: 9001 -} - -cacache.get.hasContent(cachePath, 'sha521-NOT+IN/CACHE==').then(console.log) - -// Output -false -``` - -##### Options - -##### `opts.integrity` -If present, the pre-calculated digest for the inserted content. If this option -is provided and does not match the post-insertion digest, insertion will fail -with an `EINTEGRITY` error. - -##### `opts.memoize` - -Default: null - -If explicitly truthy, cacache will read from memory and memoize data on bulk read. If `false`, cacache will read from disk data. Reader functions by default read from in-memory cache. - -##### `opts.size` -If provided, the data stream will be verified to check that enough data was -passed through. If there's more or less data than expected, insertion will fail -with an `EBADSIZE` error. - - -#### `> cacache.put(cache, key, data, [opts]) -> Promise` - -Inserts data passed to it into the cache. The returned Promise resolves with a -digest (generated according to [`opts.algorithms`](#optsalgorithms)) after the -cache entry has been successfully written. - -See: [options](#put-options) - -##### Example - -```javascript -fetch( - 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz' -).then(data => { - return cacache.put(cachePath, 'registry.npmjs.org|cacache@1.0.0', data) -}).then(integrity => { - console.log('integrity hash is', integrity) -}) -``` - -#### `> cacache.put.stream(cache, key, [opts]) -> Writable` - -Returns a [Writable -Stream](https://nodejs.org/api/stream.html#stream_writable_streams) that inserts -data written to it into the cache. Emits an `integrity` event with the digest of -written contents when it succeeds. - -See: [options](#put-options) - -##### Example - -```javascript -request.get( - 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz' -).pipe( - cacache.put.stream( - cachePath, 'registry.npmjs.org|cacache@1.0.0' - ).on('integrity', d => console.log(`integrity digest is ${d}`)) -) -``` - -##### Options - -##### `opts.metadata` - -Arbitrary metadata to be attached to the inserted key. - -##### `opts.size` - -If provided, the data stream will be verified to check that enough data was -passed through. If there's more or less data than expected, insertion will fail -with an `EBADSIZE` error. - -##### `opts.integrity` - -If present, the pre-calculated digest for the inserted content. If this option -is provided and does not match the post-insertion digest, insertion will fail -with an `EINTEGRITY` error. - -`algorithms` has no effect if this option is present. - -##### `opts.algorithms` - -Default: ['sha512'] - -Hashing algorithms to use when calculating the [subresource integrity -digest](#integrity) -for inserted data. Can use any algorithm listed in `crypto.getHashes()` or -`'omakase'`/`'お任せします'` to pick a random hash algorithm on each insertion. You -may also use any anagram of `'modnar'` to use this feature. - -Currently only supports one algorithm at a time (i.e., an array length of -exactly `1`). Has no effect if `opts.integrity` is present. - -##### `opts.memoize` - -Default: null - -If provided, cacache will memoize the given cache insertion in memory, bypassing -any filesystem checks for that key or digest in future cache fetches. Nothing -will be written to the in-memory cache unless this option is explicitly truthy. - -If `opts.memoize` is an object or a `Map`-like (that is, an object with `get` -and `set` methods), it will be written to instead of the global memoization -cache. - -Reading from disk data can be forced by explicitly passing `memoize: false` to -the reader functions, but their default will be to read from memory. - -##### `opts.tmpPrefix` -Default: null - -Prefix to append on the temporary directory name inside the cache's tmp dir. - -#### `> cacache.rm.all(cache) -> Promise` - -Clears the entire cache. Mainly by blowing away the cache directory itself. - -##### Example - -```javascript -cacache.rm.all(cachePath).then(() => { - console.log('THE APOCALYPSE IS UPON US 😱') -}) -``` - -#### `> cacache.rm.entry(cache, key, [opts]) -> Promise` - -Alias: `cacache.rm` - -Removes the index entry for `key`. Content will still be accessible if -requested directly by content address ([`get.stream.byDigest`](#get-stream)). - -By default, this appends a new entry to the index with an integrity of `null`. -If `opts.removeFully` is set to `true` then the index file itself will be -physically deleted rather than appending a `null`. - -To remove the content itself (which might still be used by other entries), use -[`rm.content`](#rm-content). Or, to safely vacuum any unused content, use -[`verify`](#verify). - -##### Example - -```javascript -cacache.rm.entry(cachePath, 'my-thing').then(() => { - console.log('I did not like it anyway') -}) -``` - -#### `> cacache.rm.content(cache, integrity) -> Promise` - -Removes the content identified by `integrity`. Any index entries referring to it -will not be usable again until the content is re-added to the cache with an -identical digest. - -##### Example - -```javascript -cacache.rm.content(cachePath, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => { - console.log('data for my-thing is gone!') -}) -``` - -#### `> cacache.index.compact(cache, key, matchFn, [opts]) -> Promise` - -Uses `matchFn`, which must be a synchronous function that accepts two entries -and returns a boolean indicating whether or not the two entries match, to -deduplicate all entries in the cache for the given `key`. - -If `opts.validateEntry` is provided, it will be called as a function with the -only parameter being a single index entry. The function must return a Boolean, -if it returns `true` the entry is considered valid and will be kept in the index, -if it returns `false` the entry will be removed from the index. - -If `opts.validateEntry` is not provided, however, every entry in the index will -be deduplicated and kept until the first `null` integrity is reached, removing -all entries that were written before the `null`. - -The deduplicated list of entries is both written to the index, replacing the -existing content, and returned in the Promise. - -#### `> cacache.index.insert(cache, key, integrity, opts) -> Promise` - -Writes an index entry to the cache for the given `key` without writing content. - -It is assumed if you are using this method, you have already stored the content -some other way and you only wish to add a new index to that content. The `metadata` -and `size` properties are read from `opts` and used as part of the index entry. - -Returns a Promise resolving to the newly added entry. - -#### `> cacache.clearMemoized()` - -Completely resets the in-memory entry cache. - -#### `> tmp.mkdir(cache, opts) -> Promise` - -Returns a unique temporary directory inside the cache's `tmp` dir. This -directory will use the same safe user assignment that all the other stuff use. - -Once the directory is made, it's the user's responsibility that all files -within are given the appropriate `gid`/`uid` ownership settings to match -the rest of the cache. If not, you can ask cacache to do it for you by -calling [`tmp.fix()`](#tmp-fix), which will fix all tmp directory -permissions. - -If you want automatic cleanup of this directory, use -[`tmp.withTmp()`](#with-tpm) - -See: [options](#tmp-options) - -##### Example - -```javascript -cacache.tmp.mkdir(cache).then(dir => { - fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}) -``` - -#### `> tmp.fix(cache) -> Promise` - -Sets the `uid` and `gid` properties on all files and folders within the tmp -folder to match the rest of the cache. - -Use this after manually writing files into [`tmp.mkdir`](#tmp-mkdir) or -[`tmp.withTmp`](#with-tmp). - -##### Example - -```javascript -cacache.tmp.mkdir(cache).then(dir => { - writeFile(path.join(dir, 'file'), someData).then(() => { - // make sure we didn't just put a root-owned file in the cache - cacache.tmp.fix().then(() => { - // all uids and gids match now - }) - }) -}) -``` - -#### `> tmp.withTmp(cache, opts, cb) -> Promise` - -Creates a temporary directory with [`tmp.mkdir()`](#tmp-mkdir) and calls `cb` -with it. The created temporary directory will be removed when the return value -of `cb()` resolves, the tmp directory will be automatically deleted once that -promise completes. - -The same caveats apply when it comes to managing permissions for the tmp dir's -contents. - -See: [options](#tmp-options) - -##### Example - -```javascript -cacache.tmp.withTmp(cache, dir => { - return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}).then(() => { - // `dir` no longer exists -}) -``` - -##### Options - -##### `opts.tmpPrefix` -Default: null - -Prefix to append on the temporary directory name inside the cache's tmp dir. - -#### Subresource Integrity Digests - -For content verification and addressing, cacache uses strings following the -[Subresource -Integrity spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity). -That is, any time cacache expects an `integrity` argument or option, it -should be in the format `-`. - -One deviation from the current spec is that cacache will support any hash -algorithms supported by the underlying Node.js process. You can use -`crypto.getHashes()` to see which ones you can use. - -##### Generating Digests Yourself - -If you have an existing content shasum, they are generally formatted as a -hexadecimal string (that is, a sha1 would look like: -`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`). In order to be compatible with -cacache, you'll need to convert this to an equivalent subresource integrity -string. For this example, the corresponding hash would be: -`sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`. - -If you want to generate an integrity string yourself for existing data, you can -use something like this: - -```javascript -const crypto = require('crypto') -const hashAlgorithm = 'sha512' -const data = 'foobarbaz' - -const integrity = ( - hashAlgorithm + - '-' + - crypto.createHash(hashAlgorithm).update(data).digest('base64') -) -``` - -You can also use [`ssri`](https://npm.im/ssri) to have a richer set of functionality -around SRI strings, including generation, parsing, and translating from existing -hex-formatted strings. - -#### `> cacache.verify(cache, opts) -> Promise` - -Checks out and fixes up your cache: - -* Cleans up corrupted or invalid index entries. -* Custom entry filtering options. -* Garbage collects any content entries not referenced by the index. -* Checks integrity for all content entries and removes invalid content. -* Fixes cache ownership. -* Removes the `tmp` directory in the cache and all its contents. - -When it's done, it'll return an object with various stats about the verification -process, including amount of storage reclaimed, number of valid entries, number -of entries removed, etc. - -##### Options - -##### `opts.concurrency` - -Default: 20 - -Number of concurrently read files in the filesystem while doing clean up. - -##### `opts.filter` -Receives a formatted entry. Return false to remove it. -Note: might be called more than once on the same entry. - -##### `opts.log` -Custom logger function: -``` - log: { silly () {} } - log.silly('verify', 'verifying cache at', cache) -``` - -##### Example - -```sh -echo somegarbage >> $CACHEPATH/content/deadbeef -``` - -```javascript -cacache.verify(cachePath).then(stats => { - // deadbeef collected, because of invalid checksum. - console.log('cache is much nicer now! stats:', stats) -}) -``` - -#### `> cacache.verify.lastRun(cache) -> Promise` - -Returns a `Date` representing the last time `cacache.verify` was run on `cache`. - -##### Example - -```javascript -cacache.verify(cachePath).then(() => { - cacache.verify.lastRun(cachePath).then(lastTime => { - console.log('cacache.verify was last called on' + lastTime) - }) -}) -``` diff --git a/build/node_modules/cacache/get.js b/build/node_modules/cacache/get.js deleted file mode 100644 index 4e905e7c..00000000 --- a/build/node_modules/cacache/get.js +++ /dev/null @@ -1,237 +0,0 @@ -'use strict' - -const Collect = require('minipass-collect') -const Minipass = require('minipass') -const Pipeline = require('minipass-pipeline') -const fs = require('fs') -const util = require('util') - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const read = require('./lib/content/read') - -const writeFile = util.promisify(fs.writeFile) - -function getData (cache, key, opts = {}) { - const { integrity, memoize, size } = opts - const memoized = memo.get(cache, key, opts) - if (memoized && memoize !== false) { - return Promise.resolve({ - metadata: memoized.entry.metadata, - data: memoized.data, - integrity: memoized.entry.integrity, - size: memoized.entry.size, - }) - } - - return index.find(cache, key, opts).then((entry) => { - if (!entry) - throw new index.NotFoundError(cache, key) - - return read(cache, entry.integrity, { integrity, size }).then((data) => { - if (memoize) - memo.put(cache, entry, data, opts) - - return { - data, - metadata: entry.metadata, - size: entry.size, - integrity: entry.integrity, - } - }) - }) -} -module.exports = getData - -function getDataByDigest (cache, key, opts = {}) { - const { integrity, memoize, size } = opts - const memoized = memo.get.byDigest(cache, key, opts) - if (memoized && memoize !== false) - return Promise.resolve(memoized) - - return read(cache, key, { integrity, size }).then((res) => { - if (memoize) - memo.put.byDigest(cache, key, res, opts) - return res - }) -} -module.exports.byDigest = getDataByDigest - -function getDataSync (cache, key, opts = {}) { - const { integrity, memoize, size } = opts - const memoized = memo.get(cache, key, opts) - - if (memoized && memoize !== false) { - return { - metadata: memoized.entry.metadata, - data: memoized.data, - integrity: memoized.entry.integrity, - size: memoized.entry.size, - } - } - const entry = index.find.sync(cache, key, opts) - if (!entry) - throw new index.NotFoundError(cache, key) - const data = read.sync(cache, entry.integrity, { - integrity: integrity, - size: size, - }) - const res = { - metadata: entry.metadata, - data: data, - size: entry.size, - integrity: entry.integrity, - } - if (memoize) - memo.put(cache, entry, res.data, opts) - - return res -} - -module.exports.sync = getDataSync - -function getDataByDigestSync (cache, digest, opts = {}) { - const { integrity, memoize, size } = opts - const memoized = memo.get.byDigest(cache, digest, opts) - - if (memoized && memoize !== false) - return memoized - - const res = read.sync(cache, digest, { - integrity: integrity, - size: size, - }) - if (memoize) - memo.put.byDigest(cache, digest, res, opts) - - return res -} -module.exports.sync.byDigest = getDataByDigestSync - -const getMemoizedStream = (memoized) => { - const stream = new Minipass() - stream.on('newListener', function (ev, cb) { - ev === 'metadata' && cb(memoized.entry.metadata) - ev === 'integrity' && cb(memoized.entry.integrity) - ev === 'size' && cb(memoized.entry.size) - }) - stream.end(memoized.data) - return stream -} - -function getStream (cache, key, opts = {}) { - const { memoize, size } = opts - const memoized = memo.get(cache, key, opts) - if (memoized && memoize !== false) - return getMemoizedStream(memoized) - - const stream = new Pipeline() - index - .find(cache, key) - .then((entry) => { - if (!entry) - throw new index.NotFoundError(cache, key) - - stream.emit('metadata', entry.metadata) - stream.emit('integrity', entry.integrity) - stream.emit('size', entry.size) - stream.on('newListener', function (ev, cb) { - ev === 'metadata' && cb(entry.metadata) - ev === 'integrity' && cb(entry.integrity) - ev === 'size' && cb(entry.size) - }) - - const src = read.readStream( - cache, - entry.integrity, - { ...opts, size: typeof size !== 'number' ? entry.size : size } - ) - - if (memoize) { - const memoStream = new Collect.PassThrough() - memoStream.on('collect', data => memo.put(cache, entry, data, opts)) - stream.unshift(memoStream) - } - stream.unshift(src) - }) - .catch((err) => stream.emit('error', err)) - - return stream -} - -module.exports.stream = getStream - -function getStreamDigest (cache, integrity, opts = {}) { - const { memoize } = opts - const memoized = memo.get.byDigest(cache, integrity, opts) - if (memoized && memoize !== false) { - const stream = new Minipass() - stream.end(memoized) - return stream - } else { - const stream = read.readStream(cache, integrity, opts) - if (!memoize) - return stream - - const memoStream = new Collect.PassThrough() - memoStream.on('collect', data => memo.put.byDigest( - cache, - integrity, - data, - opts - )) - return new Pipeline(stream, memoStream) - } -} - -module.exports.stream.byDigest = getStreamDigest - -function info (cache, key, opts = {}) { - const { memoize } = opts - const memoized = memo.get(cache, key, opts) - if (memoized && memoize !== false) - return Promise.resolve(memoized.entry) - else - return index.find(cache, key) -} -module.exports.info = info - -function copy (cache, key, dest, opts = {}) { - if (read.copy) { - return index.find(cache, key, opts).then((entry) => { - if (!entry) - throw new index.NotFoundError(cache, key) - return read.copy(cache, entry.integrity, dest, opts) - .then(() => { - return { - metadata: entry.metadata, - size: entry.size, - integrity: entry.integrity, - } - }) - }) - } - - return getData(cache, key, opts).then((res) => { - return writeFile(dest, res.data).then(() => { - return { - metadata: res.metadata, - size: res.size, - integrity: res.integrity, - } - }) - }) -} -module.exports.copy = copy - -function copyByDigest (cache, key, dest, opts = {}) { - if (read.copy) - return read.copy(cache, key, dest, opts).then(() => key) - - return getDataByDigest(cache, key, opts).then((res) => { - return writeFile(dest, res).then(() => key) - }) -} -module.exports.copy.byDigest = copyByDigest - -module.exports.hasContent = read.hasContent diff --git a/build/node_modules/cacache/index.js b/build/node_modules/cacache/index.js deleted file mode 100644 index c8c52b04..00000000 --- a/build/node_modules/cacache/index.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict' - -const ls = require('./ls.js') -const get = require('./get.js') -const put = require('./put.js') -const rm = require('./rm.js') -const verify = require('./verify.js') -const { clearMemoized } = require('./lib/memoization.js') -const tmp = require('./lib/util/tmp.js') -const index = require('./lib/entry-index.js') - -module.exports.index = {} -module.exports.index.compact = index.compact -module.exports.index.insert = index.insert - -module.exports.ls = ls -module.exports.ls.stream = ls.stream - -module.exports.get = get -module.exports.get.byDigest = get.byDigest -module.exports.get.sync = get.sync -module.exports.get.sync.byDigest = get.sync.byDigest -module.exports.get.stream = get.stream -module.exports.get.stream.byDigest = get.stream.byDigest -module.exports.get.copy = get.copy -module.exports.get.copy.byDigest = get.copy.byDigest -module.exports.get.info = get.info -module.exports.get.hasContent = get.hasContent -module.exports.get.hasContent.sync = get.hasContent.sync - -module.exports.put = put -module.exports.put.stream = put.stream - -module.exports.rm = rm.entry -module.exports.rm.all = rm.all -module.exports.rm.entry = module.exports.rm -module.exports.rm.content = rm.content - -module.exports.clearMemoized = clearMemoized - -module.exports.tmp = {} -module.exports.tmp.mkdir = tmp.mkdir -module.exports.tmp.withTmp = tmp.withTmp - -module.exports.verify = verify -module.exports.verify.lastRun = verify.lastRun diff --git a/build/node_modules/cacache/ls.js b/build/node_modules/cacache/ls.js deleted file mode 100644 index 6006c99e..00000000 --- a/build/node_modules/cacache/ls.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -const index = require('./lib/entry-index') - -module.exports = index.ls -module.exports.stream = index.lsStream diff --git a/build/node_modules/cacache/package.json b/build/node_modules/cacache/package.json deleted file mode 100644 index 6cb41401..00000000 --- a/build/node_modules/cacache/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "cacache", - "version": "15.3.0", - "cache-version": { - "content": "2", - "index": "5" - }, - "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.", - "main": "index.js", - "files": [ - "*.js", - "lib" - ], - "scripts": { - "benchmarks": "node test/benchmarks", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags", - "test": "tap", - "snap": "tap", - "coverage": "tap", - "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test", - "lint": "npm run npmclilint -- \"*.*js\" \"lib/**/*.*js\" \"test/**/*.*js\"", - "npmclilint": "npmcli-lint", - "lintfix": "npm run lint -- --fix", - "postsnap": "npm run lintfix --" - }, - "repository": "https://github.com/npm/cacache", - "keywords": [ - "cache", - "caching", - "content-addressable", - "sri", - "sri hash", - "subresource integrity", - "cache", - "storage", - "store", - "file store", - "filesystem", - "disk cache", - "disk storage" - ], - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "devDependencies": { - "@npmcli/lint": "^1.0.1", - "benchmark": "^2.1.4", - "chalk": "^4.0.0", - "require-inject": "^1.4.4", - "tacks": "^1.3.0", - "tap": "^15.0.9" - }, - "tap": { - "100": true, - "test-regex": "test/[^/]*.js" - }, - "engines": { - "node": ">= 10" - } -} diff --git a/build/node_modules/cacache/put.js b/build/node_modules/cacache/put.js deleted file mode 100644 index 84e9562b..00000000 --- a/build/node_modules/cacache/put.js +++ /dev/null @@ -1,83 +0,0 @@ -'use strict' - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const write = require('./lib/content/write') -const Flush = require('minipass-flush') -const { PassThrough } = require('minipass-collect') -const Pipeline = require('minipass-pipeline') - -const putOpts = (opts) => ({ - algorithms: ['sha512'], - ...opts, -}) - -module.exports = putData - -function putData (cache, key, data, opts = {}) { - const { memoize } = opts - opts = putOpts(opts) - return write(cache, data, opts).then((res) => { - return index - .insert(cache, key, res.integrity, { ...opts, size: res.size }) - .then((entry) => { - if (memoize) - memo.put(cache, entry, data, opts) - - return res.integrity - }) - }) -} - -module.exports.stream = putStream - -function putStream (cache, key, opts = {}) { - const { memoize } = opts - opts = putOpts(opts) - let integrity - let size - - let memoData - const pipeline = new Pipeline() - // first item in the pipeline is the memoizer, because we need - // that to end first and get the collected data. - if (memoize) { - const memoizer = new PassThrough().on('collect', data => { - memoData = data - }) - pipeline.push(memoizer) - } - - // contentStream is a write-only, not a passthrough - // no data comes out of it. - const contentStream = write.stream(cache, opts) - .on('integrity', (int) => { - integrity = int - }) - .on('size', (s) => { - size = s - }) - - pipeline.push(contentStream) - - // last but not least, we write the index and emit hash and size, - // and memoize if we're doing that - pipeline.push(new Flush({ - flush () { - return index - .insert(cache, key, integrity, { ...opts, size }) - .then((entry) => { - if (memoize && memoData) - memo.put(cache, entry, memoData, opts) - - if (integrity) - pipeline.emit('integrity', integrity) - - if (size) - pipeline.emit('size', size) - }) - }, - })) - - return pipeline -} diff --git a/build/node_modules/cacache/rm.js b/build/node_modules/cacache/rm.js deleted file mode 100644 index f2ef6b19..00000000 --- a/build/node_modules/cacache/rm.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' - -const util = require('util') - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const path = require('path') -const rimraf = util.promisify(require('rimraf')) -const rmContent = require('./lib/content/rm') - -module.exports = entry -module.exports.entry = entry - -function entry (cache, key, opts) { - memo.clearMemoized() - return index.delete(cache, key, opts) -} - -module.exports.content = content - -function content (cache, integrity) { - memo.clearMemoized() - return rmContent(cache, integrity) -} - -module.exports.all = all - -function all (cache) { - memo.clearMemoized() - return rimraf(path.join(cache, '*(content-*|index-*)')) -} diff --git a/build/node_modules/cacache/verify.js b/build/node_modules/cacache/verify.js deleted file mode 100644 index db7763d7..00000000 --- a/build/node_modules/cacache/verify.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./lib/verify') diff --git a/build/node_modules/cache-base/LICENSE b/build/node_modules/cache-base/LICENSE deleted file mode 100644 index 943e71d0..00000000 --- a/build/node_modules/cache-base/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/cache-base/README.md b/build/node_modules/cache-base/README.md deleted file mode 100644 index 62c6ffeb..00000000 --- a/build/node_modules/cache-base/README.md +++ /dev/null @@ -1,291 +0,0 @@ -# cache-base [![NPM version](https://img.shields.io/npm/v/cache-base.svg?style=flat)](https://www.npmjs.com/package/cache-base) [![NPM monthly downloads](https://img.shields.io/npm/dm/cache-base.svg?style=flat)](https://npmjs.org/package/cache-base) [![NPM total downloads](https://img.shields.io/npm/dt/cache-base.svg?style=flat)](https://npmjs.org/package/cache-base) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/cache-base.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/cache-base) - -> Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save cache-base -``` - -## Usage - -```js -var Cache = require('cache-base'); - -// instantiate -var app = new Cache(); - -// set values -app.set('a', 'b'); -app.set('c.d', 'e'); - -// get values -app.get('a'); -//=> 'b' -app.get('c'); -//=> {d: 'e'} - -console.log(app.cache); -//=> {a: 'b'} -``` - -**Inherit** - -```js -var util = require('util'); -var Cache = require('cache-base'); - -function MyApp() { - Cache.call(this); -} -util.inherits(MyApp, Cache); - -var app = new MyApp(); -app.set('a', 'b'); -app.get('a'); -//=> 'b' -``` - -**Namespace** - -Define a custom property for storing values. - -```js -var Cache = require('cache-base').namespace('data'); -var app = new Cache(); -app.set('a', 'b'); -console.log(app.data); -//=> {a: 'b'} -``` - -## API - -### [namespace](index.js#L29) - -Create a `Cache` constructor that when instantiated will store values on the given `prop`. - -**Params** - -* `prop` **{String}**: The property name to use for storing values. -* `returns` **{Function}**: Returns a custom `Cache` constructor - -**Example** - -```js -var Cache = require('cache-base').namespace('data'); -var cache = new Cache(); - -cache.set('foo', 'bar'); -//=> {data: {foo: 'bar'}} -``` - -### [Cache](index.js#L43) - -Create a new `Cache`. Internally the `Cache` constructor is created using the `namespace` function, with `cache` defined as the storage object. - -**Params** - -* `cache` **{Object}**: Optionally pass an object to initialize with. - -**Example** - -```js -var app = new Cache(); -``` - -### [.set](index.js#L84) - -Assign `value` to `key`. Also emits `set` with the key and value. - -**Params** - -* `key` **{String}** -* `value` **{any}** -* `returns` **{Object}**: Returns the instance for chaining. - -**Events** - -* `emits`: `set` with `key` and `value` as arguments. - -**Example** - -```js -app.on('set', function(key, val) { - // do something when `set` is emitted -}); - -app.set(key, value); - -// also takes an object or array -app.set({name: 'Halle'}); -app.set([{foo: 'bar'}, {baz: 'quux'}]); -console.log(app); -//=> {name: 'Halle', foo: 'bar', baz: 'quux'} -``` - -### [.union](index.js#L114) - -Union `array` to `key`. Also emits `set` with the key and value. - -**Params** - -* `key` **{String}** -* `value` **{any}** -* `returns` **{Object}**: Returns the instance for chaining. - -**Example** - -```js -app.union('a.b', ['foo']); -app.union('a.b', ['bar']); -console.log(app.get('a')); -//=> {b: ['foo', 'bar']} -``` - -### [.get](index.js#L144) - -Return the value of `key`. Dot notation may be used to get [nested property values](https://github.com/jonschlinkert/get-value). - -**Params** - -* `key` **{String}**: The name of the property to get. Dot-notation may be used. -* `returns` **{any}**: Returns the value of `key` - -**Events** - -* `emits`: `get` with `key` and `value` as arguments. - -**Example** - -```js -app.set('a.b.c', 'd'); -app.get('a.b'); -//=> {c: 'd'} - -app.get(['a', 'b']); -//=> {c: 'd'} -``` - -### [.has](index.js#L171) - -Return true if app has a stored value for `key`, false only if value is `undefined`. - -**Params** - -* `key` **{String}** -* `returns` **{Boolean}** - -**Events** - -* `emits`: `has` with `key` and true or false as arguments. - -**Example** - -```js -app.set('foo', 'bar'); -app.has('foo'); -//=> true -``` - -### [.del](index.js#L199) - -Delete one or more properties from the instance. - -**Params** - -* `key` **{String|Array}**: Property name or array of property names. -* `returns` **{Object}**: Returns the instance for chaining. - -**Events** - -* `emits`: `del` with the `key` as the only argument. - -**Example** - -```js -app.del(); // delete all -// or -app.del('foo'); -// or -app.del(['foo', 'bar']); -``` - -### [.clear](index.js#L218) - -Reset the entire cache to an empty object. - -**Example** - -```js -app.clear(); -``` - -### [.visit](index.js#L235) - -Visit `method` over the properties in the given object, or map -visit over the object-elements in an array. - -**Params** - -* `method` **{String}**: The name of the `base` method to call. -* `val` **{Object|Array}**: The object or array to iterate over. -* `returns` **{Object}**: Returns the instance for chaining. - -## About - -### Related projects - -* [base-methods](https://www.npmjs.com/package/base-methods): base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/jonschlinkert/base-methods) | [homepage](https://github.com/jonschlinkert/base-methods "base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.") -* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.") -* [has-value](https://www.npmjs.com/package/has-value): Returns true if a value exists, false if empty. Works with deeply nested values using… [more](https://github.com/jonschlinkert/has-value) | [homepage](https://github.com/jonschlinkert/has-value "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.") -* [option-cache](https://www.npmjs.com/package/option-cache): Simple API for managing options in JavaScript applications. | [homepage](https://github.com/jonschlinkert/option-cache "Simple API for managing options in JavaScript applications.") -* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.") -* [unset-value](https://www.npmjs.com/package/unset-value): Delete nested properties from an object using dot notation. | [homepage](https://github.com/jonschlinkert/unset-value "Delete nested properties from an object using dot notation.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 54 | [jonschlinkert](https://github.com/jonschlinkert) | -| 2 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 22, 2017._ \ No newline at end of file diff --git a/build/node_modules/cache-base/index.js b/build/node_modules/cache-base/index.js deleted file mode 100644 index 41280245..00000000 --- a/build/node_modules/cache-base/index.js +++ /dev/null @@ -1,261 +0,0 @@ -'use strict'; - -var isObject = require('isobject'); -var Emitter = require('component-emitter'); -var visit = require('collection-visit'); -var toPath = require('to-object-path'); -var union = require('union-value'); -var del = require('unset-value'); -var get = require('get-value'); -var has = require('has-value'); -var set = require('set-value'); - -/** - * Create a `Cache` constructor that when instantiated will - * store values on the given `prop`. - * - * ```js - * var Cache = require('cache-base').namespace('data'); - * var cache = new Cache(); - * - * cache.set('foo', 'bar'); - * //=> {data: {foo: 'bar'}} - * ``` - * @param {String} `prop` The property name to use for storing values. - * @return {Function} Returns a custom `Cache` constructor - * @api public - */ - -function namespace(prop) { - - /** - * Create a new `Cache`. Internally the `Cache` constructor is created using - * the `namespace` function, with `cache` defined as the storage object. - * - * ```js - * var app = new Cache(); - * ``` - * @param {Object} `cache` Optionally pass an object to initialize with. - * @constructor - * @api public - */ - - function Cache(cache) { - if (prop) { - this[prop] = {}; - } - if (cache) { - this.set(cache); - } - } - - /** - * Inherit Emitter - */ - - Emitter(Cache.prototype); - - /** - * Assign `value` to `key`. Also emits `set` with - * the key and value. - * - * ```js - * app.on('set', function(key, val) { - * // do something when `set` is emitted - * }); - * - * app.set(key, value); - * - * // also takes an object or array - * app.set({name: 'Halle'}); - * app.set([{foo: 'bar'}, {baz: 'quux'}]); - * console.log(app); - * //=> {name: 'Halle', foo: 'bar', baz: 'quux'} - * ``` - * - * @name .set - * @emits `set` with `key` and `value` as arguments. - * @param {String} `key` - * @param {any} `value` - * @return {Object} Returns the instance for chaining. - * @api public - */ - - Cache.prototype.set = function(key, val) { - if (Array.isArray(key) && arguments.length === 2) { - key = toPath(key); - } - if (isObject(key) || Array.isArray(key)) { - this.visit('set', key); - } else { - set(prop ? this[prop] : this, key, val); - this.emit('set', key, val); - } - return this; - }; - - /** - * Union `array` to `key`. Also emits `set` with - * the key and value. - * - * ```js - * app.union('a.b', ['foo']); - * app.union('a.b', ['bar']); - * console.log(app.get('a')); - * //=> {b: ['foo', 'bar']} - * ``` - * @name .union - * @param {String} `key` - * @param {any} `value` - * @return {Object} Returns the instance for chaining. - * @api public - */ - - Cache.prototype.union = function(key, val) { - if (Array.isArray(key) && arguments.length === 2) { - key = toPath(key); - } - var ctx = prop ? this[prop] : this; - union(ctx, key, arrayify(val)); - this.emit('union', val); - return this; - }; - - /** - * Return the value of `key`. Dot notation may be used - * to get [nested property values][get-value]. - * - * ```js - * app.set('a.b.c', 'd'); - * app.get('a.b'); - * //=> {c: 'd'} - * - * app.get(['a', 'b']); - * //=> {c: 'd'} - * ``` - * - * @name .get - * @emits `get` with `key` and `value` as arguments. - * @param {String} `key` The name of the property to get. Dot-notation may be used. - * @return {any} Returns the value of `key` - * @api public - */ - - Cache.prototype.get = function(key) { - key = toPath(arguments); - - var ctx = prop ? this[prop] : this; - var val = get(ctx, key); - - this.emit('get', key, val); - return val; - }; - - /** - * Return true if app has a stored value for `key`, - * false only if value is `undefined`. - * - * ```js - * app.set('foo', 'bar'); - * app.has('foo'); - * //=> true - * ``` - * - * @name .has - * @emits `has` with `key` and true or false as arguments. - * @param {String} `key` - * @return {Boolean} - * @api public - */ - - Cache.prototype.has = function(key) { - key = toPath(arguments); - - var ctx = prop ? this[prop] : this; - var val = get(ctx, key); - - var has = typeof val !== 'undefined'; - this.emit('has', key, has); - return has; - }; - - /** - * Delete one or more properties from the instance. - * - * ```js - * app.del(); // delete all - * // or - * app.del('foo'); - * // or - * app.del(['foo', 'bar']); - * ``` - * @name .del - * @emits `del` with the `key` as the only argument. - * @param {String|Array} `key` Property name or array of property names. - * @return {Object} Returns the instance for chaining. - * @api public - */ - - Cache.prototype.del = function(key) { - if (Array.isArray(key)) { - this.visit('del', key); - } else { - del(prop ? this[prop] : this, key); - this.emit('del', key); - } - return this; - }; - - /** - * Reset the entire cache to an empty object. - * - * ```js - * app.clear(); - * ``` - * @api public - */ - - Cache.prototype.clear = function() { - if (prop) { - this[prop] = {}; - } - }; - - /** - * Visit `method` over the properties in the given object, or map - * visit over the object-elements in an array. - * - * @name .visit - * @param {String} `method` The name of the `base` method to call. - * @param {Object|Array} `val` The object or array to iterate over. - * @return {Object} Returns the instance for chaining. - * @api public - */ - - Cache.prototype.visit = function(method, val) { - visit(this, method, val); - return this; - }; - - return Cache; -} - -/** - * Cast val to an array - */ - -function arrayify(val) { - return val ? (Array.isArray(val) ? val : [val]) : []; -} - -/** - * Expose `Cache` - */ - -module.exports = namespace(); - -/** - * Expose `Cache.namespace` - */ - -module.exports.namespace = namespace; diff --git a/build/node_modules/cache-base/package.json b/build/node_modules/cache-base/package.json deleted file mode 100644 index fd88a110..00000000 --- a/build/node_modules/cache-base/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "cache-base", - "description": "Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/cache-base", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" - ], - "repository": "jonschlinkert/cache-base", - "bugs": { - "url": "https://github.com/jonschlinkert/cache-base/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "devDependencies": { - "gulp-format-md": "^1.0.0", - "mocha": "^3.4.2" - }, - "keywords": [ - "base", - "cache", - "config", - "data", - "get", - "has", - "hash", - "hasown", - "object", - "set", - "store" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "highligh": "base", - "list": [ - "base-methods", - "get-value", - "has-value", - "option-cache", - "set-value", - "unset-value" - ] - }, - "reflinks": [ - "verb" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/call-bind/.eslintignore b/build/node_modules/call-bind/.eslintignore deleted file mode 100644 index 404abb22..00000000 --- a/build/node_modules/call-bind/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/build/node_modules/call-bind/.eslintrc b/build/node_modules/call-bind/.eslintrc deleted file mode 100644 index dfa9a6cd..00000000 --- a/build/node_modules/call-bind/.eslintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "id-length": 0, - "new-cap": [2, { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - "no-magic-numbers": 0, - }, -} diff --git a/build/node_modules/call-bind/.nycrc b/build/node_modules/call-bind/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/call-bind/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/call-bind/CHANGELOG.md b/build/node_modules/call-bind/CHANGELOG.md deleted file mode 100644 index 717bcc3e..00000000 --- a/build/node_modules/call-bind/CHANGELOG.md +++ /dev/null @@ -1,77 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.5](https://github.com/ljharb/call-bind/compare/v1.0.4...v1.0.5) - 2023-10-19 - -### Commits - -- [Fix] throw an error on non-functions as early as possible [`f262408`](https://github.com/ljharb/call-bind/commit/f262408f822c840fbc268080f3ad7c429611066d) -- [Deps] update `set-function-length` [`3fff271`](https://github.com/ljharb/call-bind/commit/3fff27145a1e3a76a5b74f1d7c3c43d0fa3b9871) - -## [v1.0.4](https://github.com/ljharb/call-bind/compare/v1.0.3...v1.0.4) - 2023-10-19 - -## [v1.0.3](https://github.com/ljharb/call-bind/compare/v1.0.2...v1.0.3) - 2023-10-19 - -### Commits - -- [actions] reuse common workflows [`a994df6`](https://github.com/ljharb/call-bind/commit/a994df69f401f4bf735a4ccd77029b85d1549453) -- [meta] use `npmignore` to autogenerate an npmignore file [`eef3ef2`](https://github.com/ljharb/call-bind/commit/eef3ef21e1f002790837fedb8af2679c761fbdf5) -- [readme] flesh out content [`1845ccf`](https://github.com/ljharb/call-bind/commit/1845ccfd9976a607884cfc7157c93192cc16cf22) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`5b47d53`](https://github.com/ljharb/call-bind/commit/5b47d53d2fd74af5ea0a44f1d51e503cd42f7a90) -- [Refactor] use `set-function-length` [`a0e165c`](https://github.com/ljharb/call-bind/commit/a0e165c5dc61db781cbc919b586b1c2b8da0b150) -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9c50103`](https://github.com/ljharb/call-bind/commit/9c50103f44137279a817317cf6cc421a658f85b4) -- [meta] simplify "exports" [`019c6d0`](https://github.com/ljharb/call-bind/commit/019c6d06b0e1246ceed8e579f57e44441cbbf6d9) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`23bd718`](https://github.com/ljharb/call-bind/commit/23bd718a288d3b03042062b4ef5153b3cea83f11) -- [actions] update codecov uploader [`62552d7`](https://github.com/ljharb/call-bind/commit/62552d79cc79e05825e99aaba134ae5b37f33da5) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ec81665`](https://github.com/ljharb/call-bind/commit/ec81665b300f87eabff597afdc8b8092adfa7afd) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`35d67fc`](https://github.com/ljharb/call-bind/commit/35d67fcea883e686650f736f61da5ddca2592de8) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`0266d8d`](https://github.com/ljharb/call-bind/commit/0266d8d2a45086a922db366d0c2932fa463662ff) -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`43a5b28`](https://github.com/ljharb/call-bind/commit/43a5b28a444e710e1bbf92adb8afb5cf7523a223) -- [Deps] update `define-data-property`, `function-bind`, `get-intrinsic` [`780eb36`](https://github.com/ljharb/call-bind/commit/780eb36552514f8cc99c70821ce698697c2726a5) -- [Dev Deps] update `aud`, `tape` [`90d50ad`](https://github.com/ljharb/call-bind/commit/90d50ad03b061e0268b3380b0065fcaec183dc05) -- [meta] use `prepublishOnly` script for npm 7+ [`44c5433`](https://github.com/ljharb/call-bind/commit/44c5433b7980e02b4870007046407cf6fc543329) -- [Deps] update `get-intrinsic` [`86bfbfc`](https://github.com/ljharb/call-bind/commit/86bfbfcf34afdc6eabc93ce3d408548d0e27d958) -- [Deps] update `get-intrinsic` [`5c53354`](https://github.com/ljharb/call-bind/commit/5c5335489be0294c18cd7a8bb6e08226ee019ff5) -- [actions] update checkout action [`4c393a8`](https://github.com/ljharb/call-bind/commit/4c393a8173b3c8e5b30d5b3297b3b94d48bf87f3) -- [Deps] update `get-intrinsic` [`4e70bde`](https://github.com/ljharb/call-bind/commit/4e70bdec0626acb11616d66250fc14565e716e91) -- [Deps] update `get-intrinsic` [`55ae803`](https://github.com/ljharb/call-bind/commit/55ae803a920bd93c369cd798c20de31f91e9fc60) - -## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11 - -### Commits - -- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d) - -## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08 - -### Commits - -- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1) -- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e) -- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb) -- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71) -- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee) -- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2) -- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8) -- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532) -- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6) - -## v1.0.0 - 2020-10-30 - -### Commits - -- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50) -- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df) -- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65) -- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249) -- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13) -- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4) -- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717) -- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af) -- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650) -- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f) diff --git a/build/node_modules/call-bind/LICENSE b/build/node_modules/call-bind/LICENSE deleted file mode 100644 index 48f05d01..00000000 --- a/build/node_modules/call-bind/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/call-bind/README.md b/build/node_modules/call-bind/README.md deleted file mode 100644 index 48e9047f..00000000 --- a/build/node_modules/call-bind/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# call-bind [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Robustly `.call.bind()` a function. - -## Getting started - -```sh -npm install --save call-bind -``` - -## Usage/Examples - -```js -const assert = require('assert'); -const callBind = require('call-bind'); -const callBound = require('call-bind/callBound'); - -function f(a, b) { - assert.equal(this, 1); - assert.equal(a, 2); - assert.equal(b, 3); - assert.equal(arguments.length, 2); -} - -const fBound = callBind(f); - -const slice = callBound('Array.prototype.slice'); - -delete Function.prototype.call; -delete Function.prototype.bind; - -fBound(1, 2, 3); - -assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); -``` - -## Tests - -Clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/call-bind -[npm-version-svg]: https://versionbadg.es/ljharb/call-bind.svg -[deps-svg]: https://david-dm.org/ljharb/call-bind.svg -[deps-url]: https://david-dm.org/ljharb/call-bind -[dev-deps-svg]: https://david-dm.org/ljharb/call-bind/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/call-bind#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/call-bind.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/call-bind.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/call-bind.svg -[downloads-url]: https://npm-stat.com/charts.html?package=call-bind -[codecov-image]: https://codecov.io/gh/ljharb/call-bind/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind -[actions-url]: https://github.com/ljharb/call-bind/actions diff --git a/build/node_modules/call-bind/callBound.js b/build/node_modules/call-bind/callBound.js deleted file mode 100644 index 8374adfd..00000000 --- a/build/node_modules/call-bind/callBound.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBind = require('./'); - -var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - -module.exports = function callBoundIntrinsic(name, allowMissing) { - var intrinsic = GetIntrinsic(name, !!allowMissing); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { - return callBind(intrinsic); - } - return intrinsic; -}; diff --git a/build/node_modules/call-bind/index.js b/build/node_modules/call-bind/index.js deleted file mode 100644 index 184ee2be..00000000 --- a/build/node_modules/call-bind/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); -var GetIntrinsic = require('get-intrinsic'); -var setFunctionLength = require('set-function-length'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); -var $max = GetIntrinsic('%Math.max%'); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -module.exports = function callBind(originalFunction) { - if (typeof originalFunction !== 'function') { - throw new $TypeError('a function is required'); - } - var func = $reflectApply(bind, $call, arguments); - return setFunctionLength( - func, - 1 + $max(0, originalFunction.length - (arguments.length - 1)), - true - ); -}; - -var applyBind = function applyBind() { - return $reflectApply(bind, $apply, arguments); -}; - -if ($defineProperty) { - $defineProperty(module.exports, 'apply', { value: applyBind }); -} else { - module.exports.apply = applyBind; -} diff --git a/build/node_modules/call-bind/package.json b/build/node_modules/call-bind/package.json deleted file mode 100644 index f946e1a9..00000000 --- a/build/node_modules/call-bind/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "call-bind", - "version": "1.0.5", - "description": "Robustly `.call.bind()` a function", - "main": "index.js", - "exports": { - ".": "./index.js", - "./callBound": "./callBound.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=auto", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "lint": "eslint --ext=.js,.mjs .", - "postlint": "evalmd README.md", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/call-bind.git" - }, - "keywords": [ - "javascript", - "ecmascript", - "es", - "js", - "callbind", - "callbound", - "call", - "bind", - "bound", - "call-bind", - "call-bound", - "function", - "es-abstract" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/call-bind/issues" - }, - "homepage": "https://github.com/ljharb/call-bind#readme", - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "es-value-fixtures": "^1.4.2", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-strict-mode": "^1.0.1", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "object-inspect": "^1.13.1", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.1" - }, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/call-me-maybe/LICENSE b/build/node_modules/call-me-maybe/LICENSE deleted file mode 100644 index 8447d845..00000000 --- a/build/node_modules/call-me-maybe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Eric McCarthy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/call-me-maybe/README.md b/build/node_modules/call-me-maybe/README.md deleted file mode 100644 index 33e87445..00000000 --- a/build/node_modules/call-me-maybe/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# call-me-maybe [![Continuous Release](https://github.com/limulus/call-me-maybe/actions/workflows/continuous-release.yaml/badge.svg)](https://github.com/limulus/call-me-maybe/actions/workflows/continuous-release.yaml) - -Let your JS API users either give you a callback or receive a promise. - -## Usage - -```javascript -var maybe = require("call-me-maybe") - -module.exports = function asyncFunc (cb) { - return maybe(cb, new Promise(function(resolve, reject) { - // ... - })) -} -``` - -## API - -### maybe(cb, promise) - -If the callback `cb` is truthy, returns `undefined` and will call `cb` when `promise` is settled. The parameters passed to `cb` are standard error-first: - - - If `promise` is fulfilled, then it is called with the result of the promise: `cb(null, result)` - - If `promise` is rejected, then it is called with the rejection error: `cb(err)` - -If `cb` is falsey, then `promise` is returned. diff --git a/build/node_modules/call-me-maybe/package.json b/build/node_modules/call-me-maybe/package.json deleted file mode 100644 index 34844746..00000000 --- a/build/node_modules/call-me-maybe/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "call-me-maybe", - "version": "1.0.2", - "description": "Let your JS API users either give you a callback or receive a promise", - "main": "src/maybe.js", - "files": [ - "src" - ], - "devDependencies": { - "@commitlint/config-conventional": "^17.1.0", - "browserify": "^17.0.0", - "commitlint": "^17.1.2", - "husky": "^7.0.0", - "is-ci": "^3.0.1", - "karma": "^6.4.1", - "karma-browserify": "^8.1.0", - "karma-browserstack-launcher": "^1.6.0", - "karma-mocha": "^2.0.1", - "mocha": "^2.3.2", - "promise": "^7.0.4", - "semantic-release": "^19.0.5" - }, - "scripts": { - "test": "mocha", - "prepare": "is-ci || husky install", - "test-browsers": "karma start" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/limulus/call-me-maybe.git" - }, - "keywords": [ - "promise", - "callback", - "denodeify", - "promisify", - "carlyraejepsen" - ], - "author": "Eric McCarthy (http://www.limulus.net/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/limulus/call-me-maybe/issues" - }, - "homepage": "https://github.com/limulus/call-me-maybe#readme" -} diff --git a/build/node_modules/callsites/index.d.ts b/build/node_modules/callsites/index.d.ts deleted file mode 100644 index 61f597cf..00000000 --- a/build/node_modules/callsites/index.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -declare namespace callsites { - interface CallSite { - /** - Returns the value of `this`. - */ - getThis(): unknown | undefined; - - /** - Returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. - */ - getTypeName(): string | null; - - /** - Returns the current function. - */ - getFunction(): Function | undefined; - - /** - Returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. - */ - getFunctionName(): string | null; - - /** - Returns the name of the property of `this` or one of its prototypes that holds the current function. - */ - getMethodName(): string | undefined; - - /** - Returns the name of the script if this function was defined in a script. - */ - getFileName(): string | null; - - /** - Returns the current line number if this function was defined in a script. - */ - getLineNumber(): number | null; - - /** - Returns the current column number if this function was defined in a script. - */ - getColumnNumber(): number | null; - - /** - Returns a string representing the location where `eval` was called if this function was created using a call to `eval`. - */ - getEvalOrigin(): string | undefined; - - /** - Returns `true` if this is a top-level invocation, that is, if it's a global object. - */ - isToplevel(): boolean; - - /** - Returns `true` if this call takes place in code defined by a call to `eval`. - */ - isEval(): boolean; - - /** - Returns `true` if this call is in native V8 code. - */ - isNative(): boolean; - - /** - Returns `true` if this is a constructor call. - */ - isConstructor(): boolean; - } -} - -declare const callsites: { - /** - Get callsites from the V8 stack trace API. - - @returns An array of `CallSite` objects. - - @example - ``` - import callsites = require('callsites'); - - function unicorn() { - console.log(callsites()[0].getFileName()); - //=> '/Users/sindresorhus/dev/callsites/test.js' - } - - unicorn(); - ``` - */ - (): callsites.CallSite[]; - - // TODO: Remove this for the next major release, refactor the whole definition to: - // declare function callsites(): callsites.CallSite[]; - // export = callsites; - default: typeof callsites; -}; - -export = callsites; diff --git a/build/node_modules/callsites/index.js b/build/node_modules/callsites/index.js deleted file mode 100644 index 486c2410..00000000 --- a/build/node_modules/callsites/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -const callsites = () => { - const _prepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = (_, stack) => stack; - const stack = new Error().stack.slice(1); - Error.prepareStackTrace = _prepareStackTrace; - return stack; -}; - -module.exports = callsites; -// TODO: Remove this for the next major release -module.exports.default = callsites; diff --git a/build/node_modules/callsites/license b/build/node_modules/callsites/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/callsites/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/callsites/package.json b/build/node_modules/callsites/package.json deleted file mode 100644 index 93463c34..00000000 --- a/build/node_modules/callsites/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "callsites", - "version": "3.1.0", - "description": "Get callsites from the V8 stack trace API", - "license": "MIT", - "repository": "sindresorhus/callsites", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "stacktrace", - "v8", - "callsite", - "callsites", - "stack", - "trace", - "function", - "file", - "line", - "debug" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/callsites/readme.md b/build/node_modules/callsites/readme.md deleted file mode 100644 index fc846138..00000000 --- a/build/node_modules/callsites/readme.md +++ /dev/null @@ -1,48 +0,0 @@ -# callsites [![Build Status](https://travis-ci.org/sindresorhus/callsites.svg?branch=master)](https://travis-ci.org/sindresorhus/callsites) - -> Get callsites from the [V8 stack trace API](https://v8.dev/docs/stack-trace-api) - - -## Install - -``` -$ npm install callsites -``` - - -## Usage - -```js -const callsites = require('callsites'); - -function unicorn() { - console.log(callsites()[0].getFileName()); - //=> '/Users/sindresorhus/dev/callsites/test.js' -} - -unicorn(); -``` - - -## API - -Returns an array of callsite objects with the following methods: - -- `getThis`: returns the value of `this`. -- `getTypeName`: returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. -- `getFunction`: returns the current function. -- `getFunctionName`: returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. -- `getMethodName`: returns the name of the property of `this` or one of its prototypes that holds the current function. -- `getFileName`: if this function was defined in a script returns the name of the script. -- `getLineNumber`: if this function was defined in a script returns the current line number. -- `getColumnNumber`: if this function was defined in a script returns the current column number -- `getEvalOrigin`: if this function was created using a call to `eval` returns a string representing the location where `eval` was called. -- `isToplevel`: is this a top-level invocation, that is, is this the global object? -- `isEval`: does this call take place in code defined by a call to `eval`? -- `isNative`: is this call in native V8 code? -- `isConstructor`: is this a constructor call? - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/camel-case/LICENSE b/build/node_modules/camel-case/LICENSE deleted file mode 100644 index 983fbe8a..00000000 --- a/build/node_modules/camel-case/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/camel-case/README.md b/build/node_modules/camel-case/README.md deleted file mode 100644 index 33ecb1be..00000000 --- a/build/node_modules/camel-case/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Camel Case - -[![NPM version][npm-image]][npm-url] -[![NPM downloads][downloads-image]][downloads-url] -[![Bundle size][bundlephobia-image]][bundlephobia-url] - -> Transform into a string with the separator denoted by the next word capitalized. - -## Installation - -``` -npm install camel-case --save -``` - -## Usage - -```js -import { camelCase } from "camel-case"; - -camelCase("string"); //=> "string" -camelCase("dot.case"); //=> "dotCase" -camelCase("PascalCase"); //=> "pascalCase" -camelCase("version 1.2.10"); //=> "version_1_2_10" -``` - -The function also accepts [`options`](https://github.com/blakeembrey/change-case#options). - -### Merge Numbers - -If you'd like to remove the behavior prefixing `_` before numbers, you can use `camelCaseTransformMerge`: - -```js -import { camelCaseTransformMerge } from "camel-case"; - -camelCase("version 12", { transform: camelCaseTransformMerge }); //=> "version12" -``` - -## License - -MIT - -[npm-image]: https://img.shields.io/npm/v/camel-case.svg?style=flat -[npm-url]: https://npmjs.org/package/camel-case -[downloads-image]: https://img.shields.io/npm/dm/camel-case.svg?style=flat -[downloads-url]: https://npmjs.org/package/camel-case -[bundlephobia-image]: https://img.shields.io/bundlephobia/minzip/camel-case.svg -[bundlephobia-url]: https://bundlephobia.com/result?p=camel-case diff --git a/build/node_modules/camel-case/package.json b/build/node_modules/camel-case/package.json deleted file mode 100644 index 28644308..00000000 --- a/build/node_modules/camel-case/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "camel-case", - "version": "4.1.2", - "description": "Transform into a string with the separator denoted by the next word capitalized", - "main": "dist/index.js", - "typings": "dist/index.d.ts", - "module": "dist.es2015/index.js", - "sideEffects": false, - "jsnext:main": "dist.es2015/index.js", - "files": [ - "dist/", - "dist.es2015/", - "LICENSE" - ], - "scripts": { - "lint": "tslint \"src/**/*\" --project tsconfig.json", - "build": "rimraf dist/ dist.es2015/ && tsc && tsc -P tsconfig.es2015.json", - "specs": "jest --coverage", - "test": "npm run build && npm run lint && npm run specs", - "size": "size-limit", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/change-case.git" - }, - "keywords": [ - "camel", - "case", - "camelcase", - "camel-case", - "convert", - "transform", - "identifier" - ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/change-case/issues" - }, - "homepage": "https://github.com/blakeembrey/change-case/tree/master/packages/camel-case#readme", - "size-limit": [ - { - "path": "dist/index.js", - "limit": "450 B" - } - ], - "jest": { - "roots": [ - "/src/" - ], - "transform": { - "\\.tsx?$": "ts-jest" - }, - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "jsx", - "json", - "node" - ] - }, - "publishConfig": { - "access": "public" - }, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "devDependencies": { - "@size-limit/preset-small-lib": "^2.2.1", - "@types/jest": "^24.0.23", - "@types/node": "^12.12.14", - "jest": "^24.9.0", - "rimraf": "^3.0.0", - "ts-jest": "^24.2.0", - "tslint": "^5.20.1", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.2" - }, - "gitHead": "76a21a7f6f2a226521ef6abd345ff309cbd01fb0" -} diff --git a/build/node_modules/camelcase/index.d.ts b/build/node_modules/camelcase/index.d.ts deleted file mode 100644 index 9db94e53..00000000 --- a/build/node_modules/camelcase/index.d.ts +++ /dev/null @@ -1,103 +0,0 @@ -declare namespace camelcase { - interface Options { - /** - Uppercase the first character: `foo-bar` → `FooBar`. - - @default false - */ - readonly pascalCase?: boolean; - - /** - Preserve the consecutive uppercase characters: `foo-BAR` → `FooBAR`. - - @default false - */ - readonly preserveConsecutiveUppercase?: boolean; - - /** - The locale parameter indicates the locale to be used to convert to upper/lower case according to any locale-specific case mappings. If multiple locales are given in an array, the best available locale is used. - - Setting `locale: false` ignores the platform locale and uses the [Unicode Default Case Conversion](https://unicode-org.github.io/icu/userguide/transforms/casemappings.html#simple-single-character-case-mapping) algorithm. - - Default: The host environment’s current locale. - - @example - ``` - import camelCase = require('camelcase'); - - camelCase('lorem-ipsum', {locale: 'en-US'}); - //=> 'loremIpsum' - camelCase('lorem-ipsum', {locale: 'tr-TR'}); - //=> 'loremİpsum' - camelCase('lorem-ipsum', {locale: ['en-US', 'en-GB']}); - //=> 'loremIpsum' - camelCase('lorem-ipsum', {locale: ['tr', 'TR', 'tr-TR']}); - //=> 'loremİpsum' - ``` - */ - readonly locale?: false | string | readonly string[]; - } -} - -/** -Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`. - -Correctly handles Unicode strings. - -@param input - String to convert to camel case. - -@example -``` -import camelCase = require('camelcase'); - -camelCase('foo-bar'); -//=> 'fooBar' - -camelCase('foo_bar'); -//=> 'fooBar' - -camelCase('Foo-Bar'); -//=> 'fooBar' - -camelCase('розовый_пушистый_единорог'); -//=> 'розовыйПушистыйЕдинорог' - -camelCase('Foo-Bar', {pascalCase: true}); -//=> 'FooBar' - -camelCase('--foo.bar', {pascalCase: false}); -//=> 'fooBar' - -camelCase('Foo-BAR', {preserveConsecutiveUppercase: true}); -//=> 'fooBAR' - -camelCase('fooBAR', {pascalCase: true, preserveConsecutiveUppercase: true})); -//=> 'FooBAR' - -camelCase('foo bar'); -//=> 'fooBar' - -console.log(process.argv[3]); -//=> '--foo-bar' -camelCase(process.argv[3]); -//=> 'fooBar' - -camelCase(['foo', 'bar']); -//=> 'fooBar' - -camelCase(['__foo__', '--bar'], {pascalCase: true}); -//=> 'FooBar' - -camelCase(['foo', 'BAR'], {pascalCase: true, preserveConsecutiveUppercase: true}) -//=> 'FooBAR' - -camelCase('lorem-ipsum', {locale: 'en-US'}); -//=> 'loremIpsum' -``` -*/ -declare function camelcase( - input: string | readonly string[], - options?: camelcase.Options -): string; - -export = camelcase; diff --git a/build/node_modules/camelcase/index.js b/build/node_modules/camelcase/index.js deleted file mode 100644 index 6ff4ee85..00000000 --- a/build/node_modules/camelcase/index.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict'; - -const UPPERCASE = /[\p{Lu}]/u; -const LOWERCASE = /[\p{Ll}]/u; -const LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu; -const IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u; -const SEPARATORS = /[_.\- ]+/; - -const LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source); -const SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu'); -const NUMBERS_AND_IDENTIFIER = new RegExp('\\d+' + IDENTIFIER.source, 'gu'); - -const preserveCamelCase = (string, toLowerCase, toUpperCase) => { - let isLastCharLower = false; - let isLastCharUpper = false; - let isLastLastCharUpper = false; - - for (let i = 0; i < string.length; i++) { - const character = string[i]; - - if (isLastCharLower && UPPERCASE.test(character)) { - string = string.slice(0, i) + '-' + string.slice(i); - isLastCharLower = false; - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = true; - i++; - } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) { - string = string.slice(0, i - 1) + '-' + string.slice(i - 1); - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = false; - isLastCharLower = true; - } else { - isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character; - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character; - } - } - - return string; -}; - -const preserveConsecutiveUppercase = (input, toLowerCase) => { - LEADING_CAPITAL.lastIndex = 0; - - return input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1)); -}; - -const postProcess = (input, toUpperCase) => { - SEPARATORS_AND_IDENTIFIER.lastIndex = 0; - NUMBERS_AND_IDENTIFIER.lastIndex = 0; - - return input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier)) - .replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m)); -}; - -const camelCase = (input, options) => { - if (!(typeof input === 'string' || Array.isArray(input))) { - throw new TypeError('Expected the input to be `string | string[]`'); - } - - options = { - pascalCase: false, - preserveConsecutiveUppercase: false, - ...options - }; - - if (Array.isArray(input)) { - input = input.map(x => x.trim()) - .filter(x => x.length) - .join('-'); - } else { - input = input.trim(); - } - - if (input.length === 0) { - return ''; - } - - const toLowerCase = options.locale === false ? - string => string.toLowerCase() : - string => string.toLocaleLowerCase(options.locale); - const toUpperCase = options.locale === false ? - string => string.toUpperCase() : - string => string.toLocaleUpperCase(options.locale); - - if (input.length === 1) { - return options.pascalCase ? toUpperCase(input) : toLowerCase(input); - } - - const hasUpperCase = input !== toLowerCase(input); - - if (hasUpperCase) { - input = preserveCamelCase(input, toLowerCase, toUpperCase); - } - - input = input.replace(LEADING_SEPARATORS, ''); - - if (options.preserveConsecutiveUppercase) { - input = preserveConsecutiveUppercase(input, toLowerCase); - } else { - input = toLowerCase(input); - } - - if (options.pascalCase) { - input = toUpperCase(input.charAt(0)) + input.slice(1); - } - - return postProcess(input, toUpperCase); -}; - -module.exports = camelCase; -// TODO: Remove this for the next major release -module.exports.default = camelCase; diff --git a/build/node_modules/camelcase/license b/build/node_modules/camelcase/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/camelcase/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/camelcase/package.json b/build/node_modules/camelcase/package.json deleted file mode 100644 index c4335792..00000000 --- a/build/node_modules/camelcase/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "camelcase", - "version": "6.3.0", - "description": "Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`", - "license": "MIT", - "repository": "sindresorhus/camelcase", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "camelcase", - "camel-case", - "camel", - "case", - "dash", - "hyphen", - "dot", - "underscore", - "separator", - "string", - "text", - "convert", - "pascalcase", - "pascal-case" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.11.0", - "xo": "^0.28.3" - } -} diff --git a/build/node_modules/camelcase/readme.md b/build/node_modules/camelcase/readme.md deleted file mode 100644 index 0ff8f9e1..00000000 --- a/build/node_modules/camelcase/readme.md +++ /dev/null @@ -1,144 +0,0 @@ -# camelcase - -> Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar` - -Correctly handles Unicode strings. - -If you use this on untrusted user input, don't forget to limit the length to something reasonable. - -## Install - -``` -$ npm install camelcase -``` - -*If you need to support Firefox < 78, stay on version 5 as version 6 uses regex features not available in Firefox < 78.* - -## Usage - -```js -const camelCase = require('camelcase'); - -camelCase('foo-bar'); -//=> 'fooBar' - -camelCase('foo_bar'); -//=> 'fooBar' - -camelCase('Foo-Bar'); -//=> 'fooBar' - -camelCase('розовый_пушистый_единорог'); -//=> 'розовыйПушистыйЕдинорог' - -camelCase('Foo-Bar', {pascalCase: true}); -//=> 'FooBar' - -camelCase('--foo.bar', {pascalCase: false}); -//=> 'fooBar' - -camelCase('Foo-BAR', {preserveConsecutiveUppercase: true}); -//=> 'fooBAR' - -camelCase('fooBAR', {pascalCase: true, preserveConsecutiveUppercase: true})); -//=> 'FooBAR' - -camelCase('foo bar'); -//=> 'fooBar' - -console.log(process.argv[3]); -//=> '--foo-bar' -camelCase(process.argv[3]); -//=> 'fooBar' - -camelCase(['foo', 'bar']); -//=> 'fooBar' - -camelCase(['__foo__', '--bar'], {pascalCase: true}); -//=> 'FooBar' - -camelCase(['foo', 'BAR'], {pascalCase: true, preserveConsecutiveUppercase: true}) -//=> 'FooBAR' - -camelCase('lorem-ipsum', {locale: 'en-US'}); -//=> 'loremIpsum' -``` - -## API - -### camelCase(input, options?) - -#### input - -Type: `string | string[]` - -String to convert to camel case. - -#### options - -Type: `object` - -##### pascalCase - -Type: `boolean`\ -Default: `false` - -Uppercase the first character: `foo-bar` → `FooBar` - -##### preserveConsecutiveUppercase - -Type: `boolean`\ -Default: `false` - -Preserve the consecutive uppercase characters: `foo-BAR` → `FooBAR`. - -##### locale - -Type: `false | string | string[]`\ -Default: The host environment’s current locale. - -The locale parameter indicates the locale to be used to convert to upper/lower case according to any locale-specific case mappings. If multiple locales are given in an array, the best available locale is used. - -```js -const camelCase = require('camelcase'); - -camelCase('lorem-ipsum', {locale: 'en-US'}); -//=> 'loremIpsum' - -camelCase('lorem-ipsum', {locale: 'tr-TR'}); -//=> 'loremİpsum' - -camelCase('lorem-ipsum', {locale: ['en-US', 'en-GB']}); -//=> 'loremIpsum' - -camelCase('lorem-ipsum', {locale: ['tr', 'TR', 'tr-TR']}); -//=> 'loremİpsum' -``` - -Setting `locale: false` ignores the platform locale and uses the [Unicode Default Case Conversion](https://unicode-org.github.io/icu/userguide/transforms/casemappings.html#simple-single-character-case-mapping) algorithm: - -```js -const camelCase = require('camelcase'); - -// On a platform with 'tr-TR' - -camelCase('lorem-ipsum'); -//=> 'loremİpsum' - -camelCase('lorem-ipsum', {locale: false}); -//=> 'loremIpsum' -``` - -## camelcase for enterprise - -Available as part of the Tidelift Subscription. - -The maintainers of camelcase and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-camelcase?utm_source=npm-camelcase&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - -## Related - -- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module -- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase -- [titleize](https://github.com/sindresorhus/titleize) - Capitalize every word in string -- [humanize-string](https://github.com/sindresorhus/humanize-string) - Convert a camelized/dasherized/underscored string into a humanized one -- [camelcase-keys](https://github.com/sindresorhus/camelcase-keys) - Convert object keys to camel case diff --git a/build/node_modules/caniuse-api/CHANGELOG.md b/build/node_modules/caniuse-api/CHANGELOG.md deleted file mode 100644 index 86db5910..00000000 --- a/build/node_modules/caniuse-api/CHANGELOG.md +++ /dev/null @@ -1,92 +0,0 @@ -# 3.0.0 - 2018-07-10 - -- Upgraded: browserslist - -# 2.1.0 - 2018-06-06 (never released to npm) - -- Upgraded: browserslist, caniuse-lite - -# 2.0.0 - 2017-05-03 - -- Changed: we now use caniuse-lite instead if caniuse-db - ([#59](https://github.com/Nyalab/caniuse-api/pull/59)) - -# 1.6.1 - 2017-04-07 - -- Added: export the feature list - ([#48](https://github.com/Nyalab/caniuse-api/pull/48)) - -# 1.5.3 - 2017-02-01 - -- Removed unused dependency - ([#54](https://github.com/Nyalab/caniuse-api/pull/54) - @wtgtybhertgeghgtwtg) - -# 1.5.2 - 2016-09-05 - -- Fixed: no more generation `postinstall` hook ``\o/``. - ([#47](https://github.com/Nyalab/caniuse-api/pull/47) - @alexisvincent) - -# 1.5.1 - 2016-08-06 - -- Fixed: Do not fail when browserslist gives a browser that caniuse-api doesn't - know about - ([#45](https://github.com/Nyalab/caniuse-api/pull/45) - @onigoetz) - -# 1.5.0 - 2016-06-01 - -- Added: JSPM support with explicit file extensions ([#40](https://github.com/Nyalab/caniuse-api/issues/40)) -- Upgraded: dependecies (lodash.memoize, lodash.uniq, shelljs, babel-tape-runner, tape, tap-spec) -- Upgraded: ask travis to only test node stable -- Upgraded: some tests fixed, some tests added - -# 1.4.1 - 2015-10-18 - -- Fixed: `generator.js` was missing - -# 1.4.0 - 2015-10-18 - -- Upgraded: browserslist 1.x -- Upgraded: shelljs 0.5.x -- Added: output to notify if generation has been made or not -(related to [#25](https://github.com/Nyalab/caniuse-api/issues/25)) - -# 1.3.2 - 2015-06-23 - -- Fixed: lodash.uniq dep -([#31](https://github.com/Nyalab/caniuse-api/issues/31)) - -# 1.3.1 - 2015-03-31 - -- Fixed: Windows support - -# 1.3.0 - 2015-03-30 - -- Added: better exception messages -- Added: full browserify compatibility (by avoiding dynamic require) - -# 1.2.2 - 2015-02-06 - -- Fixed: postinstall hook for Windows - -# 1.2.1 - 2015-02-04 - -- Changed: Allow in browser usage by avoiding `require.resolve` and using a generated json instead or reading a directory ([#20](https://github.com/Nyalab/caniuse-api/pull/20)] - -# 1.2.0 [YANKED] - -# 1.1.0 - 2015-02-03 - -- Fixed: usage of caniuse-db outside the package itself -- Changed: upgrade to browserslist 0.2.x - -# 1.0.0 - 2014-12-16 - -- Added: package is now automatically tested by [Travis-CI](https://travis-ci.org/Nyalab/caniuse-api) - -# 0.1.0 - 2014-12-15 - -- Changed: complete API changes, released as `caniuse-api` package - -# 0.0.1 - 2014-12-09 - -✨Initial release diff --git a/build/node_modules/caniuse-api/LICENSE b/build/node_modules/caniuse-api/LICENSE deleted file mode 100644 index 6803e545..00000000 --- a/build/node_modules/caniuse-api/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Sébastien Balayn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/caniuse-api/README.md b/build/node_modules/caniuse-api/README.md deleted file mode 100644 index 9421ab4d..00000000 --- a/build/node_modules/caniuse-api/README.md +++ /dev/null @@ -1,157 +0,0 @@ -# caniuse-api [![Build Status](https://travis-ci.org/Nyalab/caniuse-api.svg?branch=master)](https://travis-ci.org/Nyalab/caniuse-api) [![Build status](https://ci.appveyor.com/api/projects/status/6j3na522bv3bxfa5/branch/master?svg=true)](https://ci.appveyor.com/project/MoOx/caniuse-api/branch/master) - -request the caniuse data to check browsers compatibilities - -## Installation - -```console -$ yarn add caniuse-api -``` - -## Usage - -```js -const caniuse = require('caniuse-api') - -caniuse.getSupport('border-radius') -caniuse.isSupported('border-radius', 'ie 8, ie 9') -caniuse.setBrowserScope('> 5%, last 1 version') -caniuse.getSupport('border-radius') -// ... -``` - -## API - -#### `caniuse.getSupport(feature)` - -_ask since which browsers versions a feature is available_ - -* `y`: Since which browser version the feature is available -* `n`: Up to which browser version the feature is unavailable -* `a`: Up to which browser version the feature is partially supported -* `x`: Up to which browser version the feature is prefixed - -```js -caniuse.getSupport('border-radius', true) -/* -{ and_chr: { y: 67 }, - and_ff: { y: 60 }, - and_qq: { y: 1.2 }, - and_uc: { y: 11.8 }, - android: { y: 2.1, x: 2.1 }, - baidu: { y: 7.12 }, - chrome: { y: 4, x: 4 }, - edge: { y: 12 }, - firefox: { a: 2, x: 3.6, y: 3 }, - ie: { n: 8, y: 9 }, - ie_mob: { y: 10 }, - ios_saf: { y: 3.2, x: 3.2 }, - op_mini: {}, - op_mob: { n: 10, y: 11 }, - opera: { n: 10, y: 10.5 }, - safari: { y: 3.1, x: 4 }, - samsung: { y: 4 } } -*/ -``` - -#### `caniuse.isSupported(feature, browsers)` - -_ask if a feature is supported by some browsers_ - -```js -caniuse.isSupported('border-radius', 'ie 8, ie 9') // false -caniuse.isSupported('border-radius', 'ie 9') // true -``` - -#### `caniuse.find(query)` - -_search for a caniuse feature name_ - -Ex: - -```js -caniuse.find('radius') // ['border-radius'] -caniuse.find('nothingness') // [] -caniuse.find('css3') -/* -[ 'css3-attr', - 'css3-boxsizing', - 'css3-colors', - 'css3-cursors-grab', - 'css3-cursors-newer', - 'css3-cursors', - 'css3-tabsize' ] -*/ -``` - -#### `caniuse.getLatestStableBrowsers()` - -_get the current version for each browser_ - -```js -caniuse.getLatestStableBrowsers() -/* -[ 'and_chr 67', - 'and_ff 60', - 'and_qq 1.2', - 'and_uc 11.8', - 'android 67', - 'baidu 7.12', - 'bb 10', - 'chrome 67', - 'edge 17', - 'firefox 61', - 'ie 11', - 'ie_mob 11', - 'ios_saf 11.3-11.4', - 'op_mini all', - 'op_mob 46', - 'opera 53', - 'safari 11.1', - 'samsung 7.2' ] -*/ -``` - -#### `caniuse.getBrowserScope()` - -_returns a list of browsers currently used for the scope of operations_ - -```js -caniuse.getBrowserScope() -/* -[ 'and_chr', - 'and_ff', - 'and_qq', - 'and_uc', - 'android', - 'baidu', - 'chrome', - 'edge', - 'firefox', - 'ie', - 'ie_mob', - 'ios_saf', - 'op_mini', - 'op_mob', - 'opera', - 'safari', - 'samsung' ] -*/ -``` - -#### `caniuse.setBrowserScope(browserscope)` - -_if you do not like the default browser scope, you can set it globally by using this method_ - -* browserscope should be a 'autoprefixer' formatted string - -```js -caniuse.setBrowserScope('> 5%, last 2 versions, Firefox ESR, Opera 12.1') -``` - - ---- - -## [Changelog](CHANGELOG.md) - -## [License](LICENSE) diff --git a/build/node_modules/caniuse-api/package.json b/build/node_modules/caniuse-api/package.json deleted file mode 100644 index a7eb873e..00000000 --- a/build/node_modules/caniuse-api/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "caniuse-api", - "version": "3.0.0", - "description": "request the caniuse data to check browsers compatibilities", - "repository": "https://github.com/nyalab/caniuse-api.git", - "keywords": [ - "caniuse", - "browserslist" - ], - "authors": [ - "nyalab", - "MoOx" - ], - "license": "MIT", - "main": "dist/index.js", - "files": [ - "dist" - ], - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - }, - "devDependencies": { - "babel-cli": "^6.22.2", - "babel-eslint": "^5.0.0", - "babel-preset-latest": "^6.22.0", - "babel-tape-runner": "^2.0.1", - "jshint": "^2.5.10", - "npmpub": "^3.1.0", - "tap-spec": "^4.1.1", - "tape": "^4.6.0" - }, - "scripts": { - "build": "babel src --out-dir dist", - "lint": "jshint src", - "prepublish": "npm run build", - "test": "npm run lint && babel-tape-runner test/*.js | tap-spec", - "release": "npmpub" - }, - "babel": { - "presets": [ - "babel-preset-latest" - ] - } -} diff --git a/build/node_modules/caniuse-lite/LICENSE b/build/node_modules/caniuse-lite/LICENSE deleted file mode 100644 index 06c608dc..00000000 --- a/build/node_modules/caniuse-lite/LICENSE +++ /dev/null @@ -1,395 +0,0 @@ -Attribution 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More_considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution 4.0 International Public License ("Public License"). To the -extent this Public License may be interpreted as a contract, You are -granted the Licensed Rights in consideration of Your acceptance of -these terms and conditions, and the Licensor grants You such rights in -consideration of benefits the Licensor receives from making the -Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part; and - - b. produce, reproduce, and Share Adapted Material. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - - -======================================================================= - -Creative Commons is not a party to its public -licenses. Notwithstanding, Creative Commons may elect to apply one of -its public licenses to material it publishes and in those instances -will be considered the “Licensor.” The text of the Creative Commons -public licenses is dedicated to the public domain under the CC0 Public -Domain Dedication. Except for the limited purpose of indicating that -material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the -public licenses. - -Creative Commons may be contacted at creativecommons.org. diff --git a/build/node_modules/caniuse-lite/README.md b/build/node_modules/caniuse-lite/README.md deleted file mode 100644 index f2c67bc4..00000000 --- a/build/node_modules/caniuse-lite/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# caniuse-lite - -A smaller version of caniuse-db, with only the essentials! - -## Docs -Read full docs **[here](https://github.com/browserslist/caniuse-lite#readme)**. diff --git a/build/node_modules/caniuse-lite/package.json b/build/node_modules/caniuse-lite/package.json deleted file mode 100644 index 3d057c22..00000000 --- a/build/node_modules/caniuse-lite/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "caniuse-lite", - "version": "1.0.30001558", - "description": "A smaller version of caniuse-db, with only the essentials!", - "main": "dist/unpacker/index.js", - "files": [ - "data", - "dist" - ], - "keywords": [ - "support" - ], - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "browserslist/caniuse-lite", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" -} diff --git a/build/node_modules/capital-case/LICENSE b/build/node_modules/capital-case/LICENSE deleted file mode 100644 index 983fbe8a..00000000 --- a/build/node_modules/capital-case/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/capital-case/README.md b/build/node_modules/capital-case/README.md deleted file mode 100644 index 06ce1584..00000000 --- a/build/node_modules/capital-case/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Capital Case - -[![NPM version][npm-image]][npm-url] -[![NPM downloads][downloads-image]][downloads-url] -[![Bundle size][bundlephobia-image]][bundlephobia-url] - -> Transform into a space separated string with each word capitalized. - -## Installation - -``` -npm install capital-case --save -``` - -## Usage - -```js -import { capitalCase } from "capital-case"; - -capitalCase("string"); //=> "String" -capitalCase("dot.case"); //=> "Dot Case" -capitalCase("PascalCase"); //=> "Pascal Case" -capitalCase("version 1.2.10"); //=> "Version 1 2 10" -``` - -The function also accepts [`options`](https://github.com/blakeembrey/change-case#options). - -## License - -MIT - -[npm-image]: https://img.shields.io/npm/v/capital-case.svg?style=flat -[npm-url]: https://npmjs.org/package/capital-case -[downloads-image]: https://img.shields.io/npm/dm/capital-case.svg?style=flat -[downloads-url]: https://npmjs.org/package/capital-case -[bundlephobia-image]: https://img.shields.io/bundlephobia/minzip/capital-case.svg -[bundlephobia-url]: https://bundlephobia.com/result?p=capital-case diff --git a/build/node_modules/capital-case/package.json b/build/node_modules/capital-case/package.json deleted file mode 100644 index 40a3fb83..00000000 --- a/build/node_modules/capital-case/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "capital-case", - "version": "1.0.4", - "description": "Transform into a space separated string with each word capitalized", - "main": "dist/index.js", - "typings": "dist/index.d.ts", - "module": "dist.es2015/index.js", - "sideEffects": false, - "jsnext:main": "dist.es2015/index.js", - "files": [ - "dist/", - "dist.es2015/", - "LICENSE" - ], - "scripts": { - "lint": "tslint \"src/**/*\" --project tsconfig.json", - "build": "rimraf dist/ dist.es2015/ && tsc && tsc -P tsconfig.es2015.json", - "specs": "jest --coverage", - "test": "npm run build && npm run lint && npm run specs", - "size": "size-limit", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/change-case.git" - }, - "keywords": [ - "capital", - "case", - "title", - "capital-case", - "convert", - "transform", - "capitalize" - ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/change-case/issues" - }, - "homepage": "https://github.com/blakeembrey/change-case/tree/master/packages/capital-case#readme", - "size-limit": [ - { - "path": "dist/index.js", - "limit": "500 B" - } - ], - "jest": { - "roots": [ - "/src/" - ], - "transform": { - "\\.tsx?$": "ts-jest" - }, - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "jsx", - "json", - "node" - ] - }, - "publishConfig": { - "access": "public" - }, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - }, - "devDependencies": { - "@size-limit/preset-small-lib": "^2.2.1", - "@types/jest": "^24.0.23", - "@types/node": "^12.12.14", - "jest": "^24.9.0", - "rimraf": "^3.0.0", - "ts-jest": "^24.2.0", - "tslint": "^5.20.1", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.2" - }, - "gitHead": "76a21a7f6f2a226521ef6abd345ff309cbd01fb0" -} diff --git a/build/node_modules/cardinal/.npmignore b/build/node_modules/cardinal/.npmignore deleted file mode 100644 index 7e2f179b..00000000 --- a/build/node_modules/cardinal/.npmignore +++ /dev/null @@ -1 +0,0 @@ -assets diff --git a/build/node_modules/cardinal/.travis.yml b/build/node_modules/cardinal/.travis.yml deleted file mode 100644 index c60f507f..00000000 --- a/build/node_modules/cardinal/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -sudo: false -language: node_js -node_js: - - "6" - - "8" - - "10" diff --git a/build/node_modules/cardinal/LICENSE b/build/node_modules/cardinal/LICENSE deleted file mode 100644 index 19c037f3..00000000 --- a/build/node_modules/cardinal/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright 2012 Thorsten Lorenz. -All rights reserved. - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/cardinal/README.md b/build/node_modules/cardinal/README.md deleted file mode 100644 index 90ca4b59..00000000 --- a/build/node_modules/cardinal/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# cardinal [![Build Status](https://secure.travis-ci.org/thlorenz/cardinal.svg)](http://travis-ci.org/thlorenz/cardinal) - -become a patron - -[![NPM](https://nodei.co/npm/cardinal.png?downloads=true&stars=true)](https://nodei.co/npm/cardinal/) - -**car·di·nal** *(kärdn-l, kärdnl)* - crested thick-billed North American finch having bright red plumage in the male. - -![screenshot](https://github.com/thlorenz/cardinal/raw/master/assets/screen-shot.png) - -## Features - -- highlights JavaScript code with ANSI colors to improve terminal output -- theming support, see [custom color themes](https://github.com/thlorenz/cardinal/tree/master/themes) -- optionally print line numbers -- API and command line interface (`cdl`) -- `.cardinalrc` config to customize settings -- supports UNIX pipes - -*** - -**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* - -- [Installation](#installation) - - [As library](#as-library) - - [As Commandline Tool](#as-commandline-tool) -- [Commandline](#commandline) - - [Highlight a file](#highlight-a-file) - - [As part of a UNIX pipe](#as-part-of-a-unix-pipe) - - [Theme](#theme) -- [API](#api) - - [*highlight(code[, opts])*](#highlightcode-opts) - - [*highlightFileSync(fullPath[, opts])*](#highlightfilesyncfullpath-opts) - - [*highlightFile(fullPath[, opts], callback)*](#highlightfilefullpath-opts-callback) - - [opts](#opts) -- [Examples ([*browse*](https://github.com/thlorenz/cardinal/tree/master/examples))](#examples-[browse]https://githubcom/thlorenz/cardinal/tree/master/examples) - - -## Installation - -### As library - - npm install cardinal - -### As Commandline Tool - - [sudo] npm install -g cardinal - -**Note:** - -When installed globally, cardinal exposes itself as the `cdl` command. - -## Commandline - -### Highlight a file - - cdl [options] - -**options**: - - `--nonum`: turns off line number printing (relevant if it is turned on inside `~/.cardinalrc` - -### As part of a UNIX pipe - - cat file.js | grep console | cdl - -**Note:** - -Not all code lines may be parsable JavaScript. In these cases the line is printed to the terminal without -highlighting it. - -### Theme - -The default theme will be used for highlighting. - -To use a different theme, include a `.cardinalrc` file in your `HOME` directory. - -This is a JSON file of the following form: - -```json -{ - "theme": "hide-semicolons", - "linenos": true|false -} -``` - -- `theme` can be the name of any of the [built-in themes](https://github.com/thlorenz/cardinal/tree/master/themes) or the -full path to a custom theme anywhere on your computer. -- linenos toggles line number printing - -## API - -### *highlight(code[, opts])* - -- returns the highlighted version of the passed code ({String}) or throws an error if it was not able to parse it -- opts (see below) - -### *highlightFileSync(fullPath[, opts])* - -- returns the highlighted version of the file whose fullPath ({String}) was passed or throws an error if it was not able - to parse it -- opts (see below) - -### *highlightFile(fullPath[, opts], callback)* - -- calls back with the highlighted version of the file whose fullPath ({String}) was passed or with an error if it was not able - to parse it -- opts (see below) -- `callback` ({Function}) has the following signature: `function (err, highlighted) { .. }` - -### opts - -opts is an {Object} with the following properties: - -- `theme` {Object} is used to optionally override the theme used to highlight -- `linenos` {Boolean} if `true` line numbers are included in the highlighted code -- `firstline` {Integer} sets line number of the first line when line numbers are printed -- `jsx` {Boolean} if `true` _JSX_ syntax is supported, otherwise cardinal will raise an error - when encountering _JSX_ (default: `false`) - -**Note** The `json` option is obsoleted and not necessary anymore as cardinal properly understands both JSON and JavaScript. - -## Examples ([*browse*](https://github.com/thlorenz/cardinal/tree/master/examples)) - -- [sample .cardinalrc](https://github.com/thlorenz/cardinal/blob/master/examples/.cardinalrc) -- [highlighting a code snippet](https://github.com/thlorenz/cardinal/blob/master/examples/highlight-string.js) via - ***highlight()*** -- [file that highlights itself](https://github.com/thlorenz/cardinal/blob/master/examples/highlight-self.js) via - ***highlightFile()*** including line numbers -- [file that highlights itself hiding all - semicolons](https://github.com/thlorenz/cardinal/blob/master/examples/highlight-self-hide-semicolons.js) via - ***highlightFileSync()*** diff --git a/build/node_modules/cardinal/cardinal.js b/build/node_modules/cardinal/cardinal.js deleted file mode 100644 index 2ef6f873..00000000 --- a/build/node_modules/cardinal/cardinal.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -module.exports = { - highlight: require('./lib/highlight') - , highlightFile: require('./lib/highlightFile') - , highlightFileSync: require('./lib/highlightFileSync') -} diff --git a/build/node_modules/cardinal/package.json b/build/node_modules/cardinal/package.json deleted file mode 100644 index 1cf81fd6..00000000 --- a/build/node_modules/cardinal/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "cardinal", - "version": "2.1.1", - "description": "Syntax highlights JavaScript code with ANSI colors to be printed to the terminal.", - "main": "cardinal.js", - "scripts": { - "test": "npm run run-test && npm run lint", - "run-test": "tape test/*.js", - "lint": "standart", - "lint-fix": "standart --fix", - "demo": "node examples/highlight-string.js; node examples/highlight-self; node examples/highlight-self-hide-semicolons;" - }, - "bin": { - "cdl": "./bin/cdl.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/thlorenz/cardinal.git" - }, - "keywords": [ - "syntax", - "highlight", - "theme", - "javascript", - "json", - "terminal", - "console", - "print", - "output" - ], - "author": "Thorsten Lorenz (thlorenz.com)", - "license": "MIT", - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "devDependencies": { - "readdirp": "~2.1.0", - "standart": "~6.1.0", - "tape": "~4.9.0" - }, - "standart": { - "ignore": [ - "test/fixtures" - ] - } -} diff --git a/build/node_modules/cardinal/settings.js b/build/node_modules/cardinal/settings.js deleted file mode 100644 index e17f3827..00000000 --- a/build/node_modules/cardinal/settings.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict' - -var path = require('path') -var fs = require('fs') -var utl = require('./utl') -var home = process.env.HOME -var settings - -function getSettings(home_) { - if (settings) return settings - var settingsJson - try { - settingsJson = fs.readFileSync(path.join(home_ || home, '.cardinalrc'), 'utf-8') - } catch (_) { - // no .cardinalrc found - not a problem - return undefined - } - try { - return JSON.parse(settingsJson) - } catch (e) { - // Have a .cardinalrc, but something about it is wrong - warn the user - // Coudn't parse the contained JSON - console.error(e) - return undefined - } -} - -// home_ mainly to be used during tests -// Resolves the preferred theme from the .cardinalrc found in the HOME directory -// If it couldn't be resolved, undefined is returned -function resolveTheme(home_) { - var themePath - var settings = getSettings(home_) - - if (!settings || !settings.theme) return undefined - - try { - // allow specifying just the name of a built-in theme or a full path to a custom theme - themePath = utl.isPath(settings.theme) ? settings.theme : path.join(__dirname, 'themes', settings.theme) - - return require(themePath) - } catch (e) { - // Specified theme path is invalid - console.error(e) - return undefined - } -} - -module.exports = { - resolveTheme: resolveTheme - , getSettings: getSettings -} - diff --git a/build/node_modules/cardinal/utl.js b/build/node_modules/cardinal/utl.js deleted file mode 100644 index 737d521b..00000000 --- a/build/node_modules/cardinal/utl.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' - -var util = require('util') - -module.exports.isPath = function(s) { - return (/[/\\]/).test(s) -} - -module.exports.inspect = function(obj, depth) { - console.log(util.inspect(obj, false, depth || 5, true)) -} - diff --git a/build/node_modules/chai/CODEOWNERS b/build/node_modules/chai/CODEOWNERS deleted file mode 100644 index ea74b66e..00000000 --- a/build/node_modules/chai/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @chaijs/chai diff --git a/build/node_modules/chai/CODE_OF_CONDUCT.md b/build/node_modules/chai/CODE_OF_CONDUCT.md deleted file mode 100644 index 074addcc..00000000 --- a/build/node_modules/chai/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,58 +0,0 @@ -# Contributor Code of Conduct - -> Read in: [Español](http://contributor-covenant.org/version/1/3/0/es/) | -[Français](http://contributor-covenant.org/version/1/3/0/fr/) | -[Italiano](http://contributor-covenant.org/version/1/3/0/it/) | -[Magyar](http://contributor-covenant.org/version/1/3/0/hu/) | -[Polskie](http://contributor-covenant.org/version/1/3/0/pl/) | -[Português](http://contributor-covenant.org/version/1/3/0/pt/) | -[Português do Brasil](http://contributor-covenant.org/version/1/3/0/pt_br/) - -As contributors and maintainers of this project, and in the interest of -fostering an open and welcoming community, we pledge to respect all people who -contribute through reporting issues, posting feature requests, updating -documentation, submitting pull requests or patches, and other activities. - -We are committed to making participation in this project a harassment-free -experience for everyone, regardless of level of experience, gender, gender -identity and expression, sexual orientation, disability, personal appearance, -body size, race, ethnicity, age, religion, or nationality. - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery -* Personal attacks -* Trolling or insulting/derogatory comments -* Public or private harassment -* Publishing other's private information, such as physical or electronic - addresses, without explicit permission -* Other unethical or unprofessional conduct - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -By adopting this Code of Conduct, project maintainers commit themselves to -fairly and consistently applying these principles to every aspect of managing -this project. Project maintainers who do not follow or enforce the Code of -Conduct may be permanently removed from the project team. - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting a project maintainer at chaijs@keithcirkel.co.uk. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. Maintainers are -obligated to maintain confidentiality with regard to the reporter of an -incident. - - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 1.3.0, available at -[http://contributor-covenant.org/version/1/3/0/][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/3/0/ diff --git a/build/node_modules/chai/CONTRIBUTING.md b/build/node_modules/chai/CONTRIBUTING.md deleted file mode 100644 index 258766ea..00000000 --- a/build/node_modules/chai/CONTRIBUTING.md +++ /dev/null @@ -1,212 +0,0 @@ -# Chai Contribution Guidelines - -We like to encourage you to contribute to the Chai.js repository. This should be as easy as possible for you but there are a few things to consider when contributing. The following guidelines for contribution should be followed if you want to submit a pull request or open an issue. - -Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features. - -#### Table of Contents - -- [TLDR;](#tldr) -- [Contributing](#contributing) - - [Bug Reports](#bugs) - - [Feature Requests](#features) - - [Pull Requests](#pull-requests) -- [Releasing](#releasing) -- [Support](#support) - - [Resources](#resources) - - [Core Contributors](#contributors) - - -## TLDR; - -- Creating an Issue or Pull Request requires a [GitHub](http://github.com) account. -- Issue reports should be **clear**, **concise** and **reproducible**. Check to see if your issue has already been resolved in the [master]() branch or already reported in Chai's [GitHub Issue Tracker](https://github.com/chaijs/chai/issues). -- In general, avoid submitting PRs for new Assertions without asking core contributors first. More than likely it would be better implemented as a plugin. -- Additional support is available via the [Google Group](http://groups.google.com/group/chaijs) or on irc.freenode.net#chaijs. -- **IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. - - - - -## Contributing - -The issue tracker is the preferred channel for [bug reports](#bugs), -[feature requests](#features) and [submitting pull -requests](#pull-requests), but please respect the following restrictions: - -* Please **do not** use the issue tracker for personal support requests (use - [Google Group](https://groups.google.com/forum/#!forum/chaijs) or IRC). -* Please **do not** derail or troll issues. Keep the discussion on topic and - respect the opinions of others - - -### Bug Reports - -A bug is a **demonstrable problem** that is caused by the code in the repository. - -Guidelines for bug reports: - -1. **Use the GitHub issue search** — check if the issue has already been reported. -2. **Check if the issue has been fixed** — try to reproduce it using the latest `master` or development branch in the repository. -3. **Isolate the problem** — create a test case to demonstrate your issue. Provide either a repo, gist, or code sample to demonstrate you problem. - -A good bug report shouldn't leave others needing to chase you up for more information. Please try to be as detailed as possible in your report. What is your environment? What steps will reproduce the issue? What browser(s) and/or Node.js versions experience the problem? What would you expect to be the outcome? All these details will help people to fix any potential bugs. - -Example: - -> Short and descriptive example bug report title -> -> A summary of the issue and the browser/OS environment in which it occurs. If suitable, include the steps required to reproduce the bug. -> -> 1. This is the first step -> 2. This is the second step -> 3. Further steps, etc. -> -> `` - a link to the reduced test case OR -> ```js -> expect(a).to.equal('a'); -> // code sample -> ``` -> -> Any other information you want to share that is relevant to the issue being reported. This might include the lines of code that you have identified as causing the bug, and potential solutions (and your opinions on their merits). - - -### Feature Requests - -Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the project. It's up to *you* to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible. - -Furthermore, since Chai.js has a [robust plugin API](http://chaijs.com/guide/plugins/), we encourage you to publish **new Assertions** as plugins. If your feature is an enhancement to an **existing Assertion**, please propose your changes as an issue prior to opening a pull request. If the core Chai.js contributors feel your plugin would be better suited as a core assertion, they will invite you to open a PR in [chaijs/chai](https://github.com/chaijs/chai). - - -### Pull Requests - -- PRs for new core-assertions are advised against. -- PRs for core-assertion bug fixes are always welcome. -- PRs for enhancing the interfaces are always welcome. -- PRs that increase test coverage are always welcome. -- PRs are scrutinized for coding-style. - -Good pull requests - patches, improvements, new features - are a fantastic help. They should remain focused in scope and avoid containing unrelated commits. - -**Please ask first** before embarking on any significant pull request (e.g. implementing features, refactoring code), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project. - -Please adhere to the coding conventions used throughout a project (indentation, accurate comments, etc.) and any other requirements (such as test coverage). - -Follow this process if you'd like your work considered for inclusion in the project: - -1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, and configure the remotes: - -```bash -# Clone your fork of the repo into the current directory -git clone https://github.com// -# Navigate to the newly cloned directory -cd -# Assign the original repo to a remote called "upstream" -git remote add upstream https://github.com// -``` - -2. If you cloned a while ago, get the latest changes from upstream: - -```bash -git checkout -git pull upstream -``` - -3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix: - -```bash -git checkout -b -``` - -4. Commit your changes in logical chunks. Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public. - -5. Run you code to make sure it works. If you're still having problems please try to run `make clean` and then test your code again. - -```bash -npm test -# when finished running tests... -git checkout chai.js -``` - -6. Locally merge (or rebase) the upstream development branch into your topic branch: - -```bash -git pull [--rebase] upstream -``` - -7. Push your topic branch up to your fork: - -```bash -git push origin -``` - -8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description. - -**IMPORTANT**: By submitting a patch, you agree to allow the project owner to license your work under the same license as that used by the project. - - -## Releasing - -Releases can be **prepared** by anyone with access to the code. - -Simply run `make release-major`, `make release-minor`, or `make-release-patch` -and it will automatically do the following: - - - Build chai.js - - Bump the version numbers across the project - - Make a commit within git - -All you need to do is push the commit up and make a pull request, one of the core contributors will merge it and publish a release. - -### Publishing a Release - -Anyone who is a core contributor (see the [Core Contributors Heading in the Readme](https://github.com/chaijs/chai#core-contributors)) can publish a release: - -1. Go to the [Releases page on Github](https://github.com/chaijs/chai/releases) -2. Hit "Draft a new release" (if you can't see this, you're not a core contributor!) -3. Write human-friendly Release Notes based on changelog. - - The release title is "x.x.x / YYYY-MM-DD" (where x.x.x is the version number) - - If breaking changes, write migration tutorial(s) and reasoning. - - Callouts for community contributions (PRs) with links to PR and contributing user. - - Callouts for other fixes made by core contributors with links to issue. -4. Hit "Save Draft" and get other core contributors to check your work, or alternatively hit "Publish release" -5. That's it! - - -## Support - - -### Resources - -For most of the documentation you are going to want to visit [ChaiJS.com](http://chaijs.com). - -- [Getting Started Guide](http://chaijs.com/guide/) -- [API Reference](http://chaijs.com/api/) -- [Plugins](http://chaijs.com/plugins/) - -Or finally, you may find a core-contributor or like-minded developer in any of our support channels. - -- IRC: irc.freenode.org #chaijs -- [Mailing List / Google Group](https://groups.google.com/forum/#!forum/chaijs) - - -### Core Contributors - -Feel free to reach out to any of the core-contributors with you questions or concerns. We will do our best to respond in a timely manner. - -- Jake Luer - - GH: [@logicalparadox](https://github.com/logicalparadox) - - TW: [@jakeluer](http://twitter.com/jakeluer) - - IRC: logicalparadox -- Veselin Todorov - - GH: [@vesln](https://github.com/vesln/) - - TW: [@vesln](http://twitter.com/vesln) - - IRC: vesln -- Keith Cirkel - - GH: [@keithamus](https://github.com/keithamus) - - TW: [@keithamus](http://twitter.com/keithamus) - - IRC: keithamus -- Lucas Fernandes da Costa - - GH: [@lucasfcosta](https://github.com/lucasfcosta) - - TW: [@lfernandescosta](https://twitter.com/lfernandescosta) - - IRC: lucasfcosta diff --git a/build/node_modules/chai/History.md b/build/node_modules/chai/History.md deleted file mode 100644 index 5b5ae7b0..00000000 --- a/build/node_modules/chai/History.md +++ /dev/null @@ -1,1059 +0,0 @@ -### Note - -As of 3.0.0, the History.md file has been deprecated. [Please refer to the full -commit logs available on GitHub](https://github.com/chaijs/chai/commits). - ---- - -2.3.0 / 2015-04-26 -================== - - * Merge pull request #423 from ehntoo/patch-1 - * Merge pull request #422 from ljharb/fix_descriptor_tests - * Fix a small bug in the .null assertion docs - * Use a regex to account for property ordering issues across engines. - * Add `make test-firefox` - * Merge pull request #417 from astorije/astorije/minimalist-typo - * Remove trailing whitespaces - * Fix super minor typo in an example - * Merge pull request #408 from ljharb/enumerableProperty - * Add `ownPropertyDescriptor` assertion. - -2.2.0 / 2015-03-26 -================== - - * Merge pull request #405 from chaijs/deep-escape-doc-tweaks - * Tweak documentation on `.deep` flag. - * Merge pull request #402 from umireon/escaping-dot-should-be-taken - * Documentation of escaping in `.deep` flag. - * take regular expression apart - * Feature: backslash-escaping in `.deep.property` - * Escaping dot should be taken in deep property - -2.1.2 / 2015-03-15 -================== - - * Merge pull request #396 from chaijs/add-keith-cirkel-contributing-md - * Add Keith Cirkel to CONTRIBUTING.md - * Merge pull request #395 from cjqed/386-assert-operator-no-eval - * No longer using eval on assert operator #386 - * Merge pull request #389 from chaijs/update-git-summary - * Update `git summary` in README - -2.1.1 / 2015-03-04 -================== - - * Merge pull request #385 from eldritch-fossicker/master - * updates to reflect code style preference from @keithamus - * fix indexing into array with deep propery - * Merge pull request #382 from astorije/patch-2 - * Merge pull request #383 from gurdiga/config-doc-wording-improvement - * config.truncateThreshold docs: simpler wording - * Add missing docstring for showDiff argument of assert - * Merge pull request #381 from astorije/patch-1 - * Add a minor precision that empty asserts on strings too. - * Merge pull request #379 from dcneiner/should-primitive-fix - * Primitives now use valueOf in shouldGetter - -2.1.0 / 2015-02-23 -================== - - * Merge pull request #374 from jmm/v2.0.1 - * Increment version to 2.0.1. - * Merge pull request #365 from chaijs/fix-travis - * Fix travis.yml deploy - * Merge pull request #356 from Soviut/master - * documented fail methods for expect and should interfaces - * fail method added directly to expect - -2.0.0 / 2015-02-09 -================== - - * Merge pull request #361 from gregglind/b265-keys-object - * fix #359. Add `.keys(object)` - * Merge pull request #359 from gregglind/b359-unexpected-keys-sort - * Fix #359 keys() sorts input unexpectedly - * contrib: publish release strategy and travis npm creds #337 - * Merge pull request #357 from danilovaz/master - * Update copyright date - * Merge pull request #349 from toastynerd/add-which-chain-method - * add the which chain method as per issue #347 - * Merge pull request #333 from cmpolis/change-assertions - * more `by` cleanup - * cleaned out `.by` for #333 - * Merge pull request #335 from DingoEatingFuzz/expose-util - * Expose chai util through the chai object - * cleanup (per notes on pr #333) - * updated `change` to work w/ non-number values + tests - * Merge pull request #334 from hurrymaplelad/patch-1 - * Typo, the flag is called 'contains' with an 's' - * updated assertion interface with `change` (#330) - * added `change`,`increase`,`decrease` assertions (#330) - * assert tests for `change`,`increase`,`decrease` - * expect/should tests for `change`,`increase`,`decrease` - * Merge pull request #328 from lo1tuma/issue-327 - * Add includes and contains alias (fixes #327) - * Merge pull request #325 from chasenlehara/overwriteChainableMethodDocs - * Fix docs for overwriteChainableMethod parameters - * Merge pull request #317 from jasonkarns/patch-2 - * Merge pull request #318 from jasonkarns/patch-3 - * Merge pull request #316 from jasonkarns/patch-1 - * typos in docs - * minor docs typo - * update docs: getAllFlags -> transferFlags - * Merge pull request #313 from cjqed/254-expect-any-all - * Added the all and any flags for keys assertion, with all being the default behavior - * Merge pull request #312 from cjqed/291-assert-same-deep-members - * Changed public comment of sameDeepMemebers to be more clear - * Fixes issue #291, adds assert.sameDeepMembers - * Merge pull request #311 from cjqed/305-above-below-on-assert - * Merge pull request #308 from prodatakey/hasproperty - * Issue #305 fixed, added assert.isAbove and assert.isBelow - * Fix typo - * More unit tests for new utility functions - * Refactor common functionality, document, test - * Refactor if statement out - * Small unit test fix - * Handle array indexing terminating paths - * Merge pull request #309 from ericdouglas/iterableEqual-couting-once - * couting variables just once - * Fix properties with `undefined` value pass property assertion - * Merge pull request #306 from chaijs/revert-297-noopchainfunc - * Revert "Allows writing lint-friendly tests" - -1.10.0 / 2014-11-10 -================== - - * Merge pull request #297 from prodatakey/noopchainfunc - * Merge pull request #300 from julienw/299-fix-getMessage-test - * Fix #299: the test is defining global variables - * Add a couple more unit tests - * Add unit tests for chained terminating property asserts - * Revise documentation wording - * Add docs for function style NOOP asserts - * Make the NOOP function a shared constant - * Merge pull request #298 from dasilvacontin/negativeZeroLogging - * why not more assertions - * added test for inspecting `-0` - * a more readable/simple condition statement, as pointed out by @keithamus - * added check for logging negative zero - * Change test to not trigger argument bug - * Allows writing lint-friendly tests - * readme: update contributors for 1.9.2 - -1.9.2 / 2014-09-29 -================== - - * Merge pull request #268 from charlierudolph/cr-lazyMessages - * Merge pull request #269 from charlierudolph/cr-codeCleanup - * Merge pull request #277 from charlierudolph/fix-doc - * Merge pull request #279 from mohayonao/fix-closeTo - * Merge pull request #292 from boneskull/mocha - * resolves #255: upgrade mocha - * Merge pull request #289 from charlierudolph/cr-dryUpCode - * Dry up code - * Merge pull request #275 from DrRataplan/master - * assert: .closeTo() verify value's type before assertion - * Rewrite pretty-printing HTML elements to prevent throwing internal errors Fixes errors occuring when using a non-native DOM implementation - * Fix assert documentation - * Remove unused argument - * Allow messages to be functions - * Merge pull request #267 from shinnn/master - * Use SVG badge - * Merge pull request #264 from cjthompson/keys_diff - * Show diff for keys assertion - -1.9.1 / 2014-03-19 -================== - - * deps update - * util: [getActual] select actual logic now allows undefined for actual. Closes #183 - * docs: [config] make public, express param type - * Merge pull request #251 from romario333/threshold3 - * Fix issue #166 - configurable threshold in objDisplay. - * Move configuration options to config.js. - * Merge pull request #233 from Empeeric/master - * Merge pull request #244 from leider/fix_for_contains - * Merge pull request #247 from didoarellano/typo-fixes - * Fix typos - * Merge pull request #245 from lfac-pt/patch-1 - * Update `exports.version` to 1.9.0 - * aborting loop on finding - * declaring variable only once - * additional test finds incomplete implementation - * simplified code - * fixing #239 (without changing chai.js) - * ssfi as it should be - * Merge pull request #228 from duncanbeevers/deep_members - * Deep equality check for collection membership - -1.9.0 / 2014-01-29 -================== - - * docs: add contributing.md #238 - * assert: .throws() returns thrown error. Closes #185 - * Merge pull request #232 from laconbass/assert-throws - * assert: .fail() parameter mismatch. Closes #206 - * Merge branch 'karma-fixes' - * Add karma phantomjs launcher - * Use latest karma and sauce launcher - * Karma tweaks - * Merge pull request #230 from jkroso/include - * Merge pull request #237 from chaijs/coverage - * Add coverage to npmignore - * Remove lib-cov from test-travisci dependents - * Remove the not longer needed lcov reporter - * Test coverage with istanbul - * Remove jscoverage - * Remove coveralls - * Merge pull request #226 from duncanbeevers/add_has - * Avoid error instantiation if possible on assert.throws - * Merge pull request #231 from duncanbeevers/update_copyright_year - * Update Copyright notices to 2014 - * handle negation correctly - * add failing test case - * support `{a:1,b:2}.should.include({a:1})` - * Merge pull request #224 from vbardales/master - * Add `has` to language chains - * Merge pull request #219 from demands/overwrite_chainable - * return error on throw method to chain on error properties, possibly different from message - * util: store chainable behavior in a __methods object on ctx - * util: code style fix - * util: add overwriteChainableMethod utility (for #215) - * Merge pull request #217 from demands/test_cleanup - * test: make it possible to run utilities tests with --watch - * makefile: change location of karma-runner bin script - * Merge pull request #202 from andreineculau/patch-2 - * test: add tests for throwing custom errors - * Merge pull request #201 from andreineculau/patch-1 - * test: updated for the new assertion errors - * core: improve message for assertion errors (throw assertion) - -1.8.1 / 2013-10-10 -================== - - * pkg: update deep-eql version - -1.8.0 / 2013-09-18 -================== - - * test: [sauce] add a few more browsers - * Merge branch 'refactor/deep-equal' - * util: remove embedded deep equal utility - * util: replace embedded deep equal with external module - * Merge branch 'feature/karma' - * docs: add sauce badge to readme [ci skip] - * test: [sauce] use karma@canary to prevent timeouts - * travis: only run on node 0.10 - * test: [karma] use karma phantomjs runner - * Merge pull request #181 from tricknotes/fix-highlight - * Fix highlight for example code - -1.7.2 / 2013-06-27 -================== - - * coverage: add coveralls badge - * test: [coveralls] add coveralls api integration. testing travis-ci integration - * Merge branch 'master' of github.com:chaijs/chai - * Merge branch 'feature/bower' - * Merge pull request #180 from tricknotes/modify-method-title - * Merge pull request #179 from tricknotes/highlight-code-example - * Modify method title to include argument name - * Fix to highlight code example - * bower: granular ignores - -1.7.1 / 2013-06-24 -================== - - * Merge branch 'feature/bower'. #175 - * bower: add json file - * build: browser - -1.7.0 / 2013-06-17 -================== - - * error: remove internal assertion error constructor - * core: [assertion-error] replace internal assertion error with dep - * deps: add chaijs/assertion-error@1.0.0 - * docs: fix typo in source file. #174 - * Merge pull request #174 from piecioshka/master - * typo - * Merge branch 'master' of github.com:chaijs/chai - * pkg: lock mocha/mocha-phantomjs versions (for now) - * Merge pull request #173 from chaijs/inspect-fix - * Fix `utils.inspect` with custom object-returning inspect()s. - * Merge pull request #171 from Bartvds/master - * replaced tabs with 2 spaces - * added assert.notOk() - * Merge pull request #169 from katsgeorgeek/topics/master - * Fix comparison objects. - -1.6.1 / 2013-06-05 -================== - - * Merge pull request #168 from katsgeorgeek/topics/master - * Add test for different RegExp flags. - * Add test for regexp comparison. - * Downgrade mocha version for fix running Phantom tests. - * Fix comparison equality of two regexps. - * Merge pull request #161 from brandonpayton/master - * Fix documented name for assert interfaces isDefined method - -1.6.0 / 2013-04-29 -================== - - * build: browser - * assert: [(not)include] throw on incompatible haystack. Closes #142 - * assert: [notInclude] add assert.notInclude. Closes #158 - * browser build - * makefile: force browser build on browser-test - * makefile: use component for browser build - * core: [assertions] remove extraneous comments - * Merge branch 'master' of github.com:chaijs/chai - * test: [assert] deep equal ordering - * Merge pull request #153 from NickHeiner/array-assertions - * giving members a no-flag assertion - * Code review comments - changing syntax - * Code review comments - * Adding members and memberEquals assertions for checking for subsets and set equality. Implements chaijs/chai#148. - * Merge pull request #140 from RubenVerborgh/function-prototype - * Restore the `call` and `apply` methods of Function when adding a chainable method. - * readme: 2013 - * notes: migration notes for deep equal changes - * test: for ever err() there must be a passing version - -1.5.0 / 2013-02-03 -================== - - * docs: add Release Notes for non-gitlog summary of changes. - * lib: update copyright to 2013 - * Merge branch 'refactor/travis' - * makefile: remove test-component for full test run - * pkg: script test now runs make test so travis will test browser - * browser: build - * tests: refactor some tests to support new objDisplay output - * test: [bootstrap] normalize boostrap across all test scenarios - * assertions: refactor some assertions to use objDisplay instead of inspect - * util: [objDisplay] normalize output of functions - * makefile: refactor for full build scenarios - * component: fix build bug where missing util:type file - * assertions: [throw] code cleanup - * Merge branch 'refactor/typeDetection' - * browser: build - * makefile: chai.js is .PHONY so it builds every time - * test: [expect] add arguments type detection test - * core/assertions: [type] (a/an) refactor to use type detection utility - * util: add cross-browser type detection utility - * Merge branch 'feature/component' - * browser: build - * component: add component.json file - * makefile: refactor for fine grain control of testing scenarios - * test: add mochaPhantomJS support and component test file - * deps: add component and mocha-phantomjs for browser testing - * ignore: update ignore files for component support - * travis: run for all branches - * Merge branch 'feature/showDiff' - * test: [Assertion] configruable showDiff flag. Closes #132 - * lib: [Assertion] add configurable showDiff flag. #132 - * Merge branch 'feature/saucelabs' - * Merge branch 'master' into feature/saucelabs - * browser: build - * support: add mocha cloud runner, client, and html test page - * test: [saucelabs] add auth placeholder - * deps: add mocha-cloud - * Merge pull request #136 from whatthejeff/message_fix - * Merge pull request #138 from timnew/master - * Fix issue #137, test message existence by using message!=null rather than using message - * Fixed backwards negation messages. - * Merge pull request #133 from RubenVerborgh/throw - * Functions throwing strings can reliably be tested. - * Merge pull request #131 from RubenVerborgh/proto - * Cache whether __proto__ is supported. - * Use __proto__ if available. - * Determine the property names to exclude beforehand. - * Merge pull request #126 from RubenVerborgh/eqls - * Add alias eqls for eql. - * Use inherited enumerable properties in deep equality comparison. - * Show inherited properties when inspecting an object. - * Add new getProperties and getEnumerableProperties utils. - * showDiff: force true for equal and eql - -1.4.2 / 2012-12-21 -================== - - * browser build: (object diff support when used with mocha) #106 - * test: [display] array test for mocha object diff - * browser: no longer need different AssertionError constructor - -1.4.1 / 2012-12-21 -================== - - * showDiff: force diff for equal and eql. #106 - * test: [expect] type null. #122 - * Merge pull request #115 from eshao/fix-assert-Throw - * FIX: assert.Throw checks error type/message - * TST: assert.Throw should check error type/message - -1.4.0 / 2012-11-29 -================== - - * pre-release browser build - * clean up index.js to not check for cov, revert package.json to use index.js - * convert tests to use new bootstrap - * refactor testing bootstrap - * use spaces (not tabs). Clean up #114 - * Merge pull request #114 from trantorLiu/master - * Add most() (alias: lte) and least() (alias: gte) to the API with new chainers "at" and "of". - * Change `main` to ./lib/chai. Fixes #28. - * Merge pull request #104 from connec/deep_equals_circular_references_ - * Merge pull request #109 from nnarhinen/patch-1 - * Check for 'actual' type - * Added support for circular references when checking deep (in)equality. - -1.3.0 / 2012-10-01 -================== - - * browser build w/ folio >= 0.3.4. Closes #99 - * add back buffer test for deep equal - * do not write flags to assertion.prototype - * remove buffer test from expect - * browser build - * improve documentation of custom error messages - * Merge branch 'master' of git://github.com/Liffft/chai into Liffft-master - * browser build - * improved buffer deep equal checking - * mocha is npm test command - * Cleaning up the js style… - * expect tests now include message pass-through - * packaging up browser-side changes… - * Increasing Throws error message verbosity - * Should syntax: piping message through - * Make globalShould test work in browser too. - * Add a setter for `Object.prototype.should`. Closes #86. - -1.2.0 / 2012-08-07 -================== - - * Merge branch 'feature/errmsg' - * browser build - * comment updates for utilities - * tweak objDislay to only kick in if object inspection is too long - * Merge branch 'master' into feature/errmsg - * add display sample for error message refactor - * first draft of error message refactor. #93 - * add `closeTo` assertion to `assert` interface. Closes #89. - * update folio build for better require.js handling. Closes #85 - * Merge pull request #92 from paulmillr/topics/add-dom-checks - * Add check for DOM objects. - * browser build - * Merge branch 'master' of github.com:chaijs/chai - * bug - getActual not defaulting to assertion subject - * Merge pull request #88 from pwnall/master - * Don't inspect() assertion arguments if the assertion passes. - -1.1.1 / 2012-07-09 -================== - - * improve commonjs support on browser build - * Merge pull request #83 from tkazec/equals - * Document .equals - * Add .equals as an alias of .equal - * remove unused browser prefix/suffix - * Merge branch 'feature/folio-build' - * browser build - * using folio to compile - * clean up makefile - * early folio 0.3.x support - -1.1.0 / 2012-06-26 -================== - - * browser build - * Disable "Assertion.includeStack is false" test in IE. - * Use `utils.getName` for all function inspections. - * Merge pull request #80 from kilianc/closeTo - * fixes #79 - * browser build - * expand docs to indicate change of subject for chaining. Closes #78 - * add `that` chain noop - * Merge branch 'bug/74' - * comments on how to property use `length` as chain. Closes #74 - * tests for length as chainable property. #74 - * add support for `length` as chainable prop/method. - * Merge branch 'bug/77' - * tests for getPathValue when working with nested arrays. Closes #77 - * add getPathValue support for nested arrays - * browser build - * fix bug for missing browser utils - * compile tool aware of new folder layout - * Merge branch 'refactor/1dot1' - * move core assertions to own file and refactor all using utils - * rearrange folder structure - -1.0.4 / 2012-06-03 -================== - - * Merge pull request #68 from fizker/itself - * Added itself chain. - * simplify error inspections for cross browser compatibility - * fix safari `addChainableMethod` errors. Closes #69 - -1.0.3 / 2012-05-27 -================== - - * Point Travis badge to the right place. - * Make error message for eql/deep.equal more clear. - * Fix .not.deep.equal. - * contributors list - -1.0.2 / 2012-05-26 -================== - - * Merge pull request #67 from chaijs/chaining-and-flags - * Browser build. - * Use `addChainableMethod` to get away from `__proto__` manipulation. - * New `addChainableMethod` utility. - * Replace `getAllFlags` with `transferFlags` utility. - * browser build - * test - get all flags - * utility - get all flags - * Add .mailmap to .npmignore. - * Add a .mailmap file to fix my name in shortlogs. - -1.0.1 / 2012-05-18 -================== - - * browser build - * Fixing "an" vs. "a" grammar in type assertions. - * Uniformize `assert` interface inline docs. - * Don't use `instanceof` for `assert.isArray`. - * Add `deep` flag for equality and property value. - * Merge pull request #64 from chaijs/assertion-docs - * Uniformize assertion inline docs. - * Add npm-debug.log to .gitignore. - * no reserved words as actuals. #62 - -1.0.0 / 2012-05-15 -================== - - * readme cleanup - * browser build - * utility comments - * removed docs - * update to package.json - * docs build - * comments / docs updates - * plugins app cleanup - * Merge pull request #61 from joliss/doc - * Fix and improve documentation of assert.equal and friends - * browser build - * doc checkpoint - texture - * Update chai-jquery link - * Use defined return value of Assertion extension functions - * Update utility docs - -1.0.0-rc3 / 2012-05-09 -================== - - * Merge branch 'feature/rc3' - * docs update - * browser build - * assert test conformity for minor refactor api - * assert minor refactor - * update util tests for new add/overwrite prop/method format - * added chai.Assertion.add/overwrite prop/method for plugin toolbox - * add/overwrite prop/method don't make assumptions about context - * doc test suite - * docs don't need coverage - * refactor all simple chains into one forEach loop, for clean documentation - * updated npm ignore - * remove old docs - * docs checkpoint - guide styled - * Merge pull request #59 from joliss/doc - * Document how to run the test suite - * don't need to rebuild docs to view - * dep update - * docs checkpoint - api section - * comment updates for docs - * new doc site checkpoint - plugin directory! - * Merge pull request #57 from kossnocorp/patch-1 - * Fix typo: devDependancies → devDependencies - * Using message flag in `getMessage` util instead of old `msg` property. - * Adding self to package.json contributors. - * `getMessage` shouldn't choke on null/omitted messages. - * `return this` not necessary in example. - * `return this` not necessary in example. - * Sinon–Chai has a dash - * updated plugins list for docs - -1.0.0-rc2 / 2012-05-06 -================== - - * Merge branch 'feature/test-cov' - * browser build - * missing assert tests for ownProperty - * appropriate assert equivalent for expect.to.have.property(key, val) - * reset AssertionError to include full stack - * test for plugin utilities - * overwrite Property and Method now ensure chain - * version notes in readme - -1.0.0-rc1 / 2012-05-04 -================== - - * browser build (rc1) - * assert match/notMatch tests - * assert interface - notMatch, ownProperty, notOwnProperty, ownPropertyVal, ownPropertyNotVal - * cleaner should interface export. - * added chai.Assertion.prototype._obj (getter) for quick access to object flag - * moved almostEqual / almostDeepEqual to stats plugin - * added mocha.opts - * Add test for `utils.addMethod` - * Fix a typo - * Add test for `utils.overwriteMethod` - * Fix a typo - * Browser build - * Add undefined assertion - * Add null assertion - * Fix an issue with `mocha --watch` - * travis no longer tests on node 0.4.x - * removing unnecissary carbon dep - * Merge branch 'feature/plugins-app' - * docs build - * templates for docs express app for plugin directory - * express app for plugin and static serving - * added web server deps - * Merge pull request #54 from josher19/master - * Remove old test.assert code - * Use util.inspect instead of inspect for deepAlmostEqual and almostEqual - * browser build - * Added almostEqual and deepAlmostEqual to assert test suite. - * bug - context determinants for utils - * dec=0 means rounding, so assert.deepAlmostEqual({pi: 3.1416}, {pi: 3}, 0) is true - * wrong travis link - * readme updates for version information - * travis tests 0.5.x branch as well - * [bug] util `addProperty` not correctly exporting - * read me version notes - * browser build 1.0.0alpha1 - * not using reserved words in internal assertions. #52 - * version tick - * clean up redundant tests - * Merge branch 'refs/heads/0.6.x' - * update version tag in package 1.0.0alpha1 - * browser build - * added utility tests to browser specs - * beginning utility testing - * updated utility comments - * utility - overwriteMethod - * utility - overwriteProperty - * utility - addMethod - * utility - addProperty - * missing ; - * contributors list update - * Merge branch 'refs/heads/0.6.x-docs' into 0.6.x - * Added guide link to docs. WIP - * Include/contain are now both properties and methods - * Add an alias annotation - * Remove usless function wrapper - * Fix a typo - * A/an are now both properties and methods - * [docs] new site homepage layout / color checkpoint - * Ignore IE-specific error properties. - * Fixing order of error message test. - * New cross-browser `getName` util. - * Fixing up `AssertionError` inheritance. - * backup docs - * Add doctypes - * [bug] was still using `constructor.name` in `throw` assertion - * [bug] flag Object.create(null) instead of new Object - * [test] browser build - * [refactor] all usage of Assertion.prototype.assert now uses template tags and flags - * [refactor] remove Assertion.prototype.inspect for testable object inspection - * [refactor] object to test is now stored in flag, with ssfi and custom message - * [bug] flag util - don't return on `set` - * [docs] comments for getMessage utility - * [feature] getMessage - * [feature] testing utilities - * [refactor] flag doesn't require `call` - * Make order of source files well-defined - * Added support for throw(errorInstance). - * Use a foolproof method of grabbing an error's name. - * Removed constructor.name check from throw. - * disabled stackTrack configuration tests until api is stable again - * first version of line displayed error for node js (unstable) - * refactor core Assertion to use flag utility for negation - * added flag utility - * tests for assert interface negatives. Closed #42 - * added assertion negatives that were missing. #42 - * Support for expected and actual parameters in assert-style error object - * chai as promised - readme - * Added assert.fail. Closes #40 - * better error message for assert.operator. Closes #39 - * [refactor] Assertion#property to use getPathValue property - * added getPathValue utility helper - * removed todo about browser build - * version notes - * version bumb 0.6.0 - * browser build - * [refactor] browser compile function to replace with `require('./error')' with 'require('./browser/error')' - * [feature] browser uses different error.js - * [refactor] error without chai.fail - * Assertion & interfaces use new utils helper export - * [refactor] primary export for new plugin util usage - * added util index.js helper - * added 2012 to copyright headers - * Added DeepEqual assertions - -0.5.3 / 2012-04-21 -================== - - * Merge branch 'refs/heads/jgonera-oldbrowsers' - * browser build - * fixed reserved names for old browsers in interface/assert - * fixed reserved names for old browsers in interface/should - * fixed: chai.js no longer contains fail() - * fixed reserved names for old browsers in Assertion - * Merge pull request #49 from joliss/build-order - * Make order of source files well-defined - * Merge pull request #43 from zzen/patch-1 - * Support for expected and actual parameters in assert-style error object - * chai as promised - readme - -0.5.2 / 2012-03-21 -================== - - * browser build - * Merge branch 'feature/assert-fail' - * Added assert.fail. Closes #40 - * Merge branch 'bug/operator-msg' - * better error message for assert.operator. Closes #39 - * version notes - -0.5.1 / 2012-03-14 -================== - - * chai.fail no longer exists - * Merge branch 'feature/assertdefined' - * Added asset#isDefined. Closes #37. - * dev docs update for Assertion#assert - -0.5.0 / 2012-03-07 -================== - - * [bug] on inspect of reg on n 0.4.12 - * Merge branch 'bug/33-throws' - * Merge pull request #35 from logicalparadox/empty-object - * browser build - * updated #throw docs - * Assertion#throw `should` tests updated - * Assertion#throw `expect` tests - * Should interface supports multiple throw parameters - * Update Assertion#throw to support strings and type checks. - * Add more tests for `empty` in `should`. - * Add more tests for `empty` in `expect`. - * Merge branch 'master' into empty-object - * don't switch act/exp - * Merge pull request #34 from logicalparadox/assert-operator - * Update the compiled verison. - * Add `assert.operator`. - * Notes on messages. #22 - * browser build - * have been test - * below tests - * Merge branch 'feature/actexp' - * browser build - * remove unnecessary fail export - * full support for actual/expected where relevant - * Assertion.assert support expected value - * clean up error - * Update the compiled version. - * Add object & sane arguments support to `Assertion#empty`. - -0.4.2 / 2012-02-28 -================== - - * fix for `process` not available in browser when used via browserify. Closes #28 - * Merge pull request #31 from joliss/doc - * Document that "should" works in browsers other than IE - * Merge pull request #30 from logicalparadox/assert-tests - * Update the browser version of chai. - * Update `assert.doesNotThrow` test in order to check the use case when type is a string. - * Add test for `assert.ifError`. - * Falsey -> falsy. - * Full coverage for `assert.throws` and `assert.doesNotThrow`. - * Add test for `assert.doesNotThrow`. - * Add test for `assert.throws`. - * Add test for `assert.length`. - * Add test for `assert.include`. - * Add test for `assert.isBoolean`. - * Fix the implementation of `assert.isNumber`. - * Add test for `assert.isNumber`. - * Add test for `assert.isString`. - * Add test for `assert.isArray`. - * Add test for `assert.isUndefined`. - * Add test for `assert.isNotNull`. - * Fix `assert.isNotNull` implementation. - * Fix `assert.isNull` implementation. - * Add test for `assert.isNull`. - * Add test for `assert.notDeepEqual`. - * Add test for `assert.deepEqual`. - * Add test for `assert.notStrictEqual`. - * Add test for `assert.strictEqual`. - * Add test for `assert.notEqual`. - -0.4.1 / 2012-02-26 -================== - - * Merge pull request #27 from logicalparadox/type-fix - * Update the browser version. - * Add should tests for type checks. - * Add function type check test. - * Add more type checks tests. - * Add test for `new Number` type check. - * Fix type of actual checks. - -0.4.0 / 2012-02-25 -================== - - * docs and readme for upcoming 0.4.0 - * docs generated - * putting coverage and tests for docs in docs/out/support - * make docs - * makefile copy necessary resources for tests in docs - * rename configuration test - * Merge pull request #21 from logicalparadox/close-to - * Update the browser version. - * Update `closeTo()` docs. - * Add `Assertion.closeTo()` method. - * Add `.closeTo()` should test. - * Add `.closeTo()` expect test. - * Merge pull request #20 from logicalparadox/satisfy - * Update the browser version. - * `..` -> `()` in `.satisfy()` should test. - * Update example for `.satisfy()`. - * Update the compiled browser version. - * Add `Assertion.satisfy()` method. - * Add `.satisfy()` should test. - * Add `.satisfy()` expect test. - * Merge pull request #19 from logicalparadox/respond-to - * Update the compiled browser version. - * Add `respondTo` Assertion. - * Add `respondTo` should test. - * Add `respondTo` expect test. - * Merge branch 'feature/coverage' - * mocha coverage support - * doc contributors - * README contributors - -0.3.4 / 2012-02-23 -================== - - * inline comment typos for #15 - * Merge branch 'refs/heads/jeffbski-configErrorStackCompat' - * includeStack documentation for all interfaces - * suite name more generic - * Update test to be compatible with browsers that do not support err.stack - * udpated compiled chai.js and added to browser tests - * Allow inclusion of stack trace for Assert error messages to be configurable - * docs sharing buttons - * sinon-chai link - * doc updates - * read me updates include plugins - -0.3.3 / 2012-02-12 -================== - - * Merge pull request #14 from jfirebaugh/configurable_properties - * Make Assertion.prototype properties configurable - -0.3.2 / 2012-02-10 -================== - - * codex version - * docs - * docs cleanup - -0.3.1 / 2012-02-07 -================== - - * node 0.4.x compat - -0.3.0 / 2012-02-07 -================== - - * Merge branch 'feature/03x' - * browser build - * remove html/json/headers testign - * regex error.message testing - * tests for using plugins - * Merge pull request #11 from domenic/master - * Make `chai.use` a no-op if the function has already been used. - -0.2.4 / 2012-02-02 -================== - - * added in past tense switch for `been` - -0.2.3 / 2012-02-01 -================== - - * try that again - -0.2.2 / 2012-02-01 -================== - - * added `been` (past of `be`) alias - -0.2.1 / 2012-01-29 -================== - - * added Throw, with a capital T, as an alias to `throw` (#7) - -0.2.0 / 2012-01-26 -================== - - * update gitignore for vim *.swp - * Merge branch 'feature/plugins' - * browser build - * interfaces now work with use - * simple .use function. See #9. - * readme notice on browser compat - -0.1.7 / 2012-01-25 -================== - - * added assert tests to browser test runner - * browser update - * `should` interface patch for primitives support in FF - * fix isObject() Thanks @milewise - * travis only on branch `master` - * add instanceof alias `instanceOf`. #6 - * some tests for assert module - -0.1.6 / 2012-01-02 -================== - - * commenting for assert interface - * updated codex dep - -0.1.5 / 2012-01-02 -================== - - * browser tests pass - * type in should.not.equal - * test for should (not) exist - * added should.exist and should.not.exist - * browser uses tdd - * convert tests to tdd - -0.1.4 / 2011-12-26 -================== - - * browser lib update for new assert interface compatiblitiy - * inspect typos - * added strict equal + negatives and ifError - * interface assert had doesNotThrow - * added should tests to browser - * new expect empty tests - * should test browser compat - * Fix typo for instanceof docs. Closes #3 [ci skip] - -0.1.3 / 2011-12-18 -================== - - * much cleaner reporting string on error. - -0.1.2 / 2011-12-18 -================== - - * [docs] for upcoming 0.1.2 - * browser version built with pre/suffix … all tests passing - * make / compile now use prefix/suffix correctly - * code clean - * prefix/suffix to wrap browser output to prevent conflicts with other `require` methods. - * Merge branch 'feature/should4xcompatibility' - * compile for browser tests.. all pass - * added header/status/html/json - * throw tests - * should.throw & should.not.throw shortcuts - * improved `throw` type detection and messaging - * contain is now `include` … keys modifier is now `contain` - * removed object() test - * removed #respondTo - * Merge branch 'bug/2' - * replaced __defineGetter__ with defineProperty for all uses - * [docs] change mp tracking code - * docs site updated with assert (TDD) interface - * updated doc comments for assert interface - -0.1.1 / 2011-12-16 -================== - - * docs ready for upcoming 0.1.1 - * readme image fixed [ci skip] - * more readme tweaks [ci skip] - * réadmet image fixed [ci skip] - * documentation - * codex locked in version 0.0.5 - * more comments to assertions for docs - * assertions fully commented, browser library updated - * adding codex as doc dependancy - * prepping for docs - * assertion component completely commented for documentation - * added exist test - * var expect outside of browser if check - * added keywords to package.json - -0.1.0 / 2011-12-15 -================== - - * failing on purpose successful .. back to normal - * testing travis failure - * assert#arguments getter - * readme typo - * updated README - * added travis and npmignore - * copyright notices … think i got them all - * moved expect interface to own file for consistency - * assert ui deepEqual - * browser tests expect (all working) - * browser version built - * chai.fail (should ui) - * expect tests browser compatible - * tests for should and expect (all pass) - * moved fail to primary export - * should compatibility testing - * within, greaterThan, object, keys, - * Aliases - * Assertion#property now correctly works with negate and undefined values - * error message language matches should - * Assertion#respondTo - * Assertion now uses inspect util - * git ignore node modules - * should is exported - * AssertionError __proto__ from Error.prototype - * add should interface for should.js compatibility - * moved eql to until folder and added inspect from (joyent/node) - * added mocha for testing - * browser build for current api - * multiple .property assertions - * added deep equal from node - -0.0.2 / 2011-12-07 -================== - - * cleaner output on error - * improved exists detection - * package remnant artifact - * empty deep equal - * test browser build - * assertion cleanup - * client compile script - * makefile - * most of the basic assertions - * allow no parameters to assertion error - * name change - * assertion error instance - * main exports: assert() & expect() - * initialize diff --git a/build/node_modules/chai/LICENSE b/build/node_modules/chai/LICENSE deleted file mode 100644 index eedbe238..00000000 --- a/build/node_modules/chai/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Chai.js Assertion Library - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/chai/README.md b/build/node_modules/chai/README.md deleted file mode 100644 index 78e4d2de..00000000 --- a/build/node_modules/chai/README.md +++ /dev/null @@ -1,212 +0,0 @@ -

- - ChaiJS - -
- chai -

- -

- Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework. -

- -

- - license:mit - - - tag:? - - - node:? - -
- - Selenium Test Status - -
- - downloads:? - - - build:? - - - coverage:? - - - devDependencies:? - -
- - Join the Slack chat - - - Join the Gitter chat - - - OpenCollective Backers - -

- -For more information or to download plugins, view the [documentation](http://chaijs.com). - -## What is Chai? - -Chai is an _assertion library_, similar to Node's built-in `assert`. It makes testing much easier by giving you lots of assertions you can run against your code. - -## Installation - -### Node.js - -`chai` is available on [npm](http://npmjs.org). To install it, type: - - $ npm install --save-dev chai - -### Browsers - -You can also use it within the browser; install via npm and use the `chai.js` file found within the download. For example: - -```html - -``` - -## Usage - -Import the library in your code, and then pick one of the styles you'd like to use - either `assert`, `expect` or `should`: - -```js -var chai = require('chai'); -var assert = chai.assert; // Using Assert style -var expect = chai.expect; // Using Expect style -var should = chai.should(); // Using Should style -``` - -### Pre-Native Modules Usage (_registers the chai testing style globally_) - -```js -require('chai/register-assert'); // Using Assert style -require('chai/register-expect'); // Using Expect style -require('chai/register-should'); // Using Should style -``` - -### Pre-Native Modules Usage (_as local variables_) - -```js -const { assert } = require('chai'); // Using Assert style -const { expect } = require('chai'); // Using Expect style -const { should } = require('chai'); // Using Should style -should(); // Modifies `Object.prototype` - -const { expect, use } = require('chai'); // Creates local variables `expect` and `use`; useful for plugin use -``` - -### Native Modules Usage (_registers the chai testing style globally_) - -```js -import 'chai/register-assert'; // Using Assert style -import 'chai/register-expect'; // Using Expect style -import 'chai/register-should'; // Using Should style -``` - -### Native Modules Usage (_local import only_) - -```js -import { assert } from 'chai'; // Using Assert style -import { expect } from 'chai'; // Using Expect style -import { should } from 'chai'; // Using Should style -should(); // Modifies `Object.prototype` -``` - -### Usage with Mocha - -```bash -mocha spec.js -r chai/register-assert # Using Assert style -mocha spec.js -r chai/register-expect # Using Expect style -mocha spec.js -r chai/register-should # Using Should style -``` - -[Read more about these styles in our docs](http://chaijs.com/guide/styles/). - -## Plugins - -Chai offers a robust Plugin architecture for extending Chai's assertions and interfaces. - -- Need a plugin? View the [official plugin list](http://chaijs.com/plugins). -- Want to build a plugin? Read the [plugin api documentation](http://chaijs.com/guide/plugins/). -- Have a plugin and want it listed? Simply add the following keywords to your package.json: - - `chai-plugin` - - `browser` if your plugin works in the browser as well as Node.js - - `browser-only` if your plugin does not work with Node.js - -### Related Projects - -- [chaijs / chai-docs](https://github.com/chaijs/chai-docs): The chaijs.com website source code. -- [chaijs / assertion-error](https://github.com/chaijs/assertion-error): Custom `Error` constructor thrown upon an assertion failing. -- [chaijs / deep-eql](https://github.com/chaijs/deep-eql): Improved deep equality testing for Node.js and the browser. -- [chaijs / type-detect](https://github.com/chaijs/type-detect): Improved typeof detection for Node.js and the browser. -- [chaijs / check-error](https://github.com/chaijs/check-error): Error comparison and information related utility for Node.js and the browser. -- [chaijs / loupe](https://github.com/chaijs/loupe): Inspect utility for Node.js and browsers. -- [chaijs / pathval](https://github.com/chaijs/pathval): Object value retrieval given a string path. -- [chaijs / get-func-name](https://github.com/chaijs/get-func-name): Utility for getting a function's name for node and the browser. - -### Contributing - -Thank you very much for considering to contribute! - -Please make sure you follow our [Code Of Conduct](https://github.com/chaijs/chai/blob/master/CODE_OF_CONDUCT.md) and we also strongly recommend reading our [Contributing Guide](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md). - -Here are a few issues other contributors frequently ran into when opening pull requests: - -- Please do not commit changes to the `chai.js` build. We do it once per release. -- Before pushing your commits, please make sure you [rebase](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md#pull-requests) them. - -### Contributors - -Please see the full -[Contributors Graph](https://github.com/chaijs/chai/graphs/contributors) for our -list of contributors. - -### Core Contributors - -Feel free to reach out to any of the core contributors with your questions or -concerns. We will do our best to respond in a timely manner. - -[![Jake Luer](https://avatars3.githubusercontent.com/u/58988?v=3&s=50)](https://github.com/logicalparadox) -[![Veselin Todorov](https://avatars3.githubusercontent.com/u/330048?v=3&s=50)](https://github.com/vesln) -[![Keith Cirkel](https://avatars3.githubusercontent.com/u/118266?v=3&s=50)](https://github.com/keithamus) -[![Lucas Fernandes da Costa](https://avatars3.githubusercontent.com/u/6868147?v=3&s=50)](https://github.com/lucasfcosta) -[![Grant Snodgrass](https://avatars3.githubusercontent.com/u/17260989?v=3&s=50)](https://github.com/meeber) diff --git a/build/node_modules/chai/ReleaseNotes.md b/build/node_modules/chai/ReleaseNotes.md deleted file mode 100644 index 2a80d5ce..00000000 --- a/build/node_modules/chai/ReleaseNotes.md +++ /dev/null @@ -1,737 +0,0 @@ -# Release Notes - -## Note - -As of 3.0.0, the ReleaseNotes.md file has been deprecated. [Please refer to the release notes available on Github](https://github.com/chaijs/chai/releases). Or -[the release notes on the chaijs.com website](https://chaijs.com/releases). - ---- - -## 2.3.0 / 2015-04-26 - -Added `ownPropertyDescriptor` assertion: - -```js -expect('test').to.have.ownPropertyDescriptor('length'); -expect('test').to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 4 }); -expect('test').not.to.have.ownPropertyDescriptor('length', { enumerable: false, configurable: false, writable: false, value: 3 }); -expect('test').ownPropertyDescriptor('length').to.have.property('enumerable', false); -expect('test').ownPropertyDescriptor('length').to.have.keys('value'); -``` - -### Community Contributions - -#### Code Features & Fixes - - * [#408](https://github.com/chaijs/chai/pull/408) Add `ownPropertyDescriptor` - assertion. - By [@ljharb](https://github.com/ljharb) - * [#422](https://github.com/chaijs/chai/pull/422) Improve ownPropertyDescriptor - tests. - By [@ljharb](https://github.com/ljharb) - -#### Documentation fixes - - * [#417](https://github.com/chaijs/chai/pull/417) Fix documentation typo - By [@astorije](https://github.com/astorije) - * [#423](https://github.com/chaijs/chai/pull/423) Fix inconsistency in docs. - By [@ehntoo](https://github.com/ehntoo) - - -## 2.2.0 / 2015-03-26 - -Deep property strings can now be escaped using `\\` - for example: - -```js -var deepCss = { '.link': { '[target]': 42 }}; -expect(deepCss).to.have.deep.property('\\.link.\\[target\\]', 42) -``` - -### Community Contributions - -#### Code Features & Fixes - - * [#402](https://github.com/chaijs/chai/pull/402) Allow escaping of deep - property keys. - By [@umireon](https://github.com/umireon) - -#### Documentation fixes - - * [#405](https://github.com/chaijs/chai/pull/405) Tweak documentation around - deep property escaping. - By [@keithamus](https://github.com/keithamus) - - -## 2.1.2 / 2015-03-15 - -A minor bug fix. No new features. - -### Community Contributions - -#### Code Features & Fixes - - * [#395](https://github.com/chaijs/chai/pull/395) Fix eval-related bugs with - assert.operator ([#386](https://github.com/chaijs/chai/pull/386)). - By [@cjqed](https://github.com/cjqed) - -## 2.1.1 / 2015-03-04 - -Two minor bugfixes. No new features. - -### Community Contributions - -#### Code Features & Fixes - - * [#385](https://github.com/chaijs/chai/pull/385) Fix a bug (also described in - [#387](https://github.com/chaijs/chai/pull/385)) where `deep.property` would not work with single - key names. By [@eldritch-fossicker](https://github.com/eldritch-fossicker) - * [#379](https://github.com/chaijs/chai/pull/379) Fix bug where tools which overwrite - primitive prototypes, such as Babel or core-js would fail. - By [@dcneiner](https://github.com/dcneiner) - -#### Documentation fixes - - * [#382](https://github.com/chaijs/chai/pull/382) Add doc for showDiff argument in assert. - By [@astorije](https://github.com/astorije) - * [#383](https://github.com/chaijs/chai/pull/383) Improve wording for truncateTreshold docs - By [@gurdiga](https://github.com/gurdiga) - * [#381](https://github.com/chaijs/chai/pull/381) Improve wording for assert.empty docs - By [@astorije](https://github.com/astorije) - -## 2.1.0 / 2015-02-23 - -Small release; fixes an issue where the Chai lib was incorrectly reporting the -version number. - -Adds new `should.fail()` and `expect.fail()` methods, which are convinience -methods to throw Assertion Errors. - -### Community Contributions - -#### Code Features & Fixes - - * [#356](https://github.com/chaijs/chai/pull/356) Add should.fail(), expect.fail(). By [@Soviut](https://github.com/Soviut) - * [#374](https://github.com/chaijs/chai/pull/374) Increment version. By [@jmm](https://github.com/jmm) - -## 2.0.0 / 2015-02-09 - -Unfortunately with 1.10.0 - compatibility broke with older versions because of -the `addChainableNoop`. This change has been reverted. - -Any plugins using `addChainableNoop` should cease to do so. - -Any developers wishing for this behaviour can use [dirty-chai](https://www.npmjs.com/package/dirty-chai) -by [@joshperry](https://github.com/joshperry) - -### Community Contributions - -#### Code Features & Fixes - - * [#361](https://github.com/chaijs/chai/pull/361) `.keys()` now accepts Objects, extracting keys from them. By [@gregglind](https://github.com/gregglind) - * [#359](https://github.com/chaijs/chai/pull/359) `.keys()` no longer mutates passed arrays. By [@gregglind](https://github.com/gregglind) - * [#349](https://github.com/chaijs/chai/pull/349) Add a new chainable keyword - `.which`. By [@toastynerd](https://github.com/toastynerd) - * [#333](https://github.com/chaijs/chai/pull/333) Add `.change`, `.increase` and `.decrease` assertions. By [@cmpolis](https://github.com/cmpolis) - * [#335](https://github.com/chaijs/chai/pull/335) `chai.util` is now exposed [@DingoEatingFuzz](https://github.com/DingoEatingFuzz) - * [#328](https://github.com/chaijs/chai/pull/328) Add `.includes` and `.contains` aliases (for `.include` and `.contain`). By [@lo1tuma](https://github.com/lo1tuma) - * [#313](https://github.com/chaijs/chai/pull/313) Add `.any.keys()` and `.all.keys()` qualifiers. By [@cjqed](https://github.com/cjqed) - * [#312](https://github.com/chaijs/chai/pull/312) Add `assert.sameDeepMembers()`. By [@cjqed](https://github.com/cjqed) - * [#311](https://github.com/chaijs/chai/pull/311) Add `assert.isAbove()` and `assert.isBelow()`. By [@cjqed](https://github.com/cjqed) - * [#308](https://github.com/chaijs/chai/pull/308) `property` and `deep.property` now pass if a value is set to `undefined`. By [@prodatakey](https://github.com/prodatakey) - * [#309](https://github.com/chaijs/chai/pull/309) optimize deep equal in Arrays. By [@ericdouglas](https://github.com/ericdouglas) - * [#306](https://github.com/chaijs/chai/pull/306) revert #297 - allowing lint-friendly tests. By [@keithamus](https://github.com/keithamus) - -#### Documentation fixes - - * [#357](https://github.com/chaijs/chai/pull/357) Copyright year updated in docs. By [@danilovaz](https://github.com/danilovaz) - * [#325](https://github.com/chaijs/chai/pull/325) Fix documentation for overwriteChainableMethod. By [@chasenlehara](https://github.com/chasenlehara) - * [#334](https://github.com/chaijs/chai/pull/334) Typo fix. By [@hurrymaplelad](https://github.com/hurrymaplelad) - * [#317](https://github.com/chaijs/chai/pull/317) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) - * [#318](https://github.com/chaijs/chai/pull/318) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) - * [#316](https://github.com/chaijs/chai/pull/316) Typo fix. By [@jasonkarns](https://github.com/jasonkarns) - - -## 1.10.0 / 2014-11-10 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required -- **Plugin Developers:** - - Review `addChainableNoop` notes below. -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Noop Function for Terminating Assertion Properties - -The following assertions can now also be used in the function-call form: - -* ok -* true -* false -* null -* undefined -* exist -* empty -* arguments -* Arguments - -The above list of assertions are property getters that assert immediately on -access. Because of that, they were written to be used by terminating the assertion -chain with a property access. - -```js -expect(true).to.be.true; -foo.should.be.ok; -``` - -This syntax is definitely aesthetically pleasing but, if you are linting your -test code, your linter will complain with an error something like "Expected an -assignment or function call and instead saw an expression." Since the linter -doesn't know about the property getter it assumes this line has no side-effects, -and throws a warning in case you made a mistake. - -Squelching these errors is not a good solution as test code is getting to be -just as important as, if not more than, production code. Catching syntactical -errors in tests using static analysis is a great tool to help make sure that your -tests are well-defined and free of typos. - -A better option was to provide a function-call form for these assertions so that -the code's intent is more clear and the linters stop complaining about something -looking off. This form is added in addition to the existing property access form -and does not impact existing test code. - -```js -expect(true).to.be.true(); -foo.should.be.ok(); -``` - -These forms can also be mixed in any way, these are all functionally identical: - -```js -expect(true).to.be.true.and.not.false(); -expect(true).to.be.true().and.not.false; -expect(true).to.be.true.and.not.false; -``` - -#### Plugin Authors - -If you would like to provide this function-call form for your terminating assertion -properties, there is a new function to register these types of asserts. Instead -of using `addProperty` to register terminating assertions, simply use `addChainableNoop` -instead; the arguments to both are identical. The latter will make the assertion -available in both the attribute and function-call forms and should have no impact -on existing users of your plugin. - -### Community Contributions - -- [#297](https://github.com/chaijs/chai/pull/297) Allow writing lint-friendly tests. [@joshperry](https://github.com/joshperry) -- [#298](https://github.com/chaijs/chai/pull/298) Add check for logging `-0`. [@dasilvacontin](https://github.com/dasilvacontin) -- [#300](https://github.com/chaijs/chai/pull/300) Fix #299: the test is defining global variables [@julienw](https://github.com/julienw) - -Thank you to all who took time to contribute! - -## 1.9.2 / 2014-09-29 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Community Contributions - -- [#264](https://github.com/chaijs/chai/pull/264) Show diff for keys assertions [@cjthompson](https://github.com/cjthompson) -- [#267](https://github.com/chaijs/chai/pull/267) Use SVG badges [@shinnn](https://github.com/shinnn) -- [#268](https://github.com/chaijs/chai/pull/268) Allow messages to be functions (sinon-compat) [@charlierudolph](https://github.com/charlierudolph) -- [#269](https://github.com/chaijs/chai/pull/269) Remove unused argument for #lengthOf [@charlierudolph](https://github.com/charlierudolph) -- [#275](https://github.com/chaijs/chai/pull/275) Rewrite pretty-printing HTML elements to prevent throwing internal errors [@DrRataplan](https://github.com/DrRataplan) -- [#277](https://github.com/chaijs/chai/pull/277) Fix assert documentation for #sameMembers [@charlierudolph](https://github.com/charlierudolph) -- [#279](https://github.com/chaijs/chai/pull/279) closeTo should check value's type before assertion [@mohayonao](https://github.com/mohayonao) -- [#289](https://github.com/chaijs/chai/pull/289) satisfy is called twice [@charlierudolph](https://github.com/charlierudolph) -- [#292](https://github.com/chaijs/chai/pull/292) resolve conflicts with node-webkit and global usage [@boneskull](https://github.com/boneskull) - -Thank you to all who took time to contribute! - -## 1.9.1 / 2014-03-19 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - Migrate configuration options to new interface. (see notes) -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Configuration - -There have been requests for changes and additions to the configuration mechanisms -and their impact in the Chai architecture. As such, we have decoupled the -configuration from the `Assertion` constructor. This not only allows for centralized -configuration, but will allow us to shift the responsibility from the `Assertion` -constructor to the `assert` interface in future releases. - -These changes have been implemented in a non-breaking way, but a depretiation -warning will be presented to users until they migrate. The old config method will -be removed in either `v1.11.0` or `v2.0.0`, whichever comes first. - -#### Quick Migration - -```js -// change this: -chai.Assertion.includeStack = true; -chai.Assertion.showDiff = false; - -// ... to this: -chai.config.includeStack = true; -chai.config.showDiff = false; -``` - -#### All Config Options - -##### config.includeStack - -- **@param** _{Boolean}_ -- **@default** `false` - -User configurable property, influences whether stack trace is included in -Assertion error message. Default of `false` suppresses stack trace in the error -message. - -##### config.showDiff - -- **@param** _{Boolean}_ -- **@default** `true` - -User configurable property, influences whether or not the `showDiff` flag -should be included in the thrown AssertionErrors. `false` will always be `false`; -`true` will be true when the assertion has requested a diff be shown. - -##### config.truncateThreshold **(NEW)** - -- **@param** _{Number}_ -- **@default** `40` - -User configurable property, sets length threshold for actual and expected values -in assertion errors. If this threshold is exceeded, the value is truncated. - -Set it to zero if you want to disable truncating altogether. - -```js -chai.config.truncateThreshold = 0; // disable truncating -``` - -### Community Contributions - -- [#228](https://github.com/chaijs/chai/pull/228) Deep equality check for memebers. [@duncanbeevers](https://github.com/duncanbeevers) -- [#247](https://github.com/chaijs/chai/pull/247) Proofreading. [@didorellano](https://github.com/didoarellano) -- [#244](https://github.com/chaijs/chai/pull/244) Fix `contain`/`include` 1.9.0 regression. [@leider](https://github.com/leider) -- [#233](https://github.com/chaijs/chai/pull/233) Improvements to `ssfi` for `assert` interface. [@refack](https://github.com/refack) -- [#251](https://github.com/chaijs/chai/pull/251) New config option: object display threshold. [@romario333](https://github.com/romario333) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- [#183](https://github.com/chaijs/chai/issues/183) Allow `undefined` for actual. (internal api) -- Update Karam(+plugins)/Istanbul to most recent versions. - -## 1.9.0 / 2014-01-29 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required -- **Plugin Developers:** - - Review [#219](https://github.com/chaijs/chai/pull/219). -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Community Contributions - -- [#202](https://github.com/chaijs/chai/pull/201) Improve error message for .throw(). [@andreineculau](https://github.com/andreineculau) -- [#217](https://github.com/chaijs/chai/pull/217) Chai tests can be run with `--watch`. [@demands](https://github.com/demands) -- [#219](https://github.com/chaijs/chai/pull/219) Add overwriteChainableMethod utility. [@demands](https://github.com/demands) -- [#224](https://github.com/chaijs/chai/pull/224) Return error on throw method to chain on error properties. [@vbardales](https://github.com/vbardales) -- [#226](https://github.com/chaijs/chai/pull/226) Add `has` to language chains. [@duncanbeevers](https://github.com/duncanbeevers) -- [#230](https://github.com/chaijs/chai/pull/230) Support `{a:1,b:2}.should.include({a:1})` [@jkroso](https://github.com/jkroso) -- [#231](https://github.com/chaijs/chai/pull/231) Update Copyright notices to 2014 [@duncanbeevers](https://github.com/duncanbeevers) -- [#232](https://github.com/chaijs/chai/pull/232) Avoid error instantiation if possible on assert.throws. [@laconbass](https://github.com/laconbass) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- [#225](https://github.com/chaijs/chai/pull/225) Improved AMD wrapper provided by upstream `component(1)`. -- [#185](https://github.com/chaijs/chai/issues/185) `assert.throws()` returns thrown error for further assertions. -- [#237](https://github.com/chaijs/chai/pull/237) Remove coveralls/jscoverage, include istanbul coverage report in travis test. -- Update Karma and Sauce runner versions for consistent CI results. No more karma@canary. - -## 1.8.1 / 2013-10-10 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - Refresh `node_modules` folder for updated dependencies. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Browserify - -This is a small patch that updates the dependency tree so browserify users can install -chai. (Remove conditional requires) - -## 1.8.0 / 2013-09-18 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - See `deep.equal` notes. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Deep Equals - -This version of Chai focused on a overhaul to the deep equal utility. The code for this -tool has been removed from the core lib and can now be found at: -[chai / deep-eql](https://github.com/chaijs/deep-eql). As stated in previous releases, -this is part of a larger initiative to provide transparency, independent testing, and coverage for -some of the more complicated internal tools. - -For the most part `.deep.equal` will behave the same as it has. However, in order to provide a -consistent ruleset across all types being tested, the following changes have been made and _might_ -require changes to your tests. - -**1.** Strict equality for non-traversable nodes according to [egal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). - -_Previously:_ Non-traversable equal via `===`. - -```js -expect(NaN).to.deep.equal(NaN); -expect(-0).to.not.deep.equal(+0); -``` - -**2.** Arguments are not Arrays (and all types must be equal): - -_Previously:_ Some crazy nonsense that led to empty arrays deep equaling empty objects deep equaling dates. - -```js -expect(arguments).to.not.deep.equal([]); -expect(Array.prototype.slice.call(arguments)).to.deep.equal([]); -``` - -- [#156](https://github.com/chaijs/chai/issues/156) Empty object is eql to empty array -- [#192](https://github.com/chaijs/chai/issues/192) empty object is eql to a Date object -- [#194](https://github.com/chaijs/chai/issues/194) refactor deep-equal utility - -### CI and Browser Testing - -Chai now runs the browser CI suite using [Karma](http://karma-runner.github.io/) directed at -[SauceLabs](https://saucelabs.com/). This means we get to know where our browser support stands... -and we get a cool badge: - -[![Selenium Test Status](https://saucelabs.com/browser-matrix/logicalparadox.svg)](https://saucelabs.com/u/logicalparadox) - -Look for the list of browsers/versions to expand over the coming releases. - -- [#195](https://github.com/chaijs/chai/issues/195) karma test framework - -## 1.7.2 / 2013-06-27 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Coverage Reporting - -Coverage reporting has always been available for core-developers but the data has never been published -for our end users. In our ongoing effort to improve accountability this data will now be published via -the [coveralls.io](https://coveralls.io/) service. A badge has been added to the README and the full report -can be viewed online at the [chai coveralls project](https://coveralls.io/r/chaijs/chai). Furthermore, PRs -will receive automated messages indicating how their PR impacts test coverage. This service is tied to TravisCI. - -### Other Fixes - -- [#175](https://github.com/chaijs/chai/issues/175) Add `bower.json`. (Fix ignore all) - -## 1.7.1 / 2013-06-24 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### Official Bower Support - -Support has been added for the Bower Package Manager ([bower.io])(http://bower.io/). Though -Chai could be installed via Bower in the past, this update adds official support via the `bower.json` -specification file. - -- [#175](https://github.com/chaijs/chai/issues/175) Add `bower.json`. - -## 1.7.0 / 2013-06-17 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - Review AssertionError update notice. -- **Core Contributors:** - - Refresh `node_modules` folder for updated dependencies. - -### AssertionError Update Notice - -Chai now uses [chaijs/assertion-error](https://github.com/chaijs/assertion-error) instead an internal -constructor. This will allow for further iteration/experimentation of the AssertionError constructor -independant of Chai. Future plans include stack parsing for callsite support. - -This update constructor has a different constructor param signature that conforms more with the standard -`Error` object. If your plugin throws and `AssertionError` directly you will need to update your plugin -with the new signature. - -```js -var AssertionError = require('chai').AssertionError; - -/** - * previous - * - * @param {Object} options - */ - -throw new AssertionError({ - message: 'An assertion error occurred' - , actual: actual - , expect: expect - , startStackFunction: arguments.callee - , showStack: true -}); - -/** - * new - * - * @param {String} message - * @param {Object} options - * @param {Function} start stack function - */ - -throw new AssertionError('An assertion error occurred', { - actual: actual - , expect: expect - , showStack: true -}, arguments.callee); - -// other signatures -throw new AssertionError('An assertion error occurred'); -throw new AssertionError('An assertion error occurred', null, arguments.callee); -``` - -#### External Dependencies - -This is the first non-developement dependency for Chai. As Chai continues to evolve we will begin adding -more; the next will likely be improved type detection and deep equality. With Chai's userbase continually growing -there is an higher need for accountability and documentation. External dependencies will allow us to iterate and -test on features independent from our interfaces. - -Note: The browser packaged version `chai.js` will ALWAYS contain all dependencies needed to run Chai. - -### Community Contributions - -- [#169](https://github.com/chaijs/chai/pull/169) Fix deep equal comparison for Date/Regexp types. [@katsgeorgeek](https://github.com/katsgeorgeek) -- [#171](https://github.com/chaijs/chai/pull/171) Add `assert.notOk()`. [@Bartvds](https://github.com/Bartvds) -- [#173](https://github.com/chaijs/chai/pull/173) Fix `inspect` utility. [@domenic](https://github.com/domenic) - -Thank you to all who took the time to contribute! - -## 1.6.1 / 2013-06-05 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required. -- **Core Contributors:** - - Refresh `node_modules` folder for updated developement dependencies. - -### Deep Equality - -Regular Expressions are now tested as part of all deep equality assertions. In previous versions -they silently passed for all scenarios. Thanks to [@katsgeorgeek](https://github.com/katsgeorgeek) for the contribution. - -### Community Contributions - -- [#161](https://github.com/chaijs/chai/pull/161) Fix documented name for assert interface's isDefined method. [@brandonpayton](https://github.com/brandonpayton) -- [#168](https://github.com/chaijs/chai/pull/168) Fix comparison equality of two regexps for when using deep equality. [@katsgeorgeek](https://github.com/katsgeorgeek) - -Thank you to all who took the time to contribute! - -### Additional Notes - -- Mocha has been locked at version `1.8.x` to ensure `mocha-phantomjs` compatibility. - -## 1.6.0 / 2013-04-29 - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - No changes required. -- **Plugin Developers:** - - No changes required. -- **Core Contributors:** - - Refresh `node_modules` folder for updated developement dependencies. - -### New Assertions - -#### Array Members Inclusion - -Asserts that the target is a superset of `set`, or that the target and `set` have the same members. -Order is not taken into account. Thanks to [@NickHeiner](https://github.com/NickHeiner) for the contribution. - -```js -// (expect/should) full set -expect([4, 2]).to.have.members([2, 4]); -expect([5, 2]).to.not.have.members([5, 2, 1]); - -// (expect/should) inclusion -expect([1, 2, 3]).to.include.members([3, 2]); -expect([1, 2, 3]).to.not.include.members([3, 2, 8]); - -// (assert) full set -assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members'); - -// (assert) inclusion -assert.includeMembers([ 1, 2, 3 ], [ 2, 1 ], 'include members'); - -``` - -#### Non-inclusion for Assert Interface - -Most `assert` functions have a negative version, like `instanceOf()` has a corresponding `notInstaceOf()`. -However `include()` did not have a corresponding `notInclude()`. This has been added. - -```js -assert.notInclude([ 1, 2, 3 ], 8); -assert.notInclude('foobar', 'baz'); -``` - -### Community Contributions - -- [#140](https://github.com/chaijs/chai/pull/140) Restore `call`/`apply` methods for plugin interface. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#148](https://github.com/chaijs/chai/issues/148)/[#153](https://github.com/chaijs/chai/pull/153) Add `members` and `include.members` assertions. [#NickHeiner](https://github.com/NickHeiner) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- [#142](https://github.com/chaijs/chai/issues/142) `assert#include` will no longer silently pass on wrong-type haystack. -- [#158](https://github.com/chaijs/chai/issues/158) `assert#notInclude` has been added. -- Travis-CI now tests Node.js `v0.10.x`. Support for `v0.6.x` has been removed. `v0.8.x` is still tested as before. - -## 1.5.0 / 2013-02-03 - -### Migration Requirements - -The following changes are required if you are upgrading from the previous version: - -- **Users:** - - _Update [2013-02-04]:_ Some users may notice a small subset of deep equality assertions will no longer pass. This is the result of - [#120](https://github.com/chaijs/chai/issues/120), an improvement to our deep equality algorithm. Users will need to revise their assertions - to be more granular should this occur. Further information: [#139](https://github.com/chaijs/chai/issues/139). -- **Plugin Developers:** - - No changes required. -- **Core Contributors:** - - Refresh `node_modules` folder for updated developement dependencies. - -### Community Contributions - -- [#126](https://github.com/chaijs/chai/pull/126): Add `eqls` alias for `eql`. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#127](https://github.com/chaijs/chai/issues/127): Performance refactor for chainable methods. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#133](https://github.com/chaijs/chai/pull/133): Assertion `.throw` support for primitives. [@RubenVerborgh](https://github.com/RubenVerborgh) -- [#137](https://github.com/chaijs/chai/issues/137): Assertion `.throw` support for empty messages. [@timnew](https://github.com/timnew) -- [#136](https://github.com/chaijs/chai/pull/136): Fix backward negation messages when using `.above()` and `.below()`. [@whatthejeff](https://github.com/whatthejeff) - -Thank you to all who took time to contribute! - -### Other Bug Fixes - -- Improve type detection of `.a()`/`.an()` to work in cross-browser scenarios. -- [#116](https://github.com/chaijs/chai/issues/116): `.throw()` has cleaner display of errors when WebKit browsers. -- [#120](https://github.com/chaijs/chai/issues/120): `.eql()` now works to compare dom nodes in browsers. - - -### Usage Updates - -#### For Users - -**1. Component Support:** Chai now included the proper configuration to be installed as a -[component](https://github.com/component/component). Component users are encouraged to consult -[chaijs.com](http://chaijs.com) for the latest version number as using the master branch -does not gaurantee stability. - -```js -// relevant component.json - devDependencies: { - "chaijs/chai": "1.5.0" - } -``` - -Alternatively, bleeding-edge is available: - - $ component install chaijs/chai - -**2. Configurable showDiff:** Some test runners (such as [mocha](http://visionmedia.github.com/mocha/)) -include support for showing the diff of strings and objects when an equality error occurs. Chai has -already included support for this, however some users may not prefer this display behavior. To revert to -no diff display, the following configuration is available: - -```js -chai.Assertion.showDiff = false; // diff output disabled -chai.Assertion.showDiff = true; // default, diff output enabled -``` - -#### For Plugin Developers - -**1. New Utility - type**: The new utility `.type()` is available as a better implementation of `typeof` -that can be used cross-browser. It handles the inconsistencies of Array, `null`, and `undefined` detection. - -- **@param** _{Mixed}_ object to detect type of -- **@return** _{String}_ object type - -```js -chai.use(function (c, utils) { - // some examples - utils.type({}); // 'object' - utils.type(null); // `null' - utils.type(undefined); // `undefined` - utils.type([]); // `array` -}); -``` - -#### For Core Contributors - -**1. Browser Testing**: Browser testing of the `./chai.js` file is now available in the command line -via PhantomJS. `make test` and Travis-CI will now also rebuild and test `./chai.js`. Consequently, all -pull requests will now be browser tested in this way. - -_Note: Contributors opening pull requests should still NOT include the browser build._ - -**2. SauceLabs Testing**: Early SauceLab support has been enabled with the file `./support/mocha-cloud.js`. -Those interested in trying it out should create a free [Open Sauce](https://saucelabs.com/signup/plan) account -and include their credentials in `./test/auth/sauce.json`. diff --git a/build/node_modules/chai/bower.json b/build/node_modules/chai/bower.json deleted file mode 100644 index af2ee029..00000000 --- a/build/node_modules/chai/bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "chai", - "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", - "license": "MIT", - "keywords": [ - "test", - "assertion", - "assert", - "testing", - "chai" - ], - "main": "chai.js", - "ignore": [ - "build", - "components", - "lib", - "node_modules", - "support", - "test", - "index.js", - "Makefile", - ".*" - ], - "dependencies": {}, - "devDependencies": {} -} diff --git a/build/node_modules/chai/chai.js b/build/node_modules/chai/chai.js deleted file mode 100644 index 38efb8f8..00000000 --- a/build/node_modules/chai/chai.js +++ /dev/null @@ -1,11523 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.chai = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i - * MIT Licensed - */ - -var used = []; - -/*! - * Chai version - */ - -exports.version = '4.3.8'; - -/*! - * Assertion Error - */ - -exports.AssertionError = require('assertion-error'); - -/*! - * Utils for plugins (not exported) - */ - -var util = require('./chai/utils'); - -/** - * # .use(function) - * - * Provides a way to extend the internals of Chai. - * - * @param {Function} - * @returns {this} for chaining - * @api public - */ - -exports.use = function (fn) { - if (!~used.indexOf(fn)) { - fn(exports, util); - used.push(fn); - } - - return exports; -}; - -/*! - * Utility Functions - */ - -exports.util = util; - -/*! - * Configuration - */ - -var config = require('./chai/config'); -exports.config = config; - -/*! - * Primary `Assertion` prototype - */ - -var assertion = require('./chai/assertion'); -exports.use(assertion); - -/*! - * Core Assertions - */ - -var core = require('./chai/core/assertions'); -exports.use(core); - -/*! - * Expect interface - */ - -var expect = require('./chai/interface/expect'); -exports.use(expect); - -/*! - * Should interface - */ - -var should = require('./chai/interface/should'); -exports.use(should); - -/*! - * Assert interface - */ - -var assert = require('./chai/interface/assert'); -exports.use(assert); - -},{"./chai/assertion":3,"./chai/config":4,"./chai/core/assertions":5,"./chai/interface/assert":6,"./chai/interface/expect":7,"./chai/interface/should":8,"./chai/utils":22,"assertion-error":33}],3:[function(require,module,exports){ -/*! - * chai - * http://chaijs.com - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -var config = require('./config'); - -module.exports = function (_chai, util) { - /*! - * Module dependencies. - */ - - var AssertionError = _chai.AssertionError - , flag = util.flag; - - /*! - * Module export. - */ - - _chai.Assertion = Assertion; - - /*! - * Assertion Constructor - * - * Creates object for chaining. - * - * `Assertion` objects contain metadata in the form of flags. Three flags can - * be assigned during instantiation by passing arguments to this constructor: - * - * - `object`: This flag contains the target of the assertion. For example, in - * the assertion `expect(numKittens).to.equal(7);`, the `object` flag will - * contain `numKittens` so that the `equal` assertion can reference it when - * needed. - * - * - `message`: This flag contains an optional custom error message to be - * prepended to the error message that's generated by the assertion when it - * fails. - * - * - `ssfi`: This flag stands for "start stack function indicator". It - * contains a function reference that serves as the starting point for - * removing frames from the stack trace of the error that's created by the - * assertion when it fails. The goal is to provide a cleaner stack trace to - * end users by removing Chai's internal functions. Note that it only works - * in environments that support `Error.captureStackTrace`, and only when - * `Chai.config.includeStack` hasn't been set to `false`. - * - * - `lockSsfi`: This flag controls whether or not the given `ssfi` flag - * should retain its current value, even as assertions are chained off of - * this object. This is usually set to `true` when creating a new assertion - * from within another assertion. It's also temporarily set to `true` before - * an overwritten assertion gets called by the overwriting assertion. - * - * @param {Mixed} obj target of the assertion - * @param {String} msg (optional) custom error message - * @param {Function} ssfi (optional) starting point for removing stack frames - * @param {Boolean} lockSsfi (optional) whether or not the ssfi flag is locked - * @api private - */ - - function Assertion (obj, msg, ssfi, lockSsfi) { - flag(this, 'ssfi', ssfi || Assertion); - flag(this, 'lockSsfi', lockSsfi); - flag(this, 'object', obj); - flag(this, 'message', msg); - - return util.proxify(this); - } - - Object.defineProperty(Assertion, 'includeStack', { - get: function() { - console.warn('Assertion.includeStack is deprecated, use chai.config.includeStack instead.'); - return config.includeStack; - }, - set: function(value) { - console.warn('Assertion.includeStack is deprecated, use chai.config.includeStack instead.'); - config.includeStack = value; - } - }); - - Object.defineProperty(Assertion, 'showDiff', { - get: function() { - console.warn('Assertion.showDiff is deprecated, use chai.config.showDiff instead.'); - return config.showDiff; - }, - set: function(value) { - console.warn('Assertion.showDiff is deprecated, use chai.config.showDiff instead.'); - config.showDiff = value; - } - }); - - Assertion.addProperty = function (name, fn) { - util.addProperty(this.prototype, name, fn); - }; - - Assertion.addMethod = function (name, fn) { - util.addMethod(this.prototype, name, fn); - }; - - Assertion.addChainableMethod = function (name, fn, chainingBehavior) { - util.addChainableMethod(this.prototype, name, fn, chainingBehavior); - }; - - Assertion.overwriteProperty = function (name, fn) { - util.overwriteProperty(this.prototype, name, fn); - }; - - Assertion.overwriteMethod = function (name, fn) { - util.overwriteMethod(this.prototype, name, fn); - }; - - Assertion.overwriteChainableMethod = function (name, fn, chainingBehavior) { - util.overwriteChainableMethod(this.prototype, name, fn, chainingBehavior); - }; - - /** - * ### .assert(expression, message, negateMessage, expected, actual, showDiff) - * - * Executes an expression and check expectations. Throws AssertionError for reporting if test doesn't pass. - * - * @name assert - * @param {Philosophical} expression to be tested - * @param {String|Function} message or function that returns message to display if expression fails - * @param {String|Function} negatedMessage or function that returns negatedMessage to display if negated expression fails - * @param {Mixed} expected value (remember to check for negation) - * @param {Mixed} actual (optional) will default to `this.obj` - * @param {Boolean} showDiff (optional) when set to `true`, assert will display a diff in addition to the message if expression fails - * @api private - */ - - Assertion.prototype.assert = function (expr, msg, negateMsg, expected, _actual, showDiff) { - var ok = util.test(this, arguments); - if (false !== showDiff) showDiff = true; - if (undefined === expected && undefined === _actual) showDiff = false; - if (true !== config.showDiff) showDiff = false; - - if (!ok) { - msg = util.getMessage(this, arguments); - var actual = util.getActual(this, arguments); - var assertionErrorObjectProperties = { - actual: actual - , expected: expected - , showDiff: showDiff - }; - - var operator = util.getOperator(this, arguments); - if (operator) { - assertionErrorObjectProperties.operator = operator; - } - - throw new AssertionError( - msg, - assertionErrorObjectProperties, - (config.includeStack) ? this.assert : flag(this, 'ssfi')); - } - }; - - /*! - * ### ._obj - * - * Quick reference to stored `actual` value for plugin developers. - * - * @api private - */ - - Object.defineProperty(Assertion.prototype, '_obj', - { get: function () { - return flag(this, 'object'); - } - , set: function (val) { - flag(this, 'object', val); - } - }); -}; - -},{"./config":4}],4:[function(require,module,exports){ -module.exports = { - - /** - * ### config.includeStack - * - * User configurable property, influences whether stack trace - * is included in Assertion error message. Default of false - * suppresses stack trace in the error message. - * - * chai.config.includeStack = true; // enable stack on error - * - * @param {Boolean} - * @api public - */ - - includeStack: false, - - /** - * ### config.showDiff - * - * User configurable property, influences whether or not - * the `showDiff` flag should be included in the thrown - * AssertionErrors. `false` will always be `false`; `true` - * will be true when the assertion has requested a diff - * be shown. - * - * @param {Boolean} - * @api public - */ - - showDiff: true, - - /** - * ### config.truncateThreshold - * - * User configurable property, sets length threshold for actual and - * expected values in assertion errors. If this threshold is exceeded, for - * example for large data structures, the value is replaced with something - * like `[ Array(3) ]` or `{ Object (prop1, prop2) }`. - * - * Set it to zero if you want to disable truncating altogether. - * - * This is especially userful when doing assertions on arrays: having this - * set to a reasonable large value makes the failure messages readily - * inspectable. - * - * chai.config.truncateThreshold = 0; // disable truncating - * - * @param {Number} - * @api public - */ - - truncateThreshold: 40, - - /** - * ### config.useProxy - * - * User configurable property, defines if chai will use a Proxy to throw - * an error when a non-existent property is read, which protects users - * from typos when using property-based assertions. - * - * Set it to false if you want to disable this feature. - * - * chai.config.useProxy = false; // disable use of Proxy - * - * This feature is automatically disabled regardless of this config value - * in environments that don't support proxies. - * - * @param {Boolean} - * @api public - */ - - useProxy: true, - - /** - * ### config.proxyExcludedKeys - * - * User configurable property, defines which properties should be ignored - * instead of throwing an error if they do not exist on the assertion. - * This is only applied if the environment Chai is running in supports proxies and - * if the `useProxy` configuration setting is enabled. - * By default, `then` and `inspect` will not throw an error if they do not exist on the - * assertion object because the `.inspect` property is read by `util.inspect` (for example, when - * using `console.log` on the assertion object) and `.then` is necessary for promise type-checking. - * - * // By default these keys will not throw an error if they do not exist on the assertion object - * chai.config.proxyExcludedKeys = ['then', 'inspect']; - * - * @param {Array} - * @api public - */ - - proxyExcludedKeys: ['then', 'catch', 'inspect', 'toJSON'] -}; - -},{}],5:[function(require,module,exports){ -/*! - * chai - * http://chaijs.com - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, _) { - var Assertion = chai.Assertion - , AssertionError = chai.AssertionError - , flag = _.flag; - - /** - * ### Language Chains - * - * The following are provided as chainable getters to improve the readability - * of your assertions. - * - * **Chains** - * - * - to - * - be - * - been - * - is - * - that - * - which - * - and - * - has - * - have - * - with - * - at - * - of - * - same - * - but - * - does - * - still - * - also - * - * @name language chains - * @namespace BDD - * @api public - */ - - [ 'to', 'be', 'been', 'is' - , 'and', 'has', 'have', 'with' - , 'that', 'which', 'at', 'of' - , 'same', 'but', 'does', 'still', "also" ].forEach(function (chain) { - Assertion.addProperty(chain); - }); - - /** - * ### .not - * - * Negates all assertions that follow in the chain. - * - * expect(function () {}).to.not.throw(); - * expect({a: 1}).to.not.have.property('b'); - * expect([1, 2]).to.be.an('array').that.does.not.include(3); - * - * Just because you can negate any assertion with `.not` doesn't mean you - * should. With great power comes great responsibility. It's often best to - * assert that the one expected output was produced, rather than asserting - * that one of countless unexpected outputs wasn't produced. See individual - * assertions for specific guidance. - * - * expect(2).to.equal(2); // Recommended - * expect(2).to.not.equal(1); // Not recommended - * - * @name not - * @namespace BDD - * @api public - */ - - Assertion.addProperty('not', function () { - flag(this, 'negate', true); - }); - - /** - * ### .deep - * - * Causes all `.equal`, `.include`, `.members`, `.keys`, and `.property` - * assertions that follow in the chain to use deep equality instead of strict - * (`===`) equality. See the `deep-eql` project page for info on the deep - * equality algorithm: https://github.com/chaijs/deep-eql. - * - * // Target object deeply (but not strictly) equals `{a: 1}` - * expect({a: 1}).to.deep.equal({a: 1}); - * expect({a: 1}).to.not.equal({a: 1}); - * - * // Target array deeply (but not strictly) includes `{a: 1}` - * expect([{a: 1}]).to.deep.include({a: 1}); - * expect([{a: 1}]).to.not.include({a: 1}); - * - * // Target object deeply (but not strictly) includes `x: {a: 1}` - * expect({x: {a: 1}}).to.deep.include({x: {a: 1}}); - * expect({x: {a: 1}}).to.not.include({x: {a: 1}}); - * - * // Target array deeply (but not strictly) has member `{a: 1}` - * expect([{a: 1}]).to.have.deep.members([{a: 1}]); - * expect([{a: 1}]).to.not.have.members([{a: 1}]); - * - * // Target set deeply (but not strictly) has key `{a: 1}` - * expect(new Set([{a: 1}])).to.have.deep.keys([{a: 1}]); - * expect(new Set([{a: 1}])).to.not.have.keys([{a: 1}]); - * - * // Target object deeply (but not strictly) has property `x: {a: 1}` - * expect({x: {a: 1}}).to.have.deep.property('x', {a: 1}); - * expect({x: {a: 1}}).to.not.have.property('x', {a: 1}); - * - * @name deep - * @namespace BDD - * @api public - */ - - Assertion.addProperty('deep', function () { - flag(this, 'deep', true); - }); - - /** - * ### .nested - * - * Enables dot- and bracket-notation in all `.property` and `.include` - * assertions that follow in the chain. - * - * expect({a: {b: ['x', 'y']}}).to.have.nested.property('a.b[1]'); - * expect({a: {b: ['x', 'y']}}).to.nested.include({'a.b[1]': 'y'}); - * - * If `.` or `[]` are part of an actual property name, they can be escaped by - * adding two backslashes before them. - * - * expect({'.a': {'[b]': 'x'}}).to.have.nested.property('\\.a.\\[b\\]'); - * expect({'.a': {'[b]': 'x'}}).to.nested.include({'\\.a.\\[b\\]': 'x'}); - * - * `.nested` cannot be combined with `.own`. - * - * @name nested - * @namespace BDD - * @api public - */ - - Assertion.addProperty('nested', function () { - flag(this, 'nested', true); - }); - - /** - * ### .own - * - * Causes all `.property` and `.include` assertions that follow in the chain - * to ignore inherited properties. - * - * Object.prototype.b = 2; - * - * expect({a: 1}).to.have.own.property('a'); - * expect({a: 1}).to.have.property('b'); - * expect({a: 1}).to.not.have.own.property('b'); - * - * expect({a: 1}).to.own.include({a: 1}); - * expect({a: 1}).to.include({b: 2}).but.not.own.include({b: 2}); - * - * `.own` cannot be combined with `.nested`. - * - * @name own - * @namespace BDD - * @api public - */ - - Assertion.addProperty('own', function () { - flag(this, 'own', true); - }); - - /** - * ### .ordered - * - * Causes all `.members` assertions that follow in the chain to require that - * members be in the same order. - * - * expect([1, 2]).to.have.ordered.members([1, 2]) - * .but.not.have.ordered.members([2, 1]); - * - * When `.include` and `.ordered` are combined, the ordering begins at the - * start of both arrays. - * - * expect([1, 2, 3]).to.include.ordered.members([1, 2]) - * .but.not.include.ordered.members([2, 3]); - * - * @name ordered - * @namespace BDD - * @api public - */ - - Assertion.addProperty('ordered', function () { - flag(this, 'ordered', true); - }); - - /** - * ### .any - * - * Causes all `.keys` assertions that follow in the chain to only require that - * the target have at least one of the given keys. This is the opposite of - * `.all`, which requires that the target have all of the given keys. - * - * expect({a: 1, b: 2}).to.not.have.any.keys('c', 'd'); - * - * See the `.keys` doc for guidance on when to use `.any` or `.all`. - * - * @name any - * @namespace BDD - * @api public - */ - - Assertion.addProperty('any', function () { - flag(this, 'any', true); - flag(this, 'all', false); - }); - - /** - * ### .all - * - * Causes all `.keys` assertions that follow in the chain to require that the - * target have all of the given keys. This is the opposite of `.any`, which - * only requires that the target have at least one of the given keys. - * - * expect({a: 1, b: 2}).to.have.all.keys('a', 'b'); - * - * Note that `.all` is used by default when neither `.all` nor `.any` are - * added earlier in the chain. However, it's often best to add `.all` anyway - * because it improves readability. - * - * See the `.keys` doc for guidance on when to use `.any` or `.all`. - * - * @name all - * @namespace BDD - * @api public - */ - - Assertion.addProperty('all', function () { - flag(this, 'all', true); - flag(this, 'any', false); - }); - - /** - * ### .a(type[, msg]) - * - * Asserts that the target's type is equal to the given string `type`. Types - * are case insensitive. See the `type-detect` project page for info on the - * type detection algorithm: https://github.com/chaijs/type-detect. - * - * expect('foo').to.be.a('string'); - * expect({a: 1}).to.be.an('object'); - * expect(null).to.be.a('null'); - * expect(undefined).to.be.an('undefined'); - * expect(new Error).to.be.an('error'); - * expect(Promise.resolve()).to.be.a('promise'); - * expect(new Float32Array).to.be.a('float32array'); - * expect(Symbol()).to.be.a('symbol'); - * - * `.a` supports objects that have a custom type set via `Symbol.toStringTag`. - * - * var myObj = { - * [Symbol.toStringTag]: 'myCustomType' - * }; - * - * expect(myObj).to.be.a('myCustomType').but.not.an('object'); - * - * It's often best to use `.a` to check a target's type before making more - * assertions on the same target. That way, you avoid unexpected behavior from - * any assertion that does different things based on the target's type. - * - * expect([1, 2, 3]).to.be.an('array').that.includes(2); - * expect([]).to.be.an('array').that.is.empty; - * - * Add `.not` earlier in the chain to negate `.a`. However, it's often best to - * assert that the target is the expected type, rather than asserting that it - * isn't one of many unexpected types. - * - * expect('foo').to.be.a('string'); // Recommended - * expect('foo').to.not.be.an('array'); // Not recommended - * - * `.a` accepts an optional `msg` argument which is a custom error message to - * show when the assertion fails. The message can also be given as the second - * argument to `expect`. - * - * expect(1).to.be.a('string', 'nooo why fail??'); - * expect(1, 'nooo why fail??').to.be.a('string'); - * - * `.a` can also be used as a language chain to improve the readability of - * your assertions. - * - * expect({b: 2}).to.have.a.property('b'); - * - * The alias `.an` can be used interchangeably with `.a`. - * - * @name a - * @alias an - * @param {String} type - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function an (type, msg) { - if (msg) flag(this, 'message', msg); - type = type.toLowerCase(); - var obj = flag(this, 'object') - , article = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(type.charAt(0)) ? 'an ' : 'a '; - - this.assert( - type === _.type(obj).toLowerCase() - , 'expected #{this} to be ' + article + type - , 'expected #{this} not to be ' + article + type - ); - } - - Assertion.addChainableMethod('an', an); - Assertion.addChainableMethod('a', an); - - /** - * ### .include(val[, msg]) - * - * When the target is a string, `.include` asserts that the given string `val` - * is a substring of the target. - * - * expect('foobar').to.include('foo'); - * - * When the target is an array, `.include` asserts that the given `val` is a - * member of the target. - * - * expect([1, 2, 3]).to.include(2); - * - * When the target is an object, `.include` asserts that the given object - * `val`'s properties are a subset of the target's properties. - * - * expect({a: 1, b: 2, c: 3}).to.include({a: 1, b: 2}); - * - * When the target is a Set or WeakSet, `.include` asserts that the given `val` is a - * member of the target. SameValueZero equality algorithm is used. - * - * expect(new Set([1, 2])).to.include(2); - * - * When the target is a Map, `.include` asserts that the given `val` is one of - * the values of the target. SameValueZero equality algorithm is used. - * - * expect(new Map([['a', 1], ['b', 2]])).to.include(2); - * - * Because `.include` does different things based on the target's type, it's - * important to check the target's type before using `.include`. See the `.a` - * doc for info on testing a target's type. - * - * expect([1, 2, 3]).to.be.an('array').that.includes(2); - * - * By default, strict (`===`) equality is used to compare array members and - * object properties. Add `.deep` earlier in the chain to use deep equality - * instead (WeakSet targets are not supported). See the `deep-eql` project - * page for info on the deep equality algorithm: https://github.com/chaijs/deep-eql. - * - * // Target array deeply (but not strictly) includes `{a: 1}` - * expect([{a: 1}]).to.deep.include({a: 1}); - * expect([{a: 1}]).to.not.include({a: 1}); - * - * // Target object deeply (but not strictly) includes `x: {a: 1}` - * expect({x: {a: 1}}).to.deep.include({x: {a: 1}}); - * expect({x: {a: 1}}).to.not.include({x: {a: 1}}); - * - * By default, all of the target's properties are searched when working with - * objects. This includes properties that are inherited and/or non-enumerable. - * Add `.own` earlier in the chain to exclude the target's inherited - * properties from the search. - * - * Object.prototype.b = 2; - * - * expect({a: 1}).to.own.include({a: 1}); - * expect({a: 1}).to.include({b: 2}).but.not.own.include({b: 2}); - * - * Note that a target object is always only searched for `val`'s own - * enumerable properties. - * - * `.deep` and `.own` can be combined. - * - * expect({a: {b: 2}}).to.deep.own.include({a: {b: 2}}); - * - * Add `.nested` earlier in the chain to enable dot- and bracket-notation when - * referencing nested properties. - * - * expect({a: {b: ['x', 'y']}}).to.nested.include({'a.b[1]': 'y'}); - * - * If `.` or `[]` are part of an actual property name, they can be escaped by - * adding two backslashes before them. - * - * expect({'.a': {'[b]': 2}}).to.nested.include({'\\.a.\\[b\\]': 2}); - * - * `.deep` and `.nested` can be combined. - * - * expect({a: {b: [{c: 3}]}}).to.deep.nested.include({'a.b[0]': {c: 3}}); - * - * `.own` and `.nested` cannot be combined. - * - * Add `.not` earlier in the chain to negate `.include`. - * - * expect('foobar').to.not.include('taco'); - * expect([1, 2, 3]).to.not.include(4); - * - * However, it's dangerous to negate `.include` when the target is an object. - * The problem is that it creates uncertain expectations by asserting that the - * target object doesn't have all of `val`'s key/value pairs but may or may - * not have some of them. It's often best to identify the exact output that's - * expected, and then write an assertion that only accepts that exact output. - * - * When the target object isn't even expected to have `val`'s keys, it's - * often best to assert exactly that. - * - * expect({c: 3}).to.not.have.any.keys('a', 'b'); // Recommended - * expect({c: 3}).to.not.include({a: 1, b: 2}); // Not recommended - * - * When the target object is expected to have `val`'s keys, it's often best to - * assert that each of the properties has its expected value, rather than - * asserting that each property doesn't have one of many unexpected values. - * - * expect({a: 3, b: 4}).to.include({a: 3, b: 4}); // Recommended - * expect({a: 3, b: 4}).to.not.include({a: 1, b: 2}); // Not recommended - * - * `.include` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect([1, 2, 3]).to.include(4, 'nooo why fail??'); - * expect([1, 2, 3], 'nooo why fail??').to.include(4); - * - * `.include` can also be used as a language chain, causing all `.members` and - * `.keys` assertions that follow in the chain to require the target to be a - * superset of the expected set, rather than an identical set. Note that - * `.members` ignores duplicates in the subset when `.include` is added. - * - * // Target object's keys are a superset of ['a', 'b'] but not identical - * expect({a: 1, b: 2, c: 3}).to.include.all.keys('a', 'b'); - * expect({a: 1, b: 2, c: 3}).to.not.have.all.keys('a', 'b'); - * - * // Target array is a superset of [1, 2] but not identical - * expect([1, 2, 3]).to.include.members([1, 2]); - * expect([1, 2, 3]).to.not.have.members([1, 2]); - * - * // Duplicates in the subset are ignored - * expect([1, 2, 3]).to.include.members([1, 2, 2, 2]); - * - * Note that adding `.any` earlier in the chain causes the `.keys` assertion - * to ignore `.include`. - * - * // Both assertions are identical - * expect({a: 1}).to.include.any.keys('a', 'b'); - * expect({a: 1}).to.have.any.keys('a', 'b'); - * - * The aliases `.includes`, `.contain`, and `.contains` can be used - * interchangeably with `.include`. - * - * @name include - * @alias contain - * @alias includes - * @alias contains - * @param {Mixed} val - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function SameValueZero(a, b) { - return (_.isNaN(a) && _.isNaN(b)) || a === b; - } - - function includeChainingBehavior () { - flag(this, 'contains', true); - } - - function include (val, msg) { - if (msg) flag(this, 'message', msg); - - var obj = flag(this, 'object') - , objType = _.type(obj).toLowerCase() - , flagMsg = flag(this, 'message') - , negate = flag(this, 'negate') - , ssfi = flag(this, 'ssfi') - , isDeep = flag(this, 'deep') - , descriptor = isDeep ? 'deep ' : ''; - - flagMsg = flagMsg ? flagMsg + ': ' : ''; - - var included = false; - - switch (objType) { - case 'string': - included = obj.indexOf(val) !== -1; - break; - - case 'weakset': - if (isDeep) { - throw new AssertionError( - flagMsg + 'unable to use .deep.include with WeakSet', - undefined, - ssfi - ); - } - - included = obj.has(val); - break; - - case 'map': - var isEql = isDeep ? _.eql : SameValueZero; - obj.forEach(function (item) { - included = included || isEql(item, val); - }); - break; - - case 'set': - if (isDeep) { - obj.forEach(function (item) { - included = included || _.eql(item, val); - }); - } else { - included = obj.has(val); - } - break; - - case 'array': - if (isDeep) { - included = obj.some(function (item) { - return _.eql(item, val); - }) - } else { - included = obj.indexOf(val) !== -1; - } - break; - - default: - // This block is for asserting a subset of properties in an object. - // `_.expectTypes` isn't used here because `.include` should work with - // objects with a custom `@@toStringTag`. - if (val !== Object(val)) { - throw new AssertionError( - flagMsg + 'the given combination of arguments (' - + objType + ' and ' - + _.type(val).toLowerCase() + ')' - + ' is invalid for this assertion. ' - + 'You can use an array, a map, an object, a set, a string, ' - + 'or a weakset instead of a ' - + _.type(val).toLowerCase(), - undefined, - ssfi - ); - } - - var props = Object.keys(val) - , firstErr = null - , numErrs = 0; - - props.forEach(function (prop) { - var propAssertion = new Assertion(obj); - _.transferFlags(this, propAssertion, true); - flag(propAssertion, 'lockSsfi', true); - - if (!negate || props.length === 1) { - propAssertion.property(prop, val[prop]); - return; - } - - try { - propAssertion.property(prop, val[prop]); - } catch (err) { - if (!_.checkError.compatibleConstructor(err, AssertionError)) { - throw err; - } - if (firstErr === null) firstErr = err; - numErrs++; - } - }, this); - - // When validating .not.include with multiple properties, we only want - // to throw an assertion error if all of the properties are included, - // in which case we throw the first property assertion error that we - // encountered. - if (negate && props.length > 1 && numErrs === props.length) { - throw firstErr; - } - return; - } - - // Assert inclusion in collection or substring in a string. - this.assert( - included - , 'expected #{this} to ' + descriptor + 'include ' + _.inspect(val) - , 'expected #{this} to not ' + descriptor + 'include ' + _.inspect(val)); - } - - Assertion.addChainableMethod('include', include, includeChainingBehavior); - Assertion.addChainableMethod('contain', include, includeChainingBehavior); - Assertion.addChainableMethod('contains', include, includeChainingBehavior); - Assertion.addChainableMethod('includes', include, includeChainingBehavior); - - /** - * ### .ok - * - * Asserts that the target is a truthy value (considered `true` in boolean context). - * However, it's often best to assert that the target is strictly (`===`) or - * deeply equal to its expected value. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.be.ok; // Not recommended - * - * expect(true).to.be.true; // Recommended - * expect(true).to.be.ok; // Not recommended - * - * Add `.not` earlier in the chain to negate `.ok`. - * - * expect(0).to.equal(0); // Recommended - * expect(0).to.not.be.ok; // Not recommended - * - * expect(false).to.be.false; // Recommended - * expect(false).to.not.be.ok; // Not recommended - * - * expect(null).to.be.null; // Recommended - * expect(null).to.not.be.ok; // Not recommended - * - * expect(undefined).to.be.undefined; // Recommended - * expect(undefined).to.not.be.ok; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(false, 'nooo why fail??').to.be.ok; - * - * @name ok - * @namespace BDD - * @api public - */ - - Assertion.addProperty('ok', function () { - this.assert( - flag(this, 'object') - , 'expected #{this} to be truthy' - , 'expected #{this} to be falsy'); - }); - - /** - * ### .true - * - * Asserts that the target is strictly (`===`) equal to `true`. - * - * expect(true).to.be.true; - * - * Add `.not` earlier in the chain to negate `.true`. However, it's often best - * to assert that the target is equal to its expected value, rather than not - * equal to `true`. - * - * expect(false).to.be.false; // Recommended - * expect(false).to.not.be.true; // Not recommended - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.true; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(false, 'nooo why fail??').to.be.true; - * - * @name true - * @namespace BDD - * @api public - */ - - Assertion.addProperty('true', function () { - this.assert( - true === flag(this, 'object') - , 'expected #{this} to be true' - , 'expected #{this} to be false' - , flag(this, 'negate') ? false : true - ); - }); - - /** - * ### .false - * - * Asserts that the target is strictly (`===`) equal to `false`. - * - * expect(false).to.be.false; - * - * Add `.not` earlier in the chain to negate `.false`. However, it's often - * best to assert that the target is equal to its expected value, rather than - * not equal to `false`. - * - * expect(true).to.be.true; // Recommended - * expect(true).to.not.be.false; // Not recommended - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.false; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(true, 'nooo why fail??').to.be.false; - * - * @name false - * @namespace BDD - * @api public - */ - - Assertion.addProperty('false', function () { - this.assert( - false === flag(this, 'object') - , 'expected #{this} to be false' - , 'expected #{this} to be true' - , flag(this, 'negate') ? true : false - ); - }); - - /** - * ### .null - * - * Asserts that the target is strictly (`===`) equal to `null`. - * - * expect(null).to.be.null; - * - * Add `.not` earlier in the chain to negate `.null`. However, it's often best - * to assert that the target is equal to its expected value, rather than not - * equal to `null`. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.null; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(42, 'nooo why fail??').to.be.null; - * - * @name null - * @namespace BDD - * @api public - */ - - Assertion.addProperty('null', function () { - this.assert( - null === flag(this, 'object') - , 'expected #{this} to be null' - , 'expected #{this} not to be null' - ); - }); - - /** - * ### .undefined - * - * Asserts that the target is strictly (`===`) equal to `undefined`. - * - * expect(undefined).to.be.undefined; - * - * Add `.not` earlier in the chain to negate `.undefined`. However, it's often - * best to assert that the target is equal to its expected value, rather than - * not equal to `undefined`. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.undefined; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(42, 'nooo why fail??').to.be.undefined; - * - * @name undefined - * @namespace BDD - * @api public - */ - - Assertion.addProperty('undefined', function () { - this.assert( - undefined === flag(this, 'object') - , 'expected #{this} to be undefined' - , 'expected #{this} not to be undefined' - ); - }); - - /** - * ### .NaN - * - * Asserts that the target is exactly `NaN`. - * - * expect(NaN).to.be.NaN; - * - * Add `.not` earlier in the chain to negate `.NaN`. However, it's often best - * to assert that the target is equal to its expected value, rather than not - * equal to `NaN`. - * - * expect('foo').to.equal('foo'); // Recommended - * expect('foo').to.not.be.NaN; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(42, 'nooo why fail??').to.be.NaN; - * - * @name NaN - * @namespace BDD - * @api public - */ - - Assertion.addProperty('NaN', function () { - this.assert( - _.isNaN(flag(this, 'object')) - , 'expected #{this} to be NaN' - , 'expected #{this} not to be NaN' - ); - }); - - /** - * ### .exist - * - * Asserts that the target is not strictly (`===`) equal to either `null` or - * `undefined`. However, it's often best to assert that the target is equal to - * its expected value. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.exist; // Not recommended - * - * expect(0).to.equal(0); // Recommended - * expect(0).to.exist; // Not recommended - * - * Add `.not` earlier in the chain to negate `.exist`. - * - * expect(null).to.be.null; // Recommended - * expect(null).to.not.exist; // Not recommended - * - * expect(undefined).to.be.undefined; // Recommended - * expect(undefined).to.not.exist; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(null, 'nooo why fail??').to.exist; - * - * The alias `.exists` can be used interchangeably with `.exist`. - * - * @name exist - * @alias exists - * @namespace BDD - * @api public - */ - - function assertExist () { - var val = flag(this, 'object'); - this.assert( - val !== null && val !== undefined - , 'expected #{this} to exist' - , 'expected #{this} to not exist' - ); - } - - Assertion.addProperty('exist', assertExist); - Assertion.addProperty('exists', assertExist); - - /** - * ### .empty - * - * When the target is a string or array, `.empty` asserts that the target's - * `length` property is strictly (`===`) equal to `0`. - * - * expect([]).to.be.empty; - * expect('').to.be.empty; - * - * When the target is a map or set, `.empty` asserts that the target's `size` - * property is strictly equal to `0`. - * - * expect(new Set()).to.be.empty; - * expect(new Map()).to.be.empty; - * - * When the target is a non-function object, `.empty` asserts that the target - * doesn't have any own enumerable properties. Properties with Symbol-based - * keys are excluded from the count. - * - * expect({}).to.be.empty; - * - * Because `.empty` does different things based on the target's type, it's - * important to check the target's type before using `.empty`. See the `.a` - * doc for info on testing a target's type. - * - * expect([]).to.be.an('array').that.is.empty; - * - * Add `.not` earlier in the chain to negate `.empty`. However, it's often - * best to assert that the target contains its expected number of values, - * rather than asserting that it's not empty. - * - * expect([1, 2, 3]).to.have.lengthOf(3); // Recommended - * expect([1, 2, 3]).to.not.be.empty; // Not recommended - * - * expect(new Set([1, 2, 3])).to.have.property('size', 3); // Recommended - * expect(new Set([1, 2, 3])).to.not.be.empty; // Not recommended - * - * expect(Object.keys({a: 1})).to.have.lengthOf(1); // Recommended - * expect({a: 1}).to.not.be.empty; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect([1, 2, 3], 'nooo why fail??').to.be.empty; - * - * @name empty - * @namespace BDD - * @api public - */ - - Assertion.addProperty('empty', function () { - var val = flag(this, 'object') - , ssfi = flag(this, 'ssfi') - , flagMsg = flag(this, 'message') - , itemsCount; - - flagMsg = flagMsg ? flagMsg + ': ' : ''; - - switch (_.type(val).toLowerCase()) { - case 'array': - case 'string': - itemsCount = val.length; - break; - case 'map': - case 'set': - itemsCount = val.size; - break; - case 'weakmap': - case 'weakset': - throw new AssertionError( - flagMsg + '.empty was passed a weak collection', - undefined, - ssfi - ); - case 'function': - var msg = flagMsg + '.empty was passed a function ' + _.getName(val); - throw new AssertionError(msg.trim(), undefined, ssfi); - default: - if (val !== Object(val)) { - throw new AssertionError( - flagMsg + '.empty was passed non-string primitive ' + _.inspect(val), - undefined, - ssfi - ); - } - itemsCount = Object.keys(val).length; - } - - this.assert( - 0 === itemsCount - , 'expected #{this} to be empty' - , 'expected #{this} not to be empty' - ); - }); - - /** - * ### .arguments - * - * Asserts that the target is an `arguments` object. - * - * function test () { - * expect(arguments).to.be.arguments; - * } - * - * test(); - * - * Add `.not` earlier in the chain to negate `.arguments`. However, it's often - * best to assert which type the target is expected to be, rather than - * asserting that it’s not an `arguments` object. - * - * expect('foo').to.be.a('string'); // Recommended - * expect('foo').to.not.be.arguments; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect({}, 'nooo why fail??').to.be.arguments; - * - * The alias `.Arguments` can be used interchangeably with `.arguments`. - * - * @name arguments - * @alias Arguments - * @namespace BDD - * @api public - */ - - function checkArguments () { - var obj = flag(this, 'object') - , type = _.type(obj); - this.assert( - 'Arguments' === type - , 'expected #{this} to be arguments but got ' + type - , 'expected #{this} to not be arguments' - ); - } - - Assertion.addProperty('arguments', checkArguments); - Assertion.addProperty('Arguments', checkArguments); - - /** - * ### .equal(val[, msg]) - * - * Asserts that the target is strictly (`===`) equal to the given `val`. - * - * expect(1).to.equal(1); - * expect('foo').to.equal('foo'); - * - * Add `.deep` earlier in the chain to use deep equality instead. See the - * `deep-eql` project page for info on the deep equality algorithm: - * https://github.com/chaijs/deep-eql. - * - * // Target object deeply (but not strictly) equals `{a: 1}` - * expect({a: 1}).to.deep.equal({a: 1}); - * expect({a: 1}).to.not.equal({a: 1}); - * - * // Target array deeply (but not strictly) equals `[1, 2]` - * expect([1, 2]).to.deep.equal([1, 2]); - * expect([1, 2]).to.not.equal([1, 2]); - * - * Add `.not` earlier in the chain to negate `.equal`. However, it's often - * best to assert that the target is equal to its expected value, rather than - * not equal to one of countless unexpected values. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.equal(2); // Not recommended - * - * `.equal` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect(1).to.equal(2, 'nooo why fail??'); - * expect(1, 'nooo why fail??').to.equal(2); - * - * The aliases `.equals` and `eq` can be used interchangeably with `.equal`. - * - * @name equal - * @alias equals - * @alias eq - * @param {Mixed} val - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertEqual (val, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - if (flag(this, 'deep')) { - var prevLockSsfi = flag(this, 'lockSsfi'); - flag(this, 'lockSsfi', true); - this.eql(val); - flag(this, 'lockSsfi', prevLockSsfi); - } else { - this.assert( - val === obj - , 'expected #{this} to equal #{exp}' - , 'expected #{this} to not equal #{exp}' - , val - , this._obj - , true - ); - } - } - - Assertion.addMethod('equal', assertEqual); - Assertion.addMethod('equals', assertEqual); - Assertion.addMethod('eq', assertEqual); - - /** - * ### .eql(obj[, msg]) - * - * Asserts that the target is deeply equal to the given `obj`. See the - * `deep-eql` project page for info on the deep equality algorithm: - * https://github.com/chaijs/deep-eql. - * - * // Target object is deeply (but not strictly) equal to {a: 1} - * expect({a: 1}).to.eql({a: 1}).but.not.equal({a: 1}); - * - * // Target array is deeply (but not strictly) equal to [1, 2] - * expect([1, 2]).to.eql([1, 2]).but.not.equal([1, 2]); - * - * Add `.not` earlier in the chain to negate `.eql`. However, it's often best - * to assert that the target is deeply equal to its expected value, rather - * than not deeply equal to one of countless unexpected values. - * - * expect({a: 1}).to.eql({a: 1}); // Recommended - * expect({a: 1}).to.not.eql({b: 2}); // Not recommended - * - * `.eql` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect({a: 1}).to.eql({b: 2}, 'nooo why fail??'); - * expect({a: 1}, 'nooo why fail??').to.eql({b: 2}); - * - * The alias `.eqls` can be used interchangeably with `.eql`. - * - * The `.deep.equal` assertion is almost identical to `.eql` but with one - * difference: `.deep.equal` causes deep equality comparisons to also be used - * for any other assertions that follow in the chain. - * - * @name eql - * @alias eqls - * @param {Mixed} obj - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertEql(obj, msg) { - if (msg) flag(this, 'message', msg); - this.assert( - _.eql(obj, flag(this, 'object')) - , 'expected #{this} to deeply equal #{exp}' - , 'expected #{this} to not deeply equal #{exp}' - , obj - , this._obj - , true - ); - } - - Assertion.addMethod('eql', assertEql); - Assertion.addMethod('eqls', assertEql); - - /** - * ### .above(n[, msg]) - * - * Asserts that the target is a number or a date greater than the given number or date `n` respectively. - * However, it's often best to assert that the target is equal to its expected - * value. - * - * expect(2).to.equal(2); // Recommended - * expect(2).to.be.above(1); // Not recommended - * - * Add `.lengthOf` earlier in the chain to assert that the target's `length` - * or `size` is greater than the given number `n`. - * - * expect('foo').to.have.lengthOf(3); // Recommended - * expect('foo').to.have.lengthOf.above(2); // Not recommended - * - * expect([1, 2, 3]).to.have.lengthOf(3); // Recommended - * expect([1, 2, 3]).to.have.lengthOf.above(2); // Not recommended - * - * Add `.not` earlier in the chain to negate `.above`. - * - * expect(2).to.equal(2); // Recommended - * expect(1).to.not.be.above(2); // Not recommended - * - * `.above` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect(1).to.be.above(2, 'nooo why fail??'); - * expect(1, 'nooo why fail??').to.be.above(2); - * - * The aliases `.gt` and `.greaterThan` can be used interchangeably with - * `.above`. - * - * @name above - * @alias gt - * @alias greaterThan - * @param {Number} n - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertAbove (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , doLength = flag(this, 'doLength') - , flagMsg = flag(this, 'message') - , msgPrefix = ((flagMsg) ? flagMsg + ': ' : '') - , ssfi = flag(this, 'ssfi') - , objType = _.type(obj).toLowerCase() - , nType = _.type(n).toLowerCase() - , errorMessage - , shouldThrow = true; - - if (doLength && objType !== 'map' && objType !== 'set') { - new Assertion(obj, flagMsg, ssfi, true).to.have.property('length'); - } - - if (!doLength && (objType === 'date' && nType !== 'date')) { - errorMessage = msgPrefix + 'the argument to above must be a date'; - } else if (nType !== 'number' && (doLength || objType === 'number')) { - errorMessage = msgPrefix + 'the argument to above must be a number'; - } else if (!doLength && (objType !== 'date' && objType !== 'number')) { - var printObj = (objType === 'string') ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + 'expected ' + printObj + ' to be a number or a date'; - } else { - shouldThrow = false; - } - - if (shouldThrow) { - throw new AssertionError(errorMessage, undefined, ssfi); - } - - if (doLength) { - var descriptor = 'length' - , itemsCount; - if (objType === 'map' || objType === 'set') { - descriptor = 'size'; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert( - itemsCount > n - , 'expected #{this} to have a ' + descriptor + ' above #{exp} but got #{act}' - , 'expected #{this} to not have a ' + descriptor + ' above #{exp}' - , n - , itemsCount - ); - } else { - this.assert( - obj > n - , 'expected #{this} to be above #{exp}' - , 'expected #{this} to be at most #{exp}' - , n - ); - } - } - - Assertion.addMethod('above', assertAbove); - Assertion.addMethod('gt', assertAbove); - Assertion.addMethod('greaterThan', assertAbove); - - /** - * ### .least(n[, msg]) - * - * Asserts that the target is a number or a date greater than or equal to the given - * number or date `n` respectively. However, it's often best to assert that the target is equal to - * its expected value. - * - * expect(2).to.equal(2); // Recommended - * expect(2).to.be.at.least(1); // Not recommended - * expect(2).to.be.at.least(2); // Not recommended - * - * Add `.lengthOf` earlier in the chain to assert that the target's `length` - * or `size` is greater than or equal to the given number `n`. - * - * expect('foo').to.have.lengthOf(3); // Recommended - * expect('foo').to.have.lengthOf.at.least(2); // Not recommended - * - * expect([1, 2, 3]).to.have.lengthOf(3); // Recommended - * expect([1, 2, 3]).to.have.lengthOf.at.least(2); // Not recommended - * - * Add `.not` earlier in the chain to negate `.least`. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.at.least(2); // Not recommended - * - * `.least` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect(1).to.be.at.least(2, 'nooo why fail??'); - * expect(1, 'nooo why fail??').to.be.at.least(2); - * - * The aliases `.gte` and `.greaterThanOrEqual` can be used interchangeably with - * `.least`. - * - * @name least - * @alias gte - * @alias greaterThanOrEqual - * @param {Number} n - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertLeast (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , doLength = flag(this, 'doLength') - , flagMsg = flag(this, 'message') - , msgPrefix = ((flagMsg) ? flagMsg + ': ' : '') - , ssfi = flag(this, 'ssfi') - , objType = _.type(obj).toLowerCase() - , nType = _.type(n).toLowerCase() - , errorMessage - , shouldThrow = true; - - if (doLength && objType !== 'map' && objType !== 'set') { - new Assertion(obj, flagMsg, ssfi, true).to.have.property('length'); - } - - if (!doLength && (objType === 'date' && nType !== 'date')) { - errorMessage = msgPrefix + 'the argument to least must be a date'; - } else if (nType !== 'number' && (doLength || objType === 'number')) { - errorMessage = msgPrefix + 'the argument to least must be a number'; - } else if (!doLength && (objType !== 'date' && objType !== 'number')) { - var printObj = (objType === 'string') ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + 'expected ' + printObj + ' to be a number or a date'; - } else { - shouldThrow = false; - } - - if (shouldThrow) { - throw new AssertionError(errorMessage, undefined, ssfi); - } - - if (doLength) { - var descriptor = 'length' - , itemsCount; - if (objType === 'map' || objType === 'set') { - descriptor = 'size'; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert( - itemsCount >= n - , 'expected #{this} to have a ' + descriptor + ' at least #{exp} but got #{act}' - , 'expected #{this} to have a ' + descriptor + ' below #{exp}' - , n - , itemsCount - ); - } else { - this.assert( - obj >= n - , 'expected #{this} to be at least #{exp}' - , 'expected #{this} to be below #{exp}' - , n - ); - } - } - - Assertion.addMethod('least', assertLeast); - Assertion.addMethod('gte', assertLeast); - Assertion.addMethod('greaterThanOrEqual', assertLeast); - - /** - * ### .below(n[, msg]) - * - * Asserts that the target is a number or a date less than the given number or date `n` respectively. - * However, it's often best to assert that the target is equal to its expected - * value. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.be.below(2); // Not recommended - * - * Add `.lengthOf` earlier in the chain to assert that the target's `length` - * or `size` is less than the given number `n`. - * - * expect('foo').to.have.lengthOf(3); // Recommended - * expect('foo').to.have.lengthOf.below(4); // Not recommended - * - * expect([1, 2, 3]).to.have.length(3); // Recommended - * expect([1, 2, 3]).to.have.lengthOf.below(4); // Not recommended - * - * Add `.not` earlier in the chain to negate `.below`. - * - * expect(2).to.equal(2); // Recommended - * expect(2).to.not.be.below(1); // Not recommended - * - * `.below` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect(2).to.be.below(1, 'nooo why fail??'); - * expect(2, 'nooo why fail??').to.be.below(1); - * - * The aliases `.lt` and `.lessThan` can be used interchangeably with - * `.below`. - * - * @name below - * @alias lt - * @alias lessThan - * @param {Number} n - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertBelow (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , doLength = flag(this, 'doLength') - , flagMsg = flag(this, 'message') - , msgPrefix = ((flagMsg) ? flagMsg + ': ' : '') - , ssfi = flag(this, 'ssfi') - , objType = _.type(obj).toLowerCase() - , nType = _.type(n).toLowerCase() - , errorMessage - , shouldThrow = true; - - if (doLength && objType !== 'map' && objType !== 'set') { - new Assertion(obj, flagMsg, ssfi, true).to.have.property('length'); - } - - if (!doLength && (objType === 'date' && nType !== 'date')) { - errorMessage = msgPrefix + 'the argument to below must be a date'; - } else if (nType !== 'number' && (doLength || objType === 'number')) { - errorMessage = msgPrefix + 'the argument to below must be a number'; - } else if (!doLength && (objType !== 'date' && objType !== 'number')) { - var printObj = (objType === 'string') ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + 'expected ' + printObj + ' to be a number or a date'; - } else { - shouldThrow = false; - } - - if (shouldThrow) { - throw new AssertionError(errorMessage, undefined, ssfi); - } - - if (doLength) { - var descriptor = 'length' - , itemsCount; - if (objType === 'map' || objType === 'set') { - descriptor = 'size'; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert( - itemsCount < n - , 'expected #{this} to have a ' + descriptor + ' below #{exp} but got #{act}' - , 'expected #{this} to not have a ' + descriptor + ' below #{exp}' - , n - , itemsCount - ); - } else { - this.assert( - obj < n - , 'expected #{this} to be below #{exp}' - , 'expected #{this} to be at least #{exp}' - , n - ); - } - } - - Assertion.addMethod('below', assertBelow); - Assertion.addMethod('lt', assertBelow); - Assertion.addMethod('lessThan', assertBelow); - - /** - * ### .most(n[, msg]) - * - * Asserts that the target is a number or a date less than or equal to the given number - * or date `n` respectively. However, it's often best to assert that the target is equal to its - * expected value. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.be.at.most(2); // Not recommended - * expect(1).to.be.at.most(1); // Not recommended - * - * Add `.lengthOf` earlier in the chain to assert that the target's `length` - * or `size` is less than or equal to the given number `n`. - * - * expect('foo').to.have.lengthOf(3); // Recommended - * expect('foo').to.have.lengthOf.at.most(4); // Not recommended - * - * expect([1, 2, 3]).to.have.lengthOf(3); // Recommended - * expect([1, 2, 3]).to.have.lengthOf.at.most(4); // Not recommended - * - * Add `.not` earlier in the chain to negate `.most`. - * - * expect(2).to.equal(2); // Recommended - * expect(2).to.not.be.at.most(1); // Not recommended - * - * `.most` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect(2).to.be.at.most(1, 'nooo why fail??'); - * expect(2, 'nooo why fail??').to.be.at.most(1); - * - * The aliases `.lte` and `.lessThanOrEqual` can be used interchangeably with - * `.most`. - * - * @name most - * @alias lte - * @alias lessThanOrEqual - * @param {Number} n - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertMost (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , doLength = flag(this, 'doLength') - , flagMsg = flag(this, 'message') - , msgPrefix = ((flagMsg) ? flagMsg + ': ' : '') - , ssfi = flag(this, 'ssfi') - , objType = _.type(obj).toLowerCase() - , nType = _.type(n).toLowerCase() - , errorMessage - , shouldThrow = true; - - if (doLength && objType !== 'map' && objType !== 'set') { - new Assertion(obj, flagMsg, ssfi, true).to.have.property('length'); - } - - if (!doLength && (objType === 'date' && nType !== 'date')) { - errorMessage = msgPrefix + 'the argument to most must be a date'; - } else if (nType !== 'number' && (doLength || objType === 'number')) { - errorMessage = msgPrefix + 'the argument to most must be a number'; - } else if (!doLength && (objType !== 'date' && objType !== 'number')) { - var printObj = (objType === 'string') ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + 'expected ' + printObj + ' to be a number or a date'; - } else { - shouldThrow = false; - } - - if (shouldThrow) { - throw new AssertionError(errorMessage, undefined, ssfi); - } - - if (doLength) { - var descriptor = 'length' - , itemsCount; - if (objType === 'map' || objType === 'set') { - descriptor = 'size'; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert( - itemsCount <= n - , 'expected #{this} to have a ' + descriptor + ' at most #{exp} but got #{act}' - , 'expected #{this} to have a ' + descriptor + ' above #{exp}' - , n - , itemsCount - ); - } else { - this.assert( - obj <= n - , 'expected #{this} to be at most #{exp}' - , 'expected #{this} to be above #{exp}' - , n - ); - } - } - - Assertion.addMethod('most', assertMost); - Assertion.addMethod('lte', assertMost); - Assertion.addMethod('lessThanOrEqual', assertMost); - - /** - * ### .within(start, finish[, msg]) - * - * Asserts that the target is a number or a date greater than or equal to the given - * number or date `start`, and less than or equal to the given number or date `finish` respectively. - * However, it's often best to assert that the target is equal to its expected - * value. - * - * expect(2).to.equal(2); // Recommended - * expect(2).to.be.within(1, 3); // Not recommended - * expect(2).to.be.within(2, 3); // Not recommended - * expect(2).to.be.within(1, 2); // Not recommended - * - * Add `.lengthOf` earlier in the chain to assert that the target's `length` - * or `size` is greater than or equal to the given number `start`, and less - * than or equal to the given number `finish`. - * - * expect('foo').to.have.lengthOf(3); // Recommended - * expect('foo').to.have.lengthOf.within(2, 4); // Not recommended - * - * expect([1, 2, 3]).to.have.lengthOf(3); // Recommended - * expect([1, 2, 3]).to.have.lengthOf.within(2, 4); // Not recommended - * - * Add `.not` earlier in the chain to negate `.within`. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.within(2, 4); // Not recommended - * - * `.within` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect(4).to.be.within(1, 3, 'nooo why fail??'); - * expect(4, 'nooo why fail??').to.be.within(1, 3); - * - * @name within - * @param {Number} start lower bound inclusive - * @param {Number} finish upper bound inclusive - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - Assertion.addMethod('within', function (start, finish, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , doLength = flag(this, 'doLength') - , flagMsg = flag(this, 'message') - , msgPrefix = ((flagMsg) ? flagMsg + ': ' : '') - , ssfi = flag(this, 'ssfi') - , objType = _.type(obj).toLowerCase() - , startType = _.type(start).toLowerCase() - , finishType = _.type(finish).toLowerCase() - , errorMessage - , shouldThrow = true - , range = (startType === 'date' && finishType === 'date') - ? start.toISOString() + '..' + finish.toISOString() - : start + '..' + finish; - - if (doLength && objType !== 'map' && objType !== 'set') { - new Assertion(obj, flagMsg, ssfi, true).to.have.property('length'); - } - - if (!doLength && (objType === 'date' && (startType !== 'date' || finishType !== 'date'))) { - errorMessage = msgPrefix + 'the arguments to within must be dates'; - } else if ((startType !== 'number' || finishType !== 'number') && (doLength || objType === 'number')) { - errorMessage = msgPrefix + 'the arguments to within must be numbers'; - } else if (!doLength && (objType !== 'date' && objType !== 'number')) { - var printObj = (objType === 'string') ? "'" + obj + "'" : obj; - errorMessage = msgPrefix + 'expected ' + printObj + ' to be a number or a date'; - } else { - shouldThrow = false; - } - - if (shouldThrow) { - throw new AssertionError(errorMessage, undefined, ssfi); - } - - if (doLength) { - var descriptor = 'length' - , itemsCount; - if (objType === 'map' || objType === 'set') { - descriptor = 'size'; - itemsCount = obj.size; - } else { - itemsCount = obj.length; - } - this.assert( - itemsCount >= start && itemsCount <= finish - , 'expected #{this} to have a ' + descriptor + ' within ' + range - , 'expected #{this} to not have a ' + descriptor + ' within ' + range - ); - } else { - this.assert( - obj >= start && obj <= finish - , 'expected #{this} to be within ' + range - , 'expected #{this} to not be within ' + range - ); - } - }); - - /** - * ### .instanceof(constructor[, msg]) - * - * Asserts that the target is an instance of the given `constructor`. - * - * function Cat () { } - * - * expect(new Cat()).to.be.an.instanceof(Cat); - * expect([1, 2]).to.be.an.instanceof(Array); - * - * Add `.not` earlier in the chain to negate `.instanceof`. - * - * expect({a: 1}).to.not.be.an.instanceof(Array); - * - * `.instanceof` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect(1).to.be.an.instanceof(Array, 'nooo why fail??'); - * expect(1, 'nooo why fail??').to.be.an.instanceof(Array); - * - * Due to limitations in ES5, `.instanceof` may not always work as expected - * when using a transpiler such as Babel or TypeScript. In particular, it may - * produce unexpected results when subclassing built-in object such as - * `Array`, `Error`, and `Map`. See your transpiler's docs for details: - * - * - ([Babel](https://babeljs.io/docs/usage/caveats/#classes)) - * - ([TypeScript](https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work)) - * - * The alias `.instanceOf` can be used interchangeably with `.instanceof`. - * - * @name instanceof - * @param {Constructor} constructor - * @param {String} msg _optional_ - * @alias instanceOf - * @namespace BDD - * @api public - */ - - function assertInstanceOf (constructor, msg) { - if (msg) flag(this, 'message', msg); - - var target = flag(this, 'object') - var ssfi = flag(this, 'ssfi'); - var flagMsg = flag(this, 'message'); - - try { - var isInstanceOf = target instanceof constructor; - } catch (err) { - if (err instanceof TypeError) { - flagMsg = flagMsg ? flagMsg + ': ' : ''; - throw new AssertionError( - flagMsg + 'The instanceof assertion needs a constructor but ' - + _.type(constructor) + ' was given.', - undefined, - ssfi - ); - } - throw err; - } - - var name = _.getName(constructor); - if (name === null) { - name = 'an unnamed constructor'; - } - - this.assert( - isInstanceOf - , 'expected #{this} to be an instance of ' + name - , 'expected #{this} to not be an instance of ' + name - ); - }; - - Assertion.addMethod('instanceof', assertInstanceOf); - Assertion.addMethod('instanceOf', assertInstanceOf); - - /** - * ### .property(name[, val[, msg]]) - * - * Asserts that the target has a property with the given key `name`. - * - * expect({a: 1}).to.have.property('a'); - * - * When `val` is provided, `.property` also asserts that the property's value - * is equal to the given `val`. - * - * expect({a: 1}).to.have.property('a', 1); - * - * By default, strict (`===`) equality is used. Add `.deep` earlier in the - * chain to use deep equality instead. See the `deep-eql` project page for - * info on the deep equality algorithm: https://github.com/chaijs/deep-eql. - * - * // Target object deeply (but not strictly) has property `x: {a: 1}` - * expect({x: {a: 1}}).to.have.deep.property('x', {a: 1}); - * expect({x: {a: 1}}).to.not.have.property('x', {a: 1}); - * - * The target's enumerable and non-enumerable properties are always included - * in the search. By default, both own and inherited properties are included. - * Add `.own` earlier in the chain to exclude inherited properties from the - * search. - * - * Object.prototype.b = 2; - * - * expect({a: 1}).to.have.own.property('a'); - * expect({a: 1}).to.have.own.property('a', 1); - * expect({a: 1}).to.have.property('b'); - * expect({a: 1}).to.not.have.own.property('b'); - * - * `.deep` and `.own` can be combined. - * - * expect({x: {a: 1}}).to.have.deep.own.property('x', {a: 1}); - * - * Add `.nested` earlier in the chain to enable dot- and bracket-notation when - * referencing nested properties. - * - * expect({a: {b: ['x', 'y']}}).to.have.nested.property('a.b[1]'); - * expect({a: {b: ['x', 'y']}}).to.have.nested.property('a.b[1]', 'y'); - * - * If `.` or `[]` are part of an actual property name, they can be escaped by - * adding two backslashes before them. - * - * expect({'.a': {'[b]': 'x'}}).to.have.nested.property('\\.a.\\[b\\]'); - * - * `.deep` and `.nested` can be combined. - * - * expect({a: {b: [{c: 3}]}}) - * .to.have.deep.nested.property('a.b[0]', {c: 3}); - * - * `.own` and `.nested` cannot be combined. - * - * Add `.not` earlier in the chain to negate `.property`. - * - * expect({a: 1}).to.not.have.property('b'); - * - * However, it's dangerous to negate `.property` when providing `val`. The - * problem is that it creates uncertain expectations by asserting that the - * target either doesn't have a property with the given key `name`, or that it - * does have a property with the given key `name` but its value isn't equal to - * the given `val`. It's often best to identify the exact output that's - * expected, and then write an assertion that only accepts that exact output. - * - * When the target isn't expected to have a property with the given key - * `name`, it's often best to assert exactly that. - * - * expect({b: 2}).to.not.have.property('a'); // Recommended - * expect({b: 2}).to.not.have.property('a', 1); // Not recommended - * - * When the target is expected to have a property with the given key `name`, - * it's often best to assert that the property has its expected value, rather - * than asserting that it doesn't have one of many unexpected values. - * - * expect({a: 3}).to.have.property('a', 3); // Recommended - * expect({a: 3}).to.not.have.property('a', 1); // Not recommended - * - * `.property` changes the target of any assertions that follow in the chain - * to be the value of the property from the original target object. - * - * expect({a: 1}).to.have.property('a').that.is.a('number'); - * - * `.property` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. When not providing `val`, only use the - * second form. - * - * // Recommended - * expect({a: 1}).to.have.property('a', 2, 'nooo why fail??'); - * expect({a: 1}, 'nooo why fail??').to.have.property('a', 2); - * expect({a: 1}, 'nooo why fail??').to.have.property('b'); - * - * // Not recommended - * expect({a: 1}).to.have.property('b', undefined, 'nooo why fail??'); - * - * The above assertion isn't the same thing as not providing `val`. Instead, - * it's asserting that the target object has a `b` property that's equal to - * `undefined`. - * - * The assertions `.ownProperty` and `.haveOwnProperty` can be used - * interchangeably with `.own.property`. - * - * @name property - * @param {String} name - * @param {Mixed} val (optional) - * @param {String} msg _optional_ - * @returns value of property for chaining - * @namespace BDD - * @api public - */ - - function assertProperty (name, val, msg) { - if (msg) flag(this, 'message', msg); - - var isNested = flag(this, 'nested') - , isOwn = flag(this, 'own') - , flagMsg = flag(this, 'message') - , obj = flag(this, 'object') - , ssfi = flag(this, 'ssfi') - , nameType = typeof name; - - flagMsg = flagMsg ? flagMsg + ': ' : ''; - - if (isNested) { - if (nameType !== 'string') { - throw new AssertionError( - flagMsg + 'the argument to property must be a string when using nested syntax', - undefined, - ssfi - ); - } - } else { - if (nameType !== 'string' && nameType !== 'number' && nameType !== 'symbol') { - throw new AssertionError( - flagMsg + 'the argument to property must be a string, number, or symbol', - undefined, - ssfi - ); - } - } - - if (isNested && isOwn) { - throw new AssertionError( - flagMsg + 'The "nested" and "own" flags cannot be combined.', - undefined, - ssfi - ); - } - - if (obj === null || obj === undefined) { - throw new AssertionError( - flagMsg + 'Target cannot be null or undefined.', - undefined, - ssfi - ); - } - - var isDeep = flag(this, 'deep') - , negate = flag(this, 'negate') - , pathInfo = isNested ? _.getPathInfo(obj, name) : null - , value = isNested ? pathInfo.value : obj[name]; - - var descriptor = ''; - if (isDeep) descriptor += 'deep '; - if (isOwn) descriptor += 'own '; - if (isNested) descriptor += 'nested '; - descriptor += 'property '; - - var hasProperty; - if (isOwn) hasProperty = Object.prototype.hasOwnProperty.call(obj, name); - else if (isNested) hasProperty = pathInfo.exists; - else hasProperty = _.hasProperty(obj, name); - - // When performing a negated assertion for both name and val, merely having - // a property with the given name isn't enough to cause the assertion to - // fail. It must both have a property with the given name, and the value of - // that property must equal the given val. Therefore, skip this assertion in - // favor of the next. - if (!negate || arguments.length === 1) { - this.assert( - hasProperty - , 'expected #{this} to have ' + descriptor + _.inspect(name) - , 'expected #{this} to not have ' + descriptor + _.inspect(name)); - } - - if (arguments.length > 1) { - this.assert( - hasProperty && (isDeep ? _.eql(val, value) : val === value) - , 'expected #{this} to have ' + descriptor + _.inspect(name) + ' of #{exp}, but got #{act}' - , 'expected #{this} to not have ' + descriptor + _.inspect(name) + ' of #{act}' - , val - , value - ); - } - - flag(this, 'object', value); - } - - Assertion.addMethod('property', assertProperty); - - function assertOwnProperty (name, value, msg) { - flag(this, 'own', true); - assertProperty.apply(this, arguments); - } - - Assertion.addMethod('ownProperty', assertOwnProperty); - Assertion.addMethod('haveOwnProperty', assertOwnProperty); - - /** - * ### .ownPropertyDescriptor(name[, descriptor[, msg]]) - * - * Asserts that the target has its own property descriptor with the given key - * `name`. Enumerable and non-enumerable properties are included in the - * search. - * - * expect({a: 1}).to.have.ownPropertyDescriptor('a'); - * - * When `descriptor` is provided, `.ownPropertyDescriptor` also asserts that - * the property's descriptor is deeply equal to the given `descriptor`. See - * the `deep-eql` project page for info on the deep equality algorithm: - * https://github.com/chaijs/deep-eql. - * - * expect({a: 1}).to.have.ownPropertyDescriptor('a', { - * configurable: true, - * enumerable: true, - * writable: true, - * value: 1, - * }); - * - * Add `.not` earlier in the chain to negate `.ownPropertyDescriptor`. - * - * expect({a: 1}).to.not.have.ownPropertyDescriptor('b'); - * - * However, it's dangerous to negate `.ownPropertyDescriptor` when providing - * a `descriptor`. The problem is that it creates uncertain expectations by - * asserting that the target either doesn't have a property descriptor with - * the given key `name`, or that it does have a property descriptor with the - * given key `name` but it’s not deeply equal to the given `descriptor`. It's - * often best to identify the exact output that's expected, and then write an - * assertion that only accepts that exact output. - * - * When the target isn't expected to have a property descriptor with the given - * key `name`, it's often best to assert exactly that. - * - * // Recommended - * expect({b: 2}).to.not.have.ownPropertyDescriptor('a'); - * - * // Not recommended - * expect({b: 2}).to.not.have.ownPropertyDescriptor('a', { - * configurable: true, - * enumerable: true, - * writable: true, - * value: 1, - * }); - * - * When the target is expected to have a property descriptor with the given - * key `name`, it's often best to assert that the property has its expected - * descriptor, rather than asserting that it doesn't have one of many - * unexpected descriptors. - * - * // Recommended - * expect({a: 3}).to.have.ownPropertyDescriptor('a', { - * configurable: true, - * enumerable: true, - * writable: true, - * value: 3, - * }); - * - * // Not recommended - * expect({a: 3}).to.not.have.ownPropertyDescriptor('a', { - * configurable: true, - * enumerable: true, - * writable: true, - * value: 1, - * }); - * - * `.ownPropertyDescriptor` changes the target of any assertions that follow - * in the chain to be the value of the property descriptor from the original - * target object. - * - * expect({a: 1}).to.have.ownPropertyDescriptor('a') - * .that.has.property('enumerable', true); - * - * `.ownPropertyDescriptor` accepts an optional `msg` argument which is a - * custom error message to show when the assertion fails. The message can also - * be given as the second argument to `expect`. When not providing - * `descriptor`, only use the second form. - * - * // Recommended - * expect({a: 1}).to.have.ownPropertyDescriptor('a', { - * configurable: true, - * enumerable: true, - * writable: true, - * value: 2, - * }, 'nooo why fail??'); - * - * // Recommended - * expect({a: 1}, 'nooo why fail??').to.have.ownPropertyDescriptor('a', { - * configurable: true, - * enumerable: true, - * writable: true, - * value: 2, - * }); - * - * // Recommended - * expect({a: 1}, 'nooo why fail??').to.have.ownPropertyDescriptor('b'); - * - * // Not recommended - * expect({a: 1}) - * .to.have.ownPropertyDescriptor('b', undefined, 'nooo why fail??'); - * - * The above assertion isn't the same thing as not providing `descriptor`. - * Instead, it's asserting that the target object has a `b` property - * descriptor that's deeply equal to `undefined`. - * - * The alias `.haveOwnPropertyDescriptor` can be used interchangeably with - * `.ownPropertyDescriptor`. - * - * @name ownPropertyDescriptor - * @alias haveOwnPropertyDescriptor - * @param {String} name - * @param {Object} descriptor _optional_ - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertOwnPropertyDescriptor (name, descriptor, msg) { - if (typeof descriptor === 'string') { - msg = descriptor; - descriptor = null; - } - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - var actualDescriptor = Object.getOwnPropertyDescriptor(Object(obj), name); - if (actualDescriptor && descriptor) { - this.assert( - _.eql(descriptor, actualDescriptor) - , 'expected the own property descriptor for ' + _.inspect(name) + ' on #{this} to match ' + _.inspect(descriptor) + ', got ' + _.inspect(actualDescriptor) - , 'expected the own property descriptor for ' + _.inspect(name) + ' on #{this} to not match ' + _.inspect(descriptor) - , descriptor - , actualDescriptor - , true - ); - } else { - this.assert( - actualDescriptor - , 'expected #{this} to have an own property descriptor for ' + _.inspect(name) - , 'expected #{this} to not have an own property descriptor for ' + _.inspect(name) - ); - } - flag(this, 'object', actualDescriptor); - } - - Assertion.addMethod('ownPropertyDescriptor', assertOwnPropertyDescriptor); - Assertion.addMethod('haveOwnPropertyDescriptor', assertOwnPropertyDescriptor); - - /** - * ### .lengthOf(n[, msg]) - * - * Asserts that the target's `length` or `size` is equal to the given number - * `n`. - * - * expect([1, 2, 3]).to.have.lengthOf(3); - * expect('foo').to.have.lengthOf(3); - * expect(new Set([1, 2, 3])).to.have.lengthOf(3); - * expect(new Map([['a', 1], ['b', 2], ['c', 3]])).to.have.lengthOf(3); - * - * Add `.not` earlier in the chain to negate `.lengthOf`. However, it's often - * best to assert that the target's `length` property is equal to its expected - * value, rather than not equal to one of many unexpected values. - * - * expect('foo').to.have.lengthOf(3); // Recommended - * expect('foo').to.not.have.lengthOf(4); // Not recommended - * - * `.lengthOf` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect([1, 2, 3]).to.have.lengthOf(2, 'nooo why fail??'); - * expect([1, 2, 3], 'nooo why fail??').to.have.lengthOf(2); - * - * `.lengthOf` can also be used as a language chain, causing all `.above`, - * `.below`, `.least`, `.most`, and `.within` assertions that follow in the - * chain to use the target's `length` property as the target. However, it's - * often best to assert that the target's `length` property is equal to its - * expected length, rather than asserting that its `length` property falls - * within some range of values. - * - * // Recommended - * expect([1, 2, 3]).to.have.lengthOf(3); - * - * // Not recommended - * expect([1, 2, 3]).to.have.lengthOf.above(2); - * expect([1, 2, 3]).to.have.lengthOf.below(4); - * expect([1, 2, 3]).to.have.lengthOf.at.least(3); - * expect([1, 2, 3]).to.have.lengthOf.at.most(3); - * expect([1, 2, 3]).to.have.lengthOf.within(2,4); - * - * Due to a compatibility issue, the alias `.length` can't be chained directly - * off of an uninvoked method such as `.a`. Therefore, `.length` can't be used - * interchangeably with `.lengthOf` in every situation. It's recommended to - * always use `.lengthOf` instead of `.length`. - * - * expect([1, 2, 3]).to.have.a.length(3); // incompatible; throws error - * expect([1, 2, 3]).to.have.a.lengthOf(3); // passes as expected - * - * @name lengthOf - * @alias length - * @param {Number} n - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertLengthChain () { - flag(this, 'doLength', true); - } - - function assertLength (n, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , objType = _.type(obj).toLowerCase() - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi') - , descriptor = 'length' - , itemsCount; - - switch (objType) { - case 'map': - case 'set': - descriptor = 'size'; - itemsCount = obj.size; - break; - default: - new Assertion(obj, flagMsg, ssfi, true).to.have.property('length'); - itemsCount = obj.length; - } - - this.assert( - itemsCount == n - , 'expected #{this} to have a ' + descriptor + ' of #{exp} but got #{act}' - , 'expected #{this} to not have a ' + descriptor + ' of #{act}' - , n - , itemsCount - ); - } - - Assertion.addChainableMethod('length', assertLength, assertLengthChain); - Assertion.addChainableMethod('lengthOf', assertLength, assertLengthChain); - - /** - * ### .match(re[, msg]) - * - * Asserts that the target matches the given regular expression `re`. - * - * expect('foobar').to.match(/^foo/); - * - * Add `.not` earlier in the chain to negate `.match`. - * - * expect('foobar').to.not.match(/taco/); - * - * `.match` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect('foobar').to.match(/taco/, 'nooo why fail??'); - * expect('foobar', 'nooo why fail??').to.match(/taco/); - * - * The alias `.matches` can be used interchangeably with `.match`. - * - * @name match - * @alias matches - * @param {RegExp} re - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - function assertMatch(re, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - this.assert( - re.exec(obj) - , 'expected #{this} to match ' + re - , 'expected #{this} not to match ' + re - ); - } - - Assertion.addMethod('match', assertMatch); - Assertion.addMethod('matches', assertMatch); - - /** - * ### .string(str[, msg]) - * - * Asserts that the target string contains the given substring `str`. - * - * expect('foobar').to.have.string('bar'); - * - * Add `.not` earlier in the chain to negate `.string`. - * - * expect('foobar').to.not.have.string('taco'); - * - * `.string` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect('foobar').to.have.string('taco', 'nooo why fail??'); - * expect('foobar', 'nooo why fail??').to.have.string('taco'); - * - * @name string - * @param {String} str - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - Assertion.addMethod('string', function (str, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi'); - new Assertion(obj, flagMsg, ssfi, true).is.a('string'); - - this.assert( - ~obj.indexOf(str) - , 'expected #{this} to contain ' + _.inspect(str) - , 'expected #{this} to not contain ' + _.inspect(str) - ); - }); - - /** - * ### .keys(key1[, key2[, ...]]) - * - * Asserts that the target object, array, map, or set has the given keys. Only - * the target's own inherited properties are included in the search. - * - * When the target is an object or array, keys can be provided as one or more - * string arguments, a single array argument, or a single object argument. In - * the latter case, only the keys in the given object matter; the values are - * ignored. - * - * expect({a: 1, b: 2}).to.have.all.keys('a', 'b'); - * expect(['x', 'y']).to.have.all.keys(0, 1); - * - * expect({a: 1, b: 2}).to.have.all.keys(['a', 'b']); - * expect(['x', 'y']).to.have.all.keys([0, 1]); - * - * expect({a: 1, b: 2}).to.have.all.keys({a: 4, b: 5}); // ignore 4 and 5 - * expect(['x', 'y']).to.have.all.keys({0: 4, 1: 5}); // ignore 4 and 5 - * - * When the target is a map or set, each key must be provided as a separate - * argument. - * - * expect(new Map([['a', 1], ['b', 2]])).to.have.all.keys('a', 'b'); - * expect(new Set(['a', 'b'])).to.have.all.keys('a', 'b'); - * - * Because `.keys` does different things based on the target's type, it's - * important to check the target's type before using `.keys`. See the `.a` doc - * for info on testing a target's type. - * - * expect({a: 1, b: 2}).to.be.an('object').that.has.all.keys('a', 'b'); - * - * By default, strict (`===`) equality is used to compare keys of maps and - * sets. Add `.deep` earlier in the chain to use deep equality instead. See - * the `deep-eql` project page for info on the deep equality algorithm: - * https://github.com/chaijs/deep-eql. - * - * // Target set deeply (but not strictly) has key `{a: 1}` - * expect(new Set([{a: 1}])).to.have.all.deep.keys([{a: 1}]); - * expect(new Set([{a: 1}])).to.not.have.all.keys([{a: 1}]); - * - * By default, the target must have all of the given keys and no more. Add - * `.any` earlier in the chain to only require that the target have at least - * one of the given keys. Also, add `.not` earlier in the chain to negate - * `.keys`. It's often best to add `.any` when negating `.keys`, and to use - * `.all` when asserting `.keys` without negation. - * - * When negating `.keys`, `.any` is preferred because `.not.any.keys` asserts - * exactly what's expected of the output, whereas `.not.all.keys` creates - * uncertain expectations. - * - * // Recommended; asserts that target doesn't have any of the given keys - * expect({a: 1, b: 2}).to.not.have.any.keys('c', 'd'); - * - * // Not recommended; asserts that target doesn't have all of the given - * // keys but may or may not have some of them - * expect({a: 1, b: 2}).to.not.have.all.keys('c', 'd'); - * - * When asserting `.keys` without negation, `.all` is preferred because - * `.all.keys` asserts exactly what's expected of the output, whereas - * `.any.keys` creates uncertain expectations. - * - * // Recommended; asserts that target has all the given keys - * expect({a: 1, b: 2}).to.have.all.keys('a', 'b'); - * - * // Not recommended; asserts that target has at least one of the given - * // keys but may or may not have more of them - * expect({a: 1, b: 2}).to.have.any.keys('a', 'b'); - * - * Note that `.all` is used by default when neither `.all` nor `.any` appear - * earlier in the chain. However, it's often best to add `.all` anyway because - * it improves readability. - * - * // Both assertions are identical - * expect({a: 1, b: 2}).to.have.all.keys('a', 'b'); // Recommended - * expect({a: 1, b: 2}).to.have.keys('a', 'b'); // Not recommended - * - * Add `.include` earlier in the chain to require that the target's keys be a - * superset of the expected keys, rather than identical sets. - * - * // Target object's keys are a superset of ['a', 'b'] but not identical - * expect({a: 1, b: 2, c: 3}).to.include.all.keys('a', 'b'); - * expect({a: 1, b: 2, c: 3}).to.not.have.all.keys('a', 'b'); - * - * However, if `.any` and `.include` are combined, only the `.any` takes - * effect. The `.include` is ignored in this case. - * - * // Both assertions are identical - * expect({a: 1}).to.have.any.keys('a', 'b'); - * expect({a: 1}).to.include.any.keys('a', 'b'); - * - * A custom error message can be given as the second argument to `expect`. - * - * expect({a: 1}, 'nooo why fail??').to.have.key('b'); - * - * The alias `.key` can be used interchangeably with `.keys`. - * - * @name keys - * @alias key - * @param {...String|Array|Object} keys - * @namespace BDD - * @api public - */ - - function assertKeys (keys) { - var obj = flag(this, 'object') - , objType = _.type(obj) - , keysType = _.type(keys) - , ssfi = flag(this, 'ssfi') - , isDeep = flag(this, 'deep') - , str - , deepStr = '' - , actual - , ok = true - , flagMsg = flag(this, 'message'); - - flagMsg = flagMsg ? flagMsg + ': ' : ''; - var mixedArgsMsg = flagMsg + 'when testing keys against an object or an array you must give a single Array|Object|String argument or multiple String arguments'; - - if (objType === 'Map' || objType === 'Set') { - deepStr = isDeep ? 'deeply ' : ''; - actual = []; - - // Map and Set '.keys' aren't supported in IE 11. Therefore, use .forEach. - obj.forEach(function (val, key) { actual.push(key) }); - - if (keysType !== 'Array') { - keys = Array.prototype.slice.call(arguments); - } - } else { - actual = _.getOwnEnumerableProperties(obj); - - switch (keysType) { - case 'Array': - if (arguments.length > 1) { - throw new AssertionError(mixedArgsMsg, undefined, ssfi); - } - break; - case 'Object': - if (arguments.length > 1) { - throw new AssertionError(mixedArgsMsg, undefined, ssfi); - } - keys = Object.keys(keys); - break; - default: - keys = Array.prototype.slice.call(arguments); - } - - // Only stringify non-Symbols because Symbols would become "Symbol()" - keys = keys.map(function (val) { - return typeof val === 'symbol' ? val : String(val); - }); - } - - if (!keys.length) { - throw new AssertionError(flagMsg + 'keys required', undefined, ssfi); - } - - var len = keys.length - , any = flag(this, 'any') - , all = flag(this, 'all') - , expected = keys; - - if (!any && !all) { - all = true; - } - - // Has any - if (any) { - ok = expected.some(function(expectedKey) { - return actual.some(function(actualKey) { - if (isDeep) { - return _.eql(expectedKey, actualKey); - } else { - return expectedKey === actualKey; - } - }); - }); - } - - // Has all - if (all) { - ok = expected.every(function(expectedKey) { - return actual.some(function(actualKey) { - if (isDeep) { - return _.eql(expectedKey, actualKey); - } else { - return expectedKey === actualKey; - } - }); - }); - - if (!flag(this, 'contains')) { - ok = ok && keys.length == actual.length; - } - } - - // Key string - if (len > 1) { - keys = keys.map(function(key) { - return _.inspect(key); - }); - var last = keys.pop(); - if (all) { - str = keys.join(', ') + ', and ' + last; - } - if (any) { - str = keys.join(', ') + ', or ' + last; - } - } else { - str = _.inspect(keys[0]); - } - - // Form - str = (len > 1 ? 'keys ' : 'key ') + str; - - // Have / include - str = (flag(this, 'contains') ? 'contain ' : 'have ') + str; - - // Assertion - this.assert( - ok - , 'expected #{this} to ' + deepStr + str - , 'expected #{this} to not ' + deepStr + str - , expected.slice(0).sort(_.compareByInspect) - , actual.sort(_.compareByInspect) - , true - ); - } - - Assertion.addMethod('keys', assertKeys); - Assertion.addMethod('key', assertKeys); - - /** - * ### .throw([errorLike], [errMsgMatcher], [msg]) - * - * When no arguments are provided, `.throw` invokes the target function and - * asserts that an error is thrown. - * - * var badFn = function () { throw new TypeError('Illegal salmon!'); }; - * - * expect(badFn).to.throw(); - * - * When one argument is provided, and it's an error constructor, `.throw` - * invokes the target function and asserts that an error is thrown that's an - * instance of that error constructor. - * - * var badFn = function () { throw new TypeError('Illegal salmon!'); }; - * - * expect(badFn).to.throw(TypeError); - * - * When one argument is provided, and it's an error instance, `.throw` invokes - * the target function and asserts that an error is thrown that's strictly - * (`===`) equal to that error instance. - * - * var err = new TypeError('Illegal salmon!'); - * var badFn = function () { throw err; }; - * - * expect(badFn).to.throw(err); - * - * When one argument is provided, and it's a string, `.throw` invokes the - * target function and asserts that an error is thrown with a message that - * contains that string. - * - * var badFn = function () { throw new TypeError('Illegal salmon!'); }; - * - * expect(badFn).to.throw('salmon'); - * - * When one argument is provided, and it's a regular expression, `.throw` - * invokes the target function and asserts that an error is thrown with a - * message that matches that regular expression. - * - * var badFn = function () { throw new TypeError('Illegal salmon!'); }; - * - * expect(badFn).to.throw(/salmon/); - * - * When two arguments are provided, and the first is an error instance or - * constructor, and the second is a string or regular expression, `.throw` - * invokes the function and asserts that an error is thrown that fulfills both - * conditions as described above. - * - * var err = new TypeError('Illegal salmon!'); - * var badFn = function () { throw err; }; - * - * expect(badFn).to.throw(TypeError, 'salmon'); - * expect(badFn).to.throw(TypeError, /salmon/); - * expect(badFn).to.throw(err, 'salmon'); - * expect(badFn).to.throw(err, /salmon/); - * - * Add `.not` earlier in the chain to negate `.throw`. - * - * var goodFn = function () {}; - * - * expect(goodFn).to.not.throw(); - * - * However, it's dangerous to negate `.throw` when providing any arguments. - * The problem is that it creates uncertain expectations by asserting that the - * target either doesn't throw an error, or that it throws an error but of a - * different type than the given type, or that it throws an error of the given - * type but with a message that doesn't include the given string. It's often - * best to identify the exact output that's expected, and then write an - * assertion that only accepts that exact output. - * - * When the target isn't expected to throw an error, it's often best to assert - * exactly that. - * - * var goodFn = function () {}; - * - * expect(goodFn).to.not.throw(); // Recommended - * expect(goodFn).to.not.throw(ReferenceError, 'x'); // Not recommended - * - * When the target is expected to throw an error, it's often best to assert - * that the error is of its expected type, and has a message that includes an - * expected string, rather than asserting that it doesn't have one of many - * unexpected types, and doesn't have a message that includes some string. - * - * var badFn = function () { throw new TypeError('Illegal salmon!'); }; - * - * expect(badFn).to.throw(TypeError, 'salmon'); // Recommended - * expect(badFn).to.not.throw(ReferenceError, 'x'); // Not recommended - * - * `.throw` changes the target of any assertions that follow in the chain to - * be the error object that's thrown. - * - * var err = new TypeError('Illegal salmon!'); - * err.code = 42; - * var badFn = function () { throw err; }; - * - * expect(badFn).to.throw(TypeError).with.property('code', 42); - * - * `.throw` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. When not providing two arguments, always use - * the second form. - * - * var goodFn = function () {}; - * - * expect(goodFn).to.throw(TypeError, 'x', 'nooo why fail??'); - * expect(goodFn, 'nooo why fail??').to.throw(); - * - * Due to limitations in ES5, `.throw` may not always work as expected when - * using a transpiler such as Babel or TypeScript. In particular, it may - * produce unexpected results when subclassing the built-in `Error` object and - * then passing the subclassed constructor to `.throw`. See your transpiler's - * docs for details: - * - * - ([Babel](https://babeljs.io/docs/usage/caveats/#classes)) - * - ([TypeScript](https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work)) - * - * Beware of some common mistakes when using the `throw` assertion. One common - * mistake is to accidentally invoke the function yourself instead of letting - * the `throw` assertion invoke the function for you. For example, when - * testing if a function named `fn` throws, provide `fn` instead of `fn()` as - * the target for the assertion. - * - * expect(fn).to.throw(); // Good! Tests `fn` as desired - * expect(fn()).to.throw(); // Bad! Tests result of `fn()`, not `fn` - * - * If you need to assert that your function `fn` throws when passed certain - * arguments, then wrap a call to `fn` inside of another function. - * - * expect(function () { fn(42); }).to.throw(); // Function expression - * expect(() => fn(42)).to.throw(); // ES6 arrow function - * - * Another common mistake is to provide an object method (or any stand-alone - * function that relies on `this`) as the target of the assertion. Doing so is - * problematic because the `this` context will be lost when the function is - * invoked by `.throw`; there's no way for it to know what `this` is supposed - * to be. There are two ways around this problem. One solution is to wrap the - * method or function call inside of another function. Another solution is to - * use `bind`. - * - * expect(function () { cat.meow(); }).to.throw(); // Function expression - * expect(() => cat.meow()).to.throw(); // ES6 arrow function - * expect(cat.meow.bind(cat)).to.throw(); // Bind - * - * Finally, it's worth mentioning that it's a best practice in JavaScript to - * only throw `Error` and derivatives of `Error` such as `ReferenceError`, - * `TypeError`, and user-defined objects that extend `Error`. No other type of - * value will generate a stack trace when initialized. With that said, the - * `throw` assertion does technically support any type of value being thrown, - * not just `Error` and its derivatives. - * - * The aliases `.throws` and `.Throw` can be used interchangeably with - * `.throw`. - * - * @name throw - * @alias throws - * @alias Throw - * @param {Error|ErrorConstructor} errorLike - * @param {String|RegExp} errMsgMatcher error message - * @param {String} msg _optional_ - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @returns error for chaining (null if no error) - * @namespace BDD - * @api public - */ - - function assertThrows (errorLike, errMsgMatcher, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , ssfi = flag(this, 'ssfi') - , flagMsg = flag(this, 'message') - , negate = flag(this, 'negate') || false; - new Assertion(obj, flagMsg, ssfi, true).is.a('function'); - - if (errorLike instanceof RegExp || typeof errorLike === 'string') { - errMsgMatcher = errorLike; - errorLike = null; - } - - var caughtErr; - try { - obj(); - } catch (err) { - caughtErr = err; - } - - // If we have the negate flag enabled and at least one valid argument it means we do expect an error - // but we want it to match a given set of criteria - var everyArgIsUndefined = errorLike === undefined && errMsgMatcher === undefined; - - // If we've got the negate flag enabled and both args, we should only fail if both aren't compatible - // See Issue #551 and PR #683@GitHub - var everyArgIsDefined = Boolean(errorLike && errMsgMatcher); - var errorLikeFail = false; - var errMsgMatcherFail = false; - - // Checking if error was thrown - if (everyArgIsUndefined || !everyArgIsUndefined && !negate) { - // We need this to display results correctly according to their types - var errorLikeString = 'an error'; - if (errorLike instanceof Error) { - errorLikeString = '#{exp}'; - } else if (errorLike) { - errorLikeString = _.checkError.getConstructorName(errorLike); - } - - this.assert( - caughtErr - , 'expected #{this} to throw ' + errorLikeString - , 'expected #{this} to not throw an error but #{act} was thrown' - , errorLike && errorLike.toString() - , (caughtErr instanceof Error ? - caughtErr.toString() : (typeof caughtErr === 'string' ? caughtErr : caughtErr && - _.checkError.getConstructorName(caughtErr))) - ); - } - - if (errorLike && caughtErr) { - // We should compare instances only if `errorLike` is an instance of `Error` - if (errorLike instanceof Error) { - var isCompatibleInstance = _.checkError.compatibleInstance(caughtErr, errorLike); - - if (isCompatibleInstance === negate) { - // These checks were created to ensure we won't fail too soon when we've got both args and a negate - // See Issue #551 and PR #683@GitHub - if (everyArgIsDefined && negate) { - errorLikeFail = true; - } else { - this.assert( - negate - , 'expected #{this} to throw #{exp} but #{act} was thrown' - , 'expected #{this} to not throw #{exp}' + (caughtErr && !negate ? ' but #{act} was thrown' : '') - , errorLike.toString() - , caughtErr.toString() - ); - } - } - } - - var isCompatibleConstructor = _.checkError.compatibleConstructor(caughtErr, errorLike); - if (isCompatibleConstructor === negate) { - if (everyArgIsDefined && negate) { - errorLikeFail = true; - } else { - this.assert( - negate - , 'expected #{this} to throw #{exp} but #{act} was thrown' - , 'expected #{this} to not throw #{exp}' + (caughtErr ? ' but #{act} was thrown' : '') - , (errorLike instanceof Error ? errorLike.toString() : errorLike && _.checkError.getConstructorName(errorLike)) - , (caughtErr instanceof Error ? caughtErr.toString() : caughtErr && _.checkError.getConstructorName(caughtErr)) - ); - } - } - } - - if (caughtErr && errMsgMatcher !== undefined && errMsgMatcher !== null) { - // Here we check compatible messages - var placeholder = 'including'; - if (errMsgMatcher instanceof RegExp) { - placeholder = 'matching' - } - - var isCompatibleMessage = _.checkError.compatibleMessage(caughtErr, errMsgMatcher); - if (isCompatibleMessage === negate) { - if (everyArgIsDefined && negate) { - errMsgMatcherFail = true; - } else { - this.assert( - negate - , 'expected #{this} to throw error ' + placeholder + ' #{exp} but got #{act}' - , 'expected #{this} to throw error not ' + placeholder + ' #{exp}' - , errMsgMatcher - , _.checkError.getMessage(caughtErr) - ); - } - } - } - - // If both assertions failed and both should've matched we throw an error - if (errorLikeFail && errMsgMatcherFail) { - this.assert( - negate - , 'expected #{this} to throw #{exp} but #{act} was thrown' - , 'expected #{this} to not throw #{exp}' + (caughtErr ? ' but #{act} was thrown' : '') - , (errorLike instanceof Error ? errorLike.toString() : errorLike && _.checkError.getConstructorName(errorLike)) - , (caughtErr instanceof Error ? caughtErr.toString() : caughtErr && _.checkError.getConstructorName(caughtErr)) - ); - } - - flag(this, 'object', caughtErr); - }; - - Assertion.addMethod('throw', assertThrows); - Assertion.addMethod('throws', assertThrows); - Assertion.addMethod('Throw', assertThrows); - - /** - * ### .respondTo(method[, msg]) - * - * When the target is a non-function object, `.respondTo` asserts that the - * target has a method with the given name `method`. The method can be own or - * inherited, and it can be enumerable or non-enumerable. - * - * function Cat () {} - * Cat.prototype.meow = function () {}; - * - * expect(new Cat()).to.respondTo('meow'); - * - * When the target is a function, `.respondTo` asserts that the target's - * `prototype` property has a method with the given name `method`. Again, the - * method can be own or inherited, and it can be enumerable or non-enumerable. - * - * function Cat () {} - * Cat.prototype.meow = function () {}; - * - * expect(Cat).to.respondTo('meow'); - * - * Add `.itself` earlier in the chain to force `.respondTo` to treat the - * target as a non-function object, even if it's a function. Thus, it asserts - * that the target has a method with the given name `method`, rather than - * asserting that the target's `prototype` property has a method with the - * given name `method`. - * - * function Cat () {} - * Cat.prototype.meow = function () {}; - * Cat.hiss = function () {}; - * - * expect(Cat).itself.to.respondTo('hiss').but.not.respondTo('meow'); - * - * When not adding `.itself`, it's important to check the target's type before - * using `.respondTo`. See the `.a` doc for info on checking a target's type. - * - * function Cat () {} - * Cat.prototype.meow = function () {}; - * - * expect(new Cat()).to.be.an('object').that.respondsTo('meow'); - * - * Add `.not` earlier in the chain to negate `.respondTo`. - * - * function Dog () {} - * Dog.prototype.bark = function () {}; - * - * expect(new Dog()).to.not.respondTo('meow'); - * - * `.respondTo` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect({}).to.respondTo('meow', 'nooo why fail??'); - * expect({}, 'nooo why fail??').to.respondTo('meow'); - * - * The alias `.respondsTo` can be used interchangeably with `.respondTo`. - * - * @name respondTo - * @alias respondsTo - * @param {String} method - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function respondTo (method, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , itself = flag(this, 'itself') - , context = ('function' === typeof obj && !itself) - ? obj.prototype[method] - : obj[method]; - - this.assert( - 'function' === typeof context - , 'expected #{this} to respond to ' + _.inspect(method) - , 'expected #{this} to not respond to ' + _.inspect(method) - ); - } - - Assertion.addMethod('respondTo', respondTo); - Assertion.addMethod('respondsTo', respondTo); - - /** - * ### .itself - * - * Forces all `.respondTo` assertions that follow in the chain to behave as if - * the target is a non-function object, even if it's a function. Thus, it - * causes `.respondTo` to assert that the target has a method with the given - * name, rather than asserting that the target's `prototype` property has a - * method with the given name. - * - * function Cat () {} - * Cat.prototype.meow = function () {}; - * Cat.hiss = function () {}; - * - * expect(Cat).itself.to.respondTo('hiss').but.not.respondTo('meow'); - * - * @name itself - * @namespace BDD - * @api public - */ - - Assertion.addProperty('itself', function () { - flag(this, 'itself', true); - }); - - /** - * ### .satisfy(matcher[, msg]) - * - * Invokes the given `matcher` function with the target being passed as the - * first argument, and asserts that the value returned is truthy. - * - * expect(1).to.satisfy(function(num) { - * return num > 0; - * }); - * - * Add `.not` earlier in the chain to negate `.satisfy`. - * - * expect(1).to.not.satisfy(function(num) { - * return num > 2; - * }); - * - * `.satisfy` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect(1).to.satisfy(function(num) { - * return num > 2; - * }, 'nooo why fail??'); - * - * expect(1, 'nooo why fail??').to.satisfy(function(num) { - * return num > 2; - * }); - * - * The alias `.satisfies` can be used interchangeably with `.satisfy`. - * - * @name satisfy - * @alias satisfies - * @param {Function} matcher - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function satisfy (matcher, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object'); - var result = matcher(obj); - this.assert( - result - , 'expected #{this} to satisfy ' + _.objDisplay(matcher) - , 'expected #{this} to not satisfy' + _.objDisplay(matcher) - , flag(this, 'negate') ? false : true - , result - ); - } - - Assertion.addMethod('satisfy', satisfy); - Assertion.addMethod('satisfies', satisfy); - - /** - * ### .closeTo(expected, delta[, msg]) - * - * Asserts that the target is a number that's within a given +/- `delta` range - * of the given number `expected`. However, it's often best to assert that the - * target is equal to its expected value. - * - * // Recommended - * expect(1.5).to.equal(1.5); - * - * // Not recommended - * expect(1.5).to.be.closeTo(1, 0.5); - * expect(1.5).to.be.closeTo(2, 0.5); - * expect(1.5).to.be.closeTo(1, 1); - * - * Add `.not` earlier in the chain to negate `.closeTo`. - * - * expect(1.5).to.equal(1.5); // Recommended - * expect(1.5).to.not.be.closeTo(3, 1); // Not recommended - * - * `.closeTo` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect(1.5).to.be.closeTo(3, 1, 'nooo why fail??'); - * expect(1.5, 'nooo why fail??').to.be.closeTo(3, 1); - * - * The alias `.approximately` can be used interchangeably with `.closeTo`. - * - * @name closeTo - * @alias approximately - * @param {Number} expected - * @param {Number} delta - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function closeTo(expected, delta, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi'); - - new Assertion(obj, flagMsg, ssfi, true).is.a('number'); - if (typeof expected !== 'number' || typeof delta !== 'number') { - flagMsg = flagMsg ? flagMsg + ': ' : ''; - var deltaMessage = delta === undefined ? ", and a delta is required" : ""; - throw new AssertionError( - flagMsg + 'the arguments to closeTo or approximately must be numbers' + deltaMessage, - undefined, - ssfi - ); - } - - this.assert( - Math.abs(obj - expected) <= delta - , 'expected #{this} to be close to ' + expected + ' +/- ' + delta - , 'expected #{this} not to be close to ' + expected + ' +/- ' + delta - ); - } - - Assertion.addMethod('closeTo', closeTo); - Assertion.addMethod('approximately', closeTo); - - // Note: Duplicates are ignored if testing for inclusion instead of sameness. - function isSubsetOf(subset, superset, cmp, contains, ordered) { - if (!contains) { - if (subset.length !== superset.length) return false; - superset = superset.slice(); - } - - return subset.every(function(elem, idx) { - if (ordered) return cmp ? cmp(elem, superset[idx]) : elem === superset[idx]; - - if (!cmp) { - var matchIdx = superset.indexOf(elem); - if (matchIdx === -1) return false; - - // Remove match from superset so not counted twice if duplicate in subset. - if (!contains) superset.splice(matchIdx, 1); - return true; - } - - return superset.some(function(elem2, matchIdx) { - if (!cmp(elem, elem2)) return false; - - // Remove match from superset so not counted twice if duplicate in subset. - if (!contains) superset.splice(matchIdx, 1); - return true; - }); - }); - } - - /** - * ### .members(set[, msg]) - * - * Asserts that the target array has the same members as the given array - * `set`. - * - * expect([1, 2, 3]).to.have.members([2, 1, 3]); - * expect([1, 2, 2]).to.have.members([2, 1, 2]); - * - * By default, members are compared using strict (`===`) equality. Add `.deep` - * earlier in the chain to use deep equality instead. See the `deep-eql` - * project page for info on the deep equality algorithm: - * https://github.com/chaijs/deep-eql. - * - * // Target array deeply (but not strictly) has member `{a: 1}` - * expect([{a: 1}]).to.have.deep.members([{a: 1}]); - * expect([{a: 1}]).to.not.have.members([{a: 1}]); - * - * By default, order doesn't matter. Add `.ordered` earlier in the chain to - * require that members appear in the same order. - * - * expect([1, 2, 3]).to.have.ordered.members([1, 2, 3]); - * expect([1, 2, 3]).to.have.members([2, 1, 3]) - * .but.not.ordered.members([2, 1, 3]); - * - * By default, both arrays must be the same size. Add `.include` earlier in - * the chain to require that the target's members be a superset of the - * expected members. Note that duplicates are ignored in the subset when - * `.include` is added. - * - * // Target array is a superset of [1, 2] but not identical - * expect([1, 2, 3]).to.include.members([1, 2]); - * expect([1, 2, 3]).to.not.have.members([1, 2]); - * - * // Duplicates in the subset are ignored - * expect([1, 2, 3]).to.include.members([1, 2, 2, 2]); - * - * `.deep`, `.ordered`, and `.include` can all be combined. However, if - * `.include` and `.ordered` are combined, the ordering begins at the start of - * both arrays. - * - * expect([{a: 1}, {b: 2}, {c: 3}]) - * .to.include.deep.ordered.members([{a: 1}, {b: 2}]) - * .but.not.include.deep.ordered.members([{b: 2}, {c: 3}]); - * - * Add `.not` earlier in the chain to negate `.members`. However, it's - * dangerous to do so. The problem is that it creates uncertain expectations - * by asserting that the target array doesn't have all of the same members as - * the given array `set` but may or may not have some of them. It's often best - * to identify the exact output that's expected, and then write an assertion - * that only accepts that exact output. - * - * expect([1, 2]).to.not.include(3).and.not.include(4); // Recommended - * expect([1, 2]).to.not.have.members([3, 4]); // Not recommended - * - * `.members` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. - * - * expect([1, 2]).to.have.members([1, 2, 3], 'nooo why fail??'); - * expect([1, 2], 'nooo why fail??').to.have.members([1, 2, 3]); - * - * @name members - * @param {Array} set - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - Assertion.addMethod('members', function (subset, msg) { - if (msg) flag(this, 'message', msg); - var obj = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi'); - - new Assertion(obj, flagMsg, ssfi, true).to.be.an('array'); - new Assertion(subset, flagMsg, ssfi, true).to.be.an('array'); - - var contains = flag(this, 'contains'); - var ordered = flag(this, 'ordered'); - - var subject, failMsg, failNegateMsg; - - if (contains) { - subject = ordered ? 'an ordered superset' : 'a superset'; - failMsg = 'expected #{this} to be ' + subject + ' of #{exp}'; - failNegateMsg = 'expected #{this} to not be ' + subject + ' of #{exp}'; - } else { - subject = ordered ? 'ordered members' : 'members'; - failMsg = 'expected #{this} to have the same ' + subject + ' as #{exp}'; - failNegateMsg = 'expected #{this} to not have the same ' + subject + ' as #{exp}'; - } - - var cmp = flag(this, 'deep') ? _.eql : undefined; - - this.assert( - isSubsetOf(subset, obj, cmp, contains, ordered) - , failMsg - , failNegateMsg - , subset - , obj - , true - ); - }); - - /** - * ### .oneOf(list[, msg]) - * - * Asserts that the target is a member of the given array `list`. However, - * it's often best to assert that the target is equal to its expected value. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.be.oneOf([1, 2, 3]); // Not recommended - * - * Comparisons are performed using strict (`===`) equality. - * - * Add `.not` earlier in the chain to negate `.oneOf`. - * - * expect(1).to.equal(1); // Recommended - * expect(1).to.not.be.oneOf([2, 3, 4]); // Not recommended - * - * It can also be chained with `.contain` or `.include`, which will work with - * both arrays and strings: - * - * expect('Today is sunny').to.contain.oneOf(['sunny', 'cloudy']) - * expect('Today is rainy').to.not.contain.oneOf(['sunny', 'cloudy']) - * expect([1,2,3]).to.contain.oneOf([3,4,5]) - * expect([1,2,3]).to.not.contain.oneOf([4,5,6]) - * - * `.oneOf` accepts an optional `msg` argument which is a custom error message - * to show when the assertion fails. The message can also be given as the - * second argument to `expect`. - * - * expect(1).to.be.oneOf([2, 3, 4], 'nooo why fail??'); - * expect(1, 'nooo why fail??').to.be.oneOf([2, 3, 4]); - * - * @name oneOf - * @param {Array<*>} list - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function oneOf (list, msg) { - if (msg) flag(this, 'message', msg); - var expected = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi') - , contains = flag(this, 'contains') - , isDeep = flag(this, 'deep'); - new Assertion(list, flagMsg, ssfi, true).to.be.an('array'); - - if (contains) { - this.assert( - list.some(function(possibility) { return expected.indexOf(possibility) > -1 }) - , 'expected #{this} to contain one of #{exp}' - , 'expected #{this} to not contain one of #{exp}' - , list - , expected - ); - } else { - if (isDeep) { - this.assert( - list.some(function(possibility) { return _.eql(expected, possibility) }) - , 'expected #{this} to deeply equal one of #{exp}' - , 'expected #{this} to deeply equal one of #{exp}' - , list - , expected - ); - } else { - this.assert( - list.indexOf(expected) > -1 - , 'expected #{this} to be one of #{exp}' - , 'expected #{this} to not be one of #{exp}' - , list - , expected - ); - } - } - } - - Assertion.addMethod('oneOf', oneOf); - - /** - * ### .change(subject[, prop[, msg]]) - * - * When one argument is provided, `.change` asserts that the given function - * `subject` returns a different value when it's invoked before the target - * function compared to when it's invoked afterward. However, it's often best - * to assert that `subject` is equal to its expected value. - * - * var dots = '' - * , addDot = function () { dots += '.'; } - * , getDots = function () { return dots; }; - * - * // Recommended - * expect(getDots()).to.equal(''); - * addDot(); - * expect(getDots()).to.equal('.'); - * - * // Not recommended - * expect(addDot).to.change(getDots); - * - * When two arguments are provided, `.change` asserts that the value of the - * given object `subject`'s `prop` property is different before invoking the - * target function compared to afterward. - * - * var myObj = {dots: ''} - * , addDot = function () { myObj.dots += '.'; }; - * - * // Recommended - * expect(myObj).to.have.property('dots', ''); - * addDot(); - * expect(myObj).to.have.property('dots', '.'); - * - * // Not recommended - * expect(addDot).to.change(myObj, 'dots'); - * - * Strict (`===`) equality is used to compare before and after values. - * - * Add `.not` earlier in the chain to negate `.change`. - * - * var dots = '' - * , noop = function () {} - * , getDots = function () { return dots; }; - * - * expect(noop).to.not.change(getDots); - * - * var myObj = {dots: ''} - * , noop = function () {}; - * - * expect(noop).to.not.change(myObj, 'dots'); - * - * `.change` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. When not providing two arguments, always - * use the second form. - * - * var myObj = {dots: ''} - * , addDot = function () { myObj.dots += '.'; }; - * - * expect(addDot).to.not.change(myObj, 'dots', 'nooo why fail??'); - * - * var dots = '' - * , addDot = function () { dots += '.'; } - * , getDots = function () { return dots; }; - * - * expect(addDot, 'nooo why fail??').to.not.change(getDots); - * - * `.change` also causes all `.by` assertions that follow in the chain to - * assert how much a numeric subject was increased or decreased by. However, - * it's dangerous to use `.change.by`. The problem is that it creates - * uncertain expectations by asserting that the subject either increases by - * the given delta, or that it decreases by the given delta. It's often best - * to identify the exact output that's expected, and then write an assertion - * that only accepts that exact output. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; } - * , subtractTwo = function () { myObj.val -= 2; }; - * - * expect(addTwo).to.increase(myObj, 'val').by(2); // Recommended - * expect(addTwo).to.change(myObj, 'val').by(2); // Not recommended - * - * expect(subtractTwo).to.decrease(myObj, 'val').by(2); // Recommended - * expect(subtractTwo).to.change(myObj, 'val').by(2); // Not recommended - * - * The alias `.changes` can be used interchangeably with `.change`. - * - * @name change - * @alias changes - * @param {String} subject - * @param {String} prop name _optional_ - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertChanges (subject, prop, msg) { - if (msg) flag(this, 'message', msg); - var fn = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi'); - new Assertion(fn, flagMsg, ssfi, true).is.a('function'); - - var initial; - if (!prop) { - new Assertion(subject, flagMsg, ssfi, true).is.a('function'); - initial = subject(); - } else { - new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); - initial = subject[prop]; - } - - fn(); - - var final = prop === undefined || prop === null ? subject() : subject[prop]; - var msgObj = prop === undefined || prop === null ? initial : '.' + prop; - - // This gets flagged because of the .by(delta) assertion - flag(this, 'deltaMsgObj', msgObj); - flag(this, 'initialDeltaValue', initial); - flag(this, 'finalDeltaValue', final); - flag(this, 'deltaBehavior', 'change'); - flag(this, 'realDelta', final !== initial); - - this.assert( - initial !== final - , 'expected ' + msgObj + ' to change' - , 'expected ' + msgObj + ' to not change' - ); - } - - Assertion.addMethod('change', assertChanges); - Assertion.addMethod('changes', assertChanges); - - /** - * ### .increase(subject[, prop[, msg]]) - * - * When one argument is provided, `.increase` asserts that the given function - * `subject` returns a greater number when it's invoked after invoking the - * target function compared to when it's invoked beforehand. `.increase` also - * causes all `.by` assertions that follow in the chain to assert how much - * greater of a number is returned. It's often best to assert that the return - * value increased by the expected amount, rather than asserting it increased - * by any amount. - * - * var val = 1 - * , addTwo = function () { val += 2; } - * , getVal = function () { return val; }; - * - * expect(addTwo).to.increase(getVal).by(2); // Recommended - * expect(addTwo).to.increase(getVal); // Not recommended - * - * When two arguments are provided, `.increase` asserts that the value of the - * given object `subject`'s `prop` property is greater after invoking the - * target function compared to beforehand. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; }; - * - * expect(addTwo).to.increase(myObj, 'val').by(2); // Recommended - * expect(addTwo).to.increase(myObj, 'val'); // Not recommended - * - * Add `.not` earlier in the chain to negate `.increase`. However, it's - * dangerous to do so. The problem is that it creates uncertain expectations - * by asserting that the subject either decreases, or that it stays the same. - * It's often best to identify the exact output that's expected, and then - * write an assertion that only accepts that exact output. - * - * When the subject is expected to decrease, it's often best to assert that it - * decreased by the expected amount. - * - * var myObj = {val: 1} - * , subtractTwo = function () { myObj.val -= 2; }; - * - * expect(subtractTwo).to.decrease(myObj, 'val').by(2); // Recommended - * expect(subtractTwo).to.not.increase(myObj, 'val'); // Not recommended - * - * When the subject is expected to stay the same, it's often best to assert - * exactly that. - * - * var myObj = {val: 1} - * , noop = function () {}; - * - * expect(noop).to.not.change(myObj, 'val'); // Recommended - * expect(noop).to.not.increase(myObj, 'val'); // Not recommended - * - * `.increase` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. When not providing two arguments, always - * use the second form. - * - * var myObj = {val: 1} - * , noop = function () {}; - * - * expect(noop).to.increase(myObj, 'val', 'nooo why fail??'); - * - * var val = 1 - * , noop = function () {} - * , getVal = function () { return val; }; - * - * expect(noop, 'nooo why fail??').to.increase(getVal); - * - * The alias `.increases` can be used interchangeably with `.increase`. - * - * @name increase - * @alias increases - * @param {String|Function} subject - * @param {String} prop name _optional_ - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertIncreases (subject, prop, msg) { - if (msg) flag(this, 'message', msg); - var fn = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi'); - new Assertion(fn, flagMsg, ssfi, true).is.a('function'); - - var initial; - if (!prop) { - new Assertion(subject, flagMsg, ssfi, true).is.a('function'); - initial = subject(); - } else { - new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); - initial = subject[prop]; - } - - // Make sure that the target is a number - new Assertion(initial, flagMsg, ssfi, true).is.a('number'); - - fn(); - - var final = prop === undefined || prop === null ? subject() : subject[prop]; - var msgObj = prop === undefined || prop === null ? initial : '.' + prop; - - flag(this, 'deltaMsgObj', msgObj); - flag(this, 'initialDeltaValue', initial); - flag(this, 'finalDeltaValue', final); - flag(this, 'deltaBehavior', 'increase'); - flag(this, 'realDelta', final - initial); - - this.assert( - final - initial > 0 - , 'expected ' + msgObj + ' to increase' - , 'expected ' + msgObj + ' to not increase' - ); - } - - Assertion.addMethod('increase', assertIncreases); - Assertion.addMethod('increases', assertIncreases); - - /** - * ### .decrease(subject[, prop[, msg]]) - * - * When one argument is provided, `.decrease` asserts that the given function - * `subject` returns a lesser number when it's invoked after invoking the - * target function compared to when it's invoked beforehand. `.decrease` also - * causes all `.by` assertions that follow in the chain to assert how much - * lesser of a number is returned. It's often best to assert that the return - * value decreased by the expected amount, rather than asserting it decreased - * by any amount. - * - * var val = 1 - * , subtractTwo = function () { val -= 2; } - * , getVal = function () { return val; }; - * - * expect(subtractTwo).to.decrease(getVal).by(2); // Recommended - * expect(subtractTwo).to.decrease(getVal); // Not recommended - * - * When two arguments are provided, `.decrease` asserts that the value of the - * given object `subject`'s `prop` property is lesser after invoking the - * target function compared to beforehand. - * - * var myObj = {val: 1} - * , subtractTwo = function () { myObj.val -= 2; }; - * - * expect(subtractTwo).to.decrease(myObj, 'val').by(2); // Recommended - * expect(subtractTwo).to.decrease(myObj, 'val'); // Not recommended - * - * Add `.not` earlier in the chain to negate `.decrease`. However, it's - * dangerous to do so. The problem is that it creates uncertain expectations - * by asserting that the subject either increases, or that it stays the same. - * It's often best to identify the exact output that's expected, and then - * write an assertion that only accepts that exact output. - * - * When the subject is expected to increase, it's often best to assert that it - * increased by the expected amount. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; }; - * - * expect(addTwo).to.increase(myObj, 'val').by(2); // Recommended - * expect(addTwo).to.not.decrease(myObj, 'val'); // Not recommended - * - * When the subject is expected to stay the same, it's often best to assert - * exactly that. - * - * var myObj = {val: 1} - * , noop = function () {}; - * - * expect(noop).to.not.change(myObj, 'val'); // Recommended - * expect(noop).to.not.decrease(myObj, 'val'); // Not recommended - * - * `.decrease` accepts an optional `msg` argument which is a custom error - * message to show when the assertion fails. The message can also be given as - * the second argument to `expect`. When not providing two arguments, always - * use the second form. - * - * var myObj = {val: 1} - * , noop = function () {}; - * - * expect(noop).to.decrease(myObj, 'val', 'nooo why fail??'); - * - * var val = 1 - * , noop = function () {} - * , getVal = function () { return val; }; - * - * expect(noop, 'nooo why fail??').to.decrease(getVal); - * - * The alias `.decreases` can be used interchangeably with `.decrease`. - * - * @name decrease - * @alias decreases - * @param {String|Function} subject - * @param {String} prop name _optional_ - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertDecreases (subject, prop, msg) { - if (msg) flag(this, 'message', msg); - var fn = flag(this, 'object') - , flagMsg = flag(this, 'message') - , ssfi = flag(this, 'ssfi'); - new Assertion(fn, flagMsg, ssfi, true).is.a('function'); - - var initial; - if (!prop) { - new Assertion(subject, flagMsg, ssfi, true).is.a('function'); - initial = subject(); - } else { - new Assertion(subject, flagMsg, ssfi, true).to.have.property(prop); - initial = subject[prop]; - } - - // Make sure that the target is a number - new Assertion(initial, flagMsg, ssfi, true).is.a('number'); - - fn(); - - var final = prop === undefined || prop === null ? subject() : subject[prop]; - var msgObj = prop === undefined || prop === null ? initial : '.' + prop; - - flag(this, 'deltaMsgObj', msgObj); - flag(this, 'initialDeltaValue', initial); - flag(this, 'finalDeltaValue', final); - flag(this, 'deltaBehavior', 'decrease'); - flag(this, 'realDelta', initial - final); - - this.assert( - final - initial < 0 - , 'expected ' + msgObj + ' to decrease' - , 'expected ' + msgObj + ' to not decrease' - ); - } - - Assertion.addMethod('decrease', assertDecreases); - Assertion.addMethod('decreases', assertDecreases); - - /** - * ### .by(delta[, msg]) - * - * When following an `.increase` assertion in the chain, `.by` asserts that - * the subject of the `.increase` assertion increased by the given `delta`. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; }; - * - * expect(addTwo).to.increase(myObj, 'val').by(2); - * - * When following a `.decrease` assertion in the chain, `.by` asserts that the - * subject of the `.decrease` assertion decreased by the given `delta`. - * - * var myObj = {val: 1} - * , subtractTwo = function () { myObj.val -= 2; }; - * - * expect(subtractTwo).to.decrease(myObj, 'val').by(2); - * - * When following a `.change` assertion in the chain, `.by` asserts that the - * subject of the `.change` assertion either increased or decreased by the - * given `delta`. However, it's dangerous to use `.change.by`. The problem is - * that it creates uncertain expectations. It's often best to identify the - * exact output that's expected, and then write an assertion that only accepts - * that exact output. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; } - * , subtractTwo = function () { myObj.val -= 2; }; - * - * expect(addTwo).to.increase(myObj, 'val').by(2); // Recommended - * expect(addTwo).to.change(myObj, 'val').by(2); // Not recommended - * - * expect(subtractTwo).to.decrease(myObj, 'val').by(2); // Recommended - * expect(subtractTwo).to.change(myObj, 'val').by(2); // Not recommended - * - * Add `.not` earlier in the chain to negate `.by`. However, it's often best - * to assert that the subject changed by its expected delta, rather than - * asserting that it didn't change by one of countless unexpected deltas. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; }; - * - * // Recommended - * expect(addTwo).to.increase(myObj, 'val').by(2); - * - * // Not recommended - * expect(addTwo).to.increase(myObj, 'val').but.not.by(3); - * - * `.by` accepts an optional `msg` argument which is a custom error message to - * show when the assertion fails. The message can also be given as the second - * argument to `expect`. - * - * var myObj = {val: 1} - * , addTwo = function () { myObj.val += 2; }; - * - * expect(addTwo).to.increase(myObj, 'val').by(3, 'nooo why fail??'); - * expect(addTwo, 'nooo why fail??').to.increase(myObj, 'val').by(3); - * - * @name by - * @param {Number} delta - * @param {String} msg _optional_ - * @namespace BDD - * @api public - */ - - function assertDelta(delta, msg) { - if (msg) flag(this, 'message', msg); - - var msgObj = flag(this, 'deltaMsgObj'); - var initial = flag(this, 'initialDeltaValue'); - var final = flag(this, 'finalDeltaValue'); - var behavior = flag(this, 'deltaBehavior'); - var realDelta = flag(this, 'realDelta'); - - var expression; - if (behavior === 'change') { - expression = Math.abs(final - initial) === Math.abs(delta); - } else { - expression = realDelta === Math.abs(delta); - } - - this.assert( - expression - , 'expected ' + msgObj + ' to ' + behavior + ' by ' + delta - , 'expected ' + msgObj + ' to not ' + behavior + ' by ' + delta - ); - } - - Assertion.addMethod('by', assertDelta); - - /** - * ### .extensible - * - * Asserts that the target is extensible, which means that new properties can - * be added to it. Primitives are never extensible. - * - * expect({a: 1}).to.be.extensible; - * - * Add `.not` earlier in the chain to negate `.extensible`. - * - * var nonExtensibleObject = Object.preventExtensions({}) - * , sealedObject = Object.seal({}) - * , frozenObject = Object.freeze({}); - * - * expect(nonExtensibleObject).to.not.be.extensible; - * expect(sealedObject).to.not.be.extensible; - * expect(frozenObject).to.not.be.extensible; - * expect(1).to.not.be.extensible; - * - * A custom error message can be given as the second argument to `expect`. - * - * expect(1, 'nooo why fail??').to.be.extensible; - * - * @name extensible - * @namespace BDD - * @api public - */ - - Assertion.addProperty('extensible', function() { - var obj = flag(this, 'object'); - - // In ES5, if the argument to this method is a primitive, then it will cause a TypeError. - // In ES6, a non-object argument will be treated as if it was a non-extensible ordinary object, simply return false. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible - // The following provides ES6 behavior for ES5 environments. - - var isExtensible = obj === Object(obj) && Object.isExtensible(obj); - - this.assert( - isExtensible - , 'expected #{this} to be extensible' - , 'expected #{this} to not be extensible' - ); - }); - - /** - * ### .sealed - * - * Asserts that the target is sealed, which means that new properties can't be - * added to it, and its existing properties can't be reconfigured or deleted. - * However, it's possible that its existing properties can still be reassigned - * to different values. Primitives are always sealed. - * - * var sealedObject = Object.seal({}); - * var frozenObject = Object.freeze({}); - * - * expect(sealedObject).to.be.sealed; - * expect(frozenObject).to.be.sealed; - * expect(1).to.be.sealed; - * - * Add `.not` earlier in the chain to negate `.sealed`. - * - * expect({a: 1}).to.not.be.sealed; - * - * A custom error message can be given as the second argument to `expect`. - * - * expect({a: 1}, 'nooo why fail??').to.be.sealed; - * - * @name sealed - * @namespace BDD - * @api public - */ - - Assertion.addProperty('sealed', function() { - var obj = flag(this, 'object'); - - // In ES5, if the argument to this method is a primitive, then it will cause a TypeError. - // In ES6, a non-object argument will be treated as if it was a sealed ordinary object, simply return true. - // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed - // The following provides ES6 behavior for ES5 environments. - - var isSealed = obj === Object(obj) ? Object.isSealed(obj) : true; - - this.assert( - isSealed - , 'expected #{this} to be sealed' - , 'expected #{this} to not be sealed' - ); - }); - - /** - * ### .frozen - * - * Asserts that the target is frozen, which means that new properties can't be - * added to it, and its existing properties can't be reassigned to different - * values, reconfigured, or deleted. Primitives are always frozen. - * - * var frozenObject = Object.freeze({}); - * - * expect(frozenObject).to.be.frozen; - * expect(1).to.be.frozen; - * - * Add `.not` earlier in the chain to negate `.frozen`. - * - * expect({a: 1}).to.not.be.frozen; - * - * A custom error message can be given as the second argument to `expect`. - * - * expect({a: 1}, 'nooo why fail??').to.be.frozen; - * - * @name frozen - * @namespace BDD - * @api public - */ - - Assertion.addProperty('frozen', function() { - var obj = flag(this, 'object'); - - // In ES5, if the argument to this method is a primitive, then it will cause a TypeError. - // In ES6, a non-object argument will be treated as if it was a frozen ordinary object, simply return true. - // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen - // The following provides ES6 behavior for ES5 environments. - - var isFrozen = obj === Object(obj) ? Object.isFrozen(obj) : true; - - this.assert( - isFrozen - , 'expected #{this} to be frozen' - , 'expected #{this} to not be frozen' - ); - }); - - /** - * ### .finite - * - * Asserts that the target is a number, and isn't `NaN` or positive/negative - * `Infinity`. - * - * expect(1).to.be.finite; - * - * Add `.not` earlier in the chain to negate `.finite`. However, it's - * dangerous to do so. The problem is that it creates uncertain expectations - * by asserting that the subject either isn't a number, or that it's `NaN`, or - * that it's positive `Infinity`, or that it's negative `Infinity`. It's often - * best to identify the exact output that's expected, and then write an - * assertion that only accepts that exact output. - * - * When the target isn't expected to be a number, it's often best to assert - * that it's the expected type, rather than asserting that it isn't one of - * many unexpected types. - * - * expect('foo').to.be.a('string'); // Recommended - * expect('foo').to.not.be.finite; // Not recommended - * - * When the target is expected to be `NaN`, it's often best to assert exactly - * that. - * - * expect(NaN).to.be.NaN; // Recommended - * expect(NaN).to.not.be.finite; // Not recommended - * - * When the target is expected to be positive infinity, it's often best to - * assert exactly that. - * - * expect(Infinity).to.equal(Infinity); // Recommended - * expect(Infinity).to.not.be.finite; // Not recommended - * - * When the target is expected to be negative infinity, it's often best to - * assert exactly that. - * - * expect(-Infinity).to.equal(-Infinity); // Recommended - * expect(-Infinity).to.not.be.finite; // Not recommended - * - * A custom error message can be given as the second argument to `expect`. - * - * expect('foo', 'nooo why fail??').to.be.finite; - * - * @name finite - * @namespace BDD - * @api public - */ - - Assertion.addProperty('finite', function(msg) { - var obj = flag(this, 'object'); - - this.assert( - typeof obj === 'number' && isFinite(obj) - , 'expected #{this} to be a finite number' - , 'expected #{this} to not be a finite number' - ); - }); -}; - -},{}],6:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, util) { - /*! - * Chai dependencies. - */ - - var Assertion = chai.Assertion - , flag = util.flag; - - /*! - * Module export. - */ - - /** - * ### assert(expression, message) - * - * Write your own test expressions. - * - * assert('foo' !== 'bar', 'foo is not bar'); - * assert(Array.isArray([]), 'empty arrays are arrays'); - * - * @param {Mixed} expression to test for truthiness - * @param {String} message to display on error - * @name assert - * @namespace Assert - * @api public - */ - - var assert = chai.assert = function (express, errmsg) { - var test = new Assertion(null, null, chai.assert, true); - test.assert( - express - , errmsg - , '[ negation message unavailable ]' - ); - }; - - /** - * ### .fail([message]) - * ### .fail(actual, expected, [message], [operator]) - * - * Throw a failure. Node.js `assert` module-compatible. - * - * assert.fail(); - * assert.fail("custom error message"); - * assert.fail(1, 2); - * assert.fail(1, 2, "custom error message"); - * assert.fail(1, 2, "custom error message", ">"); - * assert.fail(1, 2, undefined, ">"); - * - * @name fail - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @param {String} operator - * @namespace Assert - * @api public - */ - - assert.fail = function (actual, expected, message, operator) { - if (arguments.length < 2) { - // Comply with Node's fail([message]) interface - - message = actual; - actual = undefined; - } - - message = message || 'assert.fail()'; - throw new chai.AssertionError(message, { - actual: actual - , expected: expected - , operator: operator - }, assert.fail); - }; - - /** - * ### .isOk(object, [message]) - * - * Asserts that `object` is truthy. - * - * assert.isOk('everything', 'everything is ok'); - * assert.isOk(false, 'this will fail'); - * - * @name isOk - * @alias ok - * @param {Mixed} object to test - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isOk = function (val, msg) { - new Assertion(val, msg, assert.isOk, true).is.ok; - }; - - /** - * ### .isNotOk(object, [message]) - * - * Asserts that `object` is falsy. - * - * assert.isNotOk('everything', 'this will fail'); - * assert.isNotOk(false, 'this will pass'); - * - * @name isNotOk - * @alias notOk - * @param {Mixed} object to test - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotOk = function (val, msg) { - new Assertion(val, msg, assert.isNotOk, true).is.not.ok; - }; - - /** - * ### .equal(actual, expected, [message]) - * - * Asserts non-strict equality (`==`) of `actual` and `expected`. - * - * assert.equal(3, '3', '== coerces values to strings'); - * - * @name equal - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.equal = function (act, exp, msg) { - var test = new Assertion(act, msg, assert.equal, true); - - test.assert( - exp == flag(test, 'object') - , 'expected #{this} to equal #{exp}' - , 'expected #{this} to not equal #{act}' - , exp - , act - , true - ); - }; - - /** - * ### .notEqual(actual, expected, [message]) - * - * Asserts non-strict inequality (`!=`) of `actual` and `expected`. - * - * assert.notEqual(3, 4, 'these numbers are not equal'); - * - * @name notEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notEqual = function (act, exp, msg) { - var test = new Assertion(act, msg, assert.notEqual, true); - - test.assert( - exp != flag(test, 'object') - , 'expected #{this} to not equal #{exp}' - , 'expected #{this} to equal #{act}' - , exp - , act - , true - ); - }; - - /** - * ### .strictEqual(actual, expected, [message]) - * - * Asserts strict equality (`===`) of `actual` and `expected`. - * - * assert.strictEqual(true, true, 'these booleans are strictly equal'); - * - * @name strictEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.strictEqual = function (act, exp, msg) { - new Assertion(act, msg, assert.strictEqual, true).to.equal(exp); - }; - - /** - * ### .notStrictEqual(actual, expected, [message]) - * - * Asserts strict inequality (`!==`) of `actual` and `expected`. - * - * assert.notStrictEqual(3, '3', 'no coercion for strict equality'); - * - * @name notStrictEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notStrictEqual = function (act, exp, msg) { - new Assertion(act, msg, assert.notStrictEqual, true).to.not.equal(exp); - }; - - /** - * ### .deepEqual(actual, expected, [message]) - * - * Asserts that `actual` is deeply equal to `expected`. - * - * assert.deepEqual({ tea: 'green' }, { tea: 'green' }); - * - * @name deepEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @alias deepStrictEqual - * @namespace Assert - * @api public - */ - - assert.deepEqual = assert.deepStrictEqual = function (act, exp, msg) { - new Assertion(act, msg, assert.deepEqual, true).to.eql(exp); - }; - - /** - * ### .notDeepEqual(actual, expected, [message]) - * - * Assert that `actual` is not deeply equal to `expected`. - * - * assert.notDeepEqual({ tea: 'green' }, { tea: 'jasmine' }); - * - * @name notDeepEqual - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepEqual = function (act, exp, msg) { - new Assertion(act, msg, assert.notDeepEqual, true).to.not.eql(exp); - }; - - /** - * ### .isAbove(valueToCheck, valueToBeAbove, [message]) - * - * Asserts `valueToCheck` is strictly greater than (>) `valueToBeAbove`. - * - * assert.isAbove(5, 2, '5 is strictly greater than 2'); - * - * @name isAbove - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeAbove - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isAbove = function (val, abv, msg) { - new Assertion(val, msg, assert.isAbove, true).to.be.above(abv); - }; - - /** - * ### .isAtLeast(valueToCheck, valueToBeAtLeast, [message]) - * - * Asserts `valueToCheck` is greater than or equal to (>=) `valueToBeAtLeast`. - * - * assert.isAtLeast(5, 2, '5 is greater or equal to 2'); - * assert.isAtLeast(3, 3, '3 is greater or equal to 3'); - * - * @name isAtLeast - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeAtLeast - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isAtLeast = function (val, atlst, msg) { - new Assertion(val, msg, assert.isAtLeast, true).to.be.least(atlst); - }; - - /** - * ### .isBelow(valueToCheck, valueToBeBelow, [message]) - * - * Asserts `valueToCheck` is strictly less than (<) `valueToBeBelow`. - * - * assert.isBelow(3, 6, '3 is strictly less than 6'); - * - * @name isBelow - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeBelow - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isBelow = function (val, blw, msg) { - new Assertion(val, msg, assert.isBelow, true).to.be.below(blw); - }; - - /** - * ### .isAtMost(valueToCheck, valueToBeAtMost, [message]) - * - * Asserts `valueToCheck` is less than or equal to (<=) `valueToBeAtMost`. - * - * assert.isAtMost(3, 6, '3 is less than or equal to 6'); - * assert.isAtMost(4, 4, '4 is less than or equal to 4'); - * - * @name isAtMost - * @param {Mixed} valueToCheck - * @param {Mixed} valueToBeAtMost - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isAtMost = function (val, atmst, msg) { - new Assertion(val, msg, assert.isAtMost, true).to.be.most(atmst); - }; - - /** - * ### .isTrue(value, [message]) - * - * Asserts that `value` is true. - * - * var teaServed = true; - * assert.isTrue(teaServed, 'the tea has been served'); - * - * @name isTrue - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isTrue = function (val, msg) { - new Assertion(val, msg, assert.isTrue, true).is['true']; - }; - - /** - * ### .isNotTrue(value, [message]) - * - * Asserts that `value` is not true. - * - * var tea = 'tasty chai'; - * assert.isNotTrue(tea, 'great, time for tea!'); - * - * @name isNotTrue - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotTrue = function (val, msg) { - new Assertion(val, msg, assert.isNotTrue, true).to.not.equal(true); - }; - - /** - * ### .isFalse(value, [message]) - * - * Asserts that `value` is false. - * - * var teaServed = false; - * assert.isFalse(teaServed, 'no tea yet? hmm...'); - * - * @name isFalse - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isFalse = function (val, msg) { - new Assertion(val, msg, assert.isFalse, true).is['false']; - }; - - /** - * ### .isNotFalse(value, [message]) - * - * Asserts that `value` is not false. - * - * var tea = 'tasty chai'; - * assert.isNotFalse(tea, 'great, time for tea!'); - * - * @name isNotFalse - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotFalse = function (val, msg) { - new Assertion(val, msg, assert.isNotFalse, true).to.not.equal(false); - }; - - /** - * ### .isNull(value, [message]) - * - * Asserts that `value` is null. - * - * assert.isNull(err, 'there was no error'); - * - * @name isNull - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNull = function (val, msg) { - new Assertion(val, msg, assert.isNull, true).to.equal(null); - }; - - /** - * ### .isNotNull(value, [message]) - * - * Asserts that `value` is not null. - * - * var tea = 'tasty chai'; - * assert.isNotNull(tea, 'great, time for tea!'); - * - * @name isNotNull - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotNull = function (val, msg) { - new Assertion(val, msg, assert.isNotNull, true).to.not.equal(null); - }; - - /** - * ### .isNaN - * - * Asserts that value is NaN. - * - * assert.isNaN(NaN, 'NaN is NaN'); - * - * @name isNaN - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNaN = function (val, msg) { - new Assertion(val, msg, assert.isNaN, true).to.be.NaN; - }; - - /** - * ### .isNotNaN - * - * Asserts that value is not NaN. - * - * assert.isNotNaN(4, '4 is not NaN'); - * - * @name isNotNaN - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - assert.isNotNaN = function (val, msg) { - new Assertion(val, msg, assert.isNotNaN, true).not.to.be.NaN; - }; - - /** - * ### .exists - * - * Asserts that the target is neither `null` nor `undefined`. - * - * var foo = 'hi'; - * - * assert.exists(foo, 'foo is neither `null` nor `undefined`'); - * - * @name exists - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.exists = function (val, msg) { - new Assertion(val, msg, assert.exists, true).to.exist; - }; - - /** - * ### .notExists - * - * Asserts that the target is either `null` or `undefined`. - * - * var bar = null - * , baz; - * - * assert.notExists(bar); - * assert.notExists(baz, 'baz is either null or undefined'); - * - * @name notExists - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notExists = function (val, msg) { - new Assertion(val, msg, assert.notExists, true).to.not.exist; - }; - - /** - * ### .isUndefined(value, [message]) - * - * Asserts that `value` is `undefined`. - * - * var tea; - * assert.isUndefined(tea, 'no tea defined'); - * - * @name isUndefined - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isUndefined = function (val, msg) { - new Assertion(val, msg, assert.isUndefined, true).to.equal(undefined); - }; - - /** - * ### .isDefined(value, [message]) - * - * Asserts that `value` is not `undefined`. - * - * var tea = 'cup of chai'; - * assert.isDefined(tea, 'tea has been defined'); - * - * @name isDefined - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isDefined = function (val, msg) { - new Assertion(val, msg, assert.isDefined, true).to.not.equal(undefined); - }; - - /** - * ### .isFunction(value, [message]) - * - * Asserts that `value` is a function. - * - * function serveTea() { return 'cup of tea'; }; - * assert.isFunction(serveTea, 'great, we can have tea now'); - * - * @name isFunction - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isFunction = function (val, msg) { - new Assertion(val, msg, assert.isFunction, true).to.be.a('function'); - }; - - /** - * ### .isNotFunction(value, [message]) - * - * Asserts that `value` is _not_ a function. - * - * var serveTea = [ 'heat', 'pour', 'sip' ]; - * assert.isNotFunction(serveTea, 'great, we have listed the steps'); - * - * @name isNotFunction - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotFunction = function (val, msg) { - new Assertion(val, msg, assert.isNotFunction, true).to.not.be.a('function'); - }; - - /** - * ### .isObject(value, [message]) - * - * Asserts that `value` is an object of type 'Object' (as revealed by `Object.prototype.toString`). - * _The assertion does not match subclassed objects._ - * - * var selection = { name: 'Chai', serve: 'with spices' }; - * assert.isObject(selection, 'tea selection is an object'); - * - * @name isObject - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isObject = function (val, msg) { - new Assertion(val, msg, assert.isObject, true).to.be.a('object'); - }; - - /** - * ### .isNotObject(value, [message]) - * - * Asserts that `value` is _not_ an object of type 'Object' (as revealed by `Object.prototype.toString`). - * - * var selection = 'chai' - * assert.isNotObject(selection, 'tea selection is not an object'); - * assert.isNotObject(null, 'null is not an object'); - * - * @name isNotObject - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotObject = function (val, msg) { - new Assertion(val, msg, assert.isNotObject, true).to.not.be.a('object'); - }; - - /** - * ### .isArray(value, [message]) - * - * Asserts that `value` is an array. - * - * var menu = [ 'green', 'chai', 'oolong' ]; - * assert.isArray(menu, 'what kind of tea do we want?'); - * - * @name isArray - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isArray = function (val, msg) { - new Assertion(val, msg, assert.isArray, true).to.be.an('array'); - }; - - /** - * ### .isNotArray(value, [message]) - * - * Asserts that `value` is _not_ an array. - * - * var menu = 'green|chai|oolong'; - * assert.isNotArray(menu, 'what kind of tea do we want?'); - * - * @name isNotArray - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotArray = function (val, msg) { - new Assertion(val, msg, assert.isNotArray, true).to.not.be.an('array'); - }; - - /** - * ### .isString(value, [message]) - * - * Asserts that `value` is a string. - * - * var teaOrder = 'chai'; - * assert.isString(teaOrder, 'order placed'); - * - * @name isString - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isString = function (val, msg) { - new Assertion(val, msg, assert.isString, true).to.be.a('string'); - }; - - /** - * ### .isNotString(value, [message]) - * - * Asserts that `value` is _not_ a string. - * - * var teaOrder = 4; - * assert.isNotString(teaOrder, 'order placed'); - * - * @name isNotString - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotString = function (val, msg) { - new Assertion(val, msg, assert.isNotString, true).to.not.be.a('string'); - }; - - /** - * ### .isNumber(value, [message]) - * - * Asserts that `value` is a number. - * - * var cups = 2; - * assert.isNumber(cups, 'how many cups'); - * - * @name isNumber - * @param {Number} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNumber = function (val, msg) { - new Assertion(val, msg, assert.isNumber, true).to.be.a('number'); - }; - - /** - * ### .isNotNumber(value, [message]) - * - * Asserts that `value` is _not_ a number. - * - * var cups = '2 cups please'; - * assert.isNotNumber(cups, 'how many cups'); - * - * @name isNotNumber - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotNumber = function (val, msg) { - new Assertion(val, msg, assert.isNotNumber, true).to.not.be.a('number'); - }; - - /** - * ### .isFinite(value, [message]) - * - * Asserts that `value` is a finite number. Unlike `.isNumber`, this will fail for `NaN` and `Infinity`. - * - * var cups = 2; - * assert.isFinite(cups, 'how many cups'); - * - * assert.isFinite(NaN); // throws - * - * @name isFinite - * @param {Number} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isFinite = function (val, msg) { - new Assertion(val, msg, assert.isFinite, true).to.be.finite; - }; - - /** - * ### .isBoolean(value, [message]) - * - * Asserts that `value` is a boolean. - * - * var teaReady = true - * , teaServed = false; - * - * assert.isBoolean(teaReady, 'is the tea ready'); - * assert.isBoolean(teaServed, 'has tea been served'); - * - * @name isBoolean - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isBoolean = function (val, msg) { - new Assertion(val, msg, assert.isBoolean, true).to.be.a('boolean'); - }; - - /** - * ### .isNotBoolean(value, [message]) - * - * Asserts that `value` is _not_ a boolean. - * - * var teaReady = 'yep' - * , teaServed = 'nope'; - * - * assert.isNotBoolean(teaReady, 'is the tea ready'); - * assert.isNotBoolean(teaServed, 'has tea been served'); - * - * @name isNotBoolean - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.isNotBoolean = function (val, msg) { - new Assertion(val, msg, assert.isNotBoolean, true).to.not.be.a('boolean'); - }; - - /** - * ### .typeOf(value, name, [message]) - * - * Asserts that `value`'s type is `name`, as determined by - * `Object.prototype.toString`. - * - * assert.typeOf({ tea: 'chai' }, 'object', 'we have an object'); - * assert.typeOf(['chai', 'jasmine'], 'array', 'we have an array'); - * assert.typeOf('tea', 'string', 'we have a string'); - * assert.typeOf(/tea/, 'regexp', 'we have a regular expression'); - * assert.typeOf(null, 'null', 'we have a null'); - * assert.typeOf(undefined, 'undefined', 'we have an undefined'); - * - * @name typeOf - * @param {Mixed} value - * @param {String} name - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.typeOf = function (val, type, msg) { - new Assertion(val, msg, assert.typeOf, true).to.be.a(type); - }; - - /** - * ### .notTypeOf(value, name, [message]) - * - * Asserts that `value`'s type is _not_ `name`, as determined by - * `Object.prototype.toString`. - * - * assert.notTypeOf('tea', 'number', 'strings are not numbers'); - * - * @name notTypeOf - * @param {Mixed} value - * @param {String} typeof name - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notTypeOf = function (val, type, msg) { - new Assertion(val, msg, assert.notTypeOf, true).to.not.be.a(type); - }; - - /** - * ### .instanceOf(object, constructor, [message]) - * - * Asserts that `value` is an instance of `constructor`. - * - * var Tea = function (name) { this.name = name; } - * , chai = new Tea('chai'); - * - * assert.instanceOf(chai, Tea, 'chai is an instance of tea'); - * - * @name instanceOf - * @param {Object} object - * @param {Constructor} constructor - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.instanceOf = function (val, type, msg) { - new Assertion(val, msg, assert.instanceOf, true).to.be.instanceOf(type); - }; - - /** - * ### .notInstanceOf(object, constructor, [message]) - * - * Asserts `value` is not an instance of `constructor`. - * - * var Tea = function (name) { this.name = name; } - * , chai = new String('chai'); - * - * assert.notInstanceOf(chai, Tea, 'chai is not an instance of tea'); - * - * @name notInstanceOf - * @param {Object} object - * @param {Constructor} constructor - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notInstanceOf = function (val, type, msg) { - new Assertion(val, msg, assert.notInstanceOf, true) - .to.not.be.instanceOf(type); - }; - - /** - * ### .include(haystack, needle, [message]) - * - * Asserts that `haystack` includes `needle`. Can be used to assert the - * inclusion of a value in an array, a substring in a string, or a subset of - * properties in an object. - * - * assert.include([1,2,3], 2, 'array contains value'); - * assert.include('foobar', 'foo', 'string contains substring'); - * assert.include({ foo: 'bar', hello: 'universe' }, { foo: 'bar' }, 'object contains property'); - * - * Strict equality (===) is used. When asserting the inclusion of a value in - * an array, the array is searched for an element that's strictly equal to the - * given value. When asserting a subset of properties in an object, the object - * is searched for the given property keys, checking that each one is present - * and strictly equal to the given property value. For instance: - * - * var obj1 = {a: 1} - * , obj2 = {b: 2}; - * assert.include([obj1, obj2], obj1); - * assert.include({foo: obj1, bar: obj2}, {foo: obj1}); - * assert.include({foo: obj1, bar: obj2}, {foo: obj1, bar: obj2}); - * - * @name include - * @param {Array|String} haystack - * @param {Mixed} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.include = function (exp, inc, msg) { - new Assertion(exp, msg, assert.include, true).include(inc); - }; - - /** - * ### .notInclude(haystack, needle, [message]) - * - * Asserts that `haystack` does not include `needle`. Can be used to assert - * the absence of a value in an array, a substring in a string, or a subset of - * properties in an object. - * - * assert.notInclude([1,2,3], 4, "array doesn't contain value"); - * assert.notInclude('foobar', 'baz', "string doesn't contain substring"); - * assert.notInclude({ foo: 'bar', hello: 'universe' }, { foo: 'baz' }, 'object doesn't contain property'); - * - * Strict equality (===) is used. When asserting the absence of a value in an - * array, the array is searched to confirm the absence of an element that's - * strictly equal to the given value. When asserting a subset of properties in - * an object, the object is searched to confirm that at least one of the given - * property keys is either not present or not strictly equal to the given - * property value. For instance: - * - * var obj1 = {a: 1} - * , obj2 = {b: 2}; - * assert.notInclude([obj1, obj2], {a: 1}); - * assert.notInclude({foo: obj1, bar: obj2}, {foo: {a: 1}}); - * assert.notInclude({foo: obj1, bar: obj2}, {foo: obj1, bar: {b: 2}}); - * - * @name notInclude - * @param {Array|String} haystack - * @param {Mixed} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notInclude = function (exp, inc, msg) { - new Assertion(exp, msg, assert.notInclude, true).not.include(inc); - }; - - /** - * ### .deepInclude(haystack, needle, [message]) - * - * Asserts that `haystack` includes `needle`. Can be used to assert the - * inclusion of a value in an array or a subset of properties in an object. - * Deep equality is used. - * - * var obj1 = {a: 1} - * , obj2 = {b: 2}; - * assert.deepInclude([obj1, obj2], {a: 1}); - * assert.deepInclude({foo: obj1, bar: obj2}, {foo: {a: 1}}); - * assert.deepInclude({foo: obj1, bar: obj2}, {foo: {a: 1}, bar: {b: 2}}); - * - * @name deepInclude - * @param {Array|String} haystack - * @param {Mixed} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepInclude = function (exp, inc, msg) { - new Assertion(exp, msg, assert.deepInclude, true).deep.include(inc); - }; - - /** - * ### .notDeepInclude(haystack, needle, [message]) - * - * Asserts that `haystack` does not include `needle`. Can be used to assert - * the absence of a value in an array or a subset of properties in an object. - * Deep equality is used. - * - * var obj1 = {a: 1} - * , obj2 = {b: 2}; - * assert.notDeepInclude([obj1, obj2], {a: 9}); - * assert.notDeepInclude({foo: obj1, bar: obj2}, {foo: {a: 9}}); - * assert.notDeepInclude({foo: obj1, bar: obj2}, {foo: {a: 1}, bar: {b: 9}}); - * - * @name notDeepInclude - * @param {Array|String} haystack - * @param {Mixed} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepInclude = function (exp, inc, msg) { - new Assertion(exp, msg, assert.notDeepInclude, true).not.deep.include(inc); - }; - - /** - * ### .nestedInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' includes 'needle'. - * Can be used to assert the inclusion of a subset of properties in an - * object. - * Enables the use of dot- and bracket-notation for referencing nested - * properties. - * '[]' and '.' in property names can be escaped using double backslashes. - * - * assert.nestedInclude({'.a': {'b': 'x'}}, {'\\.a.[b]': 'x'}); - * assert.nestedInclude({'a': {'[b]': 'x'}}, {'a.\\[b\\]': 'x'}); - * - * @name nestedInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.nestedInclude = function (exp, inc, msg) { - new Assertion(exp, msg, assert.nestedInclude, true).nested.include(inc); - }; - - /** - * ### .notNestedInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' does not include 'needle'. - * Can be used to assert the absence of a subset of properties in an - * object. - * Enables the use of dot- and bracket-notation for referencing nested - * properties. - * '[]' and '.' in property names can be escaped using double backslashes. - * - * assert.notNestedInclude({'.a': {'b': 'x'}}, {'\\.a.b': 'y'}); - * assert.notNestedInclude({'a': {'[b]': 'x'}}, {'a.\\[b\\]': 'y'}); - * - * @name notNestedInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notNestedInclude = function (exp, inc, msg) { - new Assertion(exp, msg, assert.notNestedInclude, true) - .not.nested.include(inc); - }; - - /** - * ### .deepNestedInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' includes 'needle'. - * Can be used to assert the inclusion of a subset of properties in an - * object while checking for deep equality. - * Enables the use of dot- and bracket-notation for referencing nested - * properties. - * '[]' and '.' in property names can be escaped using double backslashes. - * - * assert.deepNestedInclude({a: {b: [{x: 1}]}}, {'a.b[0]': {x: 1}}); - * assert.deepNestedInclude({'.a': {'[b]': {x: 1}}}, {'\\.a.\\[b\\]': {x: 1}}); - * - * @name deepNestedInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepNestedInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.deepNestedInclude, true) - .deep.nested.include(inc); - }; - - /** - * ### .notDeepNestedInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' does not include 'needle'. - * Can be used to assert the absence of a subset of properties in an - * object while checking for deep equality. - * Enables the use of dot- and bracket-notation for referencing nested - * properties. - * '[]' and '.' in property names can be escaped using double backslashes. - * - * assert.notDeepNestedInclude({a: {b: [{x: 1}]}}, {'a.b[0]': {y: 1}}) - * assert.notDeepNestedInclude({'.a': {'[b]': {x: 1}}}, {'\\.a.\\[b\\]': {y: 2}}); - * - * @name notDeepNestedInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepNestedInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notDeepNestedInclude, true) - .not.deep.nested.include(inc); - }; - - /** - * ### .ownInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' includes 'needle'. - * Can be used to assert the inclusion of a subset of properties in an - * object while ignoring inherited properties. - * - * assert.ownInclude({ a: 1 }, { a: 1 }); - * - * @name ownInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.ownInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.ownInclude, true).own.include(inc); - }; - - /** - * ### .notOwnInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' includes 'needle'. - * Can be used to assert the absence of a subset of properties in an - * object while ignoring inherited properties. - * - * Object.prototype.b = 2; - * - * assert.notOwnInclude({ a: 1 }, { b: 2 }); - * - * @name notOwnInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notOwnInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notOwnInclude, true).not.own.include(inc); - }; - - /** - * ### .deepOwnInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' includes 'needle'. - * Can be used to assert the inclusion of a subset of properties in an - * object while ignoring inherited properties and checking for deep equality. - * - * assert.deepOwnInclude({a: {b: 2}}, {a: {b: 2}}); - * - * @name deepOwnInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepOwnInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.deepOwnInclude, true) - .deep.own.include(inc); - }; - - /** - * ### .notDeepOwnInclude(haystack, needle, [message]) - * - * Asserts that 'haystack' includes 'needle'. - * Can be used to assert the absence of a subset of properties in an - * object while ignoring inherited properties and checking for deep equality. - * - * assert.notDeepOwnInclude({a: {b: 2}}, {a: {c: 3}}); - * - * @name notDeepOwnInclude - * @param {Object} haystack - * @param {Object} needle - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepOwnInclude = function(exp, inc, msg) { - new Assertion(exp, msg, assert.notDeepOwnInclude, true) - .not.deep.own.include(inc); - }; - - /** - * ### .match(value, regexp, [message]) - * - * Asserts that `value` matches the regular expression `regexp`. - * - * assert.match('foobar', /^foo/, 'regexp matches'); - * - * @name match - * @param {Mixed} value - * @param {RegExp} regexp - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.match = function (exp, re, msg) { - new Assertion(exp, msg, assert.match, true).to.match(re); - }; - - /** - * ### .notMatch(value, regexp, [message]) - * - * Asserts that `value` does not match the regular expression `regexp`. - * - * assert.notMatch('foobar', /^foo/, 'regexp does not match'); - * - * @name notMatch - * @param {Mixed} value - * @param {RegExp} regexp - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notMatch = function (exp, re, msg) { - new Assertion(exp, msg, assert.notMatch, true).to.not.match(re); - }; - - /** - * ### .property(object, property, [message]) - * - * Asserts that `object` has a direct or inherited property named by - * `property`. - * - * assert.property({ tea: { green: 'matcha' }}, 'tea'); - * assert.property({ tea: { green: 'matcha' }}, 'toString'); - * - * @name property - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.property = function (obj, prop, msg) { - new Assertion(obj, msg, assert.property, true).to.have.property(prop); - }; - - /** - * ### .notProperty(object, property, [message]) - * - * Asserts that `object` does _not_ have a direct or inherited property named - * by `property`. - * - * assert.notProperty({ tea: { green: 'matcha' }}, 'coffee'); - * - * @name notProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notProperty = function (obj, prop, msg) { - new Assertion(obj, msg, assert.notProperty, true) - .to.not.have.property(prop); - }; - - /** - * ### .propertyVal(object, property, value, [message]) - * - * Asserts that `object` has a direct or inherited property named by - * `property` with a value given by `value`. Uses a strict equality check - * (===). - * - * assert.propertyVal({ tea: 'is good' }, 'tea', 'is good'); - * - * @name propertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.propertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.propertyVal, true) - .to.have.property(prop, val); - }; - - /** - * ### .notPropertyVal(object, property, value, [message]) - * - * Asserts that `object` does _not_ have a direct or inherited property named - * by `property` with value given by `value`. Uses a strict equality check - * (===). - * - * assert.notPropertyVal({ tea: 'is good' }, 'tea', 'is bad'); - * assert.notPropertyVal({ tea: 'is good' }, 'coffee', 'is good'); - * - * @name notPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.notPropertyVal, true) - .to.not.have.property(prop, val); - }; - - /** - * ### .deepPropertyVal(object, property, value, [message]) - * - * Asserts that `object` has a direct or inherited property named by - * `property` with a value given by `value`. Uses a deep equality check. - * - * assert.deepPropertyVal({ tea: { green: 'matcha' } }, 'tea', { green: 'matcha' }); - * - * @name deepPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.deepPropertyVal, true) - .to.have.deep.property(prop, val); - }; - - /** - * ### .notDeepPropertyVal(object, property, value, [message]) - * - * Asserts that `object` does _not_ have a direct or inherited property named - * by `property` with value given by `value`. Uses a deep equality check. - * - * assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'tea', { black: 'matcha' }); - * assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'tea', { green: 'oolong' }); - * assert.notDeepPropertyVal({ tea: { green: 'matcha' } }, 'coffee', { green: 'matcha' }); - * - * @name notDeepPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.notDeepPropertyVal, true) - .to.not.have.deep.property(prop, val); - }; - - /** - * ### .ownProperty(object, property, [message]) - * - * Asserts that `object` has a direct property named by `property`. Inherited - * properties aren't checked. - * - * assert.ownProperty({ tea: { green: 'matcha' }}, 'tea'); - * - * @name ownProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @api public - */ - - assert.ownProperty = function (obj, prop, msg) { - new Assertion(obj, msg, assert.ownProperty, true) - .to.have.own.property(prop); - }; - - /** - * ### .notOwnProperty(object, property, [message]) - * - * Asserts that `object` does _not_ have a direct property named by - * `property`. Inherited properties aren't checked. - * - * assert.notOwnProperty({ tea: { green: 'matcha' }}, 'coffee'); - * assert.notOwnProperty({}, 'toString'); - * - * @name notOwnProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @api public - */ - - assert.notOwnProperty = function (obj, prop, msg) { - new Assertion(obj, msg, assert.notOwnProperty, true) - .to.not.have.own.property(prop); - }; - - /** - * ### .ownPropertyVal(object, property, value, [message]) - * - * Asserts that `object` has a direct property named by `property` and a value - * equal to the provided `value`. Uses a strict equality check (===). - * Inherited properties aren't checked. - * - * assert.ownPropertyVal({ coffee: 'is good'}, 'coffee', 'is good'); - * - * @name ownPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @api public - */ - - assert.ownPropertyVal = function (obj, prop, value, msg) { - new Assertion(obj, msg, assert.ownPropertyVal, true) - .to.have.own.property(prop, value); - }; - - /** - * ### .notOwnPropertyVal(object, property, value, [message]) - * - * Asserts that `object` does _not_ have a direct property named by `property` - * with a value equal to the provided `value`. Uses a strict equality check - * (===). Inherited properties aren't checked. - * - * assert.notOwnPropertyVal({ tea: 'is better'}, 'tea', 'is worse'); - * assert.notOwnPropertyVal({}, 'toString', Object.prototype.toString); - * - * @name notOwnPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @api public - */ - - assert.notOwnPropertyVal = function (obj, prop, value, msg) { - new Assertion(obj, msg, assert.notOwnPropertyVal, true) - .to.not.have.own.property(prop, value); - }; - - /** - * ### .deepOwnPropertyVal(object, property, value, [message]) - * - * Asserts that `object` has a direct property named by `property` and a value - * equal to the provided `value`. Uses a deep equality check. Inherited - * properties aren't checked. - * - * assert.deepOwnPropertyVal({ tea: { green: 'matcha' } }, 'tea', { green: 'matcha' }); - * - * @name deepOwnPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @api public - */ - - assert.deepOwnPropertyVal = function (obj, prop, value, msg) { - new Assertion(obj, msg, assert.deepOwnPropertyVal, true) - .to.have.deep.own.property(prop, value); - }; - - /** - * ### .notDeepOwnPropertyVal(object, property, value, [message]) - * - * Asserts that `object` does _not_ have a direct property named by `property` - * with a value equal to the provided `value`. Uses a deep equality check. - * Inherited properties aren't checked. - * - * assert.notDeepOwnPropertyVal({ tea: { green: 'matcha' } }, 'tea', { black: 'matcha' }); - * assert.notDeepOwnPropertyVal({ tea: { green: 'matcha' } }, 'tea', { green: 'oolong' }); - * assert.notDeepOwnPropertyVal({ tea: { green: 'matcha' } }, 'coffee', { green: 'matcha' }); - * assert.notDeepOwnPropertyVal({}, 'toString', Object.prototype.toString); - * - * @name notDeepOwnPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @api public - */ - - assert.notDeepOwnPropertyVal = function (obj, prop, value, msg) { - new Assertion(obj, msg, assert.notDeepOwnPropertyVal, true) - .to.not.have.deep.own.property(prop, value); - }; - - /** - * ### .nestedProperty(object, property, [message]) - * - * Asserts that `object` has a direct or inherited property named by - * `property`, which can be a string using dot- and bracket-notation for - * nested reference. - * - * assert.nestedProperty({ tea: { green: 'matcha' }}, 'tea.green'); - * - * @name nestedProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.nestedProperty = function (obj, prop, msg) { - new Assertion(obj, msg, assert.nestedProperty, true) - .to.have.nested.property(prop); - }; - - /** - * ### .notNestedProperty(object, property, [message]) - * - * Asserts that `object` does _not_ have a property named by `property`, which - * can be a string using dot- and bracket-notation for nested reference. The - * property cannot exist on the object nor anywhere in its prototype chain. - * - * assert.notNestedProperty({ tea: { green: 'matcha' }}, 'tea.oolong'); - * - * @name notNestedProperty - * @param {Object} object - * @param {String} property - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notNestedProperty = function (obj, prop, msg) { - new Assertion(obj, msg, assert.notNestedProperty, true) - .to.not.have.nested.property(prop); - }; - - /** - * ### .nestedPropertyVal(object, property, value, [message]) - * - * Asserts that `object` has a property named by `property` with value given - * by `value`. `property` can use dot- and bracket-notation for nested - * reference. Uses a strict equality check (===). - * - * assert.nestedPropertyVal({ tea: { green: 'matcha' }}, 'tea.green', 'matcha'); - * - * @name nestedPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.nestedPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.nestedPropertyVal, true) - .to.have.nested.property(prop, val); - }; - - /** - * ### .notNestedPropertyVal(object, property, value, [message]) - * - * Asserts that `object` does _not_ have a property named by `property` with - * value given by `value`. `property` can use dot- and bracket-notation for - * nested reference. Uses a strict equality check (===). - * - * assert.notNestedPropertyVal({ tea: { green: 'matcha' }}, 'tea.green', 'konacha'); - * assert.notNestedPropertyVal({ tea: { green: 'matcha' }}, 'coffee.green', 'matcha'); - * - * @name notNestedPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notNestedPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.notNestedPropertyVal, true) - .to.not.have.nested.property(prop, val); - }; - - /** - * ### .deepNestedPropertyVal(object, property, value, [message]) - * - * Asserts that `object` has a property named by `property` with a value given - * by `value`. `property` can use dot- and bracket-notation for nested - * reference. Uses a deep equality check. - * - * assert.deepNestedPropertyVal({ tea: { green: { matcha: 'yum' } } }, 'tea.green', { matcha: 'yum' }); - * - * @name deepNestedPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.deepNestedPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.deepNestedPropertyVal, true) - .to.have.deep.nested.property(prop, val); - }; - - /** - * ### .notDeepNestedPropertyVal(object, property, value, [message]) - * - * Asserts that `object` does _not_ have a property named by `property` with - * value given by `value`. `property` can use dot- and bracket-notation for - * nested reference. Uses a deep equality check. - * - * assert.notDeepNestedPropertyVal({ tea: { green: { matcha: 'yum' } } }, 'tea.green', { oolong: 'yum' }); - * assert.notDeepNestedPropertyVal({ tea: { green: { matcha: 'yum' } } }, 'tea.green', { matcha: 'yuck' }); - * assert.notDeepNestedPropertyVal({ tea: { green: { matcha: 'yum' } } }, 'tea.black', { matcha: 'yum' }); - * - * @name notDeepNestedPropertyVal - * @param {Object} object - * @param {String} property - * @param {Mixed} value - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notDeepNestedPropertyVal = function (obj, prop, val, msg) { - new Assertion(obj, msg, assert.notDeepNestedPropertyVal, true) - .to.not.have.deep.nested.property(prop, val); - } - - /** - * ### .lengthOf(object, length, [message]) - * - * Asserts that `object` has a `length` or `size` with the expected value. - * - * assert.lengthOf([1,2,3], 3, 'array has length of 3'); - * assert.lengthOf('foobar', 6, 'string has length of 6'); - * assert.lengthOf(new Set([1,2,3]), 3, 'set has size of 3'); - * assert.lengthOf(new Map([['a',1],['b',2],['c',3]]), 3, 'map has size of 3'); - * - * @name lengthOf - * @param {Mixed} object - * @param {Number} length - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.lengthOf = function (exp, len, msg) { - new Assertion(exp, msg, assert.lengthOf, true).to.have.lengthOf(len); - }; - - /** - * ### .hasAnyKeys(object, [keys], [message]) - * - * Asserts that `object` has at least one of the `keys` provided. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.hasAnyKeys({foo: 1, bar: 2, baz: 3}, ['foo', 'iDontExist', 'baz']); - * assert.hasAnyKeys({foo: 1, bar: 2, baz: 3}, {foo: 30, iDontExist: 99, baz: 1337}); - * assert.hasAnyKeys(new Map([[{foo: 1}, 'bar'], ['key', 'value']]), [{foo: 1}, 'key']); - * assert.hasAnyKeys(new Set([{foo: 'bar'}, 'anotherKey']), [{foo: 'bar'}, 'anotherKey']); - * - * @name hasAnyKeys - * @param {Mixed} object - * @param {Array|Object} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.hasAnyKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.hasAnyKeys, true).to.have.any.keys(keys); - } - - /** - * ### .hasAllKeys(object, [keys], [message]) - * - * Asserts that `object` has all and only all of the `keys` provided. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.hasAllKeys({foo: 1, bar: 2, baz: 3}, ['foo', 'bar', 'baz']); - * assert.hasAllKeys({foo: 1, bar: 2, baz: 3}, {foo: 30, bar: 99, baz: 1337]); - * assert.hasAllKeys(new Map([[{foo: 1}, 'bar'], ['key', 'value']]), [{foo: 1}, 'key']); - * assert.hasAllKeys(new Set([{foo: 'bar'}, 'anotherKey'], [{foo: 'bar'}, 'anotherKey']); - * - * @name hasAllKeys - * @param {Mixed} object - * @param {String[]} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.hasAllKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.hasAllKeys, true).to.have.all.keys(keys); - } - - /** - * ### .containsAllKeys(object, [keys], [message]) - * - * Asserts that `object` has all of the `keys` provided but may have more keys not listed. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.containsAllKeys({foo: 1, bar: 2, baz: 3}, ['foo', 'baz']); - * assert.containsAllKeys({foo: 1, bar: 2, baz: 3}, ['foo', 'bar', 'baz']); - * assert.containsAllKeys({foo: 1, bar: 2, baz: 3}, {foo: 30, baz: 1337}); - * assert.containsAllKeys({foo: 1, bar: 2, baz: 3}, {foo: 30, bar: 99, baz: 1337}); - * assert.containsAllKeys(new Map([[{foo: 1}, 'bar'], ['key', 'value']]), [{foo: 1}]); - * assert.containsAllKeys(new Map([[{foo: 1}, 'bar'], ['key', 'value']]), [{foo: 1}, 'key']); - * assert.containsAllKeys(new Set([{foo: 'bar'}, 'anotherKey'], [{foo: 'bar'}]); - * assert.containsAllKeys(new Set([{foo: 'bar'}, 'anotherKey'], [{foo: 'bar'}, 'anotherKey']); - * - * @name containsAllKeys - * @param {Mixed} object - * @param {String[]} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.containsAllKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.containsAllKeys, true) - .to.contain.all.keys(keys); - } - - /** - * ### .doesNotHaveAnyKeys(object, [keys], [message]) - * - * Asserts that `object` has none of the `keys` provided. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.doesNotHaveAnyKeys({foo: 1, bar: 2, baz: 3}, ['one', 'two', 'example']); - * assert.doesNotHaveAnyKeys({foo: 1, bar: 2, baz: 3}, {one: 1, two: 2, example: 'foo'}); - * assert.doesNotHaveAnyKeys(new Map([[{foo: 1}, 'bar'], ['key', 'value']]), [{one: 'two'}, 'example']); - * assert.doesNotHaveAnyKeys(new Set([{foo: 'bar'}, 'anotherKey'], [{one: 'two'}, 'example']); - * - * @name doesNotHaveAnyKeys - * @param {Mixed} object - * @param {String[]} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.doesNotHaveAnyKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAnyKeys, true) - .to.not.have.any.keys(keys); - } - - /** - * ### .doesNotHaveAllKeys(object, [keys], [message]) - * - * Asserts that `object` does not have at least one of the `keys` provided. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.doesNotHaveAllKeys({foo: 1, bar: 2, baz: 3}, ['one', 'two', 'example']); - * assert.doesNotHaveAllKeys({foo: 1, bar: 2, baz: 3}, {one: 1, two: 2, example: 'foo'}); - * assert.doesNotHaveAllKeys(new Map([[{foo: 1}, 'bar'], ['key', 'value']]), [{one: 'two'}, 'example']); - * assert.doesNotHaveAllKeys(new Set([{foo: 'bar'}, 'anotherKey'], [{one: 'two'}, 'example']); - * - * @name doesNotHaveAllKeys - * @param {Mixed} object - * @param {String[]} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.doesNotHaveAllKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAllKeys, true) - .to.not.have.all.keys(keys); - } - - /** - * ### .hasAnyDeepKeys(object, [keys], [message]) - * - * Asserts that `object` has at least one of the `keys` provided. - * Since Sets and Maps can have objects as keys you can use this assertion to perform - * a deep comparison. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.hasAnyDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [1, 2]]), {one: 'one'}); - * assert.hasAnyDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [1, 2]]), [{one: 'one'}, {two: 'two'}]); - * assert.hasAnyDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [{two: 'two'}, 'valueTwo']]), [{one: 'one'}, {two: 'two'}]); - * assert.hasAnyDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), {one: 'one'}); - * assert.hasAnyDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), [{one: 'one'}, {three: 'three'}]); - * assert.hasAnyDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), [{one: 'one'}, {two: 'two'}]); - * - * @name hasAnyDeepKeys - * @param {Mixed} object - * @param {Array|Object} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.hasAnyDeepKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.hasAnyDeepKeys, true) - .to.have.any.deep.keys(keys); - } - - /** - * ### .hasAllDeepKeys(object, [keys], [message]) - * - * Asserts that `object` has all and only all of the `keys` provided. - * Since Sets and Maps can have objects as keys you can use this assertion to perform - * a deep comparison. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.hasAllDeepKeys(new Map([[{one: 'one'}, 'valueOne']]), {one: 'one'}); - * assert.hasAllDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [{two: 'two'}, 'valueTwo']]), [{one: 'one'}, {two: 'two'}]); - * assert.hasAllDeepKeys(new Set([{one: 'one'}]), {one: 'one'}); - * assert.hasAllDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), [{one: 'one'}, {two: 'two'}]); - * - * @name hasAllDeepKeys - * @param {Mixed} object - * @param {Array|Object} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.hasAllDeepKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.hasAllDeepKeys, true) - .to.have.all.deep.keys(keys); - } - - /** - * ### .containsAllDeepKeys(object, [keys], [message]) - * - * Asserts that `object` contains all of the `keys` provided. - * Since Sets and Maps can have objects as keys you can use this assertion to perform - * a deep comparison. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.containsAllDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [1, 2]]), {one: 'one'}); - * assert.containsAllDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [{two: 'two'}, 'valueTwo']]), [{one: 'one'}, {two: 'two'}]); - * assert.containsAllDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), {one: 'one'}); - * assert.containsAllDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), [{one: 'one'}, {two: 'two'}]); - * - * @name containsAllDeepKeys - * @param {Mixed} object - * @param {Array|Object} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.containsAllDeepKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.containsAllDeepKeys, true) - .to.contain.all.deep.keys(keys); - } - - /** - * ### .doesNotHaveAnyDeepKeys(object, [keys], [message]) - * - * Asserts that `object` has none of the `keys` provided. - * Since Sets and Maps can have objects as keys you can use this assertion to perform - * a deep comparison. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.doesNotHaveAnyDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [1, 2]]), {thisDoesNot: 'exist'}); - * assert.doesNotHaveAnyDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [{two: 'two'}, 'valueTwo']]), [{twenty: 'twenty'}, {fifty: 'fifty'}]); - * assert.doesNotHaveAnyDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), {twenty: 'twenty'}); - * assert.doesNotHaveAnyDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), [{twenty: 'twenty'}, {fifty: 'fifty'}]); - * - * @name doesNotHaveAnyDeepKeys - * @param {Mixed} object - * @param {Array|Object} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.doesNotHaveAnyDeepKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAnyDeepKeys, true) - .to.not.have.any.deep.keys(keys); - } - - /** - * ### .doesNotHaveAllDeepKeys(object, [keys], [message]) - * - * Asserts that `object` does not have at least one of the `keys` provided. - * Since Sets and Maps can have objects as keys you can use this assertion to perform - * a deep comparison. - * You can also provide a single object instead of a `keys` array and its keys - * will be used as the expected set of keys. - * - * assert.doesNotHaveAllDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [1, 2]]), {thisDoesNot: 'exist'}); - * assert.doesNotHaveAllDeepKeys(new Map([[{one: 'one'}, 'valueOne'], [{two: 'two'}, 'valueTwo']]), [{twenty: 'twenty'}, {one: 'one'}]); - * assert.doesNotHaveAllDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), {twenty: 'twenty'}); - * assert.doesNotHaveAllDeepKeys(new Set([{one: 'one'}, {two: 'two'}]), [{one: 'one'}, {fifty: 'fifty'}]); - * - * @name doesNotHaveAllDeepKeys - * @param {Mixed} object - * @param {Array|Object} keys - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.doesNotHaveAllDeepKeys = function (obj, keys, msg) { - new Assertion(obj, msg, assert.doesNotHaveAllDeepKeys, true) - .to.not.have.all.deep.keys(keys); - } - - /** - * ### .throws(fn, [errorLike/string/regexp], [string/regexp], [message]) - * - * If `errorLike` is an `Error` constructor, asserts that `fn` will throw an error that is an - * instance of `errorLike`. - * If `errorLike` is an `Error` instance, asserts that the error thrown is the same - * instance as `errorLike`. - * If `errMsgMatcher` is provided, it also asserts that the error thrown will have a - * message matching `errMsgMatcher`. - * - * assert.throws(fn, 'Error thrown must have this msg'); - * assert.throws(fn, /Error thrown must have a msg that matches this/); - * assert.throws(fn, ReferenceError); - * assert.throws(fn, errorInstance); - * assert.throws(fn, ReferenceError, 'Error thrown must be a ReferenceError and have this msg'); - * assert.throws(fn, errorInstance, 'Error thrown must be the same errorInstance and have this msg'); - * assert.throws(fn, ReferenceError, /Error thrown must be a ReferenceError and match this/); - * assert.throws(fn, errorInstance, /Error thrown must be the same errorInstance and match this/); - * - * @name throws - * @alias throw - * @alias Throw - * @param {Function} fn - * @param {ErrorConstructor|Error} errorLike - * @param {RegExp|String} errMsgMatcher - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Assert - * @api public - */ - - assert.throws = function (fn, errorLike, errMsgMatcher, msg) { - if ('string' === typeof errorLike || errorLike instanceof RegExp) { - errMsgMatcher = errorLike; - errorLike = null; - } - - var assertErr = new Assertion(fn, msg, assert.throws, true) - .to.throw(errorLike, errMsgMatcher); - return flag(assertErr, 'object'); - }; - - /** - * ### .doesNotThrow(fn, [errorLike/string/regexp], [string/regexp], [message]) - * - * If `errorLike` is an `Error` constructor, asserts that `fn` will _not_ throw an error that is an - * instance of `errorLike`. - * If `errorLike` is an `Error` instance, asserts that the error thrown is _not_ the same - * instance as `errorLike`. - * If `errMsgMatcher` is provided, it also asserts that the error thrown will _not_ have a - * message matching `errMsgMatcher`. - * - * assert.doesNotThrow(fn, 'Any Error thrown must not have this message'); - * assert.doesNotThrow(fn, /Any Error thrown must not match this/); - * assert.doesNotThrow(fn, Error); - * assert.doesNotThrow(fn, errorInstance); - * assert.doesNotThrow(fn, Error, 'Error must not have this message'); - * assert.doesNotThrow(fn, errorInstance, 'Error must not have this message'); - * assert.doesNotThrow(fn, Error, /Error must not match this/); - * assert.doesNotThrow(fn, errorInstance, /Error must not match this/); - * - * @name doesNotThrow - * @param {Function} fn - * @param {ErrorConstructor} errorLike - * @param {RegExp|String} errMsgMatcher - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Assert - * @api public - */ - - assert.doesNotThrow = function (fn, errorLike, errMsgMatcher, msg) { - if ('string' === typeof errorLike || errorLike instanceof RegExp) { - errMsgMatcher = errorLike; - errorLike = null; - } - - new Assertion(fn, msg, assert.doesNotThrow, true) - .to.not.throw(errorLike, errMsgMatcher); - }; - - /** - * ### .operator(val1, operator, val2, [message]) - * - * Compares two values using `operator`. - * - * assert.operator(1, '<', 2, 'everything is ok'); - * assert.operator(1, '>', 2, 'this will fail'); - * - * @name operator - * @param {Mixed} val1 - * @param {String} operator - * @param {Mixed} val2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.operator = function (val, operator, val2, msg) { - var ok; - switch(operator) { - case '==': - ok = val == val2; - break; - case '===': - ok = val === val2; - break; - case '>': - ok = val > val2; - break; - case '>=': - ok = val >= val2; - break; - case '<': - ok = val < val2; - break; - case '<=': - ok = val <= val2; - break; - case '!=': - ok = val != val2; - break; - case '!==': - ok = val !== val2; - break; - default: - msg = msg ? msg + ': ' : msg; - throw new chai.AssertionError( - msg + 'Invalid operator "' + operator + '"', - undefined, - assert.operator - ); - } - var test = new Assertion(ok, msg, assert.operator, true); - test.assert( - true === flag(test, 'object') - , 'expected ' + util.inspect(val) + ' to be ' + operator + ' ' + util.inspect(val2) - , 'expected ' + util.inspect(val) + ' to not be ' + operator + ' ' + util.inspect(val2) ); - }; - - /** - * ### .closeTo(actual, expected, delta, [message]) - * - * Asserts that the target is equal `expected`, to within a +/- `delta` range. - * - * assert.closeTo(1.5, 1, 0.5, 'numbers are close'); - * - * @name closeTo - * @param {Number} actual - * @param {Number} expected - * @param {Number} delta - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.closeTo = function (act, exp, delta, msg) { - new Assertion(act, msg, assert.closeTo, true).to.be.closeTo(exp, delta); - }; - - /** - * ### .approximately(actual, expected, delta, [message]) - * - * Asserts that the target is equal `expected`, to within a +/- `delta` range. - * - * assert.approximately(1.5, 1, 0.5, 'numbers are close'); - * - * @name approximately - * @param {Number} actual - * @param {Number} expected - * @param {Number} delta - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.approximately = function (act, exp, delta, msg) { - new Assertion(act, msg, assert.approximately, true) - .to.be.approximately(exp, delta); - }; - - /** - * ### .sameMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` have the same members in any order. Uses a - * strict equality check (===). - * - * assert.sameMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'same members'); - * - * @name sameMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.sameMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.sameMembers, true) - .to.have.same.members(set2); - } - - /** - * ### .notSameMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` don't have the same members in any order. - * Uses a strict equality check (===). - * - * assert.notSameMembers([ 1, 2, 3 ], [ 5, 1, 3 ], 'not same members'); - * - * @name notSameMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notSameMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.notSameMembers, true) - .to.not.have.same.members(set2); - } - - /** - * ### .sameDeepMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` have the same members in any order. Uses a - * deep equality check. - * - * assert.sameDeepMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [{ b: 2 }, { a: 1 }, { c: 3 }], 'same deep members'); - * - * @name sameDeepMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.sameDeepMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.sameDeepMembers, true) - .to.have.same.deep.members(set2); - } - - /** - * ### .notSameDeepMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` don't have the same members in any order. - * Uses a deep equality check. - * - * assert.notSameDeepMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [{ b: 2 }, { a: 1 }, { f: 5 }], 'not same deep members'); - * - * @name notSameDeepMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notSameDeepMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.notSameDeepMembers, true) - .to.not.have.same.deep.members(set2); - } - - /** - * ### .sameOrderedMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` have the same members in the same order. - * Uses a strict equality check (===). - * - * assert.sameOrderedMembers([ 1, 2, 3 ], [ 1, 2, 3 ], 'same ordered members'); - * - * @name sameOrderedMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.sameOrderedMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.sameOrderedMembers, true) - .to.have.same.ordered.members(set2); - } - - /** - * ### .notSameOrderedMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` don't have the same members in the same - * order. Uses a strict equality check (===). - * - * assert.notSameOrderedMembers([ 1, 2, 3 ], [ 2, 1, 3 ], 'not same ordered members'); - * - * @name notSameOrderedMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notSameOrderedMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.notSameOrderedMembers, true) - .to.not.have.same.ordered.members(set2); - } - - /** - * ### .sameDeepOrderedMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` have the same members in the same order. - * Uses a deep equality check. - * - * assert.sameDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { a: 1 }, { b: 2 }, { c: 3 } ], 'same deep ordered members'); - * - * @name sameDeepOrderedMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.sameDeepOrderedMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.sameDeepOrderedMembers, true) - .to.have.same.deep.ordered.members(set2); - } - - /** - * ### .notSameDeepOrderedMembers(set1, set2, [message]) - * - * Asserts that `set1` and `set2` don't have the same members in the same - * order. Uses a deep equality check. - * - * assert.notSameDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { a: 1 }, { b: 2 }, { z: 5 } ], 'not same deep ordered members'); - * assert.notSameDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { b: 2 }, { a: 1 }, { c: 3 } ], 'not same deep ordered members'); - * - * @name notSameDeepOrderedMembers - * @param {Array} set1 - * @param {Array} set2 - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notSameDeepOrderedMembers = function (set1, set2, msg) { - new Assertion(set1, msg, assert.notSameDeepOrderedMembers, true) - .to.not.have.same.deep.ordered.members(set2); - } - - /** - * ### .includeMembers(superset, subset, [message]) - * - * Asserts that `subset` is included in `superset` in any order. Uses a - * strict equality check (===). Duplicates are ignored. - * - * assert.includeMembers([ 1, 2, 3 ], [ 2, 1, 2 ], 'include members'); - * - * @name includeMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.includeMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.includeMembers, true) - .to.include.members(subset); - } - - /** - * ### .notIncludeMembers(superset, subset, [message]) - * - * Asserts that `subset` isn't included in `superset` in any order. Uses a - * strict equality check (===). Duplicates are ignored. - * - * assert.notIncludeMembers([ 1, 2, 3 ], [ 5, 1 ], 'not include members'); - * - * @name notIncludeMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notIncludeMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeMembers, true) - .to.not.include.members(subset); - } - - /** - * ### .includeDeepMembers(superset, subset, [message]) - * - * Asserts that `subset` is included in `superset` in any order. Uses a deep - * equality check. Duplicates are ignored. - * - * assert.includeDeepMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { b: 2 }, { a: 1 }, { b: 2 } ], 'include deep members'); - * - * @name includeDeepMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.includeDeepMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.includeDeepMembers, true) - .to.include.deep.members(subset); - } - - /** - * ### .notIncludeDeepMembers(superset, subset, [message]) - * - * Asserts that `subset` isn't included in `superset` in any order. Uses a - * deep equality check. Duplicates are ignored. - * - * assert.notIncludeDeepMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { b: 2 }, { f: 5 } ], 'not include deep members'); - * - * @name notIncludeDeepMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notIncludeDeepMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeDeepMembers, true) - .to.not.include.deep.members(subset); - } - - /** - * ### .includeOrderedMembers(superset, subset, [message]) - * - * Asserts that `subset` is included in `superset` in the same order - * beginning with the first element in `superset`. Uses a strict equality - * check (===). - * - * assert.includeOrderedMembers([ 1, 2, 3 ], [ 1, 2 ], 'include ordered members'); - * - * @name includeOrderedMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.includeOrderedMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.includeOrderedMembers, true) - .to.include.ordered.members(subset); - } - - /** - * ### .notIncludeOrderedMembers(superset, subset, [message]) - * - * Asserts that `subset` isn't included in `superset` in the same order - * beginning with the first element in `superset`. Uses a strict equality - * check (===). - * - * assert.notIncludeOrderedMembers([ 1, 2, 3 ], [ 2, 1 ], 'not include ordered members'); - * assert.notIncludeOrderedMembers([ 1, 2, 3 ], [ 2, 3 ], 'not include ordered members'); - * - * @name notIncludeOrderedMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notIncludeOrderedMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeOrderedMembers, true) - .to.not.include.ordered.members(subset); - } - - /** - * ### .includeDeepOrderedMembers(superset, subset, [message]) - * - * Asserts that `subset` is included in `superset` in the same order - * beginning with the first element in `superset`. Uses a deep equality - * check. - * - * assert.includeDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { a: 1 }, { b: 2 } ], 'include deep ordered members'); - * - * @name includeDeepOrderedMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.includeDeepOrderedMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.includeDeepOrderedMembers, true) - .to.include.deep.ordered.members(subset); - } - - /** - * ### .notIncludeDeepOrderedMembers(superset, subset, [message]) - * - * Asserts that `subset` isn't included in `superset` in the same order - * beginning with the first element in `superset`. Uses a deep equality - * check. - * - * assert.notIncludeDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { a: 1 }, { f: 5 } ], 'not include deep ordered members'); - * assert.notIncludeDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { b: 2 }, { a: 1 } ], 'not include deep ordered members'); - * assert.notIncludeDeepOrderedMembers([ { a: 1 }, { b: 2 }, { c: 3 } ], [ { b: 2 }, { c: 3 } ], 'not include deep ordered members'); - * - * @name notIncludeDeepOrderedMembers - * @param {Array} superset - * @param {Array} subset - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.notIncludeDeepOrderedMembers = function (superset, subset, msg) { - new Assertion(superset, msg, assert.notIncludeDeepOrderedMembers, true) - .to.not.include.deep.ordered.members(subset); - } - - /** - * ### .oneOf(inList, list, [message]) - * - * Asserts that non-object, non-array value `inList` appears in the flat array `list`. - * - * assert.oneOf(1, [ 2, 1 ], 'Not found in list'); - * - * @name oneOf - * @param {*} inList - * @param {Array<*>} list - * @param {String} message - * @namespace Assert - * @api public - */ - - assert.oneOf = function (inList, list, msg) { - new Assertion(inList, msg, assert.oneOf, true).to.be.oneOf(list); - } - - /** - * ### .changes(function, object, property, [message]) - * - * Asserts that a function changes the value of a property. - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 22 }; - * assert.changes(fn, obj, 'val'); - * - * @name changes - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.changes = function (fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === 'function') { - msg = prop; - prop = null; - } - - new Assertion(fn, msg, assert.changes, true).to.change(obj, prop); - } - - /** - * ### .changesBy(function, object, property, delta, [message]) - * - * Asserts that a function changes the value of a property by an amount (delta). - * - * var obj = { val: 10 }; - * var fn = function() { obj.val += 2 }; - * assert.changesBy(fn, obj, 'val', 2); - * - * @name changesBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.changesBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - new Assertion(fn, msg, assert.changesBy, true) - .to.change(obj, prop).by(delta); - } - - /** - * ### .doesNotChange(function, object, property, [message]) - * - * Asserts that a function does not change the value of a property. - * - * var obj = { val: 10 }; - * var fn = function() { console.log('foo'); }; - * assert.doesNotChange(fn, obj, 'val'); - * - * @name doesNotChange - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotChange = function (fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === 'function') { - msg = prop; - prop = null; - } - - return new Assertion(fn, msg, assert.doesNotChange, true) - .to.not.change(obj, prop); - } - - /** - * ### .changesButNotBy(function, object, property, delta, [message]) - * - * Asserts that a function does not change the value of a property or of a function's return value by an amount (delta) - * - * var obj = { val: 10 }; - * var fn = function() { obj.val += 10 }; - * assert.changesButNotBy(fn, obj, 'val', 5); - * - * @name changesButNotBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.changesButNotBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - new Assertion(fn, msg, assert.changesButNotBy, true) - .to.change(obj, prop).but.not.by(delta); - } - - /** - * ### .increases(function, object, property, [message]) - * - * Asserts that a function increases a numeric object property. - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 13 }; - * assert.increases(fn, obj, 'val'); - * - * @name increases - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.increases = function (fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === 'function') { - msg = prop; - prop = null; - } - - return new Assertion(fn, msg, assert.increases, true) - .to.increase(obj, prop); - } - - /** - * ### .increasesBy(function, object, property, delta, [message]) - * - * Asserts that a function increases a numeric object property or a function's return value by an amount (delta). - * - * var obj = { val: 10 }; - * var fn = function() { obj.val += 10 }; - * assert.increasesBy(fn, obj, 'val', 10); - * - * @name increasesBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.increasesBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - new Assertion(fn, msg, assert.increasesBy, true) - .to.increase(obj, prop).by(delta); - } - - /** - * ### .doesNotIncrease(function, object, property, [message]) - * - * Asserts that a function does not increase a numeric object property. - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 8 }; - * assert.doesNotIncrease(fn, obj, 'val'); - * - * @name doesNotIncrease - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotIncrease = function (fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === 'function') { - msg = prop; - prop = null; - } - - return new Assertion(fn, msg, assert.doesNotIncrease, true) - .to.not.increase(obj, prop); - } - - /** - * ### .increasesButNotBy(function, object, property, delta, [message]) - * - * Asserts that a function does not increase a numeric object property or function's return value by an amount (delta). - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 15 }; - * assert.increasesButNotBy(fn, obj, 'val', 10); - * - * @name increasesButNotBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.increasesButNotBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - new Assertion(fn, msg, assert.increasesButNotBy, true) - .to.increase(obj, prop).but.not.by(delta); - } - - /** - * ### .decreases(function, object, property, [message]) - * - * Asserts that a function decreases a numeric object property. - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 5 }; - * assert.decreases(fn, obj, 'val'); - * - * @name decreases - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.decreases = function (fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === 'function') { - msg = prop; - prop = null; - } - - return new Assertion(fn, msg, assert.decreases, true) - .to.decrease(obj, prop); - } - - /** - * ### .decreasesBy(function, object, property, delta, [message]) - * - * Asserts that a function decreases a numeric object property or a function's return value by an amount (delta) - * - * var obj = { val: 10 }; - * var fn = function() { obj.val -= 5 }; - * assert.decreasesBy(fn, obj, 'val', 5); - * - * @name decreasesBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.decreasesBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - new Assertion(fn, msg, assert.decreasesBy, true) - .to.decrease(obj, prop).by(delta); - } - - /** - * ### .doesNotDecrease(function, object, property, [message]) - * - * Asserts that a function does not decreases a numeric object property. - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 15 }; - * assert.doesNotDecrease(fn, obj, 'val'); - * - * @name doesNotDecrease - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotDecrease = function (fn, obj, prop, msg) { - if (arguments.length === 3 && typeof obj === 'function') { - msg = prop; - prop = null; - } - - return new Assertion(fn, msg, assert.doesNotDecrease, true) - .to.not.decrease(obj, prop); - } - - /** - * ### .doesNotDecreaseBy(function, object, property, delta, [message]) - * - * Asserts that a function does not decreases a numeric object property or a function's return value by an amount (delta) - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 5 }; - * assert.doesNotDecreaseBy(fn, obj, 'val', 1); - * - * @name doesNotDecreaseBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.doesNotDecreaseBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - return new Assertion(fn, msg, assert.doesNotDecreaseBy, true) - .to.not.decrease(obj, prop).by(delta); - } - - /** - * ### .decreasesButNotBy(function, object, property, delta, [message]) - * - * Asserts that a function does not decreases a numeric object property or a function's return value by an amount (delta) - * - * var obj = { val: 10 }; - * var fn = function() { obj.val = 5 }; - * assert.decreasesButNotBy(fn, obj, 'val', 1); - * - * @name decreasesButNotBy - * @param {Function} modifier function - * @param {Object} object or getter function - * @param {String} property name _optional_ - * @param {Number} change amount (delta) - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.decreasesButNotBy = function (fn, obj, prop, delta, msg) { - if (arguments.length === 4 && typeof obj === 'function') { - var tmpMsg = delta; - delta = prop; - msg = tmpMsg; - } else if (arguments.length === 3) { - delta = prop; - prop = null; - } - - new Assertion(fn, msg, assert.decreasesButNotBy, true) - .to.decrease(obj, prop).but.not.by(delta); - } - - /*! - * ### .ifError(object) - * - * Asserts if value is not a false value, and throws if it is a true value. - * This is added to allow for chai to be a drop-in replacement for Node's - * assert class. - * - * var err = new Error('I am a custom error'); - * assert.ifError(err); // Rethrows err! - * - * @name ifError - * @param {Object} object - * @namespace Assert - * @api public - */ - - assert.ifError = function (val) { - if (val) { - throw(val); - } - }; - - /** - * ### .isExtensible(object) - * - * Asserts that `object` is extensible (can have new properties added to it). - * - * assert.isExtensible({}); - * - * @name isExtensible - * @alias extensible - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isExtensible = function (obj, msg) { - new Assertion(obj, msg, assert.isExtensible, true).to.be.extensible; - }; - - /** - * ### .isNotExtensible(object) - * - * Asserts that `object` is _not_ extensible. - * - * var nonExtensibleObject = Object.preventExtensions({}); - * var sealedObject = Object.seal({}); - * var frozenObject = Object.freeze({}); - * - * assert.isNotExtensible(nonExtensibleObject); - * assert.isNotExtensible(sealedObject); - * assert.isNotExtensible(frozenObject); - * - * @name isNotExtensible - * @alias notExtensible - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotExtensible = function (obj, msg) { - new Assertion(obj, msg, assert.isNotExtensible, true).to.not.be.extensible; - }; - - /** - * ### .isSealed(object) - * - * Asserts that `object` is sealed (cannot have new properties added to it - * and its existing properties cannot be removed). - * - * var sealedObject = Object.seal({}); - * var frozenObject = Object.seal({}); - * - * assert.isSealed(sealedObject); - * assert.isSealed(frozenObject); - * - * @name isSealed - * @alias sealed - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isSealed = function (obj, msg) { - new Assertion(obj, msg, assert.isSealed, true).to.be.sealed; - }; - - /** - * ### .isNotSealed(object) - * - * Asserts that `object` is _not_ sealed. - * - * assert.isNotSealed({}); - * - * @name isNotSealed - * @alias notSealed - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotSealed = function (obj, msg) { - new Assertion(obj, msg, assert.isNotSealed, true).to.not.be.sealed; - }; - - /** - * ### .isFrozen(object) - * - * Asserts that `object` is frozen (cannot have new properties added to it - * and its existing properties cannot be modified). - * - * var frozenObject = Object.freeze({}); - * assert.frozen(frozenObject); - * - * @name isFrozen - * @alias frozen - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isFrozen = function (obj, msg) { - new Assertion(obj, msg, assert.isFrozen, true).to.be.frozen; - }; - - /** - * ### .isNotFrozen(object) - * - * Asserts that `object` is _not_ frozen. - * - * assert.isNotFrozen({}); - * - * @name isNotFrozen - * @alias notFrozen - * @param {Object} object - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotFrozen = function (obj, msg) { - new Assertion(obj, msg, assert.isNotFrozen, true).to.not.be.frozen; - }; - - /** - * ### .isEmpty(target) - * - * Asserts that the target does not contain any values. - * For arrays and strings, it checks the `length` property. - * For `Map` and `Set` instances, it checks the `size` property. - * For non-function objects, it gets the count of own - * enumerable string keys. - * - * assert.isEmpty([]); - * assert.isEmpty(''); - * assert.isEmpty(new Map); - * assert.isEmpty({}); - * - * @name isEmpty - * @alias empty - * @param {Object|Array|String|Map|Set} target - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isEmpty = function(val, msg) { - new Assertion(val, msg, assert.isEmpty, true).to.be.empty; - }; - - /** - * ### .isNotEmpty(target) - * - * Asserts that the target contains values. - * For arrays and strings, it checks the `length` property. - * For `Map` and `Set` instances, it checks the `size` property. - * For non-function objects, it gets the count of own - * enumerable string keys. - * - * assert.isNotEmpty([1, 2]); - * assert.isNotEmpty('34'); - * assert.isNotEmpty(new Set([5, 6])); - * assert.isNotEmpty({ key: 7 }); - * - * @name isNotEmpty - * @alias notEmpty - * @param {Object|Array|String|Map|Set} target - * @param {String} message _optional_ - * @namespace Assert - * @api public - */ - - assert.isNotEmpty = function(val, msg) { - new Assertion(val, msg, assert.isNotEmpty, true).to.not.be.empty; - }; - - /*! - * Aliases. - */ - - (function alias(name, as){ - assert[as] = assert[name]; - return alias; - }) - ('isOk', 'ok') - ('isNotOk', 'notOk') - ('throws', 'throw') - ('throws', 'Throw') - ('isExtensible', 'extensible') - ('isNotExtensible', 'notExtensible') - ('isSealed', 'sealed') - ('isNotSealed', 'notSealed') - ('isFrozen', 'frozen') - ('isNotFrozen', 'notFrozen') - ('isEmpty', 'empty') - ('isNotEmpty', 'notEmpty'); -}; - -},{}],7:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, util) { - chai.expect = function (val, message) { - return new chai.Assertion(val, message); - }; - - /** - * ### .fail([message]) - * ### .fail(actual, expected, [message], [operator]) - * - * Throw a failure. - * - * expect.fail(); - * expect.fail("custom error message"); - * expect.fail(1, 2); - * expect.fail(1, 2, "custom error message"); - * expect.fail(1, 2, "custom error message", ">"); - * expect.fail(1, 2, undefined, ">"); - * - * @name fail - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @param {String} operator - * @namespace BDD - * @api public - */ - - chai.expect.fail = function (actual, expected, message, operator) { - if (arguments.length < 2) { - message = actual; - actual = undefined; - } - - message = message || 'expect.fail()'; - throw new chai.AssertionError(message, { - actual: actual - , expected: expected - , operator: operator - }, chai.expect.fail); - }; -}; - -},{}],8:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011-2014 Jake Luer - * MIT Licensed - */ - -module.exports = function (chai, util) { - var Assertion = chai.Assertion; - - function loadShould () { - // explicitly define this method as function as to have it's name to include as `ssfi` - function shouldGetter() { - if (this instanceof String - || this instanceof Number - || this instanceof Boolean - || typeof Symbol === 'function' && this instanceof Symbol - || typeof BigInt === 'function' && this instanceof BigInt) { - return new Assertion(this.valueOf(), null, shouldGetter); - } - return new Assertion(this, null, shouldGetter); - } - function shouldSetter(value) { - // See https://github.com/chaijs/chai/issues/86: this makes - // `whatever.should = someValue` actually set `someValue`, which is - // especially useful for `global.should = require('chai').should()`. - // - // Note that we have to use [[DefineProperty]] instead of [[Put]] - // since otherwise we would trigger this very setter! - Object.defineProperty(this, 'should', { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } - // modify Object.prototype to have `should` - Object.defineProperty(Object.prototype, 'should', { - set: shouldSetter - , get: shouldGetter - , configurable: true - }); - - var should = {}; - - /** - * ### .fail([message]) - * ### .fail(actual, expected, [message], [operator]) - * - * Throw a failure. - * - * should.fail(); - * should.fail("custom error message"); - * should.fail(1, 2); - * should.fail(1, 2, "custom error message"); - * should.fail(1, 2, "custom error message", ">"); - * should.fail(1, 2, undefined, ">"); - * - * - * @name fail - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @param {String} operator - * @namespace BDD - * @api public - */ - - should.fail = function (actual, expected, message, operator) { - if (arguments.length < 2) { - message = actual; - actual = undefined; - } - - message = message || 'should.fail()'; - throw new chai.AssertionError(message, { - actual: actual - , expected: expected - , operator: operator - }, should.fail); - }; - - /** - * ### .equal(actual, expected, [message]) - * - * Asserts non-strict equality (`==`) of `actual` and `expected`. - * - * should.equal(3, '3', '== coerces values to strings'); - * - * @name equal - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Should - * @api public - */ - - should.equal = function (val1, val2, msg) { - new Assertion(val1, msg).to.equal(val2); - }; - - /** - * ### .throw(function, [constructor/string/regexp], [string/regexp], [message]) - * - * Asserts that `function` will throw an error that is an instance of - * `constructor`, or alternately that it will throw an error with message - * matching `regexp`. - * - * should.throw(fn, 'function throws a reference error'); - * should.throw(fn, /function throws a reference error/); - * should.throw(fn, ReferenceError); - * should.throw(fn, ReferenceError, 'function throws a reference error'); - * should.throw(fn, ReferenceError, /function throws a reference error/); - * - * @name throw - * @alias Throw - * @param {Function} function - * @param {ErrorConstructor} constructor - * @param {RegExp} regexp - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Should - * @api public - */ - - should.Throw = function (fn, errt, errs, msg) { - new Assertion(fn, msg).to.Throw(errt, errs); - }; - - /** - * ### .exist - * - * Asserts that the target is neither `null` nor `undefined`. - * - * var foo = 'hi'; - * - * should.exist(foo, 'foo exists'); - * - * @name exist - * @namespace Should - * @api public - */ - - should.exist = function (val, msg) { - new Assertion(val, msg).to.exist; - } - - // negation - should.not = {} - - /** - * ### .not.equal(actual, expected, [message]) - * - * Asserts non-strict inequality (`!=`) of `actual` and `expected`. - * - * should.not.equal(3, 4, 'these numbers are not equal'); - * - * @name not.equal - * @param {Mixed} actual - * @param {Mixed} expected - * @param {String} message - * @namespace Should - * @api public - */ - - should.not.equal = function (val1, val2, msg) { - new Assertion(val1, msg).to.not.equal(val2); - }; - - /** - * ### .throw(function, [constructor/regexp], [message]) - * - * Asserts that `function` will _not_ throw an error that is an instance of - * `constructor`, or alternately that it will not throw an error with message - * matching `regexp`. - * - * should.not.throw(fn, Error, 'function does not throw'); - * - * @name not.throw - * @alias not.Throw - * @param {Function} function - * @param {ErrorConstructor} constructor - * @param {RegExp} regexp - * @param {String} message - * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error#Error_types - * @namespace Should - * @api public - */ - - should.not.Throw = function (fn, errt, errs, msg) { - new Assertion(fn, msg).to.not.Throw(errt, errs); - }; - - /** - * ### .not.exist - * - * Asserts that the target is neither `null` nor `undefined`. - * - * var bar = null; - * - * should.not.exist(bar, 'bar does not exist'); - * - * @name not.exist - * @namespace Should - * @api public - */ - - should.not.exist = function (val, msg) { - new Assertion(val, msg).to.not.exist; - } - - should['throw'] = should['Throw']; - should.not['throw'] = should.not['Throw']; - - return should; - }; - - chai.should = loadShould; - chai.Should = loadShould; -}; - -},{}],9:[function(require,module,exports){ -/*! - * Chai - addChainingMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var addLengthGuard = require('./addLengthGuard'); -var chai = require('../../chai'); -var flag = require('./flag'); -var proxify = require('./proxify'); -var transferFlags = require('./transferFlags'); - -/*! - * Module variables - */ - -// Check whether `Object.setPrototypeOf` is supported -var canSetPrototype = typeof Object.setPrototypeOf === 'function'; - -// Without `Object.setPrototypeOf` support, this module will need to add properties to a function. -// However, some of functions' own props are not configurable and should be skipped. -var testFn = function() {}; -var excludeNames = Object.getOwnPropertyNames(testFn).filter(function(name) { - var propDesc = Object.getOwnPropertyDescriptor(testFn, name); - - // Note: PhantomJS 1.x includes `callee` as one of `testFn`'s own properties, - // but then returns `undefined` as the property descriptor for `callee`. As a - // workaround, we perform an otherwise unnecessary type-check for `propDesc`, - // and then filter it out if it's not an object as it should be. - if (typeof propDesc !== 'object') - return true; - - return !propDesc.configurable; -}); - -// Cache `Function` properties -var call = Function.prototype.call, - apply = Function.prototype.apply; - -/** - * ### .addChainableMethod(ctx, name, method, chainingBehavior) - * - * Adds a method to an object, such that the method can also be chained. - * - * utils.addChainableMethod(chai.Assertion.prototype, 'foo', function (str) { - * var obj = utils.flag(this, 'object'); - * new chai.Assertion(obj).to.be.equal(str); - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.addChainableMethod('foo', fn, chainingBehavior); - * - * The result can then be used as both a method assertion, executing both `method` and - * `chainingBehavior`, or as a language chain, which only executes `chainingBehavior`. - * - * expect(fooStr).to.be.foo('bar'); - * expect(fooStr).to.be.foo.equal('foo'); - * - * @param {Object} ctx object to which the method is added - * @param {String} name of method to add - * @param {Function} method function to be used for `name`, when called - * @param {Function} chainingBehavior function to be called every time the property is accessed - * @namespace Utils - * @name addChainableMethod - * @api public - */ - -module.exports = function addChainableMethod(ctx, name, method, chainingBehavior) { - if (typeof chainingBehavior !== 'function') { - chainingBehavior = function () { }; - } - - var chainableBehavior = { - method: method - , chainingBehavior: chainingBehavior - }; - - // save the methods so we can overwrite them later, if we need to. - if (!ctx.__methods) { - ctx.__methods = {}; - } - ctx.__methods[name] = chainableBehavior; - - Object.defineProperty(ctx, name, - { get: function chainableMethodGetter() { - chainableBehavior.chainingBehavior.call(this); - - var chainableMethodWrapper = function () { - // Setting the `ssfi` flag to `chainableMethodWrapper` causes this - // function to be the starting point for removing implementation - // frames from the stack trace of a failed assertion. - // - // However, we only want to use this function as the starting point if - // the `lockSsfi` flag isn't set. - // - // If the `lockSsfi` flag is set, then this assertion is being - // invoked from inside of another assertion. In this case, the `ssfi` - // flag has already been set by the outer assertion. - // - // Note that overwriting a chainable method merely replaces the saved - // methods in `ctx.__methods` instead of completely replacing the - // overwritten assertion. Therefore, an overwriting assertion won't - // set the `ssfi` or `lockSsfi` flags. - if (!flag(this, 'lockSsfi')) { - flag(this, 'ssfi', chainableMethodWrapper); - } - - var result = chainableBehavior.method.apply(this, arguments); - if (result !== undefined) { - return result; - } - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - - addLengthGuard(chainableMethodWrapper, name, true); - - // Use `Object.setPrototypeOf` if available - if (canSetPrototype) { - // Inherit all properties from the object by replacing the `Function` prototype - var prototype = Object.create(this); - // Restore the `call` and `apply` methods from `Function` - prototype.call = call; - prototype.apply = apply; - Object.setPrototypeOf(chainableMethodWrapper, prototype); - } - // Otherwise, redefine all properties (slow!) - else { - var asserterNames = Object.getOwnPropertyNames(ctx); - asserterNames.forEach(function (asserterName) { - if (excludeNames.indexOf(asserterName) !== -1) { - return; - } - - var pd = Object.getOwnPropertyDescriptor(ctx, asserterName); - Object.defineProperty(chainableMethodWrapper, asserterName, pd); - }); - } - - transferFlags(this, chainableMethodWrapper); - return proxify(chainableMethodWrapper); - } - , configurable: true - }); -}; - -},{"../../chai":2,"./addLengthGuard":10,"./flag":15,"./proxify":30,"./transferFlags":32}],10:[function(require,module,exports){ -var fnLengthDesc = Object.getOwnPropertyDescriptor(function () {}, 'length'); - -/*! - * Chai - addLengthGuard utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .addLengthGuard(fn, assertionName, isChainable) - * - * Define `length` as a getter on the given uninvoked method assertion. The - * getter acts as a guard against chaining `length` directly off of an uninvoked - * method assertion, which is a problem because it references `function`'s - * built-in `length` property instead of Chai's `length` assertion. When the - * getter catches the user making this mistake, it throws an error with a - * helpful message. - * - * There are two ways in which this mistake can be made. The first way is by - * chaining the `length` assertion directly off of an uninvoked chainable - * method. In this case, Chai suggests that the user use `lengthOf` instead. The - * second way is by chaining the `length` assertion directly off of an uninvoked - * non-chainable method. Non-chainable methods must be invoked prior to - * chaining. In this case, Chai suggests that the user consult the docs for the - * given assertion. - * - * If the `length` property of functions is unconfigurable, then return `fn` - * without modification. - * - * Note that in ES6, the function's `length` property is configurable, so once - * support for legacy environments is dropped, Chai's `length` property can - * replace the built-in function's `length` property, and this length guard will - * no longer be necessary. In the mean time, maintaining consistency across all - * environments is the priority. - * - * @param {Function} fn - * @param {String} assertionName - * @param {Boolean} isChainable - * @namespace Utils - * @name addLengthGuard - */ - -module.exports = function addLengthGuard (fn, assertionName, isChainable) { - if (!fnLengthDesc.configurable) return fn; - - Object.defineProperty(fn, 'length', { - get: function () { - if (isChainable) { - throw Error('Invalid Chai property: ' + assertionName + '.length. Due' + - ' to a compatibility issue, "length" cannot directly follow "' + - assertionName + '". Use "' + assertionName + '.lengthOf" instead.'); - } - - throw Error('Invalid Chai property: ' + assertionName + '.length. See' + - ' docs for proper usage of "' + assertionName + '".'); - } - }); - - return fn; -}; - -},{}],11:[function(require,module,exports){ -/*! - * Chai - addMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var addLengthGuard = require('./addLengthGuard'); -var chai = require('../../chai'); -var flag = require('./flag'); -var proxify = require('./proxify'); -var transferFlags = require('./transferFlags'); - -/** - * ### .addMethod(ctx, name, method) - * - * Adds a method to the prototype of an object. - * - * utils.addMethod(chai.Assertion.prototype, 'foo', function (str) { - * var obj = utils.flag(this, 'object'); - * new chai.Assertion(obj).to.be.equal(str); - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.addMethod('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(fooStr).to.be.foo('bar'); - * - * @param {Object} ctx object to which the method is added - * @param {String} name of method to add - * @param {Function} method function to be used for name - * @namespace Utils - * @name addMethod - * @api public - */ - -module.exports = function addMethod(ctx, name, method) { - var methodWrapper = function () { - // Setting the `ssfi` flag to `methodWrapper` causes this function to be the - // starting point for removing implementation frames from the stack trace of - // a failed assertion. - // - // However, we only want to use this function as the starting point if the - // `lockSsfi` flag isn't set. - // - // If the `lockSsfi` flag is set, then either this assertion has been - // overwritten by another assertion, or this assertion is being invoked from - // inside of another assertion. In the first case, the `ssfi` flag has - // already been set by the overwriting assertion. In the second case, the - // `ssfi` flag has already been set by the outer assertion. - if (!flag(this, 'lockSsfi')) { - flag(this, 'ssfi', methodWrapper); - } - - var result = method.apply(this, arguments); - if (result !== undefined) - return result; - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - - addLengthGuard(methodWrapper, name, false); - ctx[name] = proxify(methodWrapper, name); -}; - -},{"../../chai":2,"./addLengthGuard":10,"./flag":15,"./proxify":30,"./transferFlags":32}],12:[function(require,module,exports){ -/*! - * Chai - addProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var chai = require('../../chai'); -var flag = require('./flag'); -var isProxyEnabled = require('./isProxyEnabled'); -var transferFlags = require('./transferFlags'); - -/** - * ### .addProperty(ctx, name, getter) - * - * Adds a property to the prototype of an object. - * - * utils.addProperty(chai.Assertion.prototype, 'foo', function () { - * var obj = utils.flag(this, 'object'); - * new chai.Assertion(obj).to.be.instanceof(Foo); - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.addProperty('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.be.foo; - * - * @param {Object} ctx object to which the property is added - * @param {String} name of property to add - * @param {Function} getter function to be used for name - * @namespace Utils - * @name addProperty - * @api public - */ - -module.exports = function addProperty(ctx, name, getter) { - getter = getter === undefined ? function () {} : getter; - - Object.defineProperty(ctx, name, - { get: function propertyGetter() { - // Setting the `ssfi` flag to `propertyGetter` causes this function to - // be the starting point for removing implementation frames from the - // stack trace of a failed assertion. - // - // However, we only want to use this function as the starting point if - // the `lockSsfi` flag isn't set and proxy protection is disabled. - // - // If the `lockSsfi` flag is set, then either this assertion has been - // overwritten by another assertion, or this assertion is being invoked - // from inside of another assertion. In the first case, the `ssfi` flag - // has already been set by the overwriting assertion. In the second - // case, the `ssfi` flag has already been set by the outer assertion. - // - // If proxy protection is enabled, then the `ssfi` flag has already been - // set by the proxy getter. - if (!isProxyEnabled() && !flag(this, 'lockSsfi')) { - flag(this, 'ssfi', propertyGetter); - } - - var result = getter.call(this); - if (result !== undefined) - return result; - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - } - , configurable: true - }); -}; - -},{"../../chai":2,"./flag":15,"./isProxyEnabled":25,"./transferFlags":32}],13:[function(require,module,exports){ -/*! - * Chai - compareByInspect utility - * Copyright(c) 2011-2016 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var inspect = require('./inspect'); - -/** - * ### .compareByInspect(mixed, mixed) - * - * To be used as a compareFunction with Array.prototype.sort. Compares elements - * using inspect instead of default behavior of using toString so that Symbols - * and objects with irregular/missing toString can still be sorted without a - * TypeError. - * - * @param {Mixed} first element to compare - * @param {Mixed} second element to compare - * @returns {Number} -1 if 'a' should come before 'b'; otherwise 1 - * @name compareByInspect - * @namespace Utils - * @api public - */ - -module.exports = function compareByInspect(a, b) { - return inspect(a) < inspect(b) ? -1 : 1; -}; - -},{"./inspect":23}],14:[function(require,module,exports){ -/*! - * Chai - expectTypes utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .expectTypes(obj, types) - * - * Ensures that the object being tested against is of a valid type. - * - * utils.expectTypes(this, ['array', 'object', 'string']); - * - * @param {Mixed} obj constructed Assertion - * @param {Array} type A list of allowed types for this assertion - * @namespace Utils - * @name expectTypes - * @api public - */ - -var AssertionError = require('assertion-error'); -var flag = require('./flag'); -var type = require('type-detect'); - -module.exports = function expectTypes(obj, types) { - var flagMsg = flag(obj, 'message'); - var ssfi = flag(obj, 'ssfi'); - - flagMsg = flagMsg ? flagMsg + ': ' : ''; - - obj = flag(obj, 'object'); - types = types.map(function (t) { return t.toLowerCase(); }); - types.sort(); - - // Transforms ['lorem', 'ipsum'] into 'a lorem, or an ipsum' - var str = types.map(function (t, index) { - var art = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(t.charAt(0)) ? 'an' : 'a'; - var or = types.length > 1 && index === types.length - 1 ? 'or ' : ''; - return or + art + ' ' + t; - }).join(', '); - - var objType = type(obj).toLowerCase(); - - if (!types.some(function (expected) { return objType === expected; })) { - throw new AssertionError( - flagMsg + 'object tested must be ' + str + ', but ' + objType + ' given', - undefined, - ssfi - ); - } -}; - -},{"./flag":15,"assertion-error":33,"type-detect":39}],15:[function(require,module,exports){ -/*! - * Chai - flag utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .flag(object, key, [value]) - * - * Get or set a flag value on an object. If a - * value is provided it will be set, else it will - * return the currently set value or `undefined` if - * the value is not set. - * - * utils.flag(this, 'foo', 'bar'); // setter - * utils.flag(this, 'foo'); // getter, returns `bar` - * - * @param {Object} object constructed Assertion - * @param {String} key - * @param {Mixed} value (optional) - * @namespace Utils - * @name flag - * @api private - */ - -module.exports = function flag(obj, key, value) { - var flags = obj.__flags || (obj.__flags = Object.create(null)); - if (arguments.length === 3) { - flags[key] = value; - } else { - return flags[key]; - } -}; - -},{}],16:[function(require,module,exports){ -/*! - * Chai - getActual utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .getActual(object, [actual]) - * - * Returns the `actual` value for an Assertion. - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name getActual - */ - -module.exports = function getActual(obj, args) { - return args.length > 4 ? args[4] : obj._obj; -}; - -},{}],17:[function(require,module,exports){ -/*! - * Chai - message composition utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var flag = require('./flag') - , getActual = require('./getActual') - , objDisplay = require('./objDisplay'); - -/** - * ### .getMessage(object, message, negateMessage) - * - * Construct the error message based on flags - * and template tags. Template tags will return - * a stringified inspection of the object referenced. - * - * Message template tags: - * - `#{this}` current asserted object - * - `#{act}` actual value - * - `#{exp}` expected value - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name getMessage - * @api public - */ - -module.exports = function getMessage(obj, args) { - var negate = flag(obj, 'negate') - , val = flag(obj, 'object') - , expected = args[3] - , actual = getActual(obj, args) - , msg = negate ? args[2] : args[1] - , flagMsg = flag(obj, 'message'); - - if(typeof msg === "function") msg = msg(); - msg = msg || ''; - msg = msg - .replace(/#\{this\}/g, function () { return objDisplay(val); }) - .replace(/#\{act\}/g, function () { return objDisplay(actual); }) - .replace(/#\{exp\}/g, function () { return objDisplay(expected); }); - - return flagMsg ? flagMsg + ': ' + msg : msg; -}; - -},{"./flag":15,"./getActual":16,"./objDisplay":26}],18:[function(require,module,exports){ -var type = require('type-detect'); - -var flag = require('./flag'); - -function isObjectType(obj) { - var objectType = type(obj); - var objectTypes = ['Array', 'Object', 'function']; - - return objectTypes.indexOf(objectType) !== -1; -} - -/** - * ### .getOperator(message) - * - * Extract the operator from error message. - * Operator defined is based on below link - * https://nodejs.org/api/assert.html#assert_assert. - * - * Returns the `operator` or `undefined` value for an Assertion. - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name getOperator - * @api public - */ - -module.exports = function getOperator(obj, args) { - var operator = flag(obj, 'operator'); - var negate = flag(obj, 'negate'); - var expected = args[3]; - var msg = negate ? args[2] : args[1]; - - if (operator) { - return operator; - } - - if (typeof msg === 'function') msg = msg(); - - msg = msg || ''; - if (!msg) { - return undefined; - } - - if (/\shave\s/.test(msg)) { - return undefined; - } - - var isObject = isObjectType(expected); - if (/\snot\s/.test(msg)) { - return isObject ? 'notDeepStrictEqual' : 'notStrictEqual'; - } - - return isObject ? 'deepStrictEqual' : 'strictEqual'; -}; - -},{"./flag":15,"type-detect":39}],19:[function(require,module,exports){ -/*! - * Chai - getOwnEnumerableProperties utility - * Copyright(c) 2011-2016 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var getOwnEnumerablePropertySymbols = require('./getOwnEnumerablePropertySymbols'); - -/** - * ### .getOwnEnumerableProperties(object) - * - * This allows the retrieval of directly-owned enumerable property names and - * symbols of an object. This function is necessary because Object.keys only - * returns enumerable property names, not enumerable property symbols. - * - * @param {Object} object - * @returns {Array} - * @namespace Utils - * @name getOwnEnumerableProperties - * @api public - */ - -module.exports = function getOwnEnumerableProperties(obj) { - return Object.keys(obj).concat(getOwnEnumerablePropertySymbols(obj)); -}; - -},{"./getOwnEnumerablePropertySymbols":20}],20:[function(require,module,exports){ -/*! - * Chai - getOwnEnumerablePropertySymbols utility - * Copyright(c) 2011-2016 Jake Luer - * MIT Licensed - */ - -/** - * ### .getOwnEnumerablePropertySymbols(object) - * - * This allows the retrieval of directly-owned enumerable property symbols of an - * object. This function is necessary because Object.getOwnPropertySymbols - * returns both enumerable and non-enumerable property symbols. - * - * @param {Object} object - * @returns {Array} - * @namespace Utils - * @name getOwnEnumerablePropertySymbols - * @api public - */ - -module.exports = function getOwnEnumerablePropertySymbols(obj) { - if (typeof Object.getOwnPropertySymbols !== 'function') return []; - - return Object.getOwnPropertySymbols(obj).filter(function (sym) { - return Object.getOwnPropertyDescriptor(obj, sym).enumerable; - }); -}; - -},{}],21:[function(require,module,exports){ -/*! - * Chai - getProperties utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .getProperties(object) - * - * This allows the retrieval of property names of an object, enumerable or not, - * inherited or not. - * - * @param {Object} object - * @returns {Array} - * @namespace Utils - * @name getProperties - * @api public - */ - -module.exports = function getProperties(object) { - var result = Object.getOwnPropertyNames(object); - - function addProperty(property) { - if (result.indexOf(property) === -1) { - result.push(property); - } - } - - var proto = Object.getPrototypeOf(object); - while (proto !== null) { - Object.getOwnPropertyNames(proto).forEach(addProperty); - proto = Object.getPrototypeOf(proto); - } - - return result; -}; - -},{}],22:[function(require,module,exports){ -/*! - * chai - * Copyright(c) 2011 Jake Luer - * MIT Licensed - */ - -/*! - * Dependencies that are used for multiple exports are required here only once - */ - -var pathval = require('pathval'); - -/*! - * test utility - */ - -exports.test = require('./test'); - -/*! - * type utility - */ - -exports.type = require('type-detect'); - -/*! - * expectTypes utility - */ -exports.expectTypes = require('./expectTypes'); - -/*! - * message utility - */ - -exports.getMessage = require('./getMessage'); - -/*! - * actual utility - */ - -exports.getActual = require('./getActual'); - -/*! - * Inspect util - */ - -exports.inspect = require('./inspect'); - -/*! - * Object Display util - */ - -exports.objDisplay = require('./objDisplay'); - -/*! - * Flag utility - */ - -exports.flag = require('./flag'); - -/*! - * Flag transferring utility - */ - -exports.transferFlags = require('./transferFlags'); - -/*! - * Deep equal utility - */ - -exports.eql = require('deep-eql'); - -/*! - * Deep path info - */ - -exports.getPathInfo = pathval.getPathInfo; - -/*! - * Check if a property exists - */ - -exports.hasProperty = pathval.hasProperty; - -/*! - * Function name - */ - -exports.getName = require('get-func-name'); - -/*! - * add Property - */ - -exports.addProperty = require('./addProperty'); - -/*! - * add Method - */ - -exports.addMethod = require('./addMethod'); - -/*! - * overwrite Property - */ - -exports.overwriteProperty = require('./overwriteProperty'); - -/*! - * overwrite Method - */ - -exports.overwriteMethod = require('./overwriteMethod'); - -/*! - * Add a chainable method - */ - -exports.addChainableMethod = require('./addChainableMethod'); - -/*! - * Overwrite chainable method - */ - -exports.overwriteChainableMethod = require('./overwriteChainableMethod'); - -/*! - * Compare by inspect method - */ - -exports.compareByInspect = require('./compareByInspect'); - -/*! - * Get own enumerable property symbols method - */ - -exports.getOwnEnumerablePropertySymbols = require('./getOwnEnumerablePropertySymbols'); - -/*! - * Get own enumerable properties method - */ - -exports.getOwnEnumerableProperties = require('./getOwnEnumerableProperties'); - -/*! - * Checks error against a given set of criteria - */ - -exports.checkError = require('check-error'); - -/*! - * Proxify util - */ - -exports.proxify = require('./proxify'); - -/*! - * addLengthGuard util - */ - -exports.addLengthGuard = require('./addLengthGuard'); - -/*! - * isProxyEnabled helper - */ - -exports.isProxyEnabled = require('./isProxyEnabled'); - -/*! - * isNaN method - */ - -exports.isNaN = require('./isNaN'); - -/*! - * getOperator method - */ - -exports.getOperator = require('./getOperator'); -},{"./addChainableMethod":9,"./addLengthGuard":10,"./addMethod":11,"./addProperty":12,"./compareByInspect":13,"./expectTypes":14,"./flag":15,"./getActual":16,"./getMessage":17,"./getOperator":18,"./getOwnEnumerableProperties":19,"./getOwnEnumerablePropertySymbols":20,"./inspect":23,"./isNaN":24,"./isProxyEnabled":25,"./objDisplay":26,"./overwriteChainableMethod":27,"./overwriteMethod":28,"./overwriteProperty":29,"./proxify":30,"./test":31,"./transferFlags":32,"check-error":34,"deep-eql":35,"get-func-name":36,"pathval":38,"type-detect":39}],23:[function(require,module,exports){ -// This is (almost) directly from Node.js utils -// https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js - -var getName = require('get-func-name'); -var loupe = require('loupe'); -var config = require('../config'); - -module.exports = inspect; - -/** - * ### .inspect(obj, [showHidden], [depth], [colors]) - * - * Echoes the value of a value. Tries to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Boolean} showHidden Flag that shows hidden (not enumerable) - * properties of objects. Default is false. - * @param {Number} depth Depth in which to descend in object. Default is 2. - * @param {Boolean} colors Flag to turn on ANSI escape codes to color the - * output. Default is false (no coloring). - * @namespace Utils - * @name inspect - */ -function inspect(obj, showHidden, depth, colors) { - var options = { - colors: colors, - depth: (typeof depth === 'undefined' ? 2 : depth), - showHidden: showHidden, - truncate: config.truncateThreshold ? config.truncateThreshold : Infinity, - }; - return loupe.inspect(obj, options); -} - -},{"../config":4,"get-func-name":36,"loupe":37}],24:[function(require,module,exports){ -/*! - * Chai - isNaN utility - * Copyright(c) 2012-2015 Sakthipriyan Vairamani - * MIT Licensed - */ - -/** - * ### .isNaN(value) - * - * Checks if the given value is NaN or not. - * - * utils.isNaN(NaN); // true - * - * @param {Value} The value which has to be checked if it is NaN - * @name isNaN - * @api private - */ - -function isNaN(value) { - // Refer http://www.ecma-international.org/ecma-262/6.0/#sec-isnan-number - // section's NOTE. - return value !== value; -} - -// If ECMAScript 6's Number.isNaN is present, prefer that. -module.exports = Number.isNaN || isNaN; - -},{}],25:[function(require,module,exports){ -var config = require('../config'); - -/*! - * Chai - isProxyEnabled helper - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .isProxyEnabled() - * - * Helper function to check if Chai's proxy protection feature is enabled. If - * proxies are unsupported or disabled via the user's Chai config, then return - * false. Otherwise, return true. - * - * @namespace Utils - * @name isProxyEnabled - */ - -module.exports = function isProxyEnabled() { - return config.useProxy && - typeof Proxy !== 'undefined' && - typeof Reflect !== 'undefined'; -}; - -},{"../config":4}],26:[function(require,module,exports){ -/*! - * Chai - flag utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var inspect = require('./inspect'); -var config = require('../config'); - -/** - * ### .objDisplay(object) - * - * Determines if an object or an array matches - * criteria to be inspected in-line for error - * messages or should be truncated. - * - * @param {Mixed} javascript object to inspect - * @returns {string} stringified object - * @name objDisplay - * @namespace Utils - * @api public - */ - -module.exports = function objDisplay(obj) { - var str = inspect(obj) - , type = Object.prototype.toString.call(obj); - - if (config.truncateThreshold && str.length >= config.truncateThreshold) { - if (type === '[object Function]') { - return !obj.name || obj.name === '' - ? '[Function]' - : '[Function: ' + obj.name + ']'; - } else if (type === '[object Array]') { - return '[ Array(' + obj.length + ') ]'; - } else if (type === '[object Object]') { - var keys = Object.keys(obj) - , kstr = keys.length > 2 - ? keys.splice(0, 2).join(', ') + ', ...' - : keys.join(', '); - return '{ Object (' + kstr + ') }'; - } else { - return str; - } - } else { - return str; - } -}; - -},{"../config":4,"./inspect":23}],27:[function(require,module,exports){ -/*! - * Chai - overwriteChainableMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var chai = require('../../chai'); -var transferFlags = require('./transferFlags'); - -/** - * ### .overwriteChainableMethod(ctx, name, method, chainingBehavior) - * - * Overwrites an already existing chainable method - * and provides access to the previous function or - * property. Must return functions to be used for - * name. - * - * utils.overwriteChainableMethod(chai.Assertion.prototype, 'lengthOf', - * function (_super) { - * } - * , function (_super) { - * } - * ); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.overwriteChainableMethod('foo', fn, fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.have.lengthOf(3); - * expect(myFoo).to.have.lengthOf.above(3); - * - * @param {Object} ctx object whose method / property is to be overwritten - * @param {String} name of method / property to overwrite - * @param {Function} method function that returns a function to be used for name - * @param {Function} chainingBehavior function that returns a function to be used for property - * @namespace Utils - * @name overwriteChainableMethod - * @api public - */ - -module.exports = function overwriteChainableMethod(ctx, name, method, chainingBehavior) { - var chainableBehavior = ctx.__methods[name]; - - var _chainingBehavior = chainableBehavior.chainingBehavior; - chainableBehavior.chainingBehavior = function overwritingChainableMethodGetter() { - var result = chainingBehavior(_chainingBehavior).call(this); - if (result !== undefined) { - return result; - } - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; - - var _method = chainableBehavior.method; - chainableBehavior.method = function overwritingChainableMethodWrapper() { - var result = method(_method).apply(this, arguments); - if (result !== undefined) { - return result; - } - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - }; -}; - -},{"../../chai":2,"./transferFlags":32}],28:[function(require,module,exports){ -/*! - * Chai - overwriteMethod utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var addLengthGuard = require('./addLengthGuard'); -var chai = require('../../chai'); -var flag = require('./flag'); -var proxify = require('./proxify'); -var transferFlags = require('./transferFlags'); - -/** - * ### .overwriteMethod(ctx, name, fn) - * - * Overwrites an already existing method and provides - * access to previous function. Must return function - * to be used for name. - * - * utils.overwriteMethod(chai.Assertion.prototype, 'equal', function (_super) { - * return function (str) { - * var obj = utils.flag(this, 'object'); - * if (obj instanceof Foo) { - * new chai.Assertion(obj.value).to.equal(str); - * } else { - * _super.apply(this, arguments); - * } - * } - * }); - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.overwriteMethod('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.equal('bar'); - * - * @param {Object} ctx object whose method is to be overwritten - * @param {String} name of method to overwrite - * @param {Function} method function that returns a function to be used for name - * @namespace Utils - * @name overwriteMethod - * @api public - */ - -module.exports = function overwriteMethod(ctx, name, method) { - var _method = ctx[name] - , _super = function () { - throw new Error(name + ' is not a function'); - }; - - if (_method && 'function' === typeof _method) - _super = _method; - - var overwritingMethodWrapper = function () { - // Setting the `ssfi` flag to `overwritingMethodWrapper` causes this - // function to be the starting point for removing implementation frames from - // the stack trace of a failed assertion. - // - // However, we only want to use this function as the starting point if the - // `lockSsfi` flag isn't set. - // - // If the `lockSsfi` flag is set, then either this assertion has been - // overwritten by another assertion, or this assertion is being invoked from - // inside of another assertion. In the first case, the `ssfi` flag has - // already been set by the overwriting assertion. In the second case, the - // `ssfi` flag has already been set by the outer assertion. - if (!flag(this, 'lockSsfi')) { - flag(this, 'ssfi', overwritingMethodWrapper); - } - - // Setting the `lockSsfi` flag to `true` prevents the overwritten assertion - // from changing the `ssfi` flag. By this point, the `ssfi` flag is already - // set to the correct starting point for this assertion. - var origLockSsfi = flag(this, 'lockSsfi'); - flag(this, 'lockSsfi', true); - var result = method(_super).apply(this, arguments); - flag(this, 'lockSsfi', origLockSsfi); - - if (result !== undefined) { - return result; - } - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - } - - addLengthGuard(overwritingMethodWrapper, name, false); - ctx[name] = proxify(overwritingMethodWrapper, name); -}; - -},{"../../chai":2,"./addLengthGuard":10,"./flag":15,"./proxify":30,"./transferFlags":32}],29:[function(require,module,exports){ -/*! - * Chai - overwriteProperty utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -var chai = require('../../chai'); -var flag = require('./flag'); -var isProxyEnabled = require('./isProxyEnabled'); -var transferFlags = require('./transferFlags'); - -/** - * ### .overwriteProperty(ctx, name, fn) - * - * Overwrites an already existing property getter and provides - * access to previous value. Must return function to use as getter. - * - * utils.overwriteProperty(chai.Assertion.prototype, 'ok', function (_super) { - * return function () { - * var obj = utils.flag(this, 'object'); - * if (obj instanceof Foo) { - * new chai.Assertion(obj.name).to.equal('bar'); - * } else { - * _super.call(this); - * } - * } - * }); - * - * - * Can also be accessed directly from `chai.Assertion`. - * - * chai.Assertion.overwriteProperty('foo', fn); - * - * Then can be used as any other assertion. - * - * expect(myFoo).to.be.ok; - * - * @param {Object} ctx object whose property is to be overwritten - * @param {String} name of property to overwrite - * @param {Function} getter function that returns a getter function to be used for name - * @namespace Utils - * @name overwriteProperty - * @api public - */ - -module.exports = function overwriteProperty(ctx, name, getter) { - var _get = Object.getOwnPropertyDescriptor(ctx, name) - , _super = function () {}; - - if (_get && 'function' === typeof _get.get) - _super = _get.get - - Object.defineProperty(ctx, name, - { get: function overwritingPropertyGetter() { - // Setting the `ssfi` flag to `overwritingPropertyGetter` causes this - // function to be the starting point for removing implementation frames - // from the stack trace of a failed assertion. - // - // However, we only want to use this function as the starting point if - // the `lockSsfi` flag isn't set and proxy protection is disabled. - // - // If the `lockSsfi` flag is set, then either this assertion has been - // overwritten by another assertion, or this assertion is being invoked - // from inside of another assertion. In the first case, the `ssfi` flag - // has already been set by the overwriting assertion. In the second - // case, the `ssfi` flag has already been set by the outer assertion. - // - // If proxy protection is enabled, then the `ssfi` flag has already been - // set by the proxy getter. - if (!isProxyEnabled() && !flag(this, 'lockSsfi')) { - flag(this, 'ssfi', overwritingPropertyGetter); - } - - // Setting the `lockSsfi` flag to `true` prevents the overwritten - // assertion from changing the `ssfi` flag. By this point, the `ssfi` - // flag is already set to the correct starting point for this assertion. - var origLockSsfi = flag(this, 'lockSsfi'); - flag(this, 'lockSsfi', true); - var result = getter(_super).call(this); - flag(this, 'lockSsfi', origLockSsfi); - - if (result !== undefined) { - return result; - } - - var newAssertion = new chai.Assertion(); - transferFlags(this, newAssertion); - return newAssertion; - } - , configurable: true - }); -}; - -},{"../../chai":2,"./flag":15,"./isProxyEnabled":25,"./transferFlags":32}],30:[function(require,module,exports){ -var config = require('../config'); -var flag = require('./flag'); -var getProperties = require('./getProperties'); -var isProxyEnabled = require('./isProxyEnabled'); - -/*! - * Chai - proxify utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .proxify(object) - * - * Return a proxy of given object that throws an error when a non-existent - * property is read. By default, the root cause is assumed to be a misspelled - * property, and thus an attempt is made to offer a reasonable suggestion from - * the list of existing properties. However, if a nonChainableMethodName is - * provided, then the root cause is instead a failure to invoke a non-chainable - * method prior to reading the non-existent property. - * - * If proxies are unsupported or disabled via the user's Chai config, then - * return object without modification. - * - * @param {Object} obj - * @param {String} nonChainableMethodName - * @namespace Utils - * @name proxify - */ - -var builtins = ['__flags', '__methods', '_obj', 'assert']; - -module.exports = function proxify(obj, nonChainableMethodName) { - if (!isProxyEnabled()) return obj; - - return new Proxy(obj, { - get: function proxyGetter(target, property) { - // This check is here because we should not throw errors on Symbol properties - // such as `Symbol.toStringTag`. - // The values for which an error should be thrown can be configured using - // the `config.proxyExcludedKeys` setting. - if (typeof property === 'string' && - config.proxyExcludedKeys.indexOf(property) === -1 && - !Reflect.has(target, property)) { - // Special message for invalid property access of non-chainable methods. - if (nonChainableMethodName) { - throw Error('Invalid Chai property: ' + nonChainableMethodName + '.' + - property + '. See docs for proper usage of "' + - nonChainableMethodName + '".'); - } - - // If the property is reasonably close to an existing Chai property, - // suggest that property to the user. Only suggest properties with a - // distance less than 4. - var suggestion = null; - var suggestionDistance = 4; - getProperties(target).forEach(function(prop) { - if ( - !Object.prototype.hasOwnProperty(prop) && - builtins.indexOf(prop) === -1 - ) { - var dist = stringDistanceCapped( - property, - prop, - suggestionDistance - ); - if (dist < suggestionDistance) { - suggestion = prop; - suggestionDistance = dist; - } - } - }); - - if (suggestion !== null) { - throw Error('Invalid Chai property: ' + property + - '. Did you mean "' + suggestion + '"?'); - } else { - throw Error('Invalid Chai property: ' + property); - } - } - - // Use this proxy getter as the starting point for removing implementation - // frames from the stack trace of a failed assertion. For property - // assertions, this prevents the proxy getter from showing up in the stack - // trace since it's invoked before the property getter. For method and - // chainable method assertions, this flag will end up getting changed to - // the method wrapper, which is good since this frame will no longer be in - // the stack once the method is invoked. Note that Chai builtin assertion - // properties such as `__flags` are skipped since this is only meant to - // capture the starting point of an assertion. This step is also skipped - // if the `lockSsfi` flag is set, thus indicating that this assertion is - // being called from within another assertion. In that case, the `ssfi` - // flag is already set to the outer assertion's starting point. - if (builtins.indexOf(property) === -1 && !flag(target, 'lockSsfi')) { - flag(target, 'ssfi', proxyGetter); - } - - return Reflect.get(target, property); - } - }); -}; - -/** - * # stringDistanceCapped(strA, strB, cap) - * Return the Levenshtein distance between two strings, but no more than cap. - * @param {string} strA - * @param {string} strB - * @param {number} number - * @return {number} min(string distance between strA and strB, cap) - * @api private - */ - -function stringDistanceCapped(strA, strB, cap) { - if (Math.abs(strA.length - strB.length) >= cap) { - return cap; - } - - var memo = []; - // `memo` is a two-dimensional array containing distances. - // memo[i][j] is the distance between strA.slice(0, i) and - // strB.slice(0, j). - for (var i = 0; i <= strA.length; i++) { - memo[i] = Array(strB.length + 1).fill(0); - memo[i][0] = i; - } - for (var j = 0; j < strB.length; j++) { - memo[0][j] = j; - } - - for (var i = 1; i <= strA.length; i++) { - var ch = strA.charCodeAt(i - 1); - for (var j = 1; j <= strB.length; j++) { - if (Math.abs(i - j) >= cap) { - memo[i][j] = cap; - continue; - } - memo[i][j] = Math.min( - memo[i - 1][j] + 1, - memo[i][j - 1] + 1, - memo[i - 1][j - 1] + - (ch === strB.charCodeAt(j - 1) ? 0 : 1) - ); - } - } - - return memo[strA.length][strB.length]; -} - -},{"../config":4,"./flag":15,"./getProperties":21,"./isProxyEnabled":25}],31:[function(require,module,exports){ -/*! - * Chai - test utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/*! - * Module dependencies - */ - -var flag = require('./flag'); - -/** - * ### .test(object, expression) - * - * Test an object for expression. - * - * @param {Object} object (constructed Assertion) - * @param {Arguments} chai.Assertion.prototype.assert arguments - * @namespace Utils - * @name test - */ - -module.exports = function test(obj, args) { - var negate = flag(obj, 'negate') - , expr = args[0]; - return negate ? !expr : expr; -}; - -},{"./flag":15}],32:[function(require,module,exports){ -/*! - * Chai - transferFlags utility - * Copyright(c) 2012-2014 Jake Luer - * MIT Licensed - */ - -/** - * ### .transferFlags(assertion, object, includeAll = true) - * - * Transfer all the flags for `assertion` to `object`. If - * `includeAll` is set to `false`, then the base Chai - * assertion flags (namely `object`, `ssfi`, `lockSsfi`, - * and `message`) will not be transferred. - * - * - * var newAssertion = new Assertion(); - * utils.transferFlags(assertion, newAssertion); - * - * var anotherAssertion = new Assertion(myObj); - * utils.transferFlags(assertion, anotherAssertion, false); - * - * @param {Assertion} assertion the assertion to transfer the flags from - * @param {Object} object the object to transfer the flags to; usually a new assertion - * @param {Boolean} includeAll - * @namespace Utils - * @name transferFlags - * @api private - */ - -module.exports = function transferFlags(assertion, object, includeAll) { - var flags = assertion.__flags || (assertion.__flags = Object.create(null)); - - if (!object.__flags) { - object.__flags = Object.create(null); - } - - includeAll = arguments.length === 3 ? includeAll : true; - - for (var flag in flags) { - if (includeAll || - (flag !== 'object' && flag !== 'ssfi' && flag !== 'lockSsfi' && flag != 'message')) { - object.__flags[flag] = flags[flag]; - } - } -}; - -},{}],33:[function(require,module,exports){ -/*! - * assertion-error - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ - -/*! - * Return a function that will copy properties from - * one object to another excluding any originally - * listed. Returned function will create a new `{}`. - * - * @param {String} excluded properties ... - * @return {Function} - */ - -function exclude () { - var excludes = [].slice.call(arguments); - - function excludeProps (res, obj) { - Object.keys(obj).forEach(function (key) { - if (!~excludes.indexOf(key)) res[key] = obj[key]; - }); - } - - return function extendExclude () { - var args = [].slice.call(arguments) - , i = 0 - , res = {}; - - for (; i < args.length; i++) { - excludeProps(res, args[i]); - } - - return res; - }; -}; - -/*! - * Primary Exports - */ - -module.exports = AssertionError; - -/** - * ### AssertionError - * - * An extension of the JavaScript `Error` constructor for - * assertion and validation scenarios. - * - * @param {String} message - * @param {Object} properties to include (optional) - * @param {callee} start stack function (optional) - */ - -function AssertionError (message, _props, ssf) { - var extend = exclude('name', 'message', 'stack', 'constructor', 'toJSON') - , props = extend(_props || {}); - - // default values - this.message = message || 'Unspecified AssertionError'; - this.showDiff = false; - - // copy from properties - for (var key in props) { - this[key] = props[key]; - } - - // capture stack trace - ssf = ssf || AssertionError; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, ssf); - } else { - try { - throw new Error(); - } catch(e) { - this.stack = e.stack; - } - } -} - -/*! - * Inherit from Error.prototype - */ - -AssertionError.prototype = Object.create(Error.prototype); - -/*! - * Statically set name - */ - -AssertionError.prototype.name = 'AssertionError'; - -/*! - * Ensure correct constructor - */ - -AssertionError.prototype.constructor = AssertionError; - -/** - * Allow errors to be converted to JSON for static transfer. - * - * @param {Boolean} include stack (default: `true`) - * @return {Object} object that can be `JSON.stringify` - */ - -AssertionError.prototype.toJSON = function (stack) { - var extend = exclude('constructor', 'toJSON', 'stack') - , props = extend({ name: this.name }, this); - - // include stack if exists and not turned off - if (false !== stack && this.stack) { - props.stack = this.stack; - } - - return props; -}; - -},{}],34:[function(require,module,exports){ -'use strict'; - -/* ! - * Chai - checkError utility - * Copyright(c) 2012-2016 Jake Luer - * MIT Licensed - */ - -var getFunctionName = require('get-func-name'); -/** - * ### .checkError - * - * Checks that an error conforms to a given set of criteria and/or retrieves information about it. - * - * @api public - */ - -/** - * ### .compatibleInstance(thrown, errorLike) - * - * Checks if two instances are compatible (strict equal). - * Returns false if errorLike is not an instance of Error, because instances - * can only be compatible if they're both error instances. - * - * @name compatibleInstance - * @param {Error} thrown error - * @param {Error|ErrorConstructor} errorLike object to compare against - * @namespace Utils - * @api public - */ - -function compatibleInstance(thrown, errorLike) { - return errorLike instanceof Error && thrown === errorLike; -} - -/** - * ### .compatibleConstructor(thrown, errorLike) - * - * Checks if two constructors are compatible. - * This function can receive either an error constructor or - * an error instance as the `errorLike` argument. - * Constructors are compatible if they're the same or if one is - * an instance of another. - * - * @name compatibleConstructor - * @param {Error} thrown error - * @param {Error|ErrorConstructor} errorLike object to compare against - * @namespace Utils - * @api public - */ - -function compatibleConstructor(thrown, errorLike) { - if (errorLike instanceof Error) { - // If `errorLike` is an instance of any error we compare their constructors - return thrown.constructor === errorLike.constructor || thrown instanceof errorLike.constructor; - } else if (errorLike.prototype instanceof Error || errorLike === Error) { - // If `errorLike` is a constructor that inherits from Error, we compare `thrown` to `errorLike` directly - return thrown.constructor === errorLike || thrown instanceof errorLike; - } - - return false; -} - -/** - * ### .compatibleMessage(thrown, errMatcher) - * - * Checks if an error's message is compatible with a matcher (String or RegExp). - * If the message contains the String or passes the RegExp test, - * it is considered compatible. - * - * @name compatibleMessage - * @param {Error} thrown error - * @param {String|RegExp} errMatcher to look for into the message - * @namespace Utils - * @api public - */ - -function compatibleMessage(thrown, errMatcher) { - var comparisonString = typeof thrown === 'string' ? thrown : thrown.message; - if (errMatcher instanceof RegExp) { - return errMatcher.test(comparisonString); - } else if (typeof errMatcher === 'string') { - return comparisonString.indexOf(errMatcher) !== -1; // eslint-disable-line no-magic-numbers - } - - return false; -} - -/** - * ### .getConstructorName(errorLike) - * - * Gets the constructor name for an Error instance or constructor itself. - * - * @name getConstructorName - * @param {Error|ErrorConstructor} errorLike - * @namespace Utils - * @api public - */ - -function getConstructorName(errorLike) { - var constructorName = errorLike; - if (errorLike instanceof Error) { - constructorName = getFunctionName(errorLike.constructor); - } else if (typeof errorLike === 'function') { - // If `err` is not an instance of Error it is an error constructor itself or another function. - // If we've got a common function we get its name, otherwise we may need to create a new instance - // of the error just in case it's a poorly-constructed error. Please see chaijs/chai/issues/45 to know more. - constructorName = getFunctionName(errorLike); - if (constructorName === '') { - var newConstructorName = getFunctionName(new errorLike()); // eslint-disable-line new-cap - constructorName = newConstructorName || constructorName; - } - } - - return constructorName; -} - -/** - * ### .getMessage(errorLike) - * - * Gets the error message from an error. - * If `err` is a String itself, we return it. - * If the error has no message, we return an empty string. - * - * @name getMessage - * @param {Error|String} errorLike - * @namespace Utils - * @api public - */ - -function getMessage(errorLike) { - var msg = ''; - if (errorLike && errorLike.message) { - msg = errorLike.message; - } else if (typeof errorLike === 'string') { - msg = errorLike; - } - - return msg; -} - -module.exports = { - compatibleInstance: compatibleInstance, - compatibleConstructor: compatibleConstructor, - compatibleMessage: compatibleMessage, - getMessage: getMessage, - getConstructorName: getConstructorName, -}; - -},{"get-func-name":36}],35:[function(require,module,exports){ -'use strict'; -/* globals Symbol: false, Uint8Array: false, WeakMap: false */ -/*! - * deep-eql - * Copyright(c) 2013 Jake Luer - * MIT Licensed - */ - -var type = require('type-detect'); -function FakeMap() { - this._key = 'chai/deep-eql__' + Math.random() + Date.now(); -} - -FakeMap.prototype = { - get: function get(key) { - return key[this._key]; - }, - set: function set(key, value) { - if (Object.isExtensible(key)) { - Object.defineProperty(key, this._key, { - value: value, - configurable: true, - }); - } - }, -}; - -var MemoizeMap = typeof WeakMap === 'function' ? WeakMap : FakeMap; -/*! - * Check to see if the MemoizeMap has recorded a result of the two operands - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {MemoizeMap} memoizeMap - * @returns {Boolean|null} result -*/ -function memoizeCompare(leftHandOperand, rightHandOperand, memoizeMap) { - // Technically, WeakMap keys can *only* be objects, not primitives. - if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return null; - } - var leftHandMap = memoizeMap.get(leftHandOperand); - if (leftHandMap) { - var result = leftHandMap.get(rightHandOperand); - if (typeof result === 'boolean') { - return result; - } - } - return null; -} - -/*! - * Set the result of the equality into the MemoizeMap - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {MemoizeMap} memoizeMap - * @param {Boolean} result -*/ -function memoizeSet(leftHandOperand, rightHandOperand, memoizeMap, result) { - // Technically, WeakMap keys can *only* be objects, not primitives. - if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return; - } - var leftHandMap = memoizeMap.get(leftHandOperand); - if (leftHandMap) { - leftHandMap.set(rightHandOperand, result); - } else { - leftHandMap = new MemoizeMap(); - leftHandMap.set(rightHandOperand, result); - memoizeMap.set(leftHandOperand, leftHandMap); - } -} - -/*! - * Primary Export - */ - -module.exports = deepEqual; -module.exports.MemoizeMap = MemoizeMap; - -/** - * Assert deeply nested sameValue equality between two objects of any type. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (optional) Additional options - * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. - * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of - complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular - references to blow the stack. - * @return {Boolean} equal match - */ -function deepEqual(leftHandOperand, rightHandOperand, options) { - // If we have a comparator, we can't assume anything; so bail to its check first. - if (options && options.comparator) { - return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); - } - - var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); - if (simpleResult !== null) { - return simpleResult; - } - - // Deeper comparisons are pushed through to a larger function - return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); -} - -/** - * Many comparisons can be canceled out early via simple equality or primitive checks. - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @return {Boolean|null} equal match - */ -function simpleEqual(leftHandOperand, rightHandOperand) { - // Equal references (except for Numbers) can be returned early - if (leftHandOperand === rightHandOperand) { - // Handle +-0 cases - return leftHandOperand !== 0 || 1 / leftHandOperand === 1 / rightHandOperand; - } - - // handle NaN cases - if ( - leftHandOperand !== leftHandOperand && // eslint-disable-line no-self-compare - rightHandOperand !== rightHandOperand // eslint-disable-line no-self-compare - ) { - return true; - } - - // Anything that is not an 'object', i.e. symbols, functions, booleans, numbers, - // strings, and undefined, can be compared by reference. - if (isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - // Easy out b/c it would have passed the first equality check - return false; - } - return null; -} - -/*! - * The main logic of the `deepEqual` function. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (optional) Additional options - * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. - * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of - complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular - references to blow the stack. - * @return {Boolean} equal match -*/ -function extensiveDeepEqual(leftHandOperand, rightHandOperand, options) { - options = options || {}; - options.memoize = options.memoize === false ? false : options.memoize || new MemoizeMap(); - var comparator = options && options.comparator; - - // Check if a memoized result exists. - var memoizeResultLeft = memoizeCompare(leftHandOperand, rightHandOperand, options.memoize); - if (memoizeResultLeft !== null) { - return memoizeResultLeft; - } - var memoizeResultRight = memoizeCompare(rightHandOperand, leftHandOperand, options.memoize); - if (memoizeResultRight !== null) { - return memoizeResultRight; - } - - // If a comparator is present, use it. - if (comparator) { - var comparatorResult = comparator(leftHandOperand, rightHandOperand); - // Comparators may return null, in which case we want to go back to default behavior. - if (comparatorResult === false || comparatorResult === true) { - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, comparatorResult); - return comparatorResult; - } - // To allow comparators to override *any* behavior, we ran them first. Since it didn't decide - // what to do, we need to make sure to return the basic tests first before we move on. - var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); - if (simpleResult !== null) { - // Don't memoize this, it takes longer to set/retrieve than to just compare. - return simpleResult; - } - } - - var leftHandType = type(leftHandOperand); - if (leftHandType !== type(rightHandOperand)) { - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, false); - return false; - } - - // Temporarily set the operands in the memoize object to prevent blowing the stack - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, true); - - var result = extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options); - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, result); - return result; -} - -function extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options) { - switch (leftHandType) { - case 'String': - case 'Number': - case 'Boolean': - case 'Date': - // If these types are their instance types (e.g. `new Number`) then re-deepEqual against their values - return deepEqual(leftHandOperand.valueOf(), rightHandOperand.valueOf()); - case 'Promise': - case 'Symbol': - case 'function': - case 'WeakMap': - case 'WeakSet': - return leftHandOperand === rightHandOperand; - case 'Error': - return keysEqual(leftHandOperand, rightHandOperand, [ 'name', 'message', 'code' ], options); - case 'Arguments': - case 'Int8Array': - case 'Uint8Array': - case 'Uint8ClampedArray': - case 'Int16Array': - case 'Uint16Array': - case 'Int32Array': - case 'Uint32Array': - case 'Float32Array': - case 'Float64Array': - case 'Array': - return iterableEqual(leftHandOperand, rightHandOperand, options); - case 'RegExp': - return regexpEqual(leftHandOperand, rightHandOperand); - case 'Generator': - return generatorEqual(leftHandOperand, rightHandOperand, options); - case 'DataView': - return iterableEqual(new Uint8Array(leftHandOperand.buffer), new Uint8Array(rightHandOperand.buffer), options); - case 'ArrayBuffer': - return iterableEqual(new Uint8Array(leftHandOperand), new Uint8Array(rightHandOperand), options); - case 'Set': - return entriesEqual(leftHandOperand, rightHandOperand, options); - case 'Map': - return entriesEqual(leftHandOperand, rightHandOperand, options); - case 'Temporal.PlainDate': - case 'Temporal.PlainTime': - case 'Temporal.PlainDateTime': - case 'Temporal.Instant': - case 'Temporal.ZonedDateTime': - case 'Temporal.PlainYearMonth': - case 'Temporal.PlainMonthDay': - return leftHandOperand.equals(rightHandOperand); - case 'Temporal.Duration': - return leftHandOperand.total('nanoseconds') === rightHandOperand.total('nanoseconds'); - case 'Temporal.TimeZone': - case 'Temporal.Calendar': - return leftHandOperand.toString() === rightHandOperand.toString(); - default: - return objectEqual(leftHandOperand, rightHandOperand, options); - } -} - -/*! - * Compare two Regular Expressions for equality. - * - * @param {RegExp} leftHandOperand - * @param {RegExp} rightHandOperand - * @return {Boolean} result - */ - -function regexpEqual(leftHandOperand, rightHandOperand) { - return leftHandOperand.toString() === rightHandOperand.toString(); -} - -/*! - * Compare two Sets/Maps for equality. Faster than other equality functions. - * - * @param {Set} leftHandOperand - * @param {Set} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ - -function entriesEqual(leftHandOperand, rightHandOperand, options) { - // IE11 doesn't support Set#entries or Set#@@iterator, so we need manually populate using Set#forEach - if (leftHandOperand.size !== rightHandOperand.size) { - return false; - } - if (leftHandOperand.size === 0) { - return true; - } - var leftHandItems = []; - var rightHandItems = []; - leftHandOperand.forEach(function gatherEntries(key, value) { - leftHandItems.push([ key, value ]); - }); - rightHandOperand.forEach(function gatherEntries(key, value) { - rightHandItems.push([ key, value ]); - }); - return iterableEqual(leftHandItems.sort(), rightHandItems.sort(), options); -} - -/*! - * Simple equality for flat iterable objects such as Arrays, TypedArrays or Node.js buffers. - * - * @param {Iterable} leftHandOperand - * @param {Iterable} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ - -function iterableEqual(leftHandOperand, rightHandOperand, options) { - var length = leftHandOperand.length; - if (length !== rightHandOperand.length) { - return false; - } - if (length === 0) { - return true; - } - var index = -1; - while (++index < length) { - if (deepEqual(leftHandOperand[index], rightHandOperand[index], options) === false) { - return false; - } - } - return true; -} - -/*! - * Simple equality for generator objects such as those returned by generator functions. - * - * @param {Iterable} leftHandOperand - * @param {Iterable} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ - -function generatorEqual(leftHandOperand, rightHandOperand, options) { - return iterableEqual(getGeneratorEntries(leftHandOperand), getGeneratorEntries(rightHandOperand), options); -} - -/*! - * Determine if the given object has an @@iterator function. - * - * @param {Object} target - * @return {Boolean} `true` if the object has an @@iterator function. - */ -function hasIteratorFunction(target) { - return typeof Symbol !== 'undefined' && - typeof target === 'object' && - typeof Symbol.iterator !== 'undefined' && - typeof target[Symbol.iterator] === 'function'; -} - -/*! - * Gets all iterator entries from the given Object. If the Object has no @@iterator function, returns an empty array. - * This will consume the iterator - which could have side effects depending on the @@iterator implementation. - * - * @param {Object} target - * @returns {Array} an array of entries from the @@iterator function - */ -function getIteratorEntries(target) { - if (hasIteratorFunction(target)) { - try { - return getGeneratorEntries(target[Symbol.iterator]()); - } catch (iteratorError) { - return []; - } - } - return []; -} - -/*! - * Gets all entries from a Generator. This will consume the generator - which could have side effects. - * - * @param {Generator} target - * @returns {Array} an array of entries from the Generator. - */ -function getGeneratorEntries(generator) { - var generatorResult = generator.next(); - var accumulator = [ generatorResult.value ]; - while (generatorResult.done === false) { - generatorResult = generator.next(); - accumulator.push(generatorResult.value); - } - return accumulator; -} - -/*! - * Gets all own and inherited enumerable keys from a target. - * - * @param {Object} target - * @returns {Array} an array of own and inherited enumerable keys from the target. - */ -function getEnumerableKeys(target) { - var keys = []; - for (var key in target) { - keys.push(key); - } - return keys; -} - -function getEnumerableSymbols(target) { - var keys = []; - var allKeys = Object.getOwnPropertySymbols(target); - for (var i = 0; i < allKeys.length; i += 1) { - var key = allKeys[i]; - if (Object.getOwnPropertyDescriptor(target, key).enumerable) { - keys.push(key); - } - } - return keys; -} - -/*! - * Determines if two objects have matching values, given a set of keys. Defers to deepEqual for the equality check of - * each key. If any value of the given key is not equal, the function will return false (early). - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Array} keys An array of keys to compare the values of leftHandOperand and rightHandOperand against - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -function keysEqual(leftHandOperand, rightHandOperand, keys, options) { - var length = keys.length; - if (length === 0) { - return true; - } - for (var i = 0; i < length; i += 1) { - if (deepEqual(leftHandOperand[keys[i]], rightHandOperand[keys[i]], options) === false) { - return false; - } - } - return true; -} - -/*! - * Recursively check the equality of two Objects. Once basic sameness has been established it will defer to `deepEqual` - * for each enumerable key in the object. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -function objectEqual(leftHandOperand, rightHandOperand, options) { - var leftHandKeys = getEnumerableKeys(leftHandOperand); - var rightHandKeys = getEnumerableKeys(rightHandOperand); - var leftHandSymbols = getEnumerableSymbols(leftHandOperand); - var rightHandSymbols = getEnumerableSymbols(rightHandOperand); - leftHandKeys = leftHandKeys.concat(leftHandSymbols); - rightHandKeys = rightHandKeys.concat(rightHandSymbols); - - if (leftHandKeys.length && leftHandKeys.length === rightHandKeys.length) { - if (iterableEqual(mapSymbols(leftHandKeys).sort(), mapSymbols(rightHandKeys).sort()) === false) { - return false; - } - return keysEqual(leftHandOperand, rightHandOperand, leftHandKeys, options); - } - - var leftHandEntries = getIteratorEntries(leftHandOperand); - var rightHandEntries = getIteratorEntries(rightHandOperand); - if (leftHandEntries.length && leftHandEntries.length === rightHandEntries.length) { - leftHandEntries.sort(); - rightHandEntries.sort(); - return iterableEqual(leftHandEntries, rightHandEntries, options); - } - - if (leftHandKeys.length === 0 && - leftHandEntries.length === 0 && - rightHandKeys.length === 0 && - rightHandEntries.length === 0) { - return true; - } - - return false; -} - -/*! - * Returns true if the argument is a primitive. - * - * This intentionally returns true for all objects that can be compared by reference, - * including functions and symbols. - * - * @param {Mixed} value - * @return {Boolean} result - */ -function isPrimitive(value) { - return value === null || typeof value !== 'object'; -} - -function mapSymbols(arr) { - return arr.map(function mapSymbol(entry) { - if (typeof entry === 'symbol') { - return entry.toString(); - } - - return entry; - }); -} - -},{"type-detect":39}],36:[function(require,module,exports){ -'use strict'; - -/* ! - * Chai - getFuncName utility - * Copyright(c) 2012-2016 Jake Luer - * MIT Licensed - */ - -/** - * ### .getFuncName(constructorFn) - * - * Returns the name of a function. - * When a non-function instance is passed, returns `null`. - * This also includes a polyfill function if `aFunc.name` is not defined. - * - * @name getFuncName - * @param {Function} funct - * @namespace Utils - * @api public - */ - -var toString = Function.prototype.toString; -var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; -var maxFunctionSourceLength = 512; -function getFuncName(aFunc) { - if (typeof aFunc !== 'function') { - return null; - } - - var name = ''; - if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') { - // eslint-disable-next-line prefer-reflect - var functionSource = toString.call(aFunc); - // To avoid unconstrained resource consumption due to pathalogically large function names, - // we limit the available return value to be less than 512 characters. - if (functionSource.indexOf('(') > maxFunctionSourceLength) { - return name; - } - // Here we run a polyfill if Function does not support the `name` property and if aFunc.name is not defined - var match = functionSource.match(functionNameMatch); - if (match) { - name = match[1]; - } - } else { - // If we've got a `name` property we just use it - name = aFunc.name; - } - - return name; -} - -module.exports = getFuncName; - -},{}],37:[function(require,module,exports){ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.loupe = {})); -}(this, (function (exports) { 'use strict'; - - function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); - } - - function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); - } - - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; - } - - function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); - } - - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - - return arr2; - } - - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - var ansiColors = { - bold: ['1', '22'], - dim: ['2', '22'], - italic: ['3', '23'], - underline: ['4', '24'], - // 5 & 6 are blinking - inverse: ['7', '27'], - hidden: ['8', '28'], - strike: ['9', '29'], - // 10-20 are fonts - // 21-29 are resets for 1-9 - black: ['30', '39'], - red: ['31', '39'], - green: ['32', '39'], - yellow: ['33', '39'], - blue: ['34', '39'], - magenta: ['35', '39'], - cyan: ['36', '39'], - white: ['37', '39'], - brightblack: ['30;1', '39'], - brightred: ['31;1', '39'], - brightgreen: ['32;1', '39'], - brightyellow: ['33;1', '39'], - brightblue: ['34;1', '39'], - brightmagenta: ['35;1', '39'], - brightcyan: ['36;1', '39'], - brightwhite: ['37;1', '39'], - grey: ['90', '39'] - }; - var styles = { - special: 'cyan', - number: 'yellow', - bigint: 'yellow', - boolean: 'yellow', - undefined: 'grey', - null: 'bold', - string: 'green', - symbol: 'green', - date: 'magenta', - regexp: 'red' - }; - var truncator = '…'; - - function colorise(value, styleType) { - var color = ansiColors[styles[styleType]] || ansiColors[styleType]; - - if (!color) { - return String(value); - } - - return "\x1B[".concat(color[0], "m").concat(String(value), "\x1B[").concat(color[1], "m"); - } - - function normaliseOptions() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$showHidden = _ref.showHidden, - showHidden = _ref$showHidden === void 0 ? false : _ref$showHidden, - _ref$depth = _ref.depth, - depth = _ref$depth === void 0 ? 2 : _ref$depth, - _ref$colors = _ref.colors, - colors = _ref$colors === void 0 ? false : _ref$colors, - _ref$customInspect = _ref.customInspect, - customInspect = _ref$customInspect === void 0 ? true : _ref$customInspect, - _ref$showProxy = _ref.showProxy, - showProxy = _ref$showProxy === void 0 ? false : _ref$showProxy, - _ref$maxArrayLength = _ref.maxArrayLength, - maxArrayLength = _ref$maxArrayLength === void 0 ? Infinity : _ref$maxArrayLength, - _ref$breakLength = _ref.breakLength, - breakLength = _ref$breakLength === void 0 ? Infinity : _ref$breakLength, - _ref$seen = _ref.seen, - seen = _ref$seen === void 0 ? [] : _ref$seen, - _ref$truncate = _ref.truncate, - truncate = _ref$truncate === void 0 ? Infinity : _ref$truncate, - _ref$stylize = _ref.stylize, - stylize = _ref$stylize === void 0 ? String : _ref$stylize; - - var options = { - showHidden: Boolean(showHidden), - depth: Number(depth), - colors: Boolean(colors), - customInspect: Boolean(customInspect), - showProxy: Boolean(showProxy), - maxArrayLength: Number(maxArrayLength), - breakLength: Number(breakLength), - truncate: Number(truncate), - seen: seen, - stylize: stylize - }; - - if (options.colors) { - options.stylize = colorise; - } - - return options; - } - function truncate(string, length) { - var tail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : truncator; - string = String(string); - var tailLength = tail.length; - var stringLength = string.length; - - if (tailLength > length && stringLength > tailLength) { - return tail; - } - - if (stringLength > length && stringLength > tailLength) { - return "".concat(string.slice(0, length - tailLength)).concat(tail); - } - - return string; - } // eslint-disable-next-line complexity - - function inspectList(list, options, inspectItem) { - var separator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ', '; - inspectItem = inspectItem || options.inspect; - var size = list.length; - if (size === 0) return ''; - var originalLength = options.truncate; - var output = ''; - var peek = ''; - var truncated = ''; - - for (var i = 0; i < size; i += 1) { - var last = i + 1 === list.length; - var secondToLast = i + 2 === list.length; - truncated = "".concat(truncator, "(").concat(list.length - i, ")"); - var value = list[i]; // If there is more than one remaining we need to account for a separator of `, ` - - options.truncate = originalLength - output.length - (last ? 0 : separator.length); - var string = peek || inspectItem(value, options) + (last ? '' : separator); - var nextLength = output.length + string.length; - var truncatedLength = nextLength + truncated.length; // If this is the last element, and adding it would - // take us over length, but adding the truncator wouldn't - then break now - - if (last && nextLength > originalLength && output.length + truncated.length <= originalLength) { - break; - } // If this isn't the last or second to last element to scan, - // but the string is already over length then break here - - - if (!last && !secondToLast && truncatedLength > originalLength) { - break; - } // Peek at the next string to determine if we should - // break early before adding this item to the output - - - peek = last ? '' : inspectItem(list[i + 1], options) + (secondToLast ? '' : separator); // If we have one element left, but this element and - // the next takes over length, the break early - - if (!last && secondToLast && truncatedLength > originalLength && nextLength + peek.length > originalLength) { - break; - } - - output += string; // If the next element takes us to length - - // but there are more after that, then we should truncate now - - if (!last && !secondToLast && nextLength + peek.length >= originalLength) { - truncated = "".concat(truncator, "(").concat(list.length - i - 1, ")"); - break; - } - - truncated = ''; - } - - return "".concat(output).concat(truncated); - } - - function quoteComplexKey(key) { - if (key.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)) { - return key; - } - - return JSON.stringify(key).replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"); - } - - function inspectProperty(_ref2, options) { - var _ref3 = _slicedToArray(_ref2, 2), - key = _ref3[0], - value = _ref3[1]; - - options.truncate -= 2; - - if (typeof key === 'string') { - key = quoteComplexKey(key); - } else if (typeof key !== 'number') { - key = "[".concat(options.inspect(key, options), "]"); - } - - options.truncate -= key.length; - value = options.inspect(value, options); - return "".concat(key, ": ").concat(value); - } - - function inspectArray(array, options) { - // Object.keys will always output the Array indices first, so we can slice by - // `array.length` to get non-index properties - var nonIndexProperties = Object.keys(array).slice(array.length); - if (!array.length && !nonIndexProperties.length) return '[]'; - options.truncate -= 4; - var listContents = inspectList(array, options); - options.truncate -= listContents.length; - var propertyContents = ''; - - if (nonIndexProperties.length) { - propertyContents = inspectList(nonIndexProperties.map(function (key) { - return [key, array[key]]; - }), options, inspectProperty); - } - - return "[ ".concat(listContents).concat(propertyContents ? ", ".concat(propertyContents) : '', " ]"); - } - - /* ! - * Chai - getFuncName utility - * Copyright(c) 2012-2016 Jake Luer - * MIT Licensed - */ - - /** - * ### .getFuncName(constructorFn) - * - * Returns the name of a function. - * When a non-function instance is passed, returns `null`. - * This also includes a polyfill function if `aFunc.name` is not defined. - * - * @name getFuncName - * @param {Function} funct - * @namespace Utils - * @api public - */ - - var toString = Function.prototype.toString; - var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; - function getFuncName(aFunc) { - if (typeof aFunc !== 'function') { - return null; - } - - var name = ''; - if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') { - // Here we run a polyfill if Function does not support the `name` property and if aFunc.name is not defined - var match = toString.call(aFunc).match(functionNameMatch); - if (match) { - name = match[1]; - } - } else { - // If we've got a `name` property we just use it - name = aFunc.name; - } - - return name; - } - - var getFuncName_1 = getFuncName; - - var getArrayName = function getArrayName(array) { - // We need to special case Node.js' Buffers, which report to be Uint8Array - if (typeof Buffer === 'function' && array instanceof Buffer) { - return 'Buffer'; - } - - if (array[Symbol.toStringTag]) { - return array[Symbol.toStringTag]; - } - - return getFuncName_1(array.constructor); - }; - - function inspectTypedArray(array, options) { - var name = getArrayName(array); - options.truncate -= name.length + 4; // Object.keys will always output the Array indices first, so we can slice by - // `array.length` to get non-index properties - - var nonIndexProperties = Object.keys(array).slice(array.length); - if (!array.length && !nonIndexProperties.length) return "".concat(name, "[]"); // As we know TypedArrays only contain Unsigned Integers, we can skip inspecting each one and simply - // stylise the toString() value of them - - var output = ''; - - for (var i = 0; i < array.length; i++) { - var string = "".concat(options.stylize(truncate(array[i], options.truncate), 'number')).concat(i === array.length - 1 ? '' : ', '); - options.truncate -= string.length; - - if (array[i] !== array.length && options.truncate <= 3) { - output += "".concat(truncator, "(").concat(array.length - array[i] + 1, ")"); - break; - } - - output += string; - } - - var propertyContents = ''; - - if (nonIndexProperties.length) { - propertyContents = inspectList(nonIndexProperties.map(function (key) { - return [key, array[key]]; - }), options, inspectProperty); - } - - return "".concat(name, "[ ").concat(output).concat(propertyContents ? ", ".concat(propertyContents) : '', " ]"); - } - - function inspectDate(dateObject, options) { - var stringRepresentation = dateObject.toJSON(); - - if (stringRepresentation === null) { - return 'Invalid Date'; - } - - var split = stringRepresentation.split('T'); - var date = split[0]; // If we need to - truncate the time portion, but never the date - - return options.stylize("".concat(date, "T").concat(truncate(split[1], options.truncate - date.length - 1)), 'date'); - } - - function inspectFunction(func, options) { - var name = getFuncName_1(func); - - if (!name) { - return options.stylize('[Function]', 'special'); - } - - return options.stylize("[Function ".concat(truncate(name, options.truncate - 11), "]"), 'special'); - } - - function inspectMapEntry(_ref, options) { - var _ref2 = _slicedToArray(_ref, 2), - key = _ref2[0], - value = _ref2[1]; - - options.truncate -= 4; - key = options.inspect(key, options); - options.truncate -= key.length; - value = options.inspect(value, options); - return "".concat(key, " => ").concat(value); - } // IE11 doesn't support `map.entries()` - - - function mapToEntries(map) { - var entries = []; - map.forEach(function (value, key) { - entries.push([key, value]); - }); - return entries; - } - - function inspectMap(map, options) { - var size = map.size - 1; - - if (size <= 0) { - return 'Map{}'; - } - - options.truncate -= 7; - return "Map{ ".concat(inspectList(mapToEntries(map), options, inspectMapEntry), " }"); - } - - var isNaN = Number.isNaN || function (i) { - return i !== i; - }; // eslint-disable-line no-self-compare - - - function inspectNumber(number, options) { - if (isNaN(number)) { - return options.stylize('NaN', 'number'); - } - - if (number === Infinity) { - return options.stylize('Infinity', 'number'); - } - - if (number === -Infinity) { - return options.stylize('-Infinity', 'number'); - } - - if (number === 0) { - return options.stylize(1 / number === Infinity ? '+0' : '-0', 'number'); - } - - return options.stylize(truncate(number, options.truncate), 'number'); - } - - function inspectBigInt(number, options) { - var nums = truncate(number.toString(), options.truncate - 1); - if (nums !== truncator) nums += 'n'; - return options.stylize(nums, 'bigint'); - } - - function inspectRegExp(value, options) { - var flags = value.toString().split('/')[2]; - var sourceLength = options.truncate - (2 + flags.length); - var source = value.source; - return options.stylize("/".concat(truncate(source, sourceLength), "/").concat(flags), 'regexp'); - } - - function arrayFromSet(set) { - var values = []; - set.forEach(function (value) { - values.push(value); - }); - return values; - } - - function inspectSet(set, options) { - if (set.size === 0) return 'Set{}'; - options.truncate -= 7; - return "Set{ ".concat(inspectList(arrayFromSet(set), options), " }"); - } - - var stringEscapeChars = new RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5" + "\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]", 'g'); - var escapeCharacters = { - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - "'": "\\'", - '\\': '\\\\' - }; - var hex = 16; - var unicodeLength = 4; - - function escape(char) { - return escapeCharacters[char] || "\\u".concat("0000".concat(char.charCodeAt(0).toString(hex)).slice(-unicodeLength)); - } - - function inspectString(string, options) { - if (stringEscapeChars.test(string)) { - string = string.replace(stringEscapeChars, escape); - } - - return options.stylize("'".concat(truncate(string, options.truncate - 2), "'"), 'string'); - } - - function inspectSymbol(value) { - if ('description' in Symbol.prototype) { - return value.description ? "Symbol(".concat(value.description, ")") : 'Symbol()'; - } - - return value.toString(); - } - - var getPromiseValue = function getPromiseValue() { - return 'Promise{…}'; - }; - - try { - var _process$binding = process.binding('util'), - getPromiseDetails = _process$binding.getPromiseDetails, - kPending = _process$binding.kPending, - kRejected = _process$binding.kRejected; - - if (Array.isArray(getPromiseDetails(Promise.resolve()))) { - getPromiseValue = function getPromiseValue(value, options) { - var _getPromiseDetails = getPromiseDetails(value), - _getPromiseDetails2 = _slicedToArray(_getPromiseDetails, 2), - state = _getPromiseDetails2[0], - innerValue = _getPromiseDetails2[1]; - - if (state === kPending) { - return 'Promise{}'; - } - - return "Promise".concat(state === kRejected ? '!' : '', "{").concat(options.inspect(innerValue, options), "}"); - }; - } - } catch (notNode) { - /* ignore */ - } - - var inspectPromise = getPromiseValue; - - function inspectObject(object, options) { - var properties = Object.getOwnPropertyNames(object); - var symbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []; - - if (properties.length === 0 && symbols.length === 0) { - return '{}'; - } - - options.truncate -= 4; - options.seen = options.seen || []; - - if (options.seen.indexOf(object) >= 0) { - return '[Circular]'; - } - - options.seen.push(object); - var propertyContents = inspectList(properties.map(function (key) { - return [key, object[key]]; - }), options, inspectProperty); - var symbolContents = inspectList(symbols.map(function (key) { - return [key, object[key]]; - }), options, inspectProperty); - options.seen.pop(); - var sep = ''; - - if (propertyContents && symbolContents) { - sep = ', '; - } - - return "{ ".concat(propertyContents).concat(sep).concat(symbolContents, " }"); - } - - var toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag ? Symbol.toStringTag : false; - function inspectClass(value, options) { - var name = ''; - - if (toStringTag && toStringTag in value) { - name = value[toStringTag]; - } - - name = name || getFuncName_1(value.constructor); // Babel transforms anonymous classes to the name `_class` - - if (!name || name === '_class') { - name = ''; - } - - options.truncate -= name.length; - return "".concat(name).concat(inspectObject(value, options)); - } - - function inspectArguments(args, options) { - if (args.length === 0) return 'Arguments[]'; - options.truncate -= 13; - return "Arguments[ ".concat(inspectList(args, options), " ]"); - } - - var errorKeys = ['stack', 'line', 'column', 'name', 'message', 'fileName', 'lineNumber', 'columnNumber', 'number', 'description']; - function inspectObject$1(error, options) { - var properties = Object.getOwnPropertyNames(error).filter(function (key) { - return errorKeys.indexOf(key) === -1; - }); - var name = error.name; - options.truncate -= name.length; - var message = ''; - - if (typeof error.message === 'string') { - message = truncate(error.message, options.truncate); - } else { - properties.unshift('message'); - } - - message = message ? ": ".concat(message) : ''; - options.truncate -= message.length + 5; - var propertyContents = inspectList(properties.map(function (key) { - return [key, error[key]]; - }), options, inspectProperty); - return "".concat(name).concat(message).concat(propertyContents ? " { ".concat(propertyContents, " }") : ''); - } - - function inspectAttribute(_ref, options) { - var _ref2 = _slicedToArray(_ref, 2), - key = _ref2[0], - value = _ref2[1]; - - options.truncate -= 3; - - if (!value) { - return "".concat(options.stylize(key, 'yellow')); - } - - return "".concat(options.stylize(key, 'yellow'), "=").concat(options.stylize("\"".concat(value, "\""), 'string')); - } - function inspectHTMLCollection(collection, options) { - // eslint-disable-next-line no-use-before-define - return inspectList(collection, options, inspectHTML, '\n'); - } - function inspectHTML(element, options) { - var properties = element.getAttributeNames(); - var name = element.tagName.toLowerCase(); - var head = options.stylize("<".concat(name), 'special'); - var headClose = options.stylize(">", 'special'); - var tail = options.stylize(""), 'special'); - options.truncate -= name.length * 2 + 5; - var propertyContents = ''; - - if (properties.length > 0) { - propertyContents += ' '; - propertyContents += inspectList(properties.map(function (key) { - return [key, element.getAttribute(key)]; - }), options, inspectAttribute, ' '); - } - - options.truncate -= propertyContents.length; - var truncate = options.truncate; - var children = inspectHTMLCollection(element.children, options); - - if (children && children.length > truncate) { - children = "".concat(truncator, "(").concat(element.children.length, ")"); - } - - return "".concat(head).concat(propertyContents).concat(headClose).concat(children).concat(tail); - } - - var symbolsSupported = typeof Symbol === 'function' && typeof Symbol.for === 'function'; - var chaiInspect = symbolsSupported ? Symbol.for('chai/inspect') : '@@chai/inspect'; - var nodeInspect = false; - - try { - // eslint-disable-next-line global-require - var nodeUtil = require('util'); - - nodeInspect = nodeUtil.inspect ? nodeUtil.inspect.custom : false; - } catch (noNodeInspect) { - nodeInspect = false; - } - - function FakeMap() { - // eslint-disable-next-line prefer-template - this.key = 'chai/loupe__' + Math.random() + Date.now(); - } - - FakeMap.prototype = { - // eslint-disable-next-line object-shorthand - get: function get(key) { - return key[this.key]; - }, - // eslint-disable-next-line object-shorthand - has: function has(key) { - return this.key in key; - }, - // eslint-disable-next-line object-shorthand - set: function set(key, value) { - if (Object.isExtensible(key)) { - Object.defineProperty(key, this.key, { - // eslint-disable-next-line object-shorthand - value: value, - configurable: true - }); - } - } - }; - var constructorMap = new (typeof WeakMap === 'function' ? WeakMap : FakeMap)(); - var stringTagMap = {}; - var baseTypesMap = { - undefined: function undefined$1(value, options) { - return options.stylize('undefined', 'undefined'); - }, - null: function _null(value, options) { - return options.stylize(null, 'null'); - }, - boolean: function boolean(value, options) { - return options.stylize(value, 'boolean'); - }, - Boolean: function Boolean(value, options) { - return options.stylize(value, 'boolean'); - }, - number: inspectNumber, - Number: inspectNumber, - bigint: inspectBigInt, - BigInt: inspectBigInt, - string: inspectString, - String: inspectString, - function: inspectFunction, - Function: inspectFunction, - symbol: inspectSymbol, - // A Symbol polyfill will return `Symbol` not `symbol` from typedetect - Symbol: inspectSymbol, - Array: inspectArray, - Date: inspectDate, - Map: inspectMap, - Set: inspectSet, - RegExp: inspectRegExp, - Promise: inspectPromise, - // WeakSet, WeakMap are totally opaque to us - WeakSet: function WeakSet(value, options) { - return options.stylize('WeakSet{…}', 'special'); - }, - WeakMap: function WeakMap(value, options) { - return options.stylize('WeakMap{…}', 'special'); - }, - Arguments: inspectArguments, - Int8Array: inspectTypedArray, - Uint8Array: inspectTypedArray, - Uint8ClampedArray: inspectTypedArray, - Int16Array: inspectTypedArray, - Uint16Array: inspectTypedArray, - Int32Array: inspectTypedArray, - Uint32Array: inspectTypedArray, - Float32Array: inspectTypedArray, - Float64Array: inspectTypedArray, - Generator: function Generator() { - return ''; - }, - DataView: function DataView() { - return ''; - }, - ArrayBuffer: function ArrayBuffer() { - return ''; - }, - Error: inspectObject$1, - HTMLCollection: inspectHTMLCollection, - NodeList: inspectHTMLCollection - }; // eslint-disable-next-line complexity - - var inspectCustom = function inspectCustom(value, options, type) { - if (chaiInspect in value && typeof value[chaiInspect] === 'function') { - return value[chaiInspect](options); - } - - if (nodeInspect && nodeInspect in value && typeof value[nodeInspect] === 'function') { - return value[nodeInspect](options.depth, options); - } - - if ('inspect' in value && typeof value.inspect === 'function') { - return value.inspect(options.depth, options); - } - - if ('constructor' in value && constructorMap.has(value.constructor)) { - return constructorMap.get(value.constructor)(value, options); - } - - if (stringTagMap[type]) { - return stringTagMap[type](value, options); - } - - return ''; - }; - - var toString$1 = Object.prototype.toString; // eslint-disable-next-line complexity - - function inspect(value, options) { - options = normaliseOptions(options); - options.inspect = inspect; - var _options = options, - customInspect = _options.customInspect; - var type = value === null ? 'null' : _typeof(value); - - if (type === 'object') { - type = toString$1.call(value).slice(8, -1); - } // If it is a base value that we already support, then use Loupe's inspector - - - if (baseTypesMap[type]) { - return baseTypesMap[type](value, options); - } // If `options.customInspect` is set to true then try to use the custom inspector - - - if (customInspect && value) { - var output = inspectCustom(value, options, type); - - if (output) { - if (typeof output === 'string') return output; - return inspect(output, options); - } - } - - var proto = value ? Object.getPrototypeOf(value) : false; // If it's a plain Object then use Loupe's inspector - - if (proto === Object.prototype || proto === null) { - return inspectObject(value, options); - } // Specifically account for HTMLElements - // eslint-disable-next-line no-undef - - - if (value && typeof HTMLElement === 'function' && value instanceof HTMLElement) { - return inspectHTML(value, options); - } - - if ('constructor' in value) { - // If it is a class, inspect it like an object but add the constructor name - if (value.constructor !== Object) { - return inspectClass(value, options); - } // If it is an object with an anonymous prototype, display it as an object. - - - return inspectObject(value, options); - } // last chance to check if it's an object - - - if (value === Object(value)) { - return inspectObject(value, options); - } // We have run out of options! Just stringify the value - - - return options.stylize(String(value), type); - } - function registerConstructor(constructor, inspector) { - if (constructorMap.has(constructor)) { - return false; - } - - constructorMap.set(constructor, inspector); - return true; - } - function registerStringTag(stringTag, inspector) { - if (stringTag in stringTagMap) { - return false; - } - - stringTagMap[stringTag] = inspector; - return true; - } - var custom = chaiInspect; - - exports.custom = custom; - exports.default = inspect; - exports.inspect = inspect; - exports.registerConstructor = registerConstructor; - exports.registerStringTag = registerStringTag; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); - -},{"util":undefined}],38:[function(require,module,exports){ -'use strict'; - -/* ! - * Chai - pathval utility - * Copyright(c) 2012-2014 Jake Luer - * @see https://github.com/logicalparadox/filtr - * MIT Licensed - */ - -/** - * ### .hasProperty(object, name) - * - * This allows checking whether an object has own - * or inherited from prototype chain named property. - * - * Basically does the same thing as the `in` - * operator but works properly with null/undefined values - * and other primitives. - * - * var obj = { - * arr: ['a', 'b', 'c'] - * , str: 'Hello' - * } - * - * The following would be the results. - * - * hasProperty(obj, 'str'); // true - * hasProperty(obj, 'constructor'); // true - * hasProperty(obj, 'bar'); // false - * - * hasProperty(obj.str, 'length'); // true - * hasProperty(obj.str, 1); // true - * hasProperty(obj.str, 5); // false - * - * hasProperty(obj.arr, 'length'); // true - * hasProperty(obj.arr, 2); // true - * hasProperty(obj.arr, 3); // false - * - * @param {Object} object - * @param {String|Symbol} name - * @returns {Boolean} whether it exists - * @namespace Utils - * @name hasProperty - * @api public - */ - -function hasProperty(obj, name) { - if (typeof obj === 'undefined' || obj === null) { - return false; - } - - // The `in` operator does not work with primitives. - return name in Object(obj); -} - -/* ! - * ## parsePath(path) - * - * Helper function used to parse string object - * paths. Use in conjunction with `internalGetPathValue`. - * - * var parsed = parsePath('myobject.property.subprop'); - * - * ### Paths: - * - * * Can be infinitely deep and nested. - * * Arrays are also valid using the formal `myobject.document[3].property`. - * * Literal dots and brackets (not delimiter) must be backslash-escaped. - * - * @param {String} path - * @returns {Object} parsed - * @api private - */ - -function parsePath(path) { - var str = path.replace(/([^\\])\[/g, '$1.['); - var parts = str.match(/(\\\.|[^.]+?)+/g); - return parts.map(function mapMatches(value) { - if ( - value === 'constructor' || - value === '__proto__' || - value === 'prototype' - ) { - return {}; - } - var regexp = /^\[(\d+)\]$/; - var mArr = regexp.exec(value); - var parsed = null; - if (mArr) { - parsed = { i: parseFloat(mArr[1]) }; - } else { - parsed = { p: value.replace(/\\([.[\]])/g, '$1') }; - } - - return parsed; - }); -} - -/* ! - * ## internalGetPathValue(obj, parsed[, pathDepth]) - * - * Helper companion function for `.parsePath` that returns - * the value located at the parsed address. - * - * var value = getPathValue(obj, parsed); - * - * @param {Object} object to search against - * @param {Object} parsed definition from `parsePath`. - * @param {Number} depth (nesting level) of the property we want to retrieve - * @returns {Object|Undefined} value - * @api private - */ - -function internalGetPathValue(obj, parsed, pathDepth) { - var temporaryValue = obj; - var res = null; - pathDepth = typeof pathDepth === 'undefined' ? parsed.length : pathDepth; - - for (var i = 0; i < pathDepth; i++) { - var part = parsed[i]; - if (temporaryValue) { - if (typeof part.p === 'undefined') { - temporaryValue = temporaryValue[part.i]; - } else { - temporaryValue = temporaryValue[part.p]; - } - - if (i === pathDepth - 1) { - res = temporaryValue; - } - } - } - - return res; -} - -/* ! - * ## internalSetPathValue(obj, value, parsed) - * - * Companion function for `parsePath` that sets - * the value located at a parsed address. - * - * internalSetPathValue(obj, 'value', parsed); - * - * @param {Object} object to search and define on - * @param {*} value to use upon set - * @param {Object} parsed definition from `parsePath` - * @api private - */ - -function internalSetPathValue(obj, val, parsed) { - var tempObj = obj; - var pathDepth = parsed.length; - var part = null; - // Here we iterate through every part of the path - for (var i = 0; i < pathDepth; i++) { - var propName = null; - var propVal = null; - part = parsed[i]; - - // If it's the last part of the path, we set the 'propName' value with the property name - if (i === pathDepth - 1) { - propName = typeof part.p === 'undefined' ? part.i : part.p; - // Now we set the property with the name held by 'propName' on object with the desired val - tempObj[propName] = val; - } else if (typeof part.p !== 'undefined' && tempObj[part.p]) { - tempObj = tempObj[part.p]; - } else if (typeof part.i !== 'undefined' && tempObj[part.i]) { - tempObj = tempObj[part.i]; - } else { - // If the obj doesn't have the property we create one with that name to define it - var next = parsed[i + 1]; - // Here we set the name of the property which will be defined - propName = typeof part.p === 'undefined' ? part.i : part.p; - // Here we decide if this property will be an array or a new object - propVal = typeof next.p === 'undefined' ? [] : {}; - tempObj[propName] = propVal; - tempObj = tempObj[propName]; - } - } -} - -/** - * ### .getPathInfo(object, path) - * - * This allows the retrieval of property info in an - * object given a string path. - * - * The path info consists of an object with the - * following properties: - * - * * parent - The parent object of the property referenced by `path` - * * name - The name of the final property, a number if it was an array indexer - * * value - The value of the property, if it exists, otherwise `undefined` - * * exists - Whether the property exists or not - * - * @param {Object} object - * @param {String} path - * @returns {Object} info - * @namespace Utils - * @name getPathInfo - * @api public - */ - -function getPathInfo(obj, path) { - var parsed = parsePath(path); - var last = parsed[parsed.length - 1]; - var info = { - parent: - parsed.length > 1 ? - internalGetPathValue(obj, parsed, parsed.length - 1) : - obj, - name: last.p || last.i, - value: internalGetPathValue(obj, parsed), - }; - info.exists = hasProperty(info.parent, info.name); - - return info; -} - -/** - * ### .getPathValue(object, path) - * - * This allows the retrieval of values in an - * object given a string path. - * - * var obj = { - * prop1: { - * arr: ['a', 'b', 'c'] - * , str: 'Hello' - * } - * , prop2: { - * arr: [ { nested: 'Universe' } ] - * , str: 'Hello again!' - * } - * } - * - * The following would be the results. - * - * getPathValue(obj, 'prop1.str'); // Hello - * getPathValue(obj, 'prop1.att[2]'); // b - * getPathValue(obj, 'prop2.arr[0].nested'); // Universe - * - * @param {Object} object - * @param {String} path - * @returns {Object} value or `undefined` - * @namespace Utils - * @name getPathValue - * @api public - */ - -function getPathValue(obj, path) { - var info = getPathInfo(obj, path); - return info.value; -} - -/** - * ### .setPathValue(object, path, value) - * - * Define the value in an object at a given string path. - * - * ```js - * var obj = { - * prop1: { - * arr: ['a', 'b', 'c'] - * , str: 'Hello' - * } - * , prop2: { - * arr: [ { nested: 'Universe' } ] - * , str: 'Hello again!' - * } - * }; - * ``` - * - * The following would be acceptable. - * - * ```js - * var properties = require('tea-properties'); - * properties.set(obj, 'prop1.str', 'Hello Universe!'); - * properties.set(obj, 'prop1.arr[2]', 'B'); - * properties.set(obj, 'prop2.arr[0].nested.value', { hello: 'universe' }); - * ``` - * - * @param {Object} object - * @param {String} path - * @param {Mixed} value - * @api private - */ - -function setPathValue(obj, path, val) { - var parsed = parsePath(path); - internalSetPathValue(obj, val, parsed); - return obj; -} - -module.exports = { - hasProperty: hasProperty, - getPathInfo: getPathInfo, - getPathValue: getPathValue, - setPathValue: setPathValue, -}; - -},{}],39:[function(require,module,exports){ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.typeDetect = factory()); -}(this, (function () { 'use strict'; - -/* ! - * type-detect - * Copyright(c) 2013 jake luer - * MIT Licensed - */ -var promiseExists = typeof Promise === 'function'; - -/* eslint-disable no-undef */ -var globalObject = typeof self === 'object' ? self : global; // eslint-disable-line id-blacklist - -var symbolExists = typeof Symbol !== 'undefined'; -var mapExists = typeof Map !== 'undefined'; -var setExists = typeof Set !== 'undefined'; -var weakMapExists = typeof WeakMap !== 'undefined'; -var weakSetExists = typeof WeakSet !== 'undefined'; -var dataViewExists = typeof DataView !== 'undefined'; -var symbolIteratorExists = symbolExists && typeof Symbol.iterator !== 'undefined'; -var symbolToStringTagExists = symbolExists && typeof Symbol.toStringTag !== 'undefined'; -var setEntriesExists = setExists && typeof Set.prototype.entries === 'function'; -var mapEntriesExists = mapExists && typeof Map.prototype.entries === 'function'; -var setIteratorPrototype = setEntriesExists && Object.getPrototypeOf(new Set().entries()); -var mapIteratorPrototype = mapEntriesExists && Object.getPrototypeOf(new Map().entries()); -var arrayIteratorExists = symbolIteratorExists && typeof Array.prototype[Symbol.iterator] === 'function'; -var arrayIteratorPrototype = arrayIteratorExists && Object.getPrototypeOf([][Symbol.iterator]()); -var stringIteratorExists = symbolIteratorExists && typeof String.prototype[Symbol.iterator] === 'function'; -var stringIteratorPrototype = stringIteratorExists && Object.getPrototypeOf(''[Symbol.iterator]()); -var toStringLeftSliceLength = 8; -var toStringRightSliceLength = -1; -/** - * ### typeOf (obj) - * - * Uses `Object.prototype.toString` to determine the type of an object, - * normalising behaviour across engine versions & well optimised. - * - * @param {Mixed} object - * @return {String} object type - * @api public - */ -function typeDetect(obj) { - /* ! Speed optimisation - * Pre: - * string literal x 3,039,035 ops/sec ±1.62% (78 runs sampled) - * boolean literal x 1,424,138 ops/sec ±4.54% (75 runs sampled) - * number literal x 1,653,153 ops/sec ±1.91% (82 runs sampled) - * undefined x 9,978,660 ops/sec ±1.92% (75 runs sampled) - * function x 2,556,769 ops/sec ±1.73% (77 runs sampled) - * Post: - * string literal x 38,564,796 ops/sec ±1.15% (79 runs sampled) - * boolean literal x 31,148,940 ops/sec ±1.10% (79 runs sampled) - * number literal x 32,679,330 ops/sec ±1.90% (78 runs sampled) - * undefined x 32,363,368 ops/sec ±1.07% (82 runs sampled) - * function x 31,296,870 ops/sec ±0.96% (83 runs sampled) - */ - var typeofObj = typeof obj; - if (typeofObj !== 'object') { - return typeofObj; - } - - /* ! Speed optimisation - * Pre: - * null x 28,645,765 ops/sec ±1.17% (82 runs sampled) - * Post: - * null x 36,428,962 ops/sec ±1.37% (84 runs sampled) - */ - if (obj === null) { - return 'null'; - } - - /* ! Spec Conformance - * Test: `Object.prototype.toString.call(window)`` - * - Node === "[object global]" - * - Chrome === "[object global]" - * - Firefox === "[object Window]" - * - PhantomJS === "[object Window]" - * - Safari === "[object Window]" - * - IE 11 === "[object Window]" - * - IE Edge === "[object Window]" - * Test: `Object.prototype.toString.call(this)`` - * - Chrome Worker === "[object global]" - * - Firefox Worker === "[object DedicatedWorkerGlobalScope]" - * - Safari Worker === "[object DedicatedWorkerGlobalScope]" - * - IE 11 Worker === "[object WorkerGlobalScope]" - * - IE Edge Worker === "[object WorkerGlobalScope]" - */ - if (obj === globalObject) { - return 'global'; - } - - /* ! Speed optimisation - * Pre: - * array literal x 2,888,352 ops/sec ±0.67% (82 runs sampled) - * Post: - * array literal x 22,479,650 ops/sec ±0.96% (81 runs sampled) - */ - if ( - Array.isArray(obj) && - (symbolToStringTagExists === false || !(Symbol.toStringTag in obj)) - ) { - return 'Array'; - } - - // Not caching existence of `window` and related properties due to potential - // for `window` to be unset before tests in quasi-browser environments. - if (typeof window === 'object' && window !== null) { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/browsers.html#location) - * WhatWG HTML$7.7.3 - The `Location` interface - * Test: `Object.prototype.toString.call(window.location)`` - * - IE <=11 === "[object Object]" - * - IE Edge <=13 === "[object Object]" - */ - if (typeof window.location === 'object' && obj === window.location) { - return 'Location'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#document) - * WhatWG HTML$3.1.1 - The `Document` object - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * WhatWG HTML states: - * > For historical reasons, Window objects must also have a - * > writable, configurable, non-enumerable property named - * > HTMLDocument whose value is the Document interface object. - * Test: `Object.prototype.toString.call(document)`` - * - Chrome === "[object HTMLDocument]" - * - Firefox === "[object HTMLDocument]" - * - Safari === "[object HTMLDocument]" - * - IE <=10 === "[object Document]" - * - IE 11 === "[object HTMLDocument]" - * - IE Edge <=13 === "[object HTMLDocument]" - */ - if (typeof window.document === 'object' && obj === window.document) { - return 'Document'; - } - - if (typeof window.navigator === 'object') { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#mimetypearray) - * WhatWG HTML$8.6.1.5 - Plugins - Interface MimeTypeArray - * Test: `Object.prototype.toString.call(navigator.mimeTypes)`` - * - IE <=10 === "[object MSMimeTypesCollection]" - */ - if (typeof window.navigator.mimeTypes === 'object' && - obj === window.navigator.mimeTypes) { - return 'MimeTypeArray'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#pluginarray) - * WhatWG HTML$8.6.1.5 - Plugins - Interface PluginArray - * Test: `Object.prototype.toString.call(navigator.plugins)`` - * - IE <=10 === "[object MSPluginsCollection]" - */ - if (typeof window.navigator.plugins === 'object' && - obj === window.navigator.plugins) { - return 'PluginArray'; - } - } - - if ((typeof window.HTMLElement === 'function' || - typeof window.HTMLElement === 'object') && - obj instanceof window.HTMLElement) { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#pluginarray) - * WhatWG HTML$4.4.4 - The `blockquote` element - Interface `HTMLQuoteElement` - * Test: `Object.prototype.toString.call(document.createElement('blockquote'))`` - * - IE <=10 === "[object HTMLBlockElement]" - */ - if (obj.tagName === 'BLOCKQUOTE') { - return 'HTMLQuoteElement'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#htmltabledatacellelement) - * WhatWG HTML$4.9.9 - The `td` element - Interface `HTMLTableDataCellElement` - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-82915075) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * Test: Object.prototype.toString.call(document.createElement('td')) - * - Chrome === "[object HTMLTableCellElement]" - * - Firefox === "[object HTMLTableCellElement]" - * - Safari === "[object HTMLTableCellElement]" - */ - if (obj.tagName === 'TD') { - return 'HTMLTableDataCellElement'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#htmltableheadercellelement) - * WhatWG HTML$4.9.9 - The `td` element - Interface `HTMLTableHeaderCellElement` - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-82915075) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * Test: Object.prototype.toString.call(document.createElement('th')) - * - Chrome === "[object HTMLTableCellElement]" - * - Firefox === "[object HTMLTableCellElement]" - * - Safari === "[object HTMLTableCellElement]" - */ - if (obj.tagName === 'TH') { - return 'HTMLTableHeaderCellElement'; - } - } - } - - /* ! Speed optimisation - * Pre: - * Float64Array x 625,644 ops/sec ±1.58% (80 runs sampled) - * Float32Array x 1,279,852 ops/sec ±2.91% (77 runs sampled) - * Uint32Array x 1,178,185 ops/sec ±1.95% (83 runs sampled) - * Uint16Array x 1,008,380 ops/sec ±2.25% (80 runs sampled) - * Uint8Array x 1,128,040 ops/sec ±2.11% (81 runs sampled) - * Int32Array x 1,170,119 ops/sec ±2.88% (80 runs sampled) - * Int16Array x 1,176,348 ops/sec ±5.79% (86 runs sampled) - * Int8Array x 1,058,707 ops/sec ±4.94% (77 runs sampled) - * Uint8ClampedArray x 1,110,633 ops/sec ±4.20% (80 runs sampled) - * Post: - * Float64Array x 7,105,671 ops/sec ±13.47% (64 runs sampled) - * Float32Array x 5,887,912 ops/sec ±1.46% (82 runs sampled) - * Uint32Array x 6,491,661 ops/sec ±1.76% (79 runs sampled) - * Uint16Array x 6,559,795 ops/sec ±1.67% (82 runs sampled) - * Uint8Array x 6,463,966 ops/sec ±1.43% (85 runs sampled) - * Int32Array x 5,641,841 ops/sec ±3.49% (81 runs sampled) - * Int16Array x 6,583,511 ops/sec ±1.98% (80 runs sampled) - * Int8Array x 6,606,078 ops/sec ±1.74% (81 runs sampled) - * Uint8ClampedArray x 6,602,224 ops/sec ±1.77% (83 runs sampled) - */ - var stringTag = (symbolToStringTagExists && obj[Symbol.toStringTag]); - if (typeof stringTag === 'string') { - return stringTag; - } - - var objPrototype = Object.getPrototypeOf(obj); - /* ! Speed optimisation - * Pre: - * regex literal x 1,772,385 ops/sec ±1.85% (77 runs sampled) - * regex constructor x 2,143,634 ops/sec ±2.46% (78 runs sampled) - * Post: - * regex literal x 3,928,009 ops/sec ±0.65% (78 runs sampled) - * regex constructor x 3,931,108 ops/sec ±0.58% (84 runs sampled) - */ - if (objPrototype === RegExp.prototype) { - return 'RegExp'; - } - - /* ! Speed optimisation - * Pre: - * date x 2,130,074 ops/sec ±4.42% (68 runs sampled) - * Post: - * date x 3,953,779 ops/sec ±1.35% (77 runs sampled) - */ - if (objPrototype === Date.prototype) { - return 'Date'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-promise.prototype-@@tostringtag) - * ES6$25.4.5.4 - Promise.prototype[@@toStringTag] should be "Promise": - * Test: `Object.prototype.toString.call(Promise.resolve())`` - * - Chrome <=47 === "[object Object]" - * - Edge <=20 === "[object Object]" - * - Firefox 29-Latest === "[object Promise]" - * - Safari 7.1-Latest === "[object Promise]" - */ - if (promiseExists && objPrototype === Promise.prototype) { - return 'Promise'; - } - - /* ! Speed optimisation - * Pre: - * set x 2,222,186 ops/sec ±1.31% (82 runs sampled) - * Post: - * set x 4,545,879 ops/sec ±1.13% (83 runs sampled) - */ - if (setExists && objPrototype === Set.prototype) { - return 'Set'; - } - - /* ! Speed optimisation - * Pre: - * map x 2,396,842 ops/sec ±1.59% (81 runs sampled) - * Post: - * map x 4,183,945 ops/sec ±6.59% (82 runs sampled) - */ - if (mapExists && objPrototype === Map.prototype) { - return 'Map'; - } - - /* ! Speed optimisation - * Pre: - * weakset x 1,323,220 ops/sec ±2.17% (76 runs sampled) - * Post: - * weakset x 4,237,510 ops/sec ±2.01% (77 runs sampled) - */ - if (weakSetExists && objPrototype === WeakSet.prototype) { - return 'WeakSet'; - } - - /* ! Speed optimisation - * Pre: - * weakmap x 1,500,260 ops/sec ±2.02% (78 runs sampled) - * Post: - * weakmap x 3,881,384 ops/sec ±1.45% (82 runs sampled) - */ - if (weakMapExists && objPrototype === WeakMap.prototype) { - return 'WeakMap'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-dataview.prototype-@@tostringtag) - * ES6$24.2.4.21 - DataView.prototype[@@toStringTag] should be "DataView": - * Test: `Object.prototype.toString.call(new DataView(new ArrayBuffer(1)))`` - * - Edge <=13 === "[object Object]" - */ - if (dataViewExists && objPrototype === DataView.prototype) { - return 'DataView'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%mapiteratorprototype%-@@tostringtag) - * ES6$23.1.5.2.2 - %MapIteratorPrototype%[@@toStringTag] should be "Map Iterator": - * Test: `Object.prototype.toString.call(new Map().entries())`` - * - Edge <=13 === "[object Object]" - */ - if (mapExists && objPrototype === mapIteratorPrototype) { - return 'Map Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%setiteratorprototype%-@@tostringtag) - * ES6$23.2.5.2.2 - %SetIteratorPrototype%[@@toStringTag] should be "Set Iterator": - * Test: `Object.prototype.toString.call(new Set().entries())`` - * - Edge <=13 === "[object Object]" - */ - if (setExists && objPrototype === setIteratorPrototype) { - return 'Set Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%arrayiteratorprototype%-@@tostringtag) - * ES6$22.1.5.2.2 - %ArrayIteratorPrototype%[@@toStringTag] should be "Array Iterator": - * Test: `Object.prototype.toString.call([][Symbol.iterator]())`` - * - Edge <=13 === "[object Object]" - */ - if (arrayIteratorExists && objPrototype === arrayIteratorPrototype) { - return 'Array Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%stringiteratorprototype%-@@tostringtag) - * ES6$21.1.5.2.2 - %StringIteratorPrototype%[@@toStringTag] should be "String Iterator": - * Test: `Object.prototype.toString.call(''[Symbol.iterator]())`` - * - Edge <=13 === "[object Object]" - */ - if (stringIteratorExists && objPrototype === stringIteratorPrototype) { - return 'String Iterator'; - } - - /* ! Speed optimisation - * Pre: - * object from null x 2,424,320 ops/sec ±1.67% (76 runs sampled) - * Post: - * object from null x 5,838,000 ops/sec ±0.99% (84 runs sampled) - */ - if (objPrototype === null) { - return 'Object'; - } - - return Object - .prototype - .toString - .call(obj) - .slice(toStringLeftSliceLength, toStringRightSliceLength); -} - -return typeDetect; - -}))); - -},{}]},{},[1])(1) -}); diff --git a/build/node_modules/chai/index.js b/build/node_modules/chai/index.js deleted file mode 100644 index 634483b0..00000000 --- a/build/node_modules/chai/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/chai'); diff --git a/build/node_modules/chai/index.mjs b/build/node_modules/chai/index.mjs deleted file mode 100644 index 65b726ad..00000000 --- a/build/node_modules/chai/index.mjs +++ /dev/null @@ -1,14 +0,0 @@ -import chai from './index.js'; - -export const expect = chai.expect; -export const version = chai.version; -export const Assertion = chai.Assertion; -export const AssertionError = chai.AssertionError; -export const util = chai.util; -export const config = chai.config; -export const use = chai.use; -export const should = chai.should; -export const assert = chai.assert; -export const core = chai.core; - -export default chai; diff --git a/build/node_modules/chai/karma.conf.js b/build/node_modules/chai/karma.conf.js deleted file mode 100644 index e22923fc..00000000 --- a/build/node_modules/chai/karma.conf.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = function(config) { - config.set({ - frameworks: [ 'mocha' ] - , files: [ - 'chai.js' - , 'test/bootstrap/index.js' - , 'test/*.js' - ] - , reporters: [ 'progress' ] - , colors: true - , logLevel: config.LOG_INFO - , autoWatch: false - , browsers: [ 'HeadlessChrome' ] - , customLaunchers: { - HeadlessChrome: { - base: 'ChromeHeadless' - , flags: [ '--no-sandbox',] - , } - , } - , browserDisconnectTimeout: 10000 - , browserDisconnectTolerance: 2 - , browserNoActivityTimeout: 20000 - , singleRun: true - }); - - switch (process.env.CHAI_TEST_ENV) { - case 'sauce': - require('./karma.sauce')(config); - break; - default: - // ... - break; - }; -}; diff --git a/build/node_modules/chai/karma.sauce.js b/build/node_modules/chai/karma.sauce.js deleted file mode 100644 index b4f22fe0..00000000 --- a/build/node_modules/chai/karma.sauce.js +++ /dev/null @@ -1,41 +0,0 @@ -var version = require('./package.json').version; -var ts = new Date().getTime(); - -module.exports = function(config) { - var auth; - - try { - auth = require('./test/auth/index'); - } catch(ex) { - auth = {}; - auth.SAUCE_USERNAME = process.env.SAUCE_USERNAME || null; - auth.SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY || null; - } - - if (!auth.SAUCE_USERNAME || !auth.SAUCE_ACCESS_KEY) return; - if (process.env.SKIP_SAUCE) return; - - var branch = process.env.TRAVIS_BRANCH || 'local' - var browserConfig = require('./sauce.browsers'); - var browsers = Object.keys(browserConfig); - var tags = [ 'chaijs_' + version, auth.SAUCE_USERNAME + '@' + branch ]; - var tunnel = process.env.TRAVIS_JOB_NUMBER || ts; - - if (process.env.TRAVIS_JOB_NUMBER) { - tags.push('travis@' + process.env.TRAVIS_JOB_NUMBER); - } - - config.browsers = config.browsers.concat(browsers); - Object.assign(config.customLaunchers, browserConfig); - config.reporters.push('saucelabs'); - config.captureTimeout = 300000; - - config.sauceLabs = { - username: auth.SAUCE_USERNAME - , accessKey: auth.SAUCE_ACCESS_KEY - , startConnect: ('TRAVIS' in process.env) === false - , tags: tags - , testName: 'ChaiJS' - , tunnelIdentifier: tunnel - }; -}; diff --git a/build/node_modules/chai/package.json b/build/node_modules/chai/package.json deleted file mode 100644 index 824b8ea7..00000000 --- a/build/node_modules/chai/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "author": "Jake Luer ", - "name": "chai", - "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", - "keywords": [ - "test", - "assertion", - "assert", - "testing", - "chai" - ], - "homepage": "http://chaijs.com", - "license": "MIT", - "contributors": [ - "Jake Luer ", - "Domenic Denicola (http://domenicdenicola.com)", - "Veselin Todorov ", - "John Firebaugh " - ], - "version": "4.3.10", - "repository": { - "type": "git", - "url": "https://github.com/chaijs/chai" - }, - "bugs": { - "url": "https://github.com/chaijs/chai/issues" - }, - "main": "./index", - "exports": { - ".": { - "require": "./index.js", - "import": "./index.mjs" - }, - "./*": "./*" - }, - "scripts": { - "test": "make test" - }, - "engines": { - "node": ">=4" - }, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "devDependencies": { - "browserify": "^16.5.2", - "bump-cli": "^2.7.1", - "codecov": "^3.8.3", - "istanbul": "^0.4.5", - "karma": "^6.4.2", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.3.0", - "karma-mocha": "^2.0.1", - "karma-sauce-launcher": "^4.1.4", - "mocha": "^10.2.0" - } -} diff --git a/build/node_modules/chai/register-assert.js b/build/node_modules/chai/register-assert.js deleted file mode 100644 index f80cb4de..00000000 --- a/build/node_modules/chai/register-assert.js +++ /dev/null @@ -1 +0,0 @@ -global.assert = require('./').assert; diff --git a/build/node_modules/chai/register-expect.js b/build/node_modules/chai/register-expect.js deleted file mode 100644 index f905c3a2..00000000 --- a/build/node_modules/chai/register-expect.js +++ /dev/null @@ -1 +0,0 @@ -global.expect = require('./').expect; diff --git a/build/node_modules/chai/register-should.js b/build/node_modules/chai/register-should.js deleted file mode 100644 index 5dab96fc..00000000 --- a/build/node_modules/chai/register-should.js +++ /dev/null @@ -1 +0,0 @@ -global.should = require('./').should(); diff --git a/build/node_modules/chai/sauce.browsers.js b/build/node_modules/chai/sauce.browsers.js deleted file mode 100644 index 328f0c70..00000000 --- a/build/node_modules/chai/sauce.browsers.js +++ /dev/null @@ -1,106 +0,0 @@ - -/*! - * Chrome - */ - -exports['SL_Chrome'] = { - base: 'SauceLabs' - , browserName: 'chrome' -}; - -/*! - * Firefox - */ - - exports['SL_Firefox'] = { - base: 'SauceLabs' - , browserName: 'firefox' - }; - - exports['SL_Firefox_ESR'] = { - base: 'SauceLabs' - , browserName: 'firefox' - , version: 38 - }; - -/*! - * Internet Explorer - */ - -exports['SL_IE'] = { - base: 'SauceLabs' - , browserName: 'internet explorer' -}; - -/*! - * TODO: fails because of Uint8Array support - * -exports['SL_IE_Old'] = { - base: 'SauceLabs' - , browserName: 'internet explorer' - , version: 10 -}; -*/ - -exports['SL_Edge'] = { - base: 'SauceLabs' - , browserName: 'microsoftedge' -}; - -/*! - * Safari - */ - -exports['SL_Safari'] = { - base: 'SauceLabs' - , browserName: 'safari' - , platform: 'Mac 10.11' -}; - -/*! - * iPhone - */ - -/*! - * TODO: These take forever to boot or shut down. Causes timeout. - * - -exports['SL_iPhone_6'] = { - base: 'SauceLabs' - , browserName: 'iphone' - , platform: 'Mac 10.8' - , version: '6' -}; - -exports['SL_iPhone_5-1'] = { - base: 'SauceLabs' - , browserName: 'iphone' - , platform: 'Mac 10.8' - , version: '5.1' -}; - -exports['SL_iPhone_5'] = { - base: 'SauceLabs' - , browserName: 'iphone' - , platform: 'Mac 10.6' - , version: '5' -}; - -*/ - -/*! - * Android - */ - -/*! - * TODO: fails because of error serialization - * - -exports['SL_Android_4'] = { - base: 'SauceLabs' - , browserName: 'android' - , platform: 'Linux' - , version: '4' -}; - -*/ diff --git a/build/node_modules/chalk/index.d.ts b/build/node_modules/chalk/index.d.ts deleted file mode 100644 index 9cd88f38..00000000 --- a/build/node_modules/chalk/index.d.ts +++ /dev/null @@ -1,415 +0,0 @@ -/** -Basic foreground colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type ForegroundColor = - | 'black' - | 'red' - | 'green' - | 'yellow' - | 'blue' - | 'magenta' - | 'cyan' - | 'white' - | 'gray' - | 'grey' - | 'blackBright' - | 'redBright' - | 'greenBright' - | 'yellowBright' - | 'blueBright' - | 'magentaBright' - | 'cyanBright' - | 'whiteBright'; - -/** -Basic background colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type BackgroundColor = - | 'bgBlack' - | 'bgRed' - | 'bgGreen' - | 'bgYellow' - | 'bgBlue' - | 'bgMagenta' - | 'bgCyan' - | 'bgWhite' - | 'bgGray' - | 'bgGrey' - | 'bgBlackBright' - | 'bgRedBright' - | 'bgGreenBright' - | 'bgYellowBright' - | 'bgBlueBright' - | 'bgMagentaBright' - | 'bgCyanBright' - | 'bgWhiteBright'; - -/** -Basic colors. - -[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) -*/ -declare type Color = ForegroundColor | BackgroundColor; - -declare type Modifiers = - | 'reset' - | 'bold' - | 'dim' - | 'italic' - | 'underline' - | 'inverse' - | 'hidden' - | 'strikethrough' - | 'visible'; - -declare namespace chalk { - /** - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - type Level = 0 | 1 | 2 | 3; - - interface Options { - /** - Specify the color support for Chalk. - - By default, color support is automatically detected based on the environment. - - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - level?: Level; - } - - /** - Return a new Chalk instance. - */ - type Instance = new (options?: Options) => Chalk; - - /** - Detect whether the terminal supports color. - */ - interface ColorSupport { - /** - The color level used by Chalk. - */ - level: Level; - - /** - Return whether Chalk supports basic 16 colors. - */ - hasBasic: boolean; - - /** - Return whether Chalk supports ANSI 256 colors. - */ - has256: boolean; - - /** - Return whether Chalk supports Truecolor 16 million colors. - */ - has16m: boolean; - } - - interface ChalkFunction { - /** - Use a template string. - - @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) - - @example - ``` - import chalk = require('chalk'); - - log(chalk` - CPU: {red ${cpu.totalPercent}%} - RAM: {green ${ram.used / ram.total * 100}%} - DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} - `); - ``` - - @example - ``` - import chalk = require('chalk'); - - log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`) - ``` - */ - (text: TemplateStringsArray, ...placeholders: unknown[]): string; - - (...text: unknown[]): string; - } - - interface Chalk extends ChalkFunction { - /** - Return a new Chalk instance. - */ - Instance: Instance; - - /** - The color support for Chalk. - - By default, color support is automatically detected based on the environment. - - Levels: - - `0` - All colors disabled. - - `1` - Basic 16 colors support. - - `2` - ANSI 256 colors support. - - `3` - Truecolor 16 million colors support. - */ - level: Level; - - /** - Use HEX value to set text color. - - @param color - Hexadecimal value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.hex('#DEADED'); - ``` - */ - hex(color: string): Chalk; - - /** - Use keyword color value to set text color. - - @param color - Keyword value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.keyword('orange'); - ``` - */ - keyword(color: string): Chalk; - - /** - Use RGB values to set text color. - */ - rgb(red: number, green: number, blue: number): Chalk; - - /** - Use HSL values to set text color. - */ - hsl(hue: number, saturation: number, lightness: number): Chalk; - - /** - Use HSV values to set text color. - */ - hsv(hue: number, saturation: number, value: number): Chalk; - - /** - Use HWB values to set text color. - */ - hwb(hue: number, whiteness: number, blackness: number): Chalk; - - /** - Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. - - 30 <= code && code < 38 || 90 <= code && code < 98 - For example, 31 for red, 91 for redBright. - */ - ansi(code: number): Chalk; - - /** - Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. - */ - ansi256(index: number): Chalk; - - /** - Use HEX value to set background color. - - @param color - Hexadecimal value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.bgHex('#DEADED'); - ``` - */ - bgHex(color: string): Chalk; - - /** - Use keyword color value to set background color. - - @param color - Keyword value representing the desired color. - - @example - ``` - import chalk = require('chalk'); - - chalk.bgKeyword('orange'); - ``` - */ - bgKeyword(color: string): Chalk; - - /** - Use RGB values to set background color. - */ - bgRgb(red: number, green: number, blue: number): Chalk; - - /** - Use HSL values to set background color. - */ - bgHsl(hue: number, saturation: number, lightness: number): Chalk; - - /** - Use HSV values to set background color. - */ - bgHsv(hue: number, saturation: number, value: number): Chalk; - - /** - Use HWB values to set background color. - */ - bgHwb(hue: number, whiteness: number, blackness: number): Chalk; - - /** - Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. - - 30 <= code && code < 38 || 90 <= code && code < 98 - For example, 31 for red, 91 for redBright. - Use the foreground code, not the background code (for example, not 41, nor 101). - */ - bgAnsi(code: number): Chalk; - - /** - Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. - */ - bgAnsi256(index: number): Chalk; - - /** - Modifier: Resets the current color chain. - */ - readonly reset: Chalk; - - /** - Modifier: Make text bold. - */ - readonly bold: Chalk; - - /** - Modifier: Emitting only a small amount of light. - */ - readonly dim: Chalk; - - /** - Modifier: Make text italic. (Not widely supported) - */ - readonly italic: Chalk; - - /** - Modifier: Make text underline. (Not widely supported) - */ - readonly underline: Chalk; - - /** - Modifier: Inverse background and foreground colors. - */ - readonly inverse: Chalk; - - /** - Modifier: Prints the text, but makes it invisible. - */ - readonly hidden: Chalk; - - /** - Modifier: Puts a horizontal line through the center of the text. (Not widely supported) - */ - readonly strikethrough: Chalk; - - /** - Modifier: Prints the text only when Chalk has a color support level > 0. - Can be useful for things that are purely cosmetic. - */ - readonly visible: Chalk; - - readonly black: Chalk; - readonly red: Chalk; - readonly green: Chalk; - readonly yellow: Chalk; - readonly blue: Chalk; - readonly magenta: Chalk; - readonly cyan: Chalk; - readonly white: Chalk; - - /* - Alias for `blackBright`. - */ - readonly gray: Chalk; - - /* - Alias for `blackBright`. - */ - readonly grey: Chalk; - - readonly blackBright: Chalk; - readonly redBright: Chalk; - readonly greenBright: Chalk; - readonly yellowBright: Chalk; - readonly blueBright: Chalk; - readonly magentaBright: Chalk; - readonly cyanBright: Chalk; - readonly whiteBright: Chalk; - - readonly bgBlack: Chalk; - readonly bgRed: Chalk; - readonly bgGreen: Chalk; - readonly bgYellow: Chalk; - readonly bgBlue: Chalk; - readonly bgMagenta: Chalk; - readonly bgCyan: Chalk; - readonly bgWhite: Chalk; - - /* - Alias for `bgBlackBright`. - */ - readonly bgGray: Chalk; - - /* - Alias for `bgBlackBright`. - */ - readonly bgGrey: Chalk; - - readonly bgBlackBright: Chalk; - readonly bgRedBright: Chalk; - readonly bgGreenBright: Chalk; - readonly bgYellowBright: Chalk; - readonly bgBlueBright: Chalk; - readonly bgMagentaBright: Chalk; - readonly bgCyanBright: Chalk; - readonly bgWhiteBright: Chalk; - } -} - -/** -Main Chalk object that allows to chain styles together. -Call the last one as a method with a string argument. -Order doesn't matter, and later styles take precedent in case of a conflict. -This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. -*/ -declare const chalk: chalk.Chalk & chalk.ChalkFunction & { - supportsColor: chalk.ColorSupport | false; - Level: chalk.Level; - Color: Color; - ForegroundColor: ForegroundColor; - BackgroundColor: BackgroundColor; - Modifiers: Modifiers; - stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; -}; - -export = chalk; diff --git a/build/node_modules/chalk/license b/build/node_modules/chalk/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/chalk/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/chalk/package.json b/build/node_modules/chalk/package.json deleted file mode 100644 index 47c23f29..00000000 --- a/build/node_modules/chalk/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "chalk", - "version": "4.1.2", - "description": "Terminal string styling done right", - "license": "MIT", - "repository": "chalk/chalk", - "funding": "https://github.com/chalk/chalk?sponsor=1", - "main": "source", - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && nyc ava && tsd", - "bench": "matcha benchmark.js" - }, - "files": [ - "source", - "index.d.ts" - ], - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "str", - "ansi", - "style", - "styles", - "tty", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "coveralls": "^3.0.7", - "execa": "^4.0.0", - "import-fresh": "^3.1.0", - "matcha": "^0.7.0", - "nyc": "^15.0.0", - "resolve-from": "^5.0.0", - "tsd": "^0.7.4", - "xo": "^0.28.2" - }, - "xo": { - "rules": { - "unicorn/prefer-string-slice": "off", - "unicorn/prefer-includes": "off", - "@typescript-eslint/member-ordering": "off", - "no-redeclare": "off", - "unicorn/string-content": "off", - "unicorn/better-regex": "off" - } - } -} diff --git a/build/node_modules/chalk/readme.md b/build/node_modules/chalk/readme.md deleted file mode 100644 index a055d21c..00000000 --- a/build/node_modules/chalk/readme.md +++ /dev/null @@ -1,341 +0,0 @@ -

-
-
- Chalk -
-
-
-

- -> Terminal string styling done right - -[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) [![run on repl.it](https://repl.it/badge/github/chalk/chalk)](https://repl.it/github/chalk/chalk) - - - -
- ---- - - - ---- - -
- -## Highlights - -- Expressive API -- Highly performant -- Ability to nest styles -- [256/Truecolor color support](#256-and-truecolor-color-support) -- Auto-detects color support -- Doesn't extend `String.prototype` -- Clean and focused -- Actively maintained -- [Used by ~50,000 packages](https://www.npmjs.com/browse/depended/chalk) as of January 1, 2020 - -## Install - -```console -$ npm install chalk -``` - -## Usage - -```js -const chalk = require('chalk'); - -console.log(chalk.blue('Hello world!')); -``` - -Chalk comes with an easy to use composable API where you just chain and nest the styles you want. - -```js -const chalk = require('chalk'); -const log = console.log; - -// Combine styled and normal strings -log(chalk.blue('Hello') + ' World' + chalk.red('!')); - -// Compose multiple styles using the chainable API -log(chalk.blue.bgRed.bold('Hello world!')); - -// Pass in multiple arguments -log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); - -// Nest styles -log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); - -// Nest styles of the same type even (color, underline, background) -log(chalk.green( - 'I am a green line ' + - chalk.blue.underline.bold('with a blue substring') + - ' that becomes green again!' -)); - -// ES2015 template literal -log(` -CPU: ${chalk.red('90%')} -RAM: ${chalk.green('40%')} -DISK: ${chalk.yellow('70%')} -`); - -// ES2015 tagged template literal -log(chalk` -CPU: {red ${cpu.totalPercent}%} -RAM: {green ${ram.used / ram.total * 100}%} -DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} -`); - -// Use RGB colors in terminal emulators that support it. -log(chalk.keyword('orange')('Yay for orange colored text!')); -log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); -log(chalk.hex('#DEADED').bold('Bold gray!')); -``` - -Easily define your own themes: - -```js -const chalk = require('chalk'); - -const error = chalk.bold.red; -const warning = chalk.keyword('orange'); - -console.log(error('Error!')); -console.log(warning('Warning!')); -``` - -Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): - -```js -const name = 'Sindre'; -console.log(chalk.green('Hello %s'), name); -//=> 'Hello Sindre' -``` - -## API - -### chalk.` and works faster. - -> **Note** -> -> Do not use `style-loader` and `mini-css-extract-plugin` together. - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const devMode = process.env.NODE_ENV !== "production"; - -module.exports = { - module: { - rules: [ - { - // If you enable `experiments.css` or `experiments.futureDefaults`, please uncomment line below - // type: "javascript/auto", - test: /\.(sa|sc|c)ss$/i, - use: [ - devMode ? "style-loader" : MiniCssExtractPlugin.loader, - "css-loader", - "postcss-loader", - "sass-loader", - ], - }, - ], - }, - plugins: [].concat(devMode ? [] : [new MiniCssExtractPlugin()]), -}; -``` - -### Disable url resolving using the `/* webpackIgnore: true */` comment - -With the help of the `/* webpackIgnore: true */`comment, it is possible to disable sources handling for rules and for individual declarations. - -```css -/* webpackIgnore: true */ -@import url(./basic.css); -@import /* webpackIgnore: true */ url(./imported.css); - -.class { - /* Disabled url handling for the all urls in the 'background' declaration */ - color: red; - /* webpackIgnore: true */ - background: url("./url/img.png"), url("./url/img.png"); -} - -.class { - /* Disabled url handling for the first url in the 'background' declaration */ - color: red; - background: - /* webpackIgnore: true */ url("./url/img.png"), url("./url/img.png"); -} - -.class { - /* Disabled url handling for the second url in the 'background' declaration */ - color: red; - background: url("./url/img.png"), - /* webpackIgnore: true */ url("./url/img.png"); -} - -/* prettier-ignore */ -.class { - /* Disabled url handling for the second url in the 'background' declaration */ - color: red; - background: url("./url/img.png"), - /* webpackIgnore: true */ - url("./url/img.png"); -} - -/* prettier-ignore */ -.class { - /* Disabled url handling for third and sixth urls in the 'background-image' declaration */ - background-image: image-set( - url(./url/img.png) 2x, - url(./url/img.png) 3x, - /* webpackIgnore: true */ url(./url/img.png) 4x, - url(./url/img.png) 5x, - url(./url/img.png) 6x, - /* webpackIgnore: true */ - url(./url/img.png) 7x - ); -} -``` - -### Assets - -The following `webpack.config.js` can load CSS files, embed small PNG/JPG/GIF/SVG images as well as fonts as [Data URLs](https://tools.ietf.org/html/rfc2397) and copy larger files to the output directory. - -**For webpack v5:** - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - { - test: /\.css$/i, - use: ["style-loader", "css-loader"], - }, - { - test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i, - // More information here https://webpack.js.org/guides/asset-modules/ - type: "asset", - }, - ], - }, -}; -``` - -### Extract - -For production builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on. - -- This can be achieved by using the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to extract the CSS when running in production mode. - -- As an alternative, if seeking better development performance and css outputs that mimic production. [extract-css-chunks-webpack-plugin](https://github.com/faceyspacey/extract-css-chunks-webpack-plugin) offers a hot module reload friendly, extended version of mini-css-extract-plugin. HMR real CSS files in dev, works like mini-css in non-dev - -### Pure CSS, CSS modules and PostCSS - -When you have pure CSS (without CSS modules), CSS modules and PostCSS in your project you can use this setup: - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - { - // For pure CSS - /\.css$/i, - // For Sass/SCSS - /\.((c|sa|sc)ss)$/i, - // For Less - /\.((c|le)ss)$/i, - test: /\.((c|sa|sc)ss)$/i, - use: [ - "style-loader", - { - loader: "css-loader", - options: { - // Run `postcss-loader` on each CSS `@import` and CSS modules/ICSS imports, do not forget that `sass-loader` compile non CSS `@import`'s into a single file - // If you need run `sass-loader` and `postcss-loader` on each CSS `@import` please set it to `2` - importLoaders: 1, - }, - }, - { - loader: "postcss-loader", - options: { plugins: () => [postcssPresetEnv({ stage: 0 })] }, - }, - // Can be `less-loader` - { - loader: "sass-loader", - }, - ], - }, - // For webpack v5 - { - test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i, - // More information here https://webpack.js.org/guides/asset-modules/ - type: "asset", - }, - ], - }, -}; -``` - -### Resolve unresolved URLs using an alias - -**index.css** - -```css -.class { - background: url(/assets/unresolved/img.png); -} -``` - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - { - test: /\.css$/i, - use: ["style-loader", "css-loader"], - }, - ], - }, - resolve: { - alias: { - "/assets/unresolved/img.png": path.resolve( - __dirname, - "assets/real-path-to-img/img.png" - ), - }, - }, -}; -``` - -### Named export with custom export names - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - { - test: /\.css$/i, - loader: "css-loader", - options: { - modules: { - namedExport: true, - exportLocalsConvention: function (name) { - return name.replace(/-/g, "_"); - }, - }, - }, - }, - ], - }, -}; -``` - -### Separating `Interoperable CSS`-only and `CSS Module` features - -The following setup is an example of allowing `Interoperable CSS` features only (such as `:import` and `:export`) without using further `CSS Module` functionality by setting `mode` option for all files that do not match `*.module.scss` naming convention. This is for reference as having `ICSS` features applied to all files was default `css-loader` behavior before v4. -Meanwhile all files matching `*.module.scss` are treated as `CSS Modules` in this example. - -An example case is assumed where a project requires canvas drawing variables to be synchronized with CSS - canvas drawing uses the same color (set by color name in JavaScript) as HTML background (set by class name in CSS). - -**webpack.config.js** - -```js -module.exports = { - module: { - rules: [ - // ... - // -------- - // SCSS ALL EXCEPT MODULES - { - test: /\.scss$/i, - exclude: /\.module\.scss$/i, - use: [ - { - loader: "style-loader", - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - modules: { - mode: "icss", - }, - }, - }, - { - loader: "sass-loader", - }, - ], - }, - // -------- - // SCSS MODULES - { - test: /\.module\.scss$/i, - use: [ - { - loader: "style-loader", - }, - { - loader: "css-loader", - options: { - importLoaders: 1, - modules: { - mode: "local", - }, - }, - }, - { - loader: "sass-loader", - }, - ], - }, - // -------- - // ... - ], - }, -}; -``` - -**variables.scss** - -File treated as `ICSS`-only. - -```scss -$colorBackground: red; -:export { - colorBackgroundCanvas: $colorBackground; -} -``` - -**Component.module.scss** - -File treated as `CSS Module`. - -```scss -@import "variables.scss"; -.componentClass { - background-color: $colorBackground; -} -``` - -**Component.jsx** - -Using both `CSS Module` functionality as well as SCSS variables directly in JavaScript. - -```jsx -import svars from "variables.scss"; -import styles from "Component.module.scss"; - -// Render DOM with CSS modules class name -//
-// -//
- -// Somewhere in JavaScript canvas drawing code use the variable directly -// const ctx = mountsCanvas.current.getContext('2d',{alpha: false}); -ctx.fillStyle = `${svars.colorBackgroundCanvas}`; -``` - -## Contributing - -Please take a moment to read our contributing guidelines if you haven't yet done so. - -[CONTRIBUTING](./.github/CONTRIBUTING.md) - -## License - -[MIT](./LICENSE) - -[npm]: https://img.shields.io/npm/v/css-loader.svg -[npm-url]: https://npmjs.com/package/css-loader -[node]: https://img.shields.io/node/v/css-loader.svg -[node-url]: https://nodejs.org -[tests]: https://github.com/webpack-contrib/css-loader/workflows/css-loader/badge.svg -[tests-url]: https://github.com/webpack-contrib/css-loader/actions -[cover]: https://codecov.io/gh/webpack-contrib/css-loader/branch/master/graph/badge.svg -[cover-url]: https://codecov.io/gh/webpack-contrib/css-loader -[discussion]: https://img.shields.io/github/discussions/webpack/webpack -[discussion-url]: https://github.com/webpack/webpack/discussions -[size]: https://packagephobia.now.sh/badge?p=css-loader -[size-url]: https://packagephobia.now.sh/result?p=css-loader diff --git a/build/node_modules/css-loader/package.json b/build/node_modules/css-loader/package.json deleted file mode 100644 index e86611d1..00000000 --- a/build/node_modules/css-loader/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "name": "css-loader", - "version": "6.8.1", - "description": "css loader module for webpack", - "license": "MIT", - "repository": "webpack-contrib/css-loader", - "author": "Tobias Koppers @sokra", - "homepage": "https://github.com/webpack-contrib/css-loader", - "bugs": "https://github.com/webpack-contrib/css-loader/issues", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "main": "dist/cjs.js", - "engines": { - "node": ">= 12.13.0" - }, - "scripts": { - "start": "npm run build -- -w", - "clean": "del-cli dist", - "validate:runtime": "es-check es5 \"dist/runtime/**/*.js\"", - "prebuild": "npm run clean", - "build": "cross-env NODE_ENV=production babel src -d dist --copy-files", - "postbuild": "npm run validate:runtime", - "commitlint": "commitlint --from=master", - "security": "npm audit --production", - "lint:prettier": "prettier --list-different .", - "lint:js": "eslint --cache .", - "lint:spelling": "cspell \"**/*.*\"", - "lint": "npm-run-all -l -p \"lint:**\"", - "fix:js": "npm run lint:js -- --fix", - "fix:prettier": "npm run lint:prettier -- --write", - "fix": "npm-run-all -l fix:js fix:prettier", - "test:only": "cross-env NODE_ENV=test jest", - "test:watch": "npm run test:only -- --watch", - "test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage", - "pretest": "npm run lint", - "test": "npm run test:coverage", - "prepare": "husky install && npm run build", - "release": "standard-version" - }, - "files": [ - "dist" - ], - "peerDependencies": { - "webpack": "^5.0.0" - }, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "devDependencies": { - "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.4", - "@babel/preset-env": "^7.21.4", - "@commitlint/cli": "^16.3.0", - "@commitlint/config-conventional": "^16.2.4", - "@webpack-contrib/eslint-config-webpack": "^3.0.0", - "babel-jest": "^28.1.3", - "cross-env": "^7.0.3", - "cspell": "^6.31.1", - "del": "^6.1.1", - "del-cli": "^4.0.1", - "es-check": "^7.1.0", - "eslint": "^8.37.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-import": "^2.27.5", - "file-loader": "^6.2.0", - "husky": "^7.0.1", - "jest": "^28.1.3", - "jest-environment-jsdom": "^28.1.3", - "less": "^4.1.3", - "less-loader": "^10.0.1", - "lint-staged": "^12.5.0", - "memfs": "^3.4.13", - "mini-css-extract-plugin": "^2.7.5", - "npm-run-all": "^4.1.5", - "postcss-loader": "^6.2.1", - "postcss-preset-env": "^7.8.3", - "prettier": "^2.8.7", - "sass": "^1.60.0", - "sass-loader": "^12.6.0", - "standard-version": "^9.5.0", - "strip-ansi": "^6.0.0", - "style-loader": "^3.3.2", - "stylus": "^0.59.0", - "stylus-loader": "^6.1.0", - "url-loader": "^4.1.1", - "webpack": "^5.77.0" - }, - "keywords": [ - "webpack", - "css", - "loader", - "url", - "import" - ] -} diff --git a/build/node_modules/css-minimizer-webpack-plugin/LICENSE b/build/node_modules/css-minimizer-webpack-plugin/LICENSE deleted file mode 100644 index 3d5fa732..00000000 --- a/build/node_modules/css-minimizer-webpack-plugin/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/css-minimizer-webpack-plugin/README.md b/build/node_modules/css-minimizer-webpack-plugin/README.md deleted file mode 100644 index 1c5f79a5..00000000 --- a/build/node_modules/css-minimizer-webpack-plugin/README.md +++ /dev/null @@ -1,624 +0,0 @@ - - -[![npm][npm]][npm-url] -[![node][node]][node-url] -[![tests][tests]][tests-url] -[![cover][cover]][cover-url] -[![chat][chat]][chat-url] -[![size][size]][size-url] - -# css-minimizer-webpack-plugin - -This plugin uses [cssnano](https://cssnano.co) to optimize and minify your CSS. - -Just like [optimize-css-assets-webpack-plugin](https://github.com/NMFR/optimize-css-assets-webpack-plugin) but more accurate with source maps and assets using query string, allows caching and works in parallel mode. - -## Getting Started - -To begin, you'll need to install `css-minimizer-webpack-plugin`: - -```console -npm install css-minimizer-webpack-plugin --save-dev -``` - -or - -```console -yarn add -D css-minimizer-webpack-plugin -``` - -or - -```console -pnpm add -D css-minimizer-webpack-plugin -``` - -Then add the plugin to your `webpack` configuration. For example: - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); - -module.exports = { - module: { - rules: [ - { - test: /.s?css$/, - use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"], - }, - ], - }, - optimization: { - minimizer: [ - // For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line - // `...`, - new CssMinimizerPlugin(), - ], - }, - plugins: [new MiniCssExtractPlugin()], -}; -``` - -This will enable CSS optimization only in production mode. - -If you want to run it also in development set the `optimization.minimize` option to `true`: - -**webpack.config.js** - -```js -// [...] -module.exports = { - optimization: { - // [...] - minimize: true, - }, -}; -``` - -And run `webpack` via your preferred method. - -## Note about source maps - -**Works only with `source-map`, `inline-source-map`, `hidden-source-map` and `nosources-source-map` values for the [`devtool`](https://webpack.js.org/configuration/devtool/) option.** - -Why? Because CSS support only these source map types. - -The plugin respect the [`devtool`](https://webpack.js.org/configuration/devtool/) and using the `SourceMapDevToolPlugin` plugin. -Using supported `devtool` values enable source map generation. -Using `SourceMapDevToolPlugin` with enabled the `columns` option enables source map generation. - -Use source maps to map error message locations to modules (this slows down the compilation). -If you use your own `minify` function please read the `minify` section for handling source maps correctly. - -## Options - -| Name | Type | Default | Description | -| :-----------------------------------------: | :--------------------------------------------: | :--------------------------------: | :-------------------------------------------------------------------------------- | -| **[`test`](#test)** | `String\|RegExp\|Array` | `/\.css(\?.*)?$/i` | Test to match files against. | -| **[`include`](#include)** | `String\|RegExp\|Array` | `undefined` | Files to include. | -| **[`exclude`](#exclude)** | `String\|RegExp\|Array` | `undefined` | Files to exclude. | -| **[`parallel`](#parallel)** | `Boolean\|Number` | `true` | Enable/disable multi-process parallel running. | -| **[`minify`](#minify)** | `Function\|Array` | `CssMinimizerPlugin.cssnanoMinify` | Allows to override default minify function. | -| **[`minimizerOptions`](#minimizeroptions)** | `Object\|Array` | `{ preset: 'default' }` | Cssnano optimisations [options](https://cssnano.co/docs/what-are-optimisations/). | -| **[`warningsFilter`](#warningsfilter)** | `Function<(warning, file, source) -> Boolean>` | `() => true` | Allow to filter css-minimizer warnings. | - -### `test` - -Type: `String|RegExp|Array` - default: `/\.css(\?.*)?$/i` - -Test to match files against. - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - test: /\.foo\.css$/i, - }), - ], - }, -}; -``` - -### `include` - -Type: `String|RegExp|Array` -Default: `undefined` - -Files to include. - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - include: /\/includes/, - }), - ], - }, -}; -``` - -### `exclude` - -Type: `String|RegExp|Array` -Default: `undefined` - -Files to exclude. - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - exclude: /\/excludes/, - }), - ], - }, -}; -``` - -### `parallel` - -Type: `Boolean|Number` -Default: `true` - -Use multi-process parallel running to improve the build speed. -Default number of concurrent runs: `os.cpus().length - 1`. - -> ℹ️ Parallelization can speed up your build significantly and is therefore **highly recommended**. -> If a parallelization is enabled, the packages in `minimizerOptions` must be required via strings (`packageName` or `require.resolve(packageName)`). Read more in [`minimizerOptions`](#minimizeroptions) - -#### `Boolean` - -Enable/disable multi-process parallel running. - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - parallel: true, - }), - ], - }, -}; -``` - -#### `Number` - -Enable multi-process parallel running and set number of concurrent runs. - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - parallel: 4, - }), - ], - }, -}; -``` - -### `minify` - -Type: `Function|Array` -Default: `CssMinimizerPlugin.cssnanoMinify` - -Allows overriding default minify function. -By default, plugin uses [cssnano](https://github.com/cssnano/cssnano) package. -Useful for using and testing unpublished versions or forks. - -Possible options: - -- `CssMinimizerPlugin.cssnanoMinify` -- `CssMinimizerPlugin.cssoMinify` -- `CssMinimizerPlugin.cleanCssMinify` -- `CssMinimizerPlugin.esbuildMinify` -- `CssMinimizerPlugin.lightningCssMinify` (previously`CssMinimizerPlugin.parcelCssMinify`, the package was renamed, but we keep it for backward compatibility) -- `async (data, inputMap, minimizerOptions) => {return {code: "a{color: red}", map: "...", warnings: [], errors: []}}` - -> **Warning** -> -> **Always use `require` inside `minify` function when `parallel` option enabled**. - -#### `Function` - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minimizerOptions: { - level: { - 1: { - roundingPrecision: "all=3,px=5", - }, - }, - }, - minify: CssMinimizerPlugin.cleanCssMinify, - }), - ], - }, -}; -``` - -#### `Array` - -If an array of functions is passed to the `minify` option, the `minimizerOptions` must also be an array. -The function index in the `minify` array corresponds to the options object with the same index in the `minimizerOptions` array. - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minimizerOptions: [ - {}, // Options for the first function (CssMinimizerPlugin.cssnanoMinify) - {}, // Options for the second function (CssMinimizerPlugin.cleanCssMinify) - {}, // Options for the third function - ], - minify: [ - CssMinimizerPlugin.cssnanoMinify, - CssMinimizerPlugin.cleanCssMinify, - async (data, inputMap, minimizerOptions) => { - // To do something - return { - code: `a{color: red}`, - map: `{"version": "3", ...}`, - warnings: [], - errors: [], - }; - }, - ], - }), - ], - }, -}; -``` - -### `minimizerOptions` - -Type: `Object|Array` -Default: `{ preset: 'default' }` - -Cssnano optimisations [options](https://cssnano.co/docs/what-are-optimisations/). - -#### `Object` - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minimizerOptions: { - preset: [ - "default", - { - discardComments: { removeAll: true }, - }, - ], - }, - }), - ], - }, -}; -``` - -#### `Array` - -The function index in the `minify` array corresponds to the options object with the same index in the `minimizerOptions` array. -If you use `minimizerOptions` like object, all `minify` function accept it. - -> If a parallelization is enabled, the packages in `minimizerOptions` must be required via strings (`packageName` or `require.resolve(packageName)`). In this case, we shouldn't use `require`/`import`. - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minimizerOptions: { - preset: require.resolve("cssnano-preset-simple"), - }, - }), - ], - }, -}; -``` - -##### `processorOptions` (⚠ only cssnano) - -Type: `Object` -Default: `{ from: assetName }` - -Allows filtering options [`processoptions`](https://postcss.org/api/#processoptions) for the cssnano. -The `parser`,` stringifier` and `syntax` can be either a function or a string indicating the module that will be imported. - -> **Warning** -> -> **If a function is passed, the `parallel` option must be disabled.**. - -```js -import sugarss from "sugarss"; - -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - parallel: false, - minimizerOptions: { - processorOptions: { - parser: sugarss, - }, - }, - }), - ], - }, -}; -``` - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minimizerOptions: { - processorOptions: { - parser: "sugarss", - }, - }, - }), - ], - }, -}; -``` - -### `warningsFilter` - -Type: `Function<(warning, file, source) -> Boolean>` -Default: `() => true` - -Allow filtering css-minimizer warnings (By default [cssnano](https://github.com/cssnano/cssnano)). -Return `true` to keep the warning, a falsy value (`false`/`null`/`undefined`) otherwise. - -> **Warning** -> -> The `source` argument will contain `undefined` if you don't use source maps. - -**webpack.config.js** - -```js -module.exports = { - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - warningsFilter: (warning, file, source) => { - if (/Dropping unreachable code/i.test(warning)) { - return true; - } - - if (/file\.css/i.test(file)) { - return true; - } - - if (/source\.css/i.test(source)) { - return true; - } - - return false; - }, - }), - ], - }, -}; -``` - -## Examples - -### Use sourcemaps - -Don't forget to enable `sourceMap` options for all loaders. - -```js -const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); - -module.exports = { - devtool: "source-map", - module: { - rules: [ - { - test: /.s?css$/, - use: [ - MiniCssExtractPlugin.loader, - { loader: "css-loader", options: { sourceMap: true } }, - { loader: "sass-loader", options: { sourceMap: true } }, - ], - }, - ], - }, - optimization: { - minimizer: [new CssMinimizerPlugin()], - }, - plugins: [new MiniCssExtractPlugin()], -}; -``` - -### Remove all comments - -Remove all comments (including comments starting with `/*!`). - -```js -module.exports = { - optimization: { - minimizer: [ - new CssMinimizerPlugin({ - minimizerOptions: { - preset: [ - "default", - { - discardComments: { removeAll: true }, - }, - ], - }, - }), - ], - }, -}; -``` - -### Using custom minifier [csso](https://github.com/css/csso) - -**webpack.config.js** - -```js -module.exports = { - // Uncomment if you need source maps - // devtool: "source-map", - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minify: CssMinimizerPlugin.cssoMinify, - // Uncomment this line for options - // minimizerOptions: { restructure: false }, - }), - ], - }, -}; -``` - -### Using custom minifier [clean-css](https://github.com/jakubpawlowicz/clean-css) - -**webpack.config.js** - -```js -module.exports = { - // Uncomment if you need source maps - // devtool: "source-map", - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minify: CssMinimizerPlugin.cleanCssMinify, - // Uncomment this line for options - // minimizerOptions: { compatibility: 'ie11,-properties.merging' }, - }), - ], - }, -}; -``` - -### Using custom minifier [esbuild](https://github.com/evanw/esbuild) - -**webpack.config.js** - -```js -module.exports = { - // Uncomment if you need source maps - // devtool: "source-map", - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minify: CssMinimizerPlugin.esbuildMinify, - }), - ], - }, -}; -``` - -### Using custom minifier [lightningcss](https://github.com/parcel-bundler/lightningcss), previously `@parcel/css` - -**webpack.config.js** - -```js -module.exports = { - // Uncomment if you need source maps - // devtool: "source-map", - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minify: CssMinimizerPlugin.lightningCssMinify, - // Uncomment this line for options - // minimizerOptions: { targets: { ie: 11 }, drafts: { nesting: true } }, - }), - ], - }, -}; -``` - -### Using custom minifier [swc](https://github.com/swc-project/swc) - -**webpack.config.js** - -```js -module.exports = { - // Uncomment if you need source maps - // devtool: "source-map", - optimization: { - minimize: true, - minimizer: [ - new CssMinimizerPlugin({ - minify: CssMinimizerPlugin.swcMinify, - // Uncomment this line for options - // minimizerOptions: {}, - }), - ], - }, -}; -``` - -## Contributing - -Please take a moment to read our contributing guidelines if you haven't yet done so. - -[CONTRIBUTING](./.github/CONTRIBUTING.md) - -## License - -[MIT](./LICENSE) - -[npm]: https://img.shields.io/npm/v/css-minimizer-webpack-plugin.svg -[npm-url]: https://npmjs.com/package/css-minimizer-webpack-plugin -[node]: https://img.shields.io/node/v/css-minimizer-webpack-plugin.svg -[node-url]: https://nodejs.org -[tests]: https://github.com/webpack-contrib/css-minimizer-webpack-plugin/workflows/css-minimizer-webpack-plugin/badge.svg -[tests-url]: https://github.com/webpack-contrib/css-minimizer-webpack-plugin/actions -[cover]: https://codecov.io/gh/webpack-contrib/css-minimizer-webpack-plugin/branch/master/graph/badge.svg -[cover-url]: https://codecov.io/gh/webpack-contrib/css-minimizer-webpack-plugin -[chat]: https://img.shields.io/badge/gitter-webpack%2Fwebpack-brightgreen.svg -[chat-url]: https://gitter.im/webpack/webpack -[size]: https://packagephobia.now.sh/badge?p=css-minimizer-webpack-plugin -[size-url]: https://packagephobia.now.sh/result?p=css-minimizer-webpack-plugin diff --git a/build/node_modules/css-minimizer-webpack-plugin/package.json b/build/node_modules/css-minimizer-webpack-plugin/package.json deleted file mode 100644 index 1d072a61..00000000 --- a/build/node_modules/css-minimizer-webpack-plugin/package.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "name": "css-minimizer-webpack-plugin", - "version": "4.2.2", - "description": "cssnano plugin for Webpack", - "license": "MIT", - "repository": "webpack-contrib/css-minimizer-webpack-plugin", - "author": "Loann Neveu", - "homepage": "https://github.com/webpack-contrib/css-minimizer-webpack-plugin", - "bugs": "https://github.com/webpack-contrib/css-minimizer-webpack-plugin/issues", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "main": "dist/index.js", - "types": "types/index.d.ts", - "engines": { - "node": ">= 14.15.0" - }, - "scripts": { - "start": "npm run build -- -w", - "clean": "del-cli dist", - "prebuild": "npm run clean types", - "build:types": "tsc --declaration --emitDeclarationOnly --outDir types && prettier \"types/**/*.ts\" --write", - "build:code": "cross-env NODE_ENV=production babel src -d dist --copy-files", - "build": "npm-run-all -p \"build:**\"", - "commitlint": "commitlint --from=master", - "security": "npm audit", - "lint:prettier": "prettier \"{**/*,*}.{js,json,md,yml,css,ts}\" --list-different", - "lint:js": "eslint --cache .", - "lint:types": "tsc --pretty --noEmit", - "lint": "npm-run-all -l -p \"lint:**\"", - "test:only": "cross-env NODE_ENV=test jest", - "test:watch": "npm run test:only -- --watch", - "test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage", - "pretest": "npm run lint", - "test": "npm run test:coverage", - "prepare": "husky install && npm run build", - "release": "standard-version" - }, - "files": [ - "dist", - "types" - ], - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "@parcel/css": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "@swc/css": { - "optional": true - } - }, - "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "devDependencies": { - "@babel/cli": "^7.17.10", - "@babel/core": "^7.17.12", - "@babel/preset-env": "^7.17.12", - "@commitlint/cli": "^17.0.0", - "@commitlint/config-conventional": "^17.0.0", - "@parcel/css": "^1.8.3", - "@swc/css": "^0.0.17", - "@types/clean-css": "^4.2.5", - "@types/csso": "^5.0.0", - "@types/serialize-javascript": "^5.0.2", - "@webpack-contrib/eslint-config-webpack": "^3.0.0", - "babel-jest": "^29.1.2", - "clean-css": "^5.3.0", - "copy-webpack-plugin": "^9.1.0", - "cross-env": "^7.0.3", - "css-loader": "^6.7.1", - "cssnano-preset-simple": "^4.0.0", - "csso": "^5.0.3", - "del": "^6.1.0", - "del-cli": "^5.0.0", - "esbuild": "^0.15.10", - "eslint": "^8.15.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "husky": "^8.0.1", - "jest": "^29.1.2", - "lightningcss": "^1.14.0", - "lint-staged": "^12.4.1", - "memfs": "^3.4.1", - "mini-css-extract-plugin": "^2.6.0", - "npm-run-all": "^4.1.5", - "prettier": "^2.6.2", - "sass": "^1.51.0", - "sass-loader": "^13.0.0", - "standard-version": "^9.5.0", - "sugarss": "^4.0.1", - "typescript": "^4.6.4", - "webpack": "^5.72.1" - }, - "keywords": [ - "cssnano", - "css", - "csso", - "clean-css", - "esbuild", - "webpack", - "webpack-plugin", - "minimize", - "minimizer", - "minify", - "minifier", - "optimize", - "optimizer" - ] -} diff --git a/build/node_modules/css-select/LICENSE b/build/node_modules/css-select/LICENSE deleted file mode 100644 index c464f863..00000000 --- a/build/node_modules/css-select/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) Felix Böhm -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/css-select/README.md b/build/node_modules/css-select/README.md deleted file mode 100644 index 287441a5..00000000 --- a/build/node_modules/css-select/README.md +++ /dev/null @@ -1,255 +0,0 @@ -# css-select [![NPM version](http://img.shields.io/npm/v/css-select.svg)](https://npmjs.org/package/css-select) [![Build Status](https://travis-ci.com/fb55/css-select.svg?branch=master)](http://travis-ci.com/fb55/css-select) [![Downloads](https://img.shields.io/npm/dm/css-select.svg)](https://npmjs.org/package/css-select) [![Coverage](https://coveralls.io/repos/fb55/css-select/badge.svg?branch=master)](https://coveralls.io/r/fb55/css-select) - -A CSS selector compiler and engine - -## What? - -As a **compiler**, css-select turns CSS selectors into functions that tests if -elements match them. - -As an **engine**, css-select looks through a DOM tree, searching for elements. -Elements are tested "from the top", similar to how browsers execute CSS -selectors. - -In its default configuration, css-select queries the DOM structure of the -[`domhandler`](https://github.com/fb55/domhandler) module (also known as -htmlparser2 DOM). To query alternative DOM structures, see [`Options`](#options) -below. - -**Features:** - -- 🔬 Full implementation of CSS3 selectors, as well as most CSS4 selectors -- 🧪 Partial implementation of jQuery/Sizzle extensions (see - [cheerio-select](https://github.com/cheeriojs/cheerio-select) for the - remaining selectors) -- 🧑‍🔬 High test coverage, including the full test suites from Sizzle, Qwery and - NWMatcher. -- 🥼 Reliably great performance - -## Why? - -Most CSS engines written in JavaScript execute selectors left-to-right. That -means thet execute every component of the selector in order, from left to right -_(duh)_. As an example: For the selector `a b`, these engines will first query -for `a` elements, then search these for `b` elements. (That's the approach of -eg. [`Sizzle`](https://github.com/jquery/sizzle), -[`nwmatcher`](https://github.com/dperini/nwmatcher/) and -[`qwery`](https://github.com/ded/qwery).) - -While this works, it has some downsides: Children of `a`s will be checked -multiple times; first, to check if they are also `a`s, then, for every superior -`a` once, if they are `b`s. Using -[Big O notation](http://en.wikipedia.org/wiki/Big_O_notation), that would be -`O(n^(k+1))`, where `k` is the number of descendant selectors (that's the space -in the example above). - -The far more efficient approach is to first look for `b` elements, then check if -they have superior `a` elements: Using big O notation again, that would be -`O(n)`. That's called right-to-left execution. - -And that's what css-select does – and why it's quite performant. - -## How does it work? - -By building a stack of functions. - -_Wait, what?_ - -Okay, so let's suppose we want to compile the selector `a b`, for right-to-left -execution. We start by _parsing_ the selector. This turns the selector into an -array of the building blocks. That's what the -[`css-what`](https://github.com/fb55/css-what) module is for, if you want to -have a look. - -Anyway, after parsing, we end up with an array like this one: - -```js -[ - { type: "tag", name: "a" }, - { type: "descendant" }, - { type: "tag", name: "b" }, -]; -``` - -(Actually, this array is wrapped in another array, but that's another story, -involving commas in selectors.) - -Now that we know the meaning of every part of the selector, we can compile it. -That is where things become interesting. - -The basic idea is to turn every part of the selector into a function, which -takes an element as its only argument. The function checks whether a passed -element matches its part of the selector: If it does, the element is passed to -the next function representing the next part of the selector. That function does -the same. If an element is accepted by all parts of the selector, it _matches_ -the selector and double rainbow ALL THE WAY. - -As said before, we want to do right-to-left execution with all the big O -improvements. That means elements are passed from the rightmost part of the -selector (`b` in our example) to the leftmost (~~which would be `c`~~ of course -`a`). - -For traversals, such as the _descendant_ operating the space between `a` and -`b`, we walk up the DOM tree, starting from the element passed as argument. - -_//TODO: More in-depth description. Implementation details. Build a spaceship._ - -## API - -```js -const CSSselect = require("css-select"); -``` - -**Note:** css-select throws errors when invalid selectors are passed to it.This -is done to aid with writing css selectors, but can be unexpected when processing -arbitrary strings. - -#### `CSSselect.selectAll(query, elems, options)` - -Queries `elems`, returns an array containing all matches. - -- `query` can be either a CSS selector or a function. -- `elems` can be either an array of elements, or a single element. If it is an - element, its children will be queried. -- `options` is described below. - -Aliases: `default` export, `CSSselect.iterate(query, elems)`. - -#### `CSSselect.compile(query, options)` - -Compiles the query, returns a function. - -#### `CSSselect.is(elem, query, options)` - -Tests whether or not an element is matched by `query`. `query` can be either a -CSS selector or a function. - -#### `CSSselect.selectOne(query, elems, options)` - -Arguments are the same as for `CSSselect.selectAll(query, elems)`. Only returns -the first match, or `null` if there was no match. - -### Options - -All options are optional. - -- `xmlMode`: When enabled, tag names will be case-sensitive. Default: `false`. -- `rootFunc`: The last function in the stack, will be called with the last - element that's looked at. -- `adapter`: The adapter to use when interacting with the backing DOM - structure. By default it uses the `domutils` module. -- `context`: The context of the current query. Used to limit the scope of - searches. Can be matched directly using the `:scope` pseudo-selector. -- `cacheResults`: Allow css-select to cache results for some selectors, - sometimes greatly improving querying performance. Disable this if your - document can change in between queries with the same compiled selector. - Default: `true`. - -#### Custom Adapters - -A custom adapter must match the interface described -[here](https://github.com/fb55/css-select/blob/1aa44bdd64aaf2ebdfd7f338e2e76bed36521957/src/types.ts#L6-L96). - -You may want to have a look at [`domutils`](https://github.com/fb55/domutils) to -see the default implementation, or at -[`css-select-browser-adapter`](https://github.com/nrkn/css-select-browser-adapter/blob/master/index.js) -for an implementation backed by the DOM. - -## Supported selectors - -_As defined by CSS 4 and / or jQuery._ - -- [Selector lists](https://developer.mozilla.org/en-US/docs/Web/CSS/Selector_list) - (`,`) -- [Universal](https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors) - (`*`) -- [Type](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) - (``) -- [Descendant](https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator) - (` `) -- [Child](https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator) - (`>`) -- Parent (`<`) -- [Adjacent sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_combinator) - (`+`) -- [General sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_combinator) - (`~`) -- [Attribute](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors) - (`[attr=foo]`), with supported comparisons: - - `[attr]` (existential) - - `=` - - `~=` - - `|=` - - `*=` - - `^=` - - `$=` - - `!=` - - `i` and `s` can be added after the comparison to make the comparison - case-insensitive or case-sensitive (eg. `[attr=foo i]`). If neither is - supplied, css-select will follow the HTML spec's - [case-sensitivity rules](https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors). -- Pseudos: - - [`:not`](https://developer.mozilla.org/en-US/docs/Web/CSS/:not) - - [`:contains`](https://api.jquery.com/contains-selector) - - `:icontains` (case-insensitive version of `:contains`) - - [`:has`](https://developer.mozilla.org/en-US/docs/Web/CSS/:has) - - [`:root`](https://developer.mozilla.org/en-US/docs/Web/CSS/:root) - - [`:empty`](https://developer.mozilla.org/en-US/docs/Web/CSS/:empty) - - [`:parent`](https://api.jquery.com/parent-selector) - - [`:first-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-child), - [`:last-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:last-child), - [`:first-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type), - [`:last-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:last-of-type) - - [`:only-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:only-of-type), - [`:only-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:only-child) - - [`:nth-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child), - [`:nth-last-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child), - [`:nth-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type), - [`:nth-last-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-of-type), - - [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link), - [`:any-link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link) - - [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited), - [`:hover`](https://developer.mozilla.org/en-US/docs/Web/CSS/:hover), - [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) - (these depend on optional `Adapter` methods, so these will only match - elements if implemented in `Adapter`) - - [`:selected`](https://api.jquery.com/selected-selector), - [`:checked`](https://developer.mozilla.org/en-US/docs/Web/CSS/:checked) - - [`:enabled`](https://developer.mozilla.org/en-US/docs/Web/CSS/:enabled), - [`:disabled`](https://developer.mozilla.org/en-US/docs/Web/CSS/:disabled) - - [`:required`](https://developer.mozilla.org/en-US/docs/Web/CSS/:required), - [`:optional`](https://developer.mozilla.org/en-US/docs/Web/CSS/:optional) - - [`:header`](https://api.jquery.com/header-selector), - [`:button`](https://api.jquery.com/button-selector), - [`:input`](https://api.jquery.com/input-selector), - [`:text`](https://api.jquery.com/text-selector), - [`:checkbox`](https://api.jquery.com/checkbox-selector), - [`:file`](https://api.jquery.com/file-selector), - [`:password`](https://api.jquery.com/password-selector), - [`:reset`](https://api.jquery.com/reset-selector), - [`:radio`](https://api.jquery.com/radio-selector) etc. - - [`:is`](https://developer.mozilla.org/en-US/docs/Web/CSS/:is), plus its - legacy alias `:matches` - - [`:scope`](https://developer.mozilla.org/en-US/docs/Web/CSS/:scope) - (uses the context from the passed options) - ---- - -License: BSD-2-Clause - -## Security contact information - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). Tidelift will -coordinate the fix and disclosure. - -## `css-select` for enterprise - -Available as part of the Tidelift Subscription - -The maintainers of `css-select` and thousands of other packages are working with -Tidelift to deliver commercial support and maintenance for the open source -dependencies you use to build your applications. Save time, reduce risk, and -improve code health, while paying the maintainers of the exact dependencies you -use. -[Learn more.](https://tidelift.com/subscription/pkg/npm-css-select?utm_source=npm-css-select&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/build/node_modules/css-select/package.json b/build/node_modules/css-select/package.json deleted file mode 100644 index 0eaa9ed8..00000000 --- a/build/node_modules/css-select/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "css-select", - "version": "4.3.0", - "description": "a CSS selector compiler/engine", - "author": "Felix Boehm ", - "funding": { - "url": "https://github.com/sponsors/fb55" - }, - "keywords": [ - "css", - "selector", - "sizzle" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/css-select.git" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib" - ], - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "devDependencies": { - "@types/boolbase": "^1.0.1", - "@types/jest": "^27.4.1", - "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.16.0", - "@typescript-eslint/parser": "^5.16.0", - "cheerio-soupselect": "^0.1.1", - "eslint": "^8.12.0", - "eslint-config-prettier": "^8.5.0", - "htmlparser2": "^7.2.0", - "jest": "^27.5.1", - "prettier": "^2.6.1", - "ts-jest": "^27.1.4", - "typescript": "^4.6.3" - }, - "scripts": { - "test": "npm run test:jest && npm run lint", - "test:jest": "jest", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint src", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc", - "prepare": "npm run build" - }, - "license": "BSD-2-Clause", - "prettier": { - "tabWidth": 4, - "proseWrap": "always" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node", - "testMatch": [ - "/test/*.ts" - ] - } -} diff --git a/build/node_modules/css-tree/CHANGELOG.md b/build/node_modules/css-tree/CHANGELOG.md deleted file mode 100644 index 31051c5d..00000000 --- a/build/node_modules/css-tree/CHANGELOG.md +++ /dev/null @@ -1,590 +0,0 @@ -## 1.1.3 (March 31, 2021) - -- Fixed matching on CSS wide keywords for at-rule's prelude and descriptors -- Added `fit-content` to `width` property patch as browsers are supported it as a keyword (nonstandard), but spec defines it as a function -- Fixed parsing a value contains parentheses or brackets and `parseValue` option is set to `false`, in that case `!important` was included into a value but must not (#155) - -## 1.1.2 (November 26, 2020) - -- Rolled back to use spread syntax in object literals since it not supported by nodejs < 8.3 (#145) - -## 1.1.1 (November 18, 2020) - -- Fixed edge cases in mismatch location computation for `SyntaxMatchError` - -## 1.1.0 (November 17, 2020) - -- Bumped `mdn-data` to 2.0.14 -- Extended `fork()` method to allow append syntax instead of overriding for `types`, `properties` and `atrules`, e.g. `csstree.fork({ types: { color: '| foo | bar' } })` -- Extended lexer API for validation - - Added `Lexer#checkAtruleName(atruleName)`, `Lexer#checkAtrulePrelude(atruleName, prelude)`, `Lexer#checkAtruleDescriptorName(atruleName, descriptorName)` and `Lexer#checkPropertyName(propertyName)` - - Added `Lexer#getAtrule(atruleName, fallbackBasename)` method - - Extended `Lexer#getAtrulePrelude()` and `Lexer#getProperty()` methods to take `fallbackBasename` parameter - - Improved `SyntaxMatchError` location details - - Changed error messages - -## 1.0.1 (November 11, 2020) - -- Fixed edge cases for parsing of custom property value with a single whitespace when `parseCustomProperty:true` - -## 1.0.0 (October 27, 2020) - -- Added `onComment` option to parser config -- Added support for `break` and `skip` values in `walk()` to control traversal -- Added `List#reduce()` and `List#reduceRight()` methods -- Bumped `mdn-data` to 2.0.12 -- Exposed version of the lib (i.e. `import { version } from 'css-tree'`) -- Fixed `Lexer#dump()` to dump atrules syntaxes as well -- Fixed matching comma separated `` list (#135) -- Renamed `HexColor` node type into `Hash` -- Removed `element()` specific parsing rules -- Removed `dist/default-syntax.json` from package - -## 1.0.0-alpha.39 (December 5, 2019) - -- Fixed walker with `visit: "Declaration"` to iterate `DeclarationList` (#114) - -## 1.0.0-alpha.38 (November 25, 2019) - -- Bumped `mdn-data` to `2.0.6` -- Added initial implmentation for at-rule matching via `Lexer#matchAtrulePrelude()` and `Lexer#matchAtruleDescriptor()` methods -- Added `-moz-control-character-visibility`, `-ms-grid-columns`, `-ms-grid-rows` and `-ms-hyphenate-limit-last` properties to patch (#111) -- Added `flow`, `flow-root` and `table-caption` values to patched `display` (#112) - -## 1.0.0-alpha.37 (October 22, 2019) - -- Bumped `source-map` version to `^0.6.1` to fix source map generation inconsistency across node.js versions due to mappings sorting bug and v8 moving to [a stable Array#sort](https://v8.dev/blog/array-sort) ([fix commit](https://github.com/mozilla/source-map/commit/f35a2e4212dd025cb5e1fc219e7ac8a4b96c2cc9) in `source-map`) - -## 1.0.0-alpha.36 (October 13, 2019) - -- Dropped support for Node < 8 -- Updated dev deps (fixed `npm audit` issues) -- Reworked build pipeline - - Package provides `dist/csstree.js` and `dist/csstree.min.js` now (instead of single `dist/csstree.js` that was a min version) - - Bundle size (min version) reduced from 191Kb to 158Kb due to some optimisations -- Definition syntax - - Renamed `grammar` into `definitionSyntax` (named per spec) - - Added `compact` option to `generate()` method to avoid formatting (spaces) when possible -- Lexer - - Changed `dump()` method to produce syntaxes in compact form by default - -## 1.0.0-alpha.35 (October 7, 2019) - -- Walker - - Changed implementation to avoid runtime compilation due to CSP issues (see #91, #109) - - Added `find()`, `findLast()` and `findAll()` methods (e.g. `csstree.find(ast, node => node.type === 'ClassSelector')`) - -## 1.0.0-alpha.34 (July 27, 2019) - -- Tokenizer - - Added `isBOM()` function - - Added `charCodeCategory()` function - - Removed `firstCharOffset()` function (use `isBOM()` instead) - - Removed `CHARCODE` dictionary - - Removed `INPUT_STREAM_CODE*` dictionaries -- Lexer - - Allowed comments in matching value (just ignore them like whitespaces) - - Increased iteration count in value matching from 10k up to 15k - - Fixed missed `debugger` (#104) - -## 1.0.0-alpha.33 (July 11, 2019) - -- Lexer - - Fixed low priority productions matching by changing an approach for robust one (#103) - -## 1.0.0-alpha.32 (July 11, 2019) - -- Lexer - - Fixed low priority productions matching in long `||-` and `&&-` groups (#103) - -## 1.0.0-alpha.31 (July 11, 2019) - -- Bumped `mdn/data` to `2.0.4` (#99) -- Lexer - - Added [bracketed range notation](https://drafts.csswg.org/css-values-4/#numeric-ranges) support and related refactoring - - Removed ``, `` and `` from generic types. In fact, types moved to patch, because those types can be expressed in a regular grammar due to bracketed range notation implemented - - Added support for multiple token string matching - - Improved `` production matching to claim the keyword only if no other unfulfilled production can claim it (#101) - - Improved `` production matching to claim "unitless zero" only if no other unfulfilled production can claim it - - Changed lexer's constructor to prevent generic types override when used - - Fixed large `||`- and `&&`-group matching, matching continues from the beginning on term match (#85) - - Fixed checking that value has `var()` occurrences when value is a string (such values can't be matched on syntax currently and fail with specific error that can be used for ignorance in validation tools) - - Fixed `` and `` matching when a value contains a function, parentheses or braces - -## 1.0.0-alpha.30 (July 3, 2019) - -- Bumped `mdn/data` to `~2.0.3` - - Removed type removals from `mdn/data` due to lack of some generic types and specific lexer restictions (since lexer was reworked, see below) - - Reduced and updated patches -- Tokenizer - - Reworked tokenizer itself to compliment [CSS Syntax Module Level 3](https://drafts.csswg.org/css-syntax/#tokenization) - - `Tokenizer` class splitted into several abstractions: - - Added `TokenStream` class - - Added `OffsetToLocation` class - - Added `tokenize()` function that creates `TokenStream` instance for given string or updates a `TokenStream` instance passed as second parameter - - Removed `Tokenizer` class - - Removed `Raw` token type - - Renamed `Identifier` token type to `Ident` - - Added token types: `Hash`, `BadString`, `BadUrl`, `Delim`, `Percentage`, `Dimension`, `Colon`, `Semicolon`, `Comma`, `LeftSquareBracket`, `RightSquareBracket`, `LeftParenthesis`, `RightParenthesis`, `LeftCurlyBracket`, `RightCurlyBracket` - - Replaced `Punctuator` with `Delim` token type, that excludes specific characters with its own token type like `Colon`, `Semicolon` etc - - Removed `findCommentEnd`, `findStringEnd`, `findDecimalNumberEnd`, `findNumberEnd`, `findEscapeEnd`, `findIdentifierEnd` and `findUrlRawEnd` helper function - - Removed `SYMBOL_TYPE`, `PUNCTUATION` and `STOP_URL_RAW` dictionaries - - Added `isDigit`, `isHexDigit`, `isUppercaseLetter`, `isLowercaseLetter`, `isLetter`, `isNonAscii`, `isNameStart`, `isName`, `isNonPrintable`, `isNewline`, `isWhiteSpace`, `isValidEscape`, `isIdentifierStart`, `isNumberStart`, `consumeEscaped`, `consumeName`, `consumeNumber` and `consumeBadUrlRemnants` helper functions -- Parser - - Changed parsing algorithms to work with new token type set - - Changed `HexColor` consumption in way to relax checking a value, i.e. now `value` is a sequence of one or more name chars - - Added `&` as a property hack - - Relaxed `var()` parsing to only check that a first arguments is an identifier (not a custom property name as before) -- Lexer - - Reworked syntax matching to relay on token set only (having AST is optional now) - - Extended `Lexer#match()`, `Lexer#matchType()` and `Lexer#matchProperty()` methods to take a string as value, beside AST as a value - - Extended `Lexer#match()` method to take a string as a syntax, beside of syntax descriptor - - Reworked generic types: - - Removed ``, `` (moved to patch) and `` types - - Added types: - - Related to token types: ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, `<[-token>`, `<]-token>`, `<(-token>`, `<)-token>`, `<{-token>` and `<}-token>` - - Complex types: ``, ``, ``, ``, `` and `` - - Renamed `` to `` as per spec - - Renamed `` (IE legacy extension) to `<-ms-legacy-expression>` and may to be removed in next releases - -## 1.0.0-alpha.29 (May 30, 2018) - -- Lexer - - Syntax matching was completely reworked. Now it's token-based and uses state machine. Public API has not changed. However, some internal data structures have changed. Most significal change in syntax match result tree structure, it's became token-based instead of node-based. - - Grammar - - Changed grammar tree format: - - Added `Token` node type to represent a single code point (``) - - Added `Multiplier` that wraps a single node (`term` property) - - Added `AtKeyword` to represent `` - - Removed `Slash` and `Percent` node types, they are replaced for a node with `Token` type - - Changed `Function` to represent `` with no children - - Removed `multiplier` property from `Group` - - Changed `generate()` method: - - Method takes an `options` as second argument now (`generate(node, forceBraces, decorator)` -> `generate(node, options)`). Two options are supported: `forceBraces` and `decorator` - - When a second parameter is a function it treats as `decorate` option value, i.e. `generate(node, fn)` -> `generate(node, { decorate: fn })` - - Decorate function invokes with additional parameter – a reference to a node -- Tokenizer - - Renamed `Atrule` const to `AtKeyword` - -## 1.0.0-alpha.28 (February 19, 2018) - -- Renamed `lexer.grammar.translate()` method into `generate()` -- Fixed `<'-webkit-font-smoothing'>` and `<'-moz-osx-font-smoothing'>` syntaxes (#75) -- Added vendor keywords for `<'overflow'>` property syntax (#76) -- Pinned `mdn-data` to `~1.1.0` and fixed issues with some updated property syntaxes - -## 1.0.0-alpha.27 (January 14, 2018) - -- Generator - - Changed node's `generate()` methods invocation, methods now take a node as a single argument and context (i.e. `this`) that have methods: `chunk()`, `node()` and `children()` - - Renamed `translate()` to `generate()` and changed to take `options` argument - - Removed `translateMarkup(ast, enter, leave)` method, use `generate(ast, { decorator: (handlers) => { ... }})` instead - - Removed `translateWithSourceMap(ast)`, use `generate(ast, { sourceMap: true })` instead - - Changed to support for children as an array -- Walker - - Changed `walk()` to take an `options` argument instead of handler, with `enter`, `leave`, `visit` and `reverse` options (`walk(ast, fn)` is still works and equivalent to `walk(ast, { enter: fn })`) - - Removed `walkUp(ast, fn)`, use `walk(ast, { leave: fn })` - - Removed `walkRules(ast, fn)`, use `walk(ast, { visit: 'Rule', enter: fn })` instead - - Removed `walkRulesRight(ast, fn)`, use `walk(ast, { visit: 'Rule', reverse: true, enter: fn })` instead - - Removed `walkDeclarations(ast, fn)`, use `walk(ast, { visit: 'Declaration', enter: fn })` instead - - Changed to support for children as array in most cases (`reverse: true` will fail on arrays since they have no `forEachRight()` method) -- Misc - - List - - Added `List#forEach()` method - - Added `List#forEachRight()` method - - Added `List#filter()` method - - Changed `List#map()` method to return a `List` instance instead of `Array` - - Added `List#push()` method, similar to `List#appendData()` but returns nothing - - Added `List#pop()` method - - Added `List#unshift()` method, similar to `List#prependData()` but returns nothing - - Added `List#shift()` method - - Added `List#prependList()` method - - Changed `List#insert()`, `List#insertData()`, `List#appendList()` and `List#insertList()` methods to return a list that performed an operation - - Changed `keyword()` method - - Changed `name` field to include a vendor prefix - - Added `basename` field to contain a name without a vendor prefix - - Added `custom` field that contain a `true` when keyword is a custom property reference - - Changed `property()` method - - Changed `name` field to include a vendor prefix - - Added `basename` field to contain a name without any prefixes, i.e. a hack and a vendor prefix - - Added `vendorPrefix()` method - - Added `isCustomProperty()` method - -## 1.0.0-alpha.26 (November 9, 2017) - -- Tokenizer - - Added `Tokenizer#isBalanceEdge()` method - - Removed `Tokenizer.endsWith()` method -- Parser - - Made the parser tolerant to errors by default - - Removed `tolerant` parser option (no parsing modes anymore) - - Removed `property` parser option (a value parsing does not depend on property name anymore) - - Canceled error for a handing semicolon in a block - - Canceled error for unclosed `Brackets`, `Function` and `Parentheses` when EOF is reached - - Fixed error when prelude ends with a comment for at-rules with custom prelude consumer - - Relaxed at-rule parsing: - - Canceled error when EOF is reached after a prelude - - Canceled error for an at-rule with custom block consumer when at-rule has no block (just don't apply consumer in that case) - - Canceled error on at-rule parsing when it occurs outside prelude or block (at-rule is converting to `Raw` node) - - Allowed for any at-rule to have a prelude and a block, even if it's invalid per at-rule syntax (the responsibility for this check is moved to lexer, since it's possible to construct a AST with such errors) - - Made a declaration value a safe parsing point (i.e. error on value parsing lead to a value is turning into `Raw` node, not a declaration as before) - - Excluded surrounding white spaces and comments from a `Raw` node that represents a declaration value - - Changed `Value` parse handler to return a node only with type `Value` (previously it returned a `Raw` node in some cases) - - Fixed issue with `onParseError()` is not invoked for errors occured on selector or declaration value parsing in some cases - - Changed using of `onParseError()` to stop parsing if handler throws an exception -- Lexer - - Changed `grammar.walk()` to invoke passed handler on entering to node rather than on leaving the node - - Improved `grammar.walk()` to take a walk handler pair as an object, i.e. `walk(node, { enter: fn, leave: fn })` - - Changed `Lexer#match*()` methods to take a node of any type, but with a `children` field - - Added `Lexer#match(syntax, node)` method - - Fixed `Lexer#matchType()` method to stop return a positive result for the CSS wide keywords - -## 1.0.0-alpha25 (October 9, 2017) - -- Parser - - Added fallback node as argument to `onParseError()` handler - - Fixed raw consuming in tolerant mode when selector is invalid (greedy consuming and redundant warnings) - - Fixed exception in tolerant mode caused by unknown at-rule with unclosed block - - Changed handling of semicolons: - - Hanging semicolon inside declaration blocks raise an error or turns into a `Raw` node in tolerant mode instead of being ignored - - Semicolon outside of declaration blocks opens a `Rule` node as part of selector instead of being ignored - - Aligned `parseAtrulePrelude` behaviour to `parseRulePrelude` - - Removed `Raw` node wraping into `AtrulePrelude` when `parseAtrulePrelude` is disabled - - Removed error emitting when at-rule has a custom prelude customer but no prelude is found (it should be validated by a lexer later) -- Generator - - Fixed performance issue with `translateWithSourceMap()`, flattening the string (because of mixing building string and indexing into it) turned it into a quadratic algorithm (approximate numbers can be found in [the quiz created by this case](https://gist.github.com/lahmatiy/ea25d0e623d88ca9848384b5707d52d9)) -- Added support for a single solidus hack for `property()` -- Minor fixes for custom errors - -## 1.0.0-alpha24 (September 14, 2017) - -- Improved CSSTree to be stable for standart build-in objects extension (#58) -- Parser - - Renamed rule's `selector` to `prelude`. The reasons: [spec names this part so](https://www.w3.org/TR/css-syntax-3/#qualified-rule), and this branch can contain not only a selector (`SelectorList`) but also a raw payload (`Raw`). What's changed: - - Renamed `Rule.selector` to `Rule.prelude` - - Renamed `parseSelector` parser option to `parseRulePrelude` - - Removed option for selector parse in `SelectorList` -- Lexer - - Fixed undefined positions in a error when match a syntax to empty or white space only value - - Improved `Lexer#checkStructure()` - - Return a warning as an object with node reference and message - - No exception on unknown node type, return a warning instead - -## 1.0.0-alpha23 (September 10, 2017) - -- Fixed `Tokenizer#getRawLength()`'s false positive balance match to the end of input in some cases (#56) -- Rename walker's entry point methods to be the same as CSSTree exposed methods (i.e. `walk()`, `walkUp()` etc) -- Rename at-rule's `expression` to `prelude` (since [spec names it so](https://www.w3.org/TR/css-syntax-3/#at-rule)) - - `AtruleExpression` node type → `AtrulePrelude` - - `Atrule.expression` field → `Atrule.prelude` - - `parseAtruleExpression` parser's option → `parseAtrulePrelude` - - `atruleExpression` parse context → `atrulePrelude` - - `atruleExpression` walk context reference → `atrulePrelude` - -## 1.0.0-alpha22 (September 8, 2017) - -- Parser - - Fixed exception on parsing of unclosed `{}-block` in tolerant mode - - Added tolerant mode support for `DeclarationList` - - Added standalone entry point, i.e. default parser can be used via `require('css-tree/lib/parser')` (#47) -- Generator - - Changed generator to produce `+n` when `AnPlusB.a` is `+1` to be "round-trip" with parser - - Added standalone entry point, i.e. default generators can be used via `require('css-tree/lib/generator')` -- Walker - - Added standalone entry point, i.e. default walkers can be used via `require('css-tree/lib/walker')` (#47) -- Lexer - - Added `default` keyword to the list of invalid values for `` (since it reversed per [spec](https://www.w3.org/TR/css-values/#custom-idents)) -- Convertors (`toPlainObject()` and `fromPlainObject()`) moved to `lib/convertor` (entry point is `require('css-tree/lib/convertor')`) - -## 1.0.0-alpha21 (September 5, 2017) - -- Tokenizer - - Added `Raw` token type - - Improved tokenization of `url()` with raw as url to be more spec complient - - Added `Tokenizer#balance` array computation on token layout - - Added `Tokenizer#getRawLength()` to compute a raw length with respect of block balance - - Added `Tokenizer#getTokenStart(offset)` method to get token start offset by token index - - Added `idx` and `balance` fields to each token of `Tokenizer#dump()` method result -- Parser - - Added `onParseError` option - - Reworked node parsers that consume a `Raw` node to use a new approach. Since now a `Raw` node builds in `parser#Raw()` function only - - Changed semantic of `parser#Raw()`, it takes 5 parameters now (it might to be changed in future) - - Changed `parser#tolerantParse()` to pass a start token index to fallback function instead of source offset - - Fixed `AtruleExpression` consuming in tolerant mode - - Atrule handler to convert an empty `AtruleExpression` node into `null` - - Changed `AtruleExpression` handler to always return a node (before it could return a `null` in some cases) -- Lexer - - Fixed comma match node for `#` multiplier - - Added reference name to `SyntaxReferenceError` -- Additional fixes on custom errors -- Reduced possible corruption of base config by `syntax.fork()` - -## 1.0.0-alpha20 (August 28, 2017) - -- Tokenizer - - Added `Atrule` token type (`` per spec) - - Added `Function` token type (`` per spec) - - Added `Url` token type - - Replaced `Tokenizer#getTypes()` method with `Tokenizer#dump()` to get all tokens as an array - - Renamed `Tokenizer.TYPE.Whitespace` to `Tokenizer.TYPE.WhiteSpace` - - Renamed `Tokenizer.findWhitespaceEnd()` to `Tokenizer.findWhiteSpaceEnd()` -- Parser - - Added initial implementation of tollerant mode (turn on by passing `tolerant: true` option). In this mode parse errors are never occour and any invalid part of CSS turns into a `Raw` node. Current safe points: `Atrule`, `AtruleExpression`, `Rule`, `Selector` and `Declaration`. Feature is experimental and further improvements are planned. - - Changed `Atrule.expression` to contain a `AtruleExpression` node or `null` only (other node types is wrapping into a `AtruleExpression` node) - - Renamed `AttributeSelector.operator` to `AttributeSelector.matcher` -- Generator - - `translate()` method is now can take a function as second argument, that recieves every generated chunk. When no function is passed, default handler is used, it concats all the chunks and method returns a string. -- Lexer - - Used [mdn/data](https://github.com/mdn/data) package as source of lexer's grammar instead of local dictionaries - - Added `x` unit to `` generic type - - Improved match tree: - - Omited Group (sequences) match nodes - - Omited empty match nodes (for terms with `zero or more` multipliers) - - Added `ASTNode` node type to contain a reference to AST node - - Fixed node duplication (uncompleted match were added to tree) - - Added AST node reference in match nodes - - Added comma match node by `#` multiplier - - Grammar - - Changed `translate()` function to get a handler as third argument (optional). That handler recieves result of node traslation and can be used for decoration purposes. See [example](https://github.com/csstree/docs/blob/04c65af44477b5ea05feb373482898122b2a4528/docs/syntax.html#L619-L627) - - Added `SyntaxParseError` to grammar export - - Reworked group and multipliers representation in syntax tree: - - Replaced `Sequence` for `Group` node type (`Sequence` node type removed) - - Added `explicit` boolean property for `Group` - - Only groups can have a multiplier now (other node types is wrapping into a single term implicit group when multiplier is applied) - - Renamed `nonEmpty` Group's property to `disallowEmpty` - - Added optimisation for syntax tree by dropping redundant root `Group` when it contains a single `Group` term (return this `Group` as a result) - - Changed lexer's match functionality - - Changed `Lexer#matchProperty()` and `Lexer#matchType()` to return an object instead of match tree. A match tree stores in `matched` field when AST is matched to grammar successfully, otherwise an error in `error` field. The result object also has some methods to test AST node against a match tree: `getTrace()`, `isType()`, `isProperty()` and `isKeyword()` - - Added `Lexer#matchDeclaration()` method - - Removed `Lexer#lastMatchError` (error stores in match result object in `error` field) - - Added initial implementation of search for AST segments (new lexer methods: `Lexer#findValueSegments()`, `Lexer#findDeclarationValueSegments()` and `Lexer#findAllSegments`) - - Implemented `SyntaxReferenceError` for unknown property and type references -- Renamed field in resulting object of `property()` function: `variable` → `custom` -- Fixed issue with readonly properties (e.g. `line` and `column`) of `Error` and exception on attempt to write in iOS Safari - -## 1.0.0-alpha19 (April 24, 2017) - -- Extended `List` class with new methods: - - `List#prepend(item)` - - `List#prependData(data)` - - `List#insertData(data)` - - `List#insertList(list)` - - `List#replace(item, itemOrList)` - -## 1.0.0-alpha18 (April 3, 2017) - -- Added `atrule` walk context (#39) -- Changed a result of generate method for `AnPlusB`, `AttributeSelector`, `Function`, `MediaFeature` and `Ratio` ([1e95877](https://github.com/csstree/csstree/commit/1e9587710efa8e9338bcf0bc794b4b45f286231d)) -- Fixed typo in `List` exception messages (@strarsis, #42) -- Improved tokenizer to convert an input to a string - -## 1.0.0-alpha17 (March 13, 2017) - -- Implemented new concept of `syntax` - - Changed main `exports` to expose a default syntax - - Defined initial [CSS syntax](lib/syntax/default.js) - - Implemented `createSyntax()` method to create a new syntax from scratch - - Implemented `fork()` method to create a new syntax based on given via extension -- Parser - - Implemented `mediaQueryList` and `mediaQuery` parsing contexts - - Implemented `CDO` and `CDC` node types - - Implemented additional declaration property prefix hacks (`#` and `+`) - - Added support for UTF-16LE BOM - - Added support for `@font-face` at-rule - - Added `chroma()` to legacy IE filter functions - - Improved `HexColor` to consume hex only - - Improved support for `\0` and `\9` hacks (#2) - - Relaxed number check for `Ratio` terms - - Allowed fractal values as a `Ratio` term - - Disallowed zero number as a `Ratio` term - - Changed important clause parsing - - Allowed any identifier for important (to support hacks like `!ie`) - - Store `true` for `important` field in case identifier equals to `important` and string otherwise - - Fixed parse error formatted message rendering to take into account tabs - - Removed exposing of `Parser` class - - Removed `readSelectorSequence()`, `readSequenceFallback()` and `readSelectorSequenceFallback` methods - - Used single universal sequence consumer for `AtruleExpression`, `Selector` and `Value` -- Generator - - Reworked generator to use auto-generated functions based on syntax definition (additional work to be done in next releases) - - Implemented `translateMarkup(ast, before, after)` method for complex cases - - Reworked `translateWithSourceMap` to be more flexible (based on `translateMarkup`, additional work to be done in next releases) -- Walker - - Reworked walker to use auto-generated function based on syntax definition (additional work to be done in next releases) -- Lexer - - Prepared for better extensibility (additional work to be done in next releases) - - Implemented `checkStructure(ast)` method to check AST structure based on syntax definition - - Update syntax dictionaries to latest `mdn/data` - - Add missing `<'offset-position'>` syntax - - Extended `` property with `-webkit-sticky` (@sergejmueller, #37) - - Improved mismatch error position -- Implemented script (`gen:syntax`) to generate AST format reference page (`docs/ast.md`) using syntax definition - -## 1.0.0-alpha16 (February 12, 2017) - -- Exposed `Parser` class -- Added `startOffset` option to `Tokenizer` (constructor and `setSource()` method) -- Added fallback functions for default (`readSequenceFallback`) and selector (`readSelectorSequenceFallback`) sequence readers -- Fixed edge cases for `AnPlusB` -- Fixed wrong whitespace ignoring in `Selector` consumer - -## 1.0.0-alpha15 (February 8, 2017) - -- Fixed broken `atruleExpression` context -- Fixed vendor prefix detection in `keyword()` and `property()` -- Fixed `property()` to not lowercase custom property names -- Added `variable` boolean flag in `property()` result -- Renamed `scanner` into `tokenizer` -- Ranamed `syntax` into `lexer` -- Moved `docs/*.html` files to [csstree/docs](https://github.com/csstree/docs) repo -- Added `element()` function for `Value` context (`-moz-element()` supported as well) -- Merged `Universal` node type into `Type` -- Renamed node types: - - `Id` -> `IdSelector` - - `Class` -> `ClassSelector` - - `Type` -> `TypeSelector` - - `Attribute` -> `AttributeSelector` - - `PseudoClass` -> `PseudoClassSelector` - - `PseudoElement` -> `PseudoElementSelector` - - `Hash` -> `HexColor` - - `Space` -> `WhiteSpace` - - `An+B` -> `AnPlusB` -- Removed `Progid` node type -- Relaxed `MediaQuery` consumer to not validate syntax on parse and to include whitespaces in children sequence as is -- Added `WhiteSpace.value` property to store whitespace sequence -- Implemented parser options to specify what should be parsed in details (when option is `false` some part of CSS represents as balanced `Raw`): - - `parseAtruleExpression` – to parse at-rule expressions (`true` by default) - - `parseSelector` – to parse rule's selector (`true` by default) - - `parseValue` - to parse declaration's value (`true` by default) - - `parseCustomProperty` – to parse value and fallback of custom property (`false` by default) -- Changed tokenization to stick leading hyphen minus to identifier token -- Changed selector parsing: - - Don't convert spaces into descendant combinator - - Don't validate selector structure on parsing (selectors may be checked by lexer later) -- Initial refactoring of [docs](https://github.com/csstree/csstree/blob/master/docs) -- Various improvements and fixes - -## 1.0.0-alpha14 (February 3, 2017) - -- Implemented `DeclarationList`, `MediaQueryList`, `MediaQuery`, `MediaFeature` and `Ratio` node types -- Implemented `declarationList` context (useful to parse HTML `style` attribute content) -- Implemented custom consumers for `@import`, `@media`, `@page` and `@supports` at-rules -- Implemented `atrule` option for `parse()` config, is used for `atruleExpession` context to specify custom consumer for at-rule if any -- Added `Scanner#skipWS()`, `Scanner#eatNonWS()`, `Scanner#consume()` and `Scanner#consumeNonWS()` helper methods -- Added custom consumers for known functional-pseudos, consume unknown functional-pseudo content as balanced `Raw` -- Allowed any `PseudoElement` to be a functional-pseudo (#33) -- Improved walker implementations to reduce GC thrashing by reusing cursors -- Changed `Atrule.block` to contain a `Block` node type only if any -- Changed `Block.loc` positions to include curly brackets -- Changed `Atrule.expression` to store a `null` if no expression -- Changed parser to use `StyleSheet` node type only for top level node (when context is `stylesheet`, that's by default) -- Changed `Parentheses`, `Brackets` and `Function` consumers to use passed sequence reader instead of its own -- Changed `Value` and `AtruleExpression` consumers to use common sequence reader (that reader was used by `Value` consumer before) -- Changed default sequence reader to exclude storage of spaces around `Comma` -- Changed processing of custom properties: - - Consume declaration value as balanced `Raw` - - Consume `var()` fallback value as balanced `Raw` - - Validate first argument of `var()` starts with double dash - - Custom property's value and fallback includes spaces around -- Fixed `Nth` to have a `loc` property -- Fixed `SelectorList.loc` and `Selector.loc` positions to exclude spaces -- Fixed issue Browserify build fail with `default-syntax.json` is not found error (#32, @philschatz) -- Disallowed `Type` selector starting with dash (parser throws an error in this case now) -- Disallowed empty selectors for `Rule` (not sure if it's correct but looks reasonable) -- Removed `>>` combinator support until any browser support (no signals about that yet) -- Removed `PseudoElement.legacy` property -- Removed special case for `:before`, `:after`, `:first-letter` and `:first-line` to represent them as `PseudoElement`, now those pseudos are represented as `PseudoClass` nodes -- Removed deprecated `Syntax#match()` method -- Parser was splitted into modules and related changes, one step closer to an extensible parser -- Various fixes and improvements, all changes have negligible impact on performance - -## 1.0.0-alpha13 (January 19, 2017) - -- Changed location storing in `SyntaxMatchError` - - Changed property to store mismatch offset to `mismatchOffset` - - Changed `offset` property to store bad node offset in source CSS if any - - Added `loc` property that stores bad node `loc` if any - -## 1.0.0-alpha12 (January 19, 2017) - -- Fixed `Syntax#matchProperty()` method to always return a positive result for custom properties since syntax is never defined for them (#31) -- Implemented `fromPlainObject()` and `toPlainObject()` to convert plain object to AST or AST to plain object (currently converts `List` <-> `Array`) - -## 1.0.0-alpha11 (January 18, 2017) - -- Added support for `:matches()` (#28) -- Added support for `:has()` -- Added support for `::slotted()` -- Implemented `Brackets` node type -- Implemented basic support for at-rule inside rule block (#24) -- Renamed `Selector` node type to `SelectorList` -- Renamed `SimpleSelector` node type to `Selector` -- Renamed `UnicodeRange.name` property to `UnicodeRange.value` -- Replaced `Negation` node type for regular `PseudoClass` -- Unified name of node property to store nested nodes, it always `children` now: - - `StyleSheet.rules` -> `StyleSheet.children` - - `SelectorList.selectors` -> `SelectorList.children` - - `Block.declarations` -> `Block.children` - - `*.sequence` -> `*.children` -- Fixed edge cases in parsing `Hex` and `UnicodeRange` when number not an integer -- Changed `nth-` pseudos parsing - - Implemented `An+B` node type to represent expressions like `2n + 1` or `-3n` - - Fixed edge cases when `a` or `b` is not an integer - - Changed `odd` and `even` keywords processing, keywords are storing as `Identifier` node type now - - Changed `Nth` node type format to store a `nth`-query and an optional `selector` - - Implemented `of` clause for `nth-` pseudos (a.e. `:nth-child(2n + 1 of li, img)`) - - Limited `Nth` parsing rules to `:nth-child()`, `:nth-last-child()`, `:nth-of-type()` and `:nth-last-of-type()` pseudos -- Changed the way to store locations - - Renamed `info` node property to `loc` - - Changed format of `loc` to store `start` and `end` positions - -## 1.0.0-alpha10 (January 11, 2017) - -- Reworked `Scanner` to be a single point to its functionality -- Exposed `Scanner` class to be useful for external projects -- Changed `walk()` function behaviour to traverse AST nodes in natural order -- Implemented `walkUp()` function to traverse AST nodes from deepest to parent (behaves as `walk()` before) - -## 1.0.0-alpha9 (December 21, 2016) - -- Fixed `` generic according to specs that allow a `` equals to zero to be used as valid value (#30) - -## 1.0.0-alpha8 (November 11, 2016) - -- Fixed `Scanner#skip()` issue method when cursor is moving to the end of source -- Simplified `Progid` node -- Changed behaviour for bad selector processing, now parsing fails instead of selector ignoring -- Fixed `` generic syntax -- Added `q` unit for `` generic syntax -- Refactored syntax parser (performance) -- Reduced startup time by implementing lazy syntax parsing (default syntax doesn't parse on module load) -- Updated syntax dictionaries and used [`mdn/data`](https://github.com/mdn/data) instead of `Template:CSSData` -- Renamed `syntax.stringify()` method to `syntax.translate()` -- Simplified generic syntax functions, those functions receive a single AST node for checking and should return `true` or `false` -- Added exception for values that contains `var()`, those values are always valid for now -- Added more tests and increase code coverage to `98.5%` - -## 1.0.0-alpha7 (October 7, 2016) - -- Added support for explicit descendant combinator (`>>`) -- Implemented `Type` and `Universal` type nodes -- Improved `Number` parsing by including sign and exponent (#26) -- Parse `before`, `after`, `first-letter` and `first-line` pseudos with single colon as `PseudoElement` -- Changed `FunctionalPseudo` node type to `PseudoClass` -- Fixed attribute selector name parsing (namespace edge cases) -- Fixed location calculation for specified offset when `eof` is reached -- Added more non-standard colors (#25) -- Removed obsolete `Syntax#getAll()` method -- Fixed various edge cases, code clean up and performance improvements - -## 1.0.0-alpha6 (September 23, 2016) - -- More accurate positions for syntax mismatch errors -- Added [`apple`](https://webkit.org/blog/3709/using-the-system-font-in-web-content/) specific font keywords (#20) -- Changed `Property` node stucture from object to string -- Renamed `Ruleset` node type to `Rule` -- Removed `Argument` node type -- Fixed `Dimension` and `Percentage` position computation -- Fixed bad selector parsing (temporary solution) -- Fixed location computation for CSS with very long lines that may lead to really long parsing with `positions:true` (even freeze) -- Fixed `line` and `column` computation for `SyntaxMatch` error -- Improved performance of parsing and translation. Now CSSTree is under 10ms in [PostCSS benchmark](https://github.com/postcss/benchmark). diff --git a/build/node_modules/css-tree/LICENSE b/build/node_modules/css-tree/LICENSE deleted file mode 100644 index bf9d7ce5..00000000 --- a/build/node_modules/css-tree/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2016-2019 by Roman Dvornov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/css-tree/README.md b/build/node_modules/css-tree/README.md deleted file mode 100644 index f69d14a3..00000000 --- a/build/node_modules/css-tree/README.md +++ /dev/null @@ -1,130 +0,0 @@ -CSSTree logo - -# CSSTree - -[![NPM version](https://img.shields.io/npm/v/css-tree.svg)](https://www.npmjs.com/package/css-tree) -[![Build Status](https://travis-ci.org/csstree/csstree.svg?branch=master)](https://travis-ci.org/csstree/csstree) -[![Coverage Status](https://coveralls.io/repos/github/csstree/csstree/badge.svg?branch=master)](https://coveralls.io/github/csstree/csstree?branch=master) -[![NPM Downloads](https://img.shields.io/npm/dm/css-tree.svg)](https://www.npmjs.com/package/css-tree) -[![Twitter](https://img.shields.io/badge/Twitter-@csstree-blue.svg)](https://twitter.com/csstree) - -CSSTree is a tool set for CSS: [fast](https://github.com/postcss/benchmark) detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations. The main goal is to be efficient and W3C specs compliant, with focus on CSS analyzing and source-to-source transforming tasks. - -> NOTE: The library isn't in final shape and needs further improvements (e.g. AST format and API are subjects to change in next major versions). However it's stable enough and used by projects like [CSSO](https://github.com/css/csso) (CSS minifier) and [SVGO](https://github.com/svg/svgo) (SVG optimizer) in production. - -## Features - -- **Detailed parsing with an adjustable level of detail** - - By default CSSTree parses CSS as detailed as possible, i.e. each single logical part is representing with its own AST node (see [AST format](docs/ast.md) for all possible node types). The parsing detail level can be changed through [parser options](docs/parsing.md#parsesource-options), for example, you can disable parsing of selectors or declaration values for component parts. - -- **Tolerant to errors by design** - - Parser behaves as [spec says](https://www.w3.org/TR/css-syntax-3/#error-handling): "When errors occur in CSS, the parser attempts to recover gracefully, throwing away only the minimum amount of content before returning to parsing as normal". The only thing the parser departs from the specification is that it doesn't throw away bad content, but wraps it in a special node type (`Raw`) that allows processing it later. - -- **Fast and efficient** - - CSSTree is created with focus on performance and effective memory consumption. Therefore it's [one of the fastest CSS parsers](https://github.com/postcss/benchmark) at the moment. - -- **Syntax validation** - - The build-in lexer can test CSS against syntaxes defined by W3C. CSSTree uses [mdn/data](https://github.com/mdn/data/) as a basis for lexer's dictionaries and extends it with vendor specific and legacy syntaxes. Lexer can only check the declaration values currently, but this feature will be extended to other parts of the CSS in the future. - -## Documentation - -- [AST format](docs/ast.md) -- [Parsing CSS → AST](docs/parsing.md) - - [parse(source[, options])](docs/parsing.md#parsesource-options) -- [Serialization AST → CSS](docs/generate.md) - - [generate(ast[, options])](docs/generate.md#generateast-options) -- [AST traversal](docs/traversal.md) - - [walk(ast, options)](docs/traversal.md#walkast-options) - - [find(ast, fn)](docs/traversal.md#findast-fn) - - [findLast(ast, fn)](docs/traversal.md#findlastast-fn) - - [findAll(ast, fn)](docs/traversal.md#findallast-fn) -- [Utils for AST](docs/utils.md) - - [property(name)](docs/utils.md#propertyname) - - [keyword(name)](docs/utils.md#keywordname) - - [clone(ast)](docs/utils.md#cloneast) - - [fromPlainObject(object)](docs/utils.md#fromplainobjectobject) - - [toPlainObject(ast)](docs/utils.md#toplainobjectast) -- [Value Definition Syntax](docs/definition-syntax.md) - - [parse(source)](docs/definition-syntax.md#parsesource) - - [walk(node, options, context)](docs/definition-syntax.md#walknode-options-context) - - [generate(node, options)](docs/definition-syntax.md#generatenode-options) - - [AST format](docs/definition-syntax.md#ast-format) - -## Tools - -* [AST Explorer](https://astexplorer.net/#/gist/244e2fb4da940df52bf0f4b94277db44/e79aff44611020b22cfd9708f3a99ce09b7d67a8) – explore CSSTree AST format with zero setup -* [CSS syntax reference](https://csstree.github.io/docs/syntax.html) -* [CSS syntax validator](https://csstree.github.io/docs/validator.html) - -## Related projects - -* [csstree-validator](https://github.com/csstree/validator) – NPM package to validate CSS -* [stylelint-csstree-validator](https://github.com/csstree/stylelint-validator) – plugin for stylelint to validate CSS -* [Grunt plugin](https://github.com/sergejmueller/grunt-csstree-validator) -* [Gulp plugin](https://github.com/csstree/gulp-csstree) -* [Sublime plugin](https://github.com/csstree/SublimeLinter-contrib-csstree) -* [VS Code plugin](https://github.com/csstree/vscode-plugin) -* [Atom plugin](https://github.com/csstree/atom-plugin) - -## Usage - -Install with npm: - -``` -> npm install css-tree -``` - -Basic usage: - -```js -var csstree = require('css-tree'); - -// parse CSS to AST -var ast = csstree.parse('.example { world: "!" }'); - -// traverse AST and modify it -csstree.walk(ast, function(node) { - if (node.type === 'ClassSelector' && node.name === 'example') { - node.name = 'hello'; - } -}); - -// generate CSS from AST -console.log(csstree.generate(ast)); -// .hello{world:"!"} -``` - -Syntax matching: - -```js -// parse CSS to AST as a declaration value -var ast = csstree.parse('red 1px solid', { context: 'value' }); - -// match to syntax of `border` property -var matchResult = csstree.lexer.matchProperty('border', ast); - -// check first value node is a -console.log(matchResult.isType(ast.children.first(), 'color')); -// true - -// get a type list matched to a node -console.log(matchResult.getTrace(ast.children.first())); -// [ { type: 'Property', name: 'border' }, -// { type: 'Type', name: 'color' }, -// { type: 'Type', name: 'named-color' }, -// { type: 'Keyword', name: 'red' } ] -``` - -## Top level API - -![API map](https://cdn.rawgit.com/csstree/csstree/1.0/docs/api-map.svg) - -## License - -MIT diff --git a/build/node_modules/css-tree/package.json b/build/node_modules/css-tree/package.json deleted file mode 100644 index b8f4070d..00000000 --- a/build/node_modules/css-tree/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "css-tree", - "version": "1.1.3", - "description": "A tool set for CSS: fast detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations", - "author": "Roman Dvornov (https://github.com/lahmatiy)", - "license": "MIT", - "repository": "csstree/csstree", - "keywords": [ - "css", - "ast", - "tokenizer", - "parser", - "walker", - "lexer", - "generator", - "utils", - "syntax", - "validation" - ], - "main": "lib/index.js", - "unpkg": "dist/csstree.min.js", - "jsdelivr": "dist/csstree.min.js", - "scripts": { - "build": "rollup --config", - "lint": "eslint data lib scripts test && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint", - "lint-and-test": "npm run lint && npm test", - "update:docs": "node scripts/update-docs", - "review:syntax-patch": "node scripts/review-syntax-patch", - "test": "mocha --reporter progress", - "coverage": "nyc npm test", - "travis": "nyc npm run lint-and-test && npm run coveralls", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "prepublishOnly": "npm run build", - "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null" - }, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^11.0.2", - "@rollup/plugin-json": "^4.0.2", - "@rollup/plugin-node-resolve": "^7.1.1", - "coveralls": "^3.0.9", - "eslint": "^6.8.0", - "json-to-ast": "^2.1.0", - "mocha": "^6.2.3", - "nyc": "^14.1.1", - "rollup": "^1.32.1", - "rollup-plugin-terser": "^5.3.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "files": [ - "data", - "dist", - "lib" - ] -} diff --git a/build/node_modules/css-what/LICENSE b/build/node_modules/css-what/LICENSE deleted file mode 100644 index c464f863..00000000 --- a/build/node_modules/css-what/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) Felix Böhm -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/css-what/package.json b/build/node_modules/css-what/package.json deleted file mode 100644 index 8aa2c44a..00000000 --- a/build/node_modules/css-what/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "author": "Felix Böhm (http://feedic.com)", - "name": "css-what", - "description": "a CSS selector parser", - "version": "6.1.0", - "funding": { - "url": "https://github.com/sponsors/fb55" - }, - "repository": { - "type": "git", - "url": "https://github.com/fb55/css-what" - }, - "main": "lib/commonjs/index.js", - "module": "lib/es/index.js", - "types": "lib/es/index.d.ts", - "sideEffects": false, - "files": [ - "lib/**/*" - ], - "scripts": { - "test": "npm run test:jest && npm run lint", - "test:jest": "jest", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint src", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc && tsc -p tsconfig.es.json", - "prepare": "npm run build" - }, - "devDependencies": { - "@types/jest": "^27.4.1", - "@types/node": "^17.0.23", - "@typescript-eslint/eslint-plugin": "^5.17.0", - "@typescript-eslint/parser": "^5.17.0", - "eslint": "^8.12.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-node": "^11.1.0", - "jest": "^27.5.1", - "prettier": "^2.6.1", - "ts-jest": "^27.1.4", - "typescript": "^4.6.3" - }, - "engines": { - "node": ">= 6" - }, - "license": "BSD-2-Clause", - "jest": { - "preset": "ts-jest", - "roots": [ - "src" - ] - }, - "prettier": { - "tabWidth": 4 - } -} diff --git a/build/node_modules/css-what/readme.md b/build/node_modules/css-what/readme.md deleted file mode 100644 index 0c4a198c..00000000 --- a/build/node_modules/css-what/readme.md +++ /dev/null @@ -1,69 +0,0 @@ -# css-what - -[![Build Status](https://img.shields.io/github/workflow/status/fb55/css-what/Node.js%20CI/master)](https://github.com/fb55/css-what/actions/workflows/nodejs-test.yml) -[![Coverage](https://img.shields.io/coveralls/github/fb55/css-what/master)](https://coveralls.io/github/fb55/css-what?branch=master) - -A CSS selector parser. - -## Example - -```js -import * as CSSwhat from "css-what"; - -CSSwhat.parse("foo[bar]:baz") - -~> [ - [ - { type: "tag", name: "foo" }, - { - type: "attribute", - name: "bar", - action: "exists", - value: "", - ignoreCase: null - }, - { type: "pseudo", name: "baz", data: null } - ] -] -``` - -## API - -**`CSSwhat.parse(selector)` - Parses `selector`.** - -The function returns a two-dimensional array. The first array represents selectors separated by commas (eg. `sub1, sub2`), the second contains the relevant tokens for that selector. Possible token types are: - -| name | properties | example | output | -| ------------------- | --------------------------------------- | ------------- | ---------------------------------------------------------------------------------------- | -| `tag` | `name` | `div` | `{ type: 'tag', name: 'div' }` | -| `universal` | - | `*` | `{ type: 'universal' }` | -| `pseudo` | `name`, `data` | `:name(data)` | `{ type: 'pseudo', name: 'name', data: 'data' }` | -| `pseudo` | `name`, `data` | `:name` | `{ type: 'pseudo', name: 'name', data: null }` | -| `pseudo-element` | `name` | `::name` | `{ type: 'pseudo-element', name: 'name' }` | -| `attribute` | `name`, `action`, `value`, `ignoreCase` | `[attr]` | `{ type: 'attribute', name: 'attr', action: 'exists', value: '', ignoreCase: false }` | -| `attribute` | `name`, `action`, `value`, `ignoreCase` | `[attr=val]` | `{ type: 'attribute', name: 'attr', action: 'equals', value: 'val', ignoreCase: false }` | -| `attribute` | `name`, `action`, `value`, `ignoreCase` | `[attr^=val]` | `{ type: 'attribute', name: 'attr', action: 'start', value: 'val', ignoreCase: false }` | -| `attribute` | `name`, `action`, `value`, `ignoreCase` | `[attr$=val]` | `{ type: 'attribute', name: 'attr', action: 'end', value: 'val', ignoreCase: false }` | -| `child` | - | `>` | `{ type: 'child' }` | -| `parent` | - | `<` | `{ type: 'parent' }` | -| `sibling` | - | `~` | `{ type: 'sibling' }` | -| `adjacent` | - | `+` | `{ type: 'adjacent' }` | -| `descendant` | - | | `{ type: 'descendant' }` | -| `column-combinator` | - | `\|\|` | `{ type: 'column-combinator' }` | - -**`CSSwhat.stringify(selector)` - Turns `selector` back into a string.** - ---- - -License: BSD-2-Clause - -## Security contact information - -To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. - -## `css-what` for enterprise - -Available as part of the Tidelift Subscription - -The maintainers of `css-what` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-css-what?utm_source=npm-css-what&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/build/node_modules/cssesc/LICENSE-MIT.txt b/build/node_modules/cssesc/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7e..00000000 --- a/build/node_modules/cssesc/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/cssesc/README.md b/build/node_modules/cssesc/README.md deleted file mode 100644 index 58fb8fe0..00000000 --- a/build/node_modules/cssesc/README.md +++ /dev/null @@ -1,201 +0,0 @@ -# cssesc [![Build status](https://travis-ci.org/mathiasbynens/cssesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/cssesc) [![Code coverage status](https://img.shields.io/codecov/c/github/mathiasbynens/cssesc.svg)](https://codecov.io/gh/mathiasbynens/cssesc) - -A JavaScript library for escaping CSS strings and identifiers while generating the shortest possible ASCII-only output. - -This is a JavaScript library for [escaping text for use in CSS strings or identifiers](https://mathiasbynens.be/notes/css-escapes) while generating the shortest possible valid ASCII-only output. [Here’s an online demo.](https://mothereff.in/css-escapes) - -[A polyfill for the CSSOM `CSS.escape()` method is available in a separate repository.](https://mths.be/cssescape) (In comparison, _cssesc_ is much more powerful.) - -Feel free to fork if you see possible improvements! - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install cssesc -``` - -In a browser: - -```html - -``` - -In [Node.js](https://nodejs.org/): - -```js -const cssesc = require('cssesc'); -``` - -In Ruby using [the `ruby-cssesc` wrapper gem](https://github.com/borodean/ruby-cssesc): - -```bash -gem install ruby-cssesc -``` - -```ruby -require 'ruby-cssesc' -CSSEsc.escape('I ♥ Ruby', is_identifier: true) -``` - -In Sass using [`sassy-escape`](https://github.com/borodean/sassy-escape): - -```bash -gem install sassy-escape -``` - -```scss -body { - content: escape('I ♥ Sass', $is-identifier: true); -} -``` - -## API - -### `cssesc(value, options)` - -This function takes a value and returns an escaped version of the value where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) [escape sequences for use in CSS strings or identifiers](https://mathiasbynens.be/notes/css-escapes). - -```js -cssesc('Ich ♥ Bücher'); -// → 'Ich \\2665 B\\FC cher' - -cssesc('foo 𝌆 bar'); -// → 'foo \\1D306 bar' -``` - -By default, `cssesc` returns a string that can be used as part of a CSS string. If the target is a CSS identifier rather than a CSS string, use the `isIdentifier: true` setting (see below). - -The optional `options` argument accepts an object with the following options: - -#### `isIdentifier` - -The default value for the `isIdentifier` option is `false`. This means that the input text will be escaped for use in a CSS string literal. If you want to use the result as a CSS identifier instead (in a selector, for example), set this option to `true`. - -```js -cssesc('123a2b'); -// → '123a2b' - -cssesc('123a2b', { - 'isIdentifier': true -}); -// → '\\31 23a2b' -``` - -#### `quotes` - -The default value for the `quotes` option is `'single'`. This means that any occurences of `'` in the input text will be escaped as `\'`, so that the output can be used in a CSS string literal wrapped in single quotes. - -```js -cssesc('Lorem ipsum "dolor" sit \'amet\' etc.'); -// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' -// → "Lorem ipsum \"dolor\" sit \\'amet\\' etc." - -cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single' -}); -// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' -// → "Lorem ipsum \"dolor\" sit \\'amet\\' etc." -``` - -If you want to use the output as part of a CSS string literal wrapped in double quotes, set the `quotes` option to `'double'`. - -```js -cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double' -}); -// → 'Lorem ipsum \\"dolor\\" sit \'amet\' etc.' -// → "Lorem ipsum \\\"dolor\\\" sit 'amet' etc." -``` - -#### `wrap` - -The `wrap` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output will be a valid CSS string literal wrapped in quotes. The type of quotes can be specified through the `quotes` setting. - -```js -cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single', - 'wrap': true -}); -// → '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\'' -// → "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'" - -cssesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double', - 'wrap': true -}); -// → '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."' -// → "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\"" -``` - -#### `escapeEverything` - -The `escapeEverything` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, all the symbols in the output will be escaped, even printable ASCII symbols. - -```js -cssesc('lolwat"foo\'bar', { - 'escapeEverything': true -}); -// → '\\6C\\6F\\6C\\77\\61\\74\\"\\66\\6F\\6F\\\'\\62\\61\\72' -// → "\\6C\\6F\\6C\\77\\61\\74\\\"\\66\\6F\\6F\\'\\62\\61\\72" -``` - -#### Overriding the default options globally - -The global default settings can be overridden by modifying the `css.options` object. This saves you from passing in an `options` object for every call to `encode` if you want to use the non-default setting. - -```js -// Read the global default setting for `escapeEverything`: -cssesc.options.escapeEverything; -// → `false` by default - -// Override the global default setting for `escapeEverything`: -cssesc.options.escapeEverything = true; - -// Using the global default setting for `escapeEverything`, which is now `true`: -cssesc('foo © bar ≠ baz 𝌆 qux'); -// → '\\66\\6F\\6F\\ \\A9\\ \\62\\61\\72\\ \\2260\\ \\62\\61\\7A\\ \\1D306\\ \\71\\75\\78' -``` - -### `cssesc.version` - -A string representing the semantic version number. - -### Using the `cssesc` binary - -To use the `cssesc` binary in your shell, simply install cssesc globally using npm: - -```bash -npm install -g cssesc -``` - -After that you will be able to escape text for use in CSS strings or identifiers from the command line: - -```bash -$ cssesc 'föo ♥ bår 𝌆 baz' -f\F6o \2665 b\E5r \1D306 baz -``` - -If the output needs to be a CSS identifier rather than part of a string literal, use the `-i`/`--identifier` option: - -```bash -$ cssesc --identifier 'föo ♥ bår 𝌆 baz' -f\F6o\ \2665\ b\E5r\ \1D306\ baz -``` - -See `cssesc --help` for the full list of options. - -## Support - -This library supports the Node.js and browser versions mentioned in [`.babelrc`](https://github.com/mathiasbynens/cssesc/blob/master/.babelrc). For a version that supports a wider variety of legacy browsers and environments out-of-the-box, [see v0.1.0](https://github.com/mathiasbynens/cssesc/releases/tag/v0.1.0). - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## License - -This library is available under the [MIT](https://mths.be/mit) license. diff --git a/build/node_modules/cssesc/cssesc.js b/build/node_modules/cssesc/cssesc.js deleted file mode 100644 index 1c0928e4..00000000 --- a/build/node_modules/cssesc/cssesc.js +++ /dev/null @@ -1,110 +0,0 @@ -/*! https://mths.be/cssesc v3.0.0 by @mathias */ -'use strict'; - -var object = {}; -var hasOwnProperty = object.hasOwnProperty; -var merge = function merge(options, defaults) { - if (!options) { - return defaults; - } - var result = {}; - for (var key in defaults) { - // `if (defaults.hasOwnProperty(key) { … }` is not needed here, since - // only recognized option names are used. - result[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key]; - } - return result; -}; - -var regexAnySingleEscape = /[ -,\.\/:-@\[-\^`\{-~]/; -var regexSingleEscape = /[ -,\.\/:-@\[\]\^`\{-~]/; -var regexAlwaysEscape = /['"\\]/; -var regexExcessiveSpaces = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g; - -// https://mathiasbynens.be/notes/css-escapes#css -var cssesc = function cssesc(string, options) { - options = merge(options, cssesc.options); - if (options.quotes != 'single' && options.quotes != 'double') { - options.quotes = 'single'; - } - var quote = options.quotes == 'double' ? '"' : '\''; - var isIdentifier = options.isIdentifier; - - var firstChar = string.charAt(0); - var output = ''; - var counter = 0; - var length = string.length; - while (counter < length) { - var character = string.charAt(counter++); - var codePoint = character.charCodeAt(); - var value = void 0; - // If it’s not a printable ASCII character… - if (codePoint < 0x20 || codePoint > 0x7E) { - if (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) { - // It’s a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { - // next character is low surrogate - codePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000; - } else { - // It’s an unmatched surrogate; only append this code unit, in case - // the next code unit is the high surrogate of a surrogate pair. - counter--; - } - } - value = '\\' + codePoint.toString(16).toUpperCase() + ' '; - } else { - if (options.escapeEverything) { - if (regexAnySingleEscape.test(character)) { - value = '\\' + character; - } else { - value = '\\' + codePoint.toString(16).toUpperCase() + ' '; - } - } else if (/[\t\n\f\r\x0B]/.test(character)) { - value = '\\' + codePoint.toString(16).toUpperCase() + ' '; - } else if (character == '\\' || !isIdentifier && (character == '"' && quote == character || character == '\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) { - value = '\\' + character; - } else { - value = character; - } - } - output += value; - } - - if (isIdentifier) { - if (/^-[-\d]/.test(output)) { - output = '\\-' + output.slice(1); - } else if (/\d/.test(firstChar)) { - output = '\\3' + firstChar + ' ' + output.slice(1); - } - } - - // Remove spaces after `\HEX` escapes that are not followed by a hex digit, - // since they’re redundant. Note that this is only possible if the escape - // sequence isn’t preceded by an odd number of backslashes. - output = output.replace(regexExcessiveSpaces, function ($0, $1, $2) { - if ($1 && $1.length % 2) { - // It’s not safe to remove the space, so don’t. - return $0; - } - // Strip the space. - return ($1 || '') + $2; - }); - - if (!isIdentifier && options.wrap) { - return quote + output + quote; - } - return output; -}; - -// Expose default options (so they can be overridden globally). -cssesc.options = { - 'escapeEverything': false, - 'isIdentifier': false, - 'quotes': 'single', - 'wrap': false -}; - -cssesc.version = '3.0.0'; - -module.exports = cssesc; diff --git a/build/node_modules/cssesc/package.json b/build/node_modules/cssesc/package.json deleted file mode 100644 index 076c84dc..00000000 --- a/build/node_modules/cssesc/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "cssesc", - "version": "3.0.0", - "description": "A JavaScript library for escaping CSS strings and identifiers while generating the shortest possible ASCII-only output.", - "homepage": "https://mths.be/cssesc", - "engines": { - "node": ">=4" - }, - "main": "cssesc.js", - "bin": "bin/cssesc", - "man": "man/cssesc.1", - "keywords": [ - "css", - "escape", - "identifier", - "string", - "tool" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/cssesc.git" - }, - "bugs": "https://github.com/mathiasbynens/cssesc/issues", - "files": [ - "LICENSE-MIT.txt", - "cssesc.js", - "bin/", - "man/" - ], - "scripts": { - "build": "grunt template && babel cssesc.js -o cssesc.js", - "test": "mocha tests", - "cover": "istanbul cover --report html node_modules/.bin/_mocha tests -- -u exports -R spec" - }, - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.6.1", - "codecov": "^1.0.1", - "grunt": "^1.0.1", - "grunt-template": "^1.0.0", - "istanbul": "^0.4.4", - "mocha": "^2.5.3", - "regenerate": "^1.2.1", - "requirejs": "^2.1.16" - } -} diff --git a/build/node_modules/cssnano-preset-default/LICENSE-MIT b/build/node_modules/cssnano-preset-default/LICENSE-MIT deleted file mode 100644 index fd0e863a..00000000 --- a/build/node_modules/cssnano-preset-default/LICENSE-MIT +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) Ben Briggs (http://beneb.info) - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/cssnano-preset-default/README.md b/build/node_modules/cssnano-preset-default/README.md deleted file mode 100644 index 077eda59..00000000 --- a/build/node_modules/cssnano-preset-default/README.md +++ /dev/null @@ -1,295 +0,0 @@ -# cssnano-preset-default - -> Safe defaults for cssnano which require minimal configuration. - -## Table of Contents - -- [Overview](#overview) - -- [Usage](#usage) - - - [Install](#install) - - [Configuration](#configuration) - -- [Plugins](#plugins) - - - [css-declaration-sorter (external)](#css-declaration-sorter-external) - - [cssnano-utils](#cssnano-utils) - - [postcss-calc (external)](#postcss-calc-external) - - [postcss-colormin](#postcss-colormin) - - [postcss-convert-values](#postcss-convert-values) - - [postcss-discard-comments](#postcss-discard-comments) - - [postcss-discard-duplicates](#postcss-discard-duplicates) - - [postcss-discard-empty](#postcss-discard-empty) - - [postcss-discard-overridden](#postcss-discard-overridden) - - [postcss-merge-longhand](#postcss-merge-longhand) - - [postcss-merge-rules](#postcss-merge-rules) - - [postcss-minify-font-values](#postcss-minify-font-values) - - [postcss-minify-gradients](#postcss-minify-gradients) - - [postcss-minify-params](#postcss-minify-params) - - [postcss-minify-selectors](#postcss-minify-selectors) - - [postcss-normalize-charset](#postcss-normalize-charset) - - [postcss-normalize-display-values](#postcss-normalize-display-values) - - [postcss-normalize-positions](#postcss-normalize-positions) - - [postcss-normalize-repeat-style](#postcss-normalize-repeat-style) - - [postcss-normalize-string](#postcss-normalize-string) - - [postcss-normalize-timing-functions](#postcss-normalize-timing-functions) - - [postcss-normalize-unicode](#postcss-normalize-unicode) - - [postcss-normalize-url](#postcss-normalize-url) - - [postcss-normalize-whitespace](#postcss-normalize-whitespace) - - [postcss-ordered-values](#postcss-ordered-values) - - [postcss-reduce-initial](#postcss-reduce-initial) - - [postcss-reduce-transforms](#postcss-reduce-transforms) - - [postcss-svgo](#postcss-svgo) - - [postcss-unique-selectors](#postcss-unique-selectors) - -- [Contributors](#contributors) - -- [License](#license) - -## Overview - -This default preset for cssnano only includes transforms that make no -assumptions about your CSS other than what is passed in. In previous -iterations of cssnano, assumptions were made about your CSS which caused -output to look different in certain use cases, but not others. These -transforms have been moved from the defaults to other presets, to make -this preset require only minimal configuration. - -## Usage - -### Install - -Note that this preset comes bundled with cssnano _by default_, so you don't need to install it separately. - -### Configuration - -If you would like to use the default configuration, then you don't need to add anything to your `package.json`. - -But should you wish to customise this, you can pass an array with the second parameter as the options object to use. For example, to remove all comments: - -```diff - { - "name": "awesome-application", -+ "cssnano": { -+ "preset": [ -+ "default", -+ {"discardComments": {"removeAll": true}} -+ ] -+ } - } -``` - -Depending on your usage, the JSON configuration might not work for you, such as in cases where you would like to use options with customisable function parameters. For this use case, we recommend a `cssnano.config.js` at the same location as your `package.json`. You can then load a preset and export it with your custom parameters: - -```js -const defaultPreset = require('cssnano-preset-default'); - -module.exports = defaultPreset({ - discardComments: { - remove: (comment) => comment[0] === '@', - }, -}); -``` - -Note that you may wish to publish your own preset to npm for reusability, should it differ a lot from this one. This is highly encouraged! - -## Plugins - -### [`css-declaration-sorter`](https://github.com/Siilwyn/css-declaration-sorter) (external) - -> Sorts CSS declarations fast and automatically in a certain order. - -This plugin is loaded with the following configuration: - -```js -{ - keepOverrides: true -} -``` - -### [`cssnano-utils`](https://github.com/cssnano/cssnano/tree/master/packages/cssnano-utils) - -> Utility methods used by cssnano - -### [`postcss-calc`](https://github.com/postcss/postcss-calc) (external) - -> PostCSS plugin to reduce calc() - -This plugin is loaded with its default configuration. - -### [`postcss-colormin`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-colormin) - -> Minify colors in your CSS files with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-convert-values`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-convert-values) - -> Convert values with PostCSS (e.g. ms -> s) - -This plugin is loaded with the following configuration: - -```js -{ - length: false; -} -``` - -### [`postcss-discard-comments`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-discard-comments) - -> Discard comments in your CSS files with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-discard-duplicates`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-discard-duplicates) - -> Discard duplicate rules in your CSS files with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-discard-empty`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-discard-empty) - -> Discard empty rules and values with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-discard-overridden`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-discard-overridden) - -> PostCSS plugin to discard overridden @keyframes or @counter-style. - -This plugin is loaded with its default configuration. - -### [`postcss-merge-longhand`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-merge-longhand) - -> Merge longhand properties into shorthand with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-merge-rules`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-merge-rules) - -> Merge CSS rules with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-minify-font-values`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-minify-font-values) - -> Minify font declarations with PostCSS - -This plugin is loaded with its default configuration. - -### [`postcss-minify-gradients`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-minify-gradients) - -> Minify gradient parameters with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-minify-params`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-minify-params) - -> Minify at-rule params with PostCSS - -This plugin is loaded with its default configuration. - -### [`postcss-minify-selectors`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-minify-selectors) - -> Minify selectors with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-charset`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-charset) - -> Add necessary or remove extra charset with PostCSS - -This plugin is loaded with the following configuration: - -```js -{ - add: false; -} -``` - -### [`postcss-normalize-display-values`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-display-values) - -> Normalize multiple value display syntaxes into single values. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-positions`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-positions) - -> Normalize keyword values for position into length values. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-repeat-style`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-repeat-style) - -> Convert two value syntax for repeat-style into one value. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-string`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-string) - -> Normalize wrapping quotes for CSS string literals. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-timing-functions`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-timing-functions) - -> Normalize CSS animation/transition timing functions. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-unicode`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-unicode) - -> Normalize unicode-range descriptors, and can convert to wildcard ranges. - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-url`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-url) - -> Normalize URLs with PostCSS - -This plugin is loaded with its default configuration. - -### [`postcss-normalize-whitespace`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-whitespace) - -> Trim whitespace inside and around CSS rules & declarations. - -This plugin is loaded with its default configuration. - -### [`postcss-ordered-values`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-ordered-values) - -> Ensure values are ordered consistently in your CSS. - -This plugin is loaded with its default configuration. - -### [`postcss-reduce-initial`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-reduce-initial) - -> Reduce initial definitions to the actual initial value, where possible. - -This plugin is loaded with its default configuration. - -### [`postcss-reduce-transforms`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-reduce-transforms) - -> Reduce transform functions with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-svgo`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-svgo) - -> Optimise inline SVG with PostCSS. - -This plugin is loaded with its default configuration. - -### [`postcss-unique-selectors`](https://github.com/cssnano/cssnano/tree/master/packages/postcss-unique-selectors) - -> Ensure CSS selectors are unique. - -This plugin is loaded with its default configuration. - -## Contributors - -See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md). - -## License - -MIT © [Ben Briggs](http://beneb.info) diff --git a/build/node_modules/cssnano-preset-default/package.json b/build/node_modules/cssnano-preset-default/package.json deleted file mode 100644 index 5e621b3a..00000000 --- a/build/node_modules/cssnano-preset-default/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "cssnano-preset-default", - "version": "5.2.14", - "main": "src/index.js", - "types": "types/index.d.ts", - "description": "Safe defaults for cssnano which require minimal configuration.", - "files": [ - "LICENSE-MIT", - "src", - "types" - ], - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "postcss-calc": "^8.2.3", - "cssnano-utils": "^3.1.0", - "postcss-discard-comments": "^5.1.2", - "postcss-convert-values": "^5.1.3", - "postcss-discard-duplicates": "^5.1.0", - "postcss-colormin": "^5.3.1", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-params": "^5.1.4", - "postcss-normalize-charset": "^5.1.0", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "cssnano/cssnano", - "homepage": "https://github.com/cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "devDependencies": { - "postcss": "^8.2.15" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } -} \ No newline at end of file diff --git a/build/node_modules/cssnano-utils/LICENSE b/build/node_modules/cssnano-utils/LICENSE deleted file mode 100644 index fd0e863a..00000000 --- a/build/node_modules/cssnano-utils/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) Ben Briggs (http://beneb.info) - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/cssnano-utils/README.md b/build/node_modules/cssnano-utils/README.md deleted file mode 100644 index 90c57a3b..00000000 --- a/build/node_modules/cssnano-utils/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# cssnano-utils - -Utility methods and plugin for cssnano projects - -## List of methods and plugin(s) - -| **utility methods** | **description** | -| ------------------- | ------------------------------------------------------------------------- | -| `rawCache` | Postcss plugin to manage the raw value formatting for generated AST nodes | -| `getArguments` | Get a list of arguments, separated by a comma. | -| `sameParent` | Check that two PostCSS nodes share the same parent. | - -## Contributors - -See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md). diff --git a/build/node_modules/cssnano-utils/package.json b/build/node_modules/cssnano-utils/package.json deleted file mode 100644 index aeb12afe..00000000 --- a/build/node_modules/cssnano-utils/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "cssnano-utils", - "version": "3.1.0", - "repository": "cssnano/cssnano", - "main": "src/index.js", - "types": "types/index.d.ts", - "description": "Utility methods and plugin for cssnano projects", - "homepage": "https://github.com/cssnano/cssnano", - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "files": [ - "src", - "LICENSE", - "types" - ], - "license": "MIT", - "devDependencies": { - "postcss": "^8.2.15" - }, - "peerDependencies": { - "postcss": "^8.2.15" - }, - "readme": "# cssnano-utils\n\nUtility methods and plugin for cssnano projects\n\n## List of methods and plugin(s)\n\n| **utility methods** | **description** |\n| ------------------- | ------------------------------------------------------------------------- |\n| `rawCache` | Postcss plugin to manage the raw value formatting for generated AST nodes |\n| `getArguments` | Get a list of arguments, separated by a comma. |\n| `sameParent` | Check that two PostCSS nodes share the same parent. |\n\n## Contributors\n\nSee [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).\n" -} \ No newline at end of file diff --git a/build/node_modules/cssnano/LICENSE-MIT b/build/node_modules/cssnano/LICENSE-MIT deleted file mode 100644 index fd0e863a..00000000 --- a/build/node_modules/cssnano/LICENSE-MIT +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) Ben Briggs (http://beneb.info) - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/cssnano/README.md b/build/node_modules/cssnano/README.md deleted file mode 100644 index 3cdb2f43..00000000 --- a/build/node_modules/cssnano/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# cssnano - -For documentation, please see the following links: - -* Repository: https://github.com/cssnano/cssnano -* Website: http://cssnano.co diff --git a/build/node_modules/cssnano/package.json b/build/node_modules/cssnano/package.json deleted file mode 100644 index e1d5ab46..00000000 --- a/build/node_modules/cssnano/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "cssnano", - "version": "5.1.15", - "description": "A modular minifier, built on top of the PostCSS ecosystem.", - "main": "src/index.js", - "types": "types/index.d.ts", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "keywords": [ - "css", - "compress", - "minify", - "optimise", - "optimisation", - "postcss", - "postcss-plugin" - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^2.0.3", - "yaml": "^1.10.2", - "cssnano-preset-default": "^5.2.14" - }, - "homepage": "https://github.com/cssnano/cssnano", - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "cssnano/cssnano", - "files": [ - "src", - "LICENSE-MIT", - "types" - ], - "bugs": { - "url": "https://github.com/cssnano/cssnano/issues" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "devDependencies": { - "autoprefixer": "^10.4.12", - "postcss": "^8.2.15", - "cssnano-preset-lite": "^2.1.3", - "cssnano-preset-advanced": "^5.3.10" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } -} \ No newline at end of file diff --git a/build/node_modules/csso/CHANGELOG.md b/build/node_modules/csso/CHANGELOG.md deleted file mode 100644 index 8532124e..00000000 --- a/build/node_modules/csso/CHANGELOG.md +++ /dev/null @@ -1,421 +0,0 @@ -## 4.2.0 (November 26, 2020) - -- Trim Custom Property values when possible (#393) -- Fixed removing unit for zero-length dimentions in `min()`, `max()` and `clamp()` functions (#426) -- Fixed crash on bad value in TRBL declaration value (#412) - -## 4.1.1 (November 15, 2020) - -- Fixed build setup to exclude full `mdn/data` that reduced the lib size: - * dist/csso.js: 794.5Kb -> 255.2Kb - * dist/csso.min.js: 394.4Kb -> 194.2Kb - * package size: 237.8 kB -> 156.1 kB - * package unpacked size: 1.3 MB -> 586.8 kB - -## 4.1.0 (October 27, 2020) - -- Bumped [CSSTree](https://github.com/csstree/csstree) to `^1.0.0` -- Fixed wrongly merging of TRBL values when one of them contains `var()` (#420) -- Fixed wrongly merging of pseudo class and element with the same name, e.g. `:-ms-input-placeholder` and `::-ms-input-placeholder` (#383, #416) -- Fixed wrongly merging of `overflow` fallback (#415) - -## 4.0.3 (March 24, 2020) - -- Prevented percent sign removal in `flex`/`-ms-flex` (#410) -- Fixed restructuring optimisation in some cases (@charlessuh & @chsuh, #358, #411) -- Bumped dependencies (@AviVahl, #409) - -## 4.0.2 (October 28, 2019) - -- Fixed clean stage to avoid exceptions when source has unparsed or bad parts (#380) -- Fixed wrong percentage sign removal for zero values (#395) - -## 4.0.1 (October 22, 2019) - -- Bumped CSSTree to [`1.0.0-alpha.37`](https://github.com/csstree/csstree/releases/tag/v1.0.0-alpha.37) to avoid source map generation inconsistency across Node.js versions - -## 4.0.0 (October 21, 2019) - -- Dropped support for Node.js < 8 -- Refreshed dev dependencies and scripts -- Bumped [CSSTree](https://github.com/csstree/csstree) to `1.0.0-alpha.36` (#399) -- Changed bundle files: `dist/csso.js` and `dist/csso.min.js` instead single `dist/csso-browser.js` (min version) -- Expose `compress()` as `syntax.compress()` - -## 3.5.1 (June 7, 2018) - -- Bumped [CSSTree](https://github.com/csstree/csstree) to `1.0.0-alpha.29` (fixes some issues) - -## 3.5.0 (January 14, 2018) - -- Migrated to [CSSTree](https://github.com/csstree/csstree) `1.0.0-alpha.27` - -## 3.4.0 (November 3, 2017) - -- Added percent sign removal for zero percentages for some properties that is safe (@RubaXa, #286) -- Removed unit removal for zero values in `-ms-flex` due it breaks flex in IE10/11 (#362) -- Improved performance of selectors comparison (@smelukov, #343) - -## 3.3.1 (October 17, 2017) - -- Fixed merge of `position` declarations when `sticky` fallback is using (@gruzzilkin, #356) - -## 3.3.0 (October 12, 2017) - -- Migrated to [CSSTree](https://github.com/csstree/csstree) `1.0.0-alpha25` - - Changed AST format (see [CSSTree change log](https://github.com/csstree/csstree/blob/master/HISTORY.md) for details) - - Fixed performance issue when generate CSS with source map (quadratic increase in time depending on the size of the CSS) - -## 3.2.0 (September 10, 2017) - -- Fixed named color compression to apply only when an identifier is guaranteed to be a color -- Added lifting of `@keyframes` to the beginning of style sheet (chunk), but after `@charset` and `@import` rules -- Added removal of `@keyframes`, `@media` and `@supports` with no prelude -- Added removal of duplicate `@keyframes` (#202) -- Added new option `forceMediaMerge` to force media rules merging. It's unsafe in general, but works fine in many cases. Use it on your own risk (#350) -- Bumped `CSSTree` to `1.0.0-alpha23` - -## 3.1.1 (April 25, 2017) - -- Fixed crash on a number processing when it used not in a list (#335) - -## 3.1.0 (April 24, 2017) - -- Implemented optimisation for `none` keyword in `border` and `outline` properties (@zoobestik, #41) -- Implemented replacing `rgba(x, x, x, 0)` to `transparent` -- Fixed plus sign omitting for numbers following identifier, hex color, number or unicode range, since it can change the meaning of CSS (e.g. `calc(1px+2px)` has been optimized to `calc(1px2px)` before, now it stays the same) -- Improved usage filtering for nested selectors (i.e. for `:nth-*()`, `:has()`, `:matches` and other pseudos) -- Implemented `blacklist` filtering in usage (#334, see [Black list filtering](https://github.com/css/csso#black-list-filtering)) -- Improved white space removing, now white spaces are removing in the beginning and at the ending of sequences, and between stylesheet and block nodes -- Bumped `CSSTree` to `1.0.0-alpha19` - -## 3.0.1 (March 14, 2017) - -- Fixed declaration merging when declaration contains an `!important` - -## 3.0.0 (March 13, 2017) - -- Migrated to [CSSTree](https://github.com/csstree/csstree) as AST backend and exposed its API behind `syntax` property -- Extracted CLI into standalone package [css/csso-cli](https://github.com/css/csso-cli) - -## 2.3.1 (January 6, 2017) - -- Added `\0` IE hack support (#320) - -## 2.3.0 (October 25, 2016) - -- Added `beforeCompress` and `afterCompress` options support (#316) -- Fixed crash on empty argument in function (#317) - -## 2.2.1 (July 25, 2016) - -- Fixed shorthand optimisation issue when value has a color value or something unknown (#311) -- Fixed `cursor` broken fallback (#306) - -## 2.2.0 (June 23, 2016) - -- Implement AST cloning by adding `clone()` [function](https://github.com/css/csso#cloneast) and `clone` [option](https://github.com/css/csso#compressast-options) for `compress()` function (#296) -- Fix parse and translate attribute selector with flags but w/o operator (i.e. `[attrName i]`) -- Don't merge rules with flagged attribute selectors with others (#291) -- Take in account functions when merge TRBL-properties (#297, thanks to @ArturAralin) -- Improve partial merge (#304) -- Tweak scanner, reduce code deoptimizations and other small improvements - -## 2.1.1 (May 11, 2016) - -- Fix wrong declaration with `\9` hack merge (#295) - -## 2.1.0 (May 8, 2016) - -- New option `comments` to specify what comments to left: `exclamation`, `first-exclamation` and `none` -- Add `offset` to CSS parse error details -- Fix token `offset` computation - -## 2.0.0 (April 5, 2016) - -- No more `gonzales` AST format and related code -- `minify()` and `minifyBlock()` is always return an object as result now (i.e. `{ css: String, map: SourceMapGenerator or null }`) -- `parse()` - - Returns AST in new format (so called `internal`) - - Dynamic scanner implemented - - New AST format + dynamic scanner = performance boost and less memory consumption - - No more `context` argument, context should be specified via `options` - - Supported contexts now: `stylesheet`, `atrule`, `atruleExpression`, `ruleset`, `selector`, `simpleSelector`, `block`, `declaration` and `value` - - Drop `needPositions` option, `positions` option should be used instead - - Drop `needInfo` option, `info` object is attaching to nodes when some information is requested by `options` - - `options` should be an object, otherwise it treats as empty object -- `compress()` - - No more AST converting (performance boost and less memory consumption) - - Drop `outputAst` option - - Returns an object as result instead of AST (i.e. `{ ast: Object }`) -- Drop methods: `justDoIt()`, `stringify()`, `cleanInfo()` - -## 1.8.1 (March 30, 2016) - -- Don't remove spaces after function/braces/urls since unsafe (#289) - -## 1.8.0 (March 24, 2016) - -- Usage data support: - - Filter rulesets by tag names, class names and ids white lists. - - More aggressive ruleset moving using class name scopes information. - - New CLI option `--usage` to pass usage data file. -- Improve initial ruleset merge - - Change order of ruleset processing, now it's left to right. Previously unmerged rulesets may prevent lookup and other rulesets merge. - - Difference in pseudo signature just prevents ruleset merging, but don't stop lookup. - - Simplify block comparison (performance). -- New method `csso.minifyBlock()` for css block compression (e.g. `style` attribute content). -- Ruleset merge improvement: at-rules with block (like `@media` or `@supports`) now can be skipped during ruleset merge lookup if doesn't contain something prevents it. -- FIX: Add negation (`:not()`) to pseudo signature to avoid unsafe merge (old browsers doesn't support it). -- FIX: Check nested parts of value when compute compatibility. It fixes unsafe property merging. - -## 1.7.1 (March 16, 2016) - -- pass block mode to tokenizer for correct parsing of declarations properties with `//` hack -- fix wrongly `@import` and `@charset` removal on double exclamation comment - -## 1.7.0 (March 10, 2016) - -- support for [CSS Custom Properties](https://www.w3.org/TR/css-variables/) (#279) -- rework RTBL properties merge – better merge for values with special units and don't merge values with CSS-wide keywords (#255) -- remove redundant universal selectors (#178) -- take in account `!important` when check for property overriding (#280) -- don't merge `text-align` declarations with some values (#281) -- add spaces around `/deep/` combinator on translate, since it together with universal selector can produce a comment -- better keyword and property name resolving (tolerant to hacks and so on) -- integration improvements - - compression log function could be customized by `logger` option for `compress()` and `minify()` - - make possible to set initial line and column for parser - -## 1.6.4 (March 1, 2016) - -- `npm` publish issue (#276) - -## 1.6.3 (February 29, 2016) - -- add `file` to generated source map since other tools can relay on it in source map transform chain - -## 1.6.2 (February 29, 2016) - -- tweak some parse error messages and their positions -- fix `:not()` parsing and selector groups in `:not()` is supported now (#215) -- `needPosition` parser option is deprecated, `positions` option should be used instead (`needPosition` is used still if `positions` option omitted) -- expose internal AST API as `csso.internal.*` -- `minify()` adds `sourcesContent` by default when source map is generated -- bring back support for node.js `0.10` until major release (#275) - -## 1.6.1 (February 28, 2016) - -- fix exception on zero length dimension compress outside declaration (#273) - -## 1.6.0 (February 27, 2016) - -- **source maps support** -- parser remake: - - various parsing issues fixed - - fix unicode sequence processing in ident (#191) - - support for flags in attribute selector (#270) - - position (line and column) of parse error (#109) - - 4x performance boost, less memory consumption -- compressor refactoring - - internal AST is using doubly linked lists (with safe transformation support during iteration) instead of arrays - - rename `restructuring` to `restructure` option for `minify()`/`compress()` (`restructuring` is alias for `restructure` now, with lower priority) - - unquote urls when possible (#141, #60) -- setup code coverage and a number of related fixes -- add eslint to check unused things - -## 1.5.4 (January 27, 2016) - -- one more fix (in `restructRuleset` this time) with merge of rulesets when a ruleset with same specificity places between them (#264) -- disable partial merge of rulesets in `@keyframes` rulesets (until sure it's correct) - -## 1.5.3 (January 25, 2016) - -- don't override display values with different browser support (#259) -- fix publish issue (one of modules leak in development state) - -## 1.5.2 (January 24, 2016) - -- don't merge rulesets if between them a ruleset with same specificity (#264) - -## 1.5.1 (January 14, 2016) - -- ensure `-` is not used as an identifier in attribute selectors (thanks to @mathiasbynens) -- fix broken `justDoIt()` function -- various small fixes - -## 1.5.0 (January 14, 2016) - -### Parser - -- attach minus to number - -### Compressor - -- split code base into small modules and related refactoring -- introduce internal AST format for compressor (`gonzales`→`internal` and `internal`→`gonzales` convertors, walkers, translator) -- various optimizations: no snapshots, using caches and indexes -- sort selectors, merge selectors in alphabet order -- compute selector's specificity -- better ruleset restructuring, improve compression of partially equal blocks -- better ruleset merge – not only closest but also disjoined by other rulesets when safe -- join `@media` with same query -- `outputAst` – new option to specify output AST format (`gonzales` by default for backward compatibility) -- remove quotes surrounding attribute values in attribute selectors when possible (#73) -- replace `from`→`0%` and `100%`→`to` at `@keyframes` (#205) -- prevent partial merge of rulesets at `@keyframes` (#80, #197) - -### API - -- walker for `gonzales` AST was implemented - -### CLI - -- new option `--stat` (output stat in `stderr`) -- new optional parameter `level` for `--debug` option - -## 1.4.4 (December 10, 2015) - -- prevent removal of spaces after braces that before identifier that breaking at-rules expressions (#258) - -## 1.4.3 (December 4, 2015) - -- fix unicode-range parsing that cause to wrong function detection (#250) - -## 1.4.2 (November 9, 2015) - -- allow spaces between `progid:` and rest part of value for IE's `filter` property as `autoprefixer` generates this kind of code (#249) -- fixes for Windows: - - correct processing new lines - - normalize file content in test suite -- fixes to work in strict mode (#252) -- init compressor dictionaries for every css block (#248, #251) -- bump uglify-js version - -## 1.4.1 (October 20, 2015) - -- allow merge for `display` property (#167, #244) -- more accurate `rect` (`clip` property value) merge -- fix typo when specifying options in cli (thanks to @Taritsyn) -- fix safe unit values merge with keyword values (#244) -- fix wrong descendant combinator removal (#246) -- build browser version on `prepublish` (thanks to @silentroach) -- parser: store whitespaces as single token (performance and reduce memory consumption) -- rearrange compress tests layout - -## 1.4 (October 16, 2015) - -Bringing project back to life. Changed files structure, cleaned up and refactored most of sources. - -### Common - -- single code base (no more `src` folder) -- build browser version with `browserify` (no more `make`, and `web` folder), browser version is available at `dist/csso-browser.js` -- main file is `lib/index.js` now -- minimal `node.js` version is `0.12` now -- restrict file list to publish on npm (no more useless folders and files in package) -- add `jscs` to control code style -- automate `gh-pages` update -- util functions reworked -- translator reworked -- test suite reworked -- compressor refactored -- initial parser refactoring - -### API - -- new method `minify(src, options)`, options: - - `restructuring` – if set to `false`, disable structure optimisations (`true` by default) - - `debug` - outputs intermediate state of CSS during compression (`false` by default) -- deprecate `justDoIt()` method (use `minify` instead) -- rename `treeToString()` method to `stringify()` -- drop `printTree()` method -- AST node info - - `column` and `offset` added - - `ln` renamed to `line` - - fix line counting across multiple files and input with CR LF (#147) - -### CLI - -- completely reworked, use [clap](https://github.com/lahmatiy/clap) to parse argv -- add support for input from stdin (#128) -- drop undocumented and obsoleted options `--rule` and `--parser` (suppose nobody use it) -- drop `-off` alias for `--restructure-off` as incorrect (only one letter options should starts with single `-`) -- new option `--debug` that reflecting to `options.debug` for `minify` - -### Parsing and optimizations - -- keep all exclamation comments (#194) -- add `/deep/` combinator support (#209) -- attribute selector - - allow colon in attribute name (#237) - - support for namespaces (#233) -- color - - support all css/html colors - - convert `hsla` to `rgba` and `hls` to `rgb` - - convert `rgba` with 1 as alpha value to `rgb` (#122) - - interpolate `rgb` and `rgba` percentage values to absolute values - - replace percentage values in `rgba` for normalized/interpolated values - - lowercase hex colors and color names (#169) - - fix color minification when hex value replaced for color name (#176) - - fit rgb values to 0..255 range (#181) -- calc - - remove spaces for multiple operator in calc - - don't remove units inside calc (#222) - - fix wrong white space removal around `+` and `-` (#228) -- don't remove units in `flex` property as it could change value meaning (#200) -- don't merge `\9` hack values (#231) -- merge property values only if they have the same functions (#150, #227) -- don't merge property values with some sort of units (#140, #161) -- fix `!important` issue for `top-right-bottom-left` properties (#189) -- fix `top-right-bottom-left` properties merge (#139, #175) -- support for unicode-range (#148) -- don't crash on ruleset with no selector (#135) -- tolerant to class names that starts with digit (#99, #105) -- fix background compressing (#170) - -## 1.3.12 (October 8, 2015) - -- Case insensitive check for `!important` (#187) -- Fix problems with using `csso` as cli command on Windows (#83, #136, #142 and others) -- Remove byte order marker (the UTF-8 BOM) from input -- Don't strip space between funktion-funktion and funktion-vhash (#134) -- Don't merge TRBL values having \9 (hack for IE8 in bootstrap) (#159, #214, #230, #231 and others) -- Don't strip units off dimensions of non-length (#226, #229 and others) - -## 1.3.7 (February 11, 2013) - -- Gonzales 1.0.7. - -## 1.3.6 (November 26, 2012) - -- Gonzales 1.0.6. - -## 1.3.5 (October 28, 2012) - -- Gonzales 1.0.5. -- Protecting copyright notices in CSS: https://github.com/css/csso/issues/92 -- Zero CSS throws an error: https://github.com/css/csso/issues/96 -- Don't minify the second `0s` in Firefox for animations: https://github.com/css/csso/issues/100 -- Japan manual -- BEM ready documentation - -## 1.3.4 (October 10, 2012) - -- @page inside @media Causes Error: https://github.com/css/csso/issues/90 - -## 1.3.3 (October 9, 2012) - -- CSSO 1.3.2 compresses ".t-1" and ".t-01" as identical classes: https://github.com/css/csso/issues/88 - -## 1.3.2 (October 8, 2012) - -- filter + important breaks CSSO v1.3.1: https://github.com/css/csso/issues/87 - -## 1.3.1 (October 8, 2012) - -- "filter" IE property breaks CSSO v1.3.0: https://github.com/css/csso/issues/86 - -## 1.3.0 (October 4, 2012) - -- PeCode CSS parser replaced by Gonzales CSS parser diff --git a/build/node_modules/csso/LICENSE b/build/node_modules/csso/LICENSE deleted file mode 100644 index 9f982eb0..00000000 --- a/build/node_modules/csso/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (C) 2015-2019 by Roman Dvornov -Copyright (C) 2011-2015 by Sergey Kryzhanovsky - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/csso/README.md b/build/node_modules/csso/README.md deleted file mode 100644 index 6395bc11..00000000 --- a/build/node_modules/csso/README.md +++ /dev/null @@ -1,372 +0,0 @@ -[![NPM version](https://img.shields.io/npm/v/csso.svg)](https://www.npmjs.com/package/csso) -[![Build Status](https://travis-ci.org/css/csso.svg?branch=master)](https://travis-ci.org/css/csso) -[![Coverage Status](https://coveralls.io/repos/github/css/csso/badge.svg?branch=master)](https://coveralls.io/github/css/csso?branch=master) -[![NPM Downloads](https://img.shields.io/npm/dm/csso.svg)](https://www.npmjs.com/package/csso) -[![Twitter](https://img.shields.io/badge/Twitter-@cssoptimizer-blue.svg)](https://twitter.com/cssoptimizer) - -CSSO (CSS Optimizer) is a CSS minifier. It performs three sort of transformations: cleaning (removing redundant), compression (replacement for shorter form) and restructuring (merge of declarations, rulesets and so on). As a result your CSS becomes much smaller. - -[![Originated by Yandex](https://cdn.rawgit.com/css/csso/8d1b89211ac425909f735e7d5df87ee16c2feec6/docs/yandex.svg)](https://www.yandex.com/) -[![Sponsored by Avito](https://cdn.rawgit.com/css/csso/8d1b89211ac425909f735e7d5df87ee16c2feec6/docs/avito.svg)](https://www.avito.ru/) - -## Ready to use - -- [Web interface](http://css.github.io/csso/csso.html) -- [csso-cli](https://github.com/css/csso-cli) – command line interface -- [gulp-csso](https://github.com/ben-eb/gulp-csso) – `Gulp` plugin -- [grunt-csso](https://github.com/t32k/grunt-csso) – `Grunt` plugin -- [broccoli-csso](https://github.com/sindresorhus/broccoli-csso) – `Broccoli` plugin -- [postcss-csso](https://github.com/lahmatiy/postcss-csso) – `PostCSS` plugin -- [csso-loader](https://github.com/sandark7/csso-loader) – `webpack` loader -- [csso-webpack-plugin](https://github.com/zoobestik/csso-webpack-plugin) – `webpack` plugin -- [CSSO Visual Studio Code plugin](https://marketplace.visualstudio.com/items?itemName=Aneryu.csso) - -## Install - -``` -npm install csso -``` - -## API - - - -- [minify(source[, options])](#minifysource-options) -- [minifyBlock(source[, options])](#minifyblocksource-options) -- [syntax.compress(ast[, options])](#syntaxcompressast-options) -- [Source maps](#source-maps) -- [Usage data](#usage-data) - - [White list filtering](#white-list-filtering) - - [Black list filtering](#black-list-filtering) - - [Scopes](#scopes) - - - -Basic usage: - -```js -var csso = require('csso'); - -var minifiedCss = csso.minify('.test { color: #ff0000; }').css; - -console.log(minifiedCss); -// .test{color:red} -``` - -CSSO is based on [CSSTree](https://github.com/csstree/csstree) to parse CSS into AST, AST traversal and to generate AST back to CSS. All `CSSTree` API is available behind `syntax` field. You may minify CSS step by step: - -```js -var csso = require('csso'); -var ast = csso.syntax.parse('.test { color: #ff0000; }'); -var compressedAst = csso.syntax.compress(ast).ast; -var minifiedCss = csso.syntax.generate(compressedAst); - -console.log(minifiedCss); -// .test{color:red} -``` - -> Warning: CSSO uses early versions of CSSTree that still in active development. CSSO doesn't guarantee API behind `syntax` field or AST format will not change in future releases of CSSO, since it's subject to change in CSSTree. Be careful with CSSO updates if you use `syntax` API until this warning removal. - -### minify(source[, options]) - -Minify `source` CSS passed as `String`. - -```js -var result = csso.minify('.test { color: #ff0000; }', { - restructure: false, // don't change CSS structure, i.e. don't merge declarations, rulesets etc - debug: true // show additional debug information: - // true or number from 1 to 3 (greater number - more details) -}); - -console.log(result.css); -// > .test{color:red} -``` - -Returns an object with properties: - -- css `String` – resulting CSS -- map `Object` – instance of [`SourceMapGenerator`](https://github.com/mozilla/source-map#sourcemapgenerator) or `null` - -Options: - -- sourceMap - - Type: `Boolean` - Default: `false` - - Generate a source map when `true`. - -- filename - - Type: `String` - Default: `''` - - Filename of input CSS, uses for source map generation. - -- debug - - Type: `Boolean` - Default: `false` - - Output debug information to `stderr`. - -- beforeCompress - - Type: `function(ast, options)` or `Array` or `null` - Default: `null` - - Called right after parse is run. - -- afterCompress - - Type: `function(compressResult, options)` or `Array` or `null` - Default: `null` - - Called right after [`syntax.compress()`](#syntaxcompressast-options) is run. - -- Other options are the same as for [`syntax.compress()`](#syntaxcompressast-options) function. - -### minifyBlock(source[, options]) - -The same as `minify()` but for list of declarations. Usually it's a `style` attribute value. - -```js -var result = csso.minifyBlock('color: rgba(255, 0, 0, 1); color: #ff0000'); - -console.log(result.css); -// > color:red -``` - -### syntax.compress(ast[, options]) - -Does the main task – compress an AST. This is CSSO's extension in CSSTree syntax API. - -> NOTE: `syntax.compress()` performs AST compression by transforming input AST by default (since AST cloning is expensive and needed in rare cases). Use `clone` option with truthy value in case you want to keep input AST untouched. - -Returns an object with properties: - -- ast `Object` – resulting AST - -Options: - -- restructure - - Type: `Boolean` - Default: `true` - - Disable or enable a structure optimisations. - -- forceMediaMerge - - Type: `Boolean` - Default: `false` - - Enables merging of `@media` rules with the same media query by splitted by other rules. The optimisation is unsafe in general, but should work fine in most cases. Use it on your own risk. - -- clone - - Type: `Boolean` - Default: `false` - - Transform a copy of input AST if `true`. Useful in case of AST reuse. - -- comments - - Type: `String` or `Boolean` - Default: `true` - - Specify what comments to leave: - - - `'exclamation'` or `true` – leave all exclamation comments (i.e. `/*! .. */`) - - `'first-exclamation'` – remove every comment except first one - - `false` – remove all comments - -- usage - - Type: `Object` or `null` - Default: `null` - - Usage data for advanced optimisations (see [Usage data](#usage-data) for details) - -- logger - - Type: `Function` or `null` - Default: `null` - - Function to track every step of transformation. - -### Source maps - -To get a source map set `true` for `sourceMap` option. Additianaly `filename` option can be passed to specify source file. When `sourceMap` option is `true`, `map` field of result object will contain a [`SourceMapGenerator`](https://github.com/mozilla/source-map#sourcemapgenerator) instance. This object can be mixed with another source map or translated to string. - -```js -var csso = require('csso'); -var css = fs.readFileSync('path/to/my.css', 'utf8'); -var result = csso.minify(css, { - filename: 'path/to/my.css', // will be added to source map as reference to source file - sourceMap: true // generate source map -}); - -console.log(result); -// { css: '...minified...', map: SourceMapGenerator {} } - -console.log(result.map.toString()); -// '{ .. source map content .. }' -``` - -Example of generating source map with respect of source map from input CSS: - -```js -var require('source-map'); -var csso = require('csso'); -var inputFile = 'path/to/my.css'; -var input = fs.readFileSync(inputFile, 'utf8'); -var inputMap = input.match(/\/\*# sourceMappingURL=(\S+)\s*\*\/\s*$/); -var output = csso.minify(input, { - filename: inputFile, - sourceMap: true -}); - -// apply input source map to output -if (inputMap) { - output.map.applySourceMap( - new SourceMapConsumer(inputMap[1]), - inputFile - ) -} - -// result CSS with source map -console.log( - output.css + - '/*# sourceMappingURL=data:application/json;base64,' + - new Buffer(output.map.toString()).toString('base64') + - ' */' -); -``` - -### Usage data - -`CSSO` can use data about how `CSS` is used in a markup for better compression. File with this data (`JSON`) can be set using `usage` option. Usage data may contain following sections: - -- `blacklist` – a set of black lists (see [Black list filtering](#black-list-filtering)) -- `tags` – white list of tags -- `ids` – white list of ids -- `classes` – white list of classes -- `scopes` – groups of classes which never used with classes from other groups on the same element - -All sections are optional. Value of `tags`, `ids` and `classes` should be an array of a string, value of `scopes` should be an array of arrays of strings. Other values are ignoring. - -#### White list filtering - -`tags`, `ids` and `classes` are using on clean stage to filter selectors that contain something not in the lists. Selectors are filtering only by those kind of simple selector which white list is specified. For example, if only `tags` list is specified then type selectors are checking, and if all type selectors in selector present in list or selector has no any type selector it isn't filter. - -> `ids` and `classes` are case sensitive, `tags` – is not. - -Input CSS: - -```css -* { color: green; } -ul, ol, li { color: blue; } -UL.foo, span.bar { color: red; } -``` - -Usage data: - -```json -{ - "tags": ["ul", "LI"] -} -``` - -Resulting CSS: - -```css -*{color:green}ul,li{color:blue}ul.foo{color:red} -``` - -Filtering performs for nested selectors too. `:not()` pseudos content is ignoring since the result of matching is unpredictable. Example for the same usage data as above: - -```css -:nth-child(2n of ul, ol) { color: red } -:nth-child(3n + 1 of img) { color: yellow } -:not(div, ol, ul) { color: green } -:has(:matches(ul, ol), ul, ol) { color: blue } -``` - -Turns into: - -```css -:nth-child(2n of ul){color:red}:not(div,ol,ul){color:green}:has(:matches(ul),ul){color:blue} -``` - -#### Black list filtering - -Black list filtering performs the same as white list filtering, but filters things that mentioned in the lists. `blacklist` can contain the lists `tags`, `ids` and `classes`. - -Black list has a higher priority, so when something mentioned in the white list and in the black list then white list occurrence is ignoring. The `:not()` pseudos content ignoring as well. - -```css -* { color: green; } -ul, ol, li { color: blue; } -UL.foo, li.bar { color: red; } -``` - -Usage data: - -```json -{ - "blacklist": { - "tags": ["ul"] - }, - "tags": ["ul", "LI"] -} -``` - -Resulting CSS: - -```css -*{color:green}li{color:blue}li.bar{color:red} -``` - -#### Scopes - -Scopes is designed for CSS scope isolation solutions such as [css-modules](https://github.com/css-modules/css-modules). Scopes are similar to namespaces and define lists of class names that exclusively used on some markup. This information allows the optimizer to move rules more agressive. Since it assumes selectors from different scopes don't match for the same element. This can improve rule merging. - -Suppose we have a file: - -```css -.module1-foo { color: red; } -.module1-bar { font-size: 1.5em; background: yellow; } - -.module2-baz { color: red; } -.module2-qux { font-size: 1.5em; background: yellow; width: 50px; } -``` - -It can be assumed that first two rules are never used with the second two on the same markup. But we can't say that for sure without a markup review. The optimizer doesn't know it either and will perform safe transformations only. The result will be the same as input but with no spaces and some semicolons: - -```css -.module1-foo{color:red}.module1-bar{font-size:1.5em;background:#ff0}.module2-baz{color:red}.module2-qux{font-size:1.5em;background:#ff0;width:50px} -``` - -With usage data `CSSO` can produce better output. If follow usage data is provided: - -```json -{ - "scopes": [ - ["module1-foo", "module1-bar"], - ["module2-baz", "module2-qux"] - ] -} -``` - -The result will be (29 bytes extra saving): - -```css -.module1-foo,.module2-baz{color:red}.module1-bar,.module2-qux{font-size:1.5em;background:#ff0}.module2-qux{width:50px} -``` - -If class name isn't mentioned in the `scopes` it belongs to default scope. `scopes` data doesn't affect `classes` whitelist. If class name mentioned in `scopes` but missed in `classes` (both sections are specified) it will be filtered. - -Note that class name can't be set for several scopes. Also a selector can't have class names from different scopes. In both cases an exception will thrown. - -Currently the optimizer doesn't care about changing order safety for out-of-bounds selectors (i.e. selectors that match to elements without class name, e.g. `.scope div` or `.scope ~ :last-child`). It assumes that scoped CSS modules doesn't relay on it's order. It may be fix in future if to be an issue. diff --git a/build/node_modules/csso/package.json b/build/node_modules/csso/package.json deleted file mode 100644 index e4485e67..00000000 --- a/build/node_modules/csso/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "csso", - "version": "4.2.0", - "description": "CSS minifier with structural optimisations", - "homepage": "https://github.com/css/csso", - "author": "Sergey Kryzhanovsky (https://github.com/afelix)", - "maintainers": [ - { - "name": "Roman Dvornov", - "email": "rdvornov@gmail.com", - "github-username": "lahmatiy" - } - ], - "license": "MIT", - "repository": "css/csso", - "bugs": { - "url": "https://github.com/css/csso/issues" - }, - "keywords": [ - "css", - "compress", - "minifier", - "minify", - "optimise", - "optimisation", - "csstree" - ], - "main": "./lib/index", - "scripts": { - "test": "mocha --reporter dot", - "lint": "eslint lib test", - "lint-and-test": "npm run lint && npm test", - "build": "rollup --config && terser dist/csso.js --compress --mangle -o dist/csso.min.js", - "coverage": "nyc npm test", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "travis": "nyc npm run lint-and-test && npm run coveralls", - "hydrogen": "node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/csso --stat -o /dev/null", - "prepublishOnly": "npm run build" - }, - "dependencies": { - "css-tree": "^1.1.2" - }, - "browser": { - "css-tree": "css-tree/dist/csstree.min.js" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^11.0.1", - "@rollup/plugin-json": "^4.0.1", - "@rollup/plugin-node-resolve": "^7.0.0", - "coveralls": "^3.0.11", - "eslint": "^6.8.0", - "mocha": "^7.1.1", - "nyc": "^15.0.0", - "rollup": "^1.29.0", - "source-map": "^0.6.1", - "terser": "^4.6.3" - }, - "engines": { - "node": ">=8.0.0" - }, - "files": [ - "dist", - "lib" - ] -} diff --git a/build/node_modules/cuid/LICENSE b/build/node_modules/cuid/LICENSE deleted file mode 100644 index 95c636be..00000000 --- a/build/node_modules/cuid/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -cuid is covered by The MIT License: - -Copyright (c) 2012 Eric Elliott - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/cuid/README.md b/build/node_modules/cuid/README.md deleted file mode 100644 index 400fb579..00000000 --- a/build/node_modules/cuid/README.md +++ /dev/null @@ -1,205 +0,0 @@ -# cuid -[![Travis-CI](https://travis-ci.org/ericelliott/cuid.svg)](https://travis-ci.org/ericelliott/cuid) - -Collision-resistant ids optimized for horizontal scaling and binary search lookup performance. - -Currently available for Node, browsers, Ruby, .Net, Go, PHP and Elixir (see ports below -- more ports are welcome). - -`cuid()` returns a short random string with some collision-busting measures. Safe to use as HTML element ID's, and unique server-side record lookups. - -## Example - -ESM: - -```js -import cuid from 'cuid'; - -console.log( cuid() ); - -// cjld2cjxh0000qzrmn831i7rn -``` - -Node style: - -```js -var cuid = require('cuid'); -console.log( cuid() ); - -// cjld2cyuq0000t3rmniod1foy -``` - - -## Installing - -``` -$ npm install --save cuid -``` - - -### Broken down - -** c - h72gsb32 - 0000 - udoc - l363eofy ** - -The groups, in order, are: - -* 'c' - identifies this as a cuid, and allows you to use it in html entity ids. -* Timestamp -* Counter - a single process might generate the same random string. The weaker the pseudo-random source, the higher the probability. That problem gets worse as processors get faster. The counter will roll over if the value gets too big. -* Client fingerprint -* Random (using cryptographically secure libraries where available). - -## Fingerprints - -**In browsers**, the first chars are obtained from the user agent string (which is fairly unique), and the supported mimeTypes (which is also fairly unique, except for IE, which always returns 0). -That string is concatenated with a count of variables in the global scope (which is also fairly unique), and the result is trimmed to 4 chars. - -**In node**, the first two chars are extracted from the process.pid. The next two chars are extracted from the hostname. - - -## Motivation - -Modern web applications have different requirements than applications from just a few years ago. Our modern unique identifiers have a stricter list of requirements that cannot all be satisfied by any existing version of the GUID/UUID specifications: - -### Horizontal scalability - -Today's applications don't run on any single machine. - -Applications might need to support online / offline capability, which means we need a way for clients on different hosts to generate ids that won't collide with ids generated by other hosts -- even if they're not connected to the network. - -Most pseudo-random algorithms use time in ms as a random seed. Random IDs lack sufficient entropy when running in separate processes (such as cloned virtual machines or client browsers) to guarantee against collisions. Application developers report v4 UUID collisions causing problems in their applications when the ID generation is distributed between lots of machines such that lots of IDs are generated in the same millisecond. - -Each new client exponentially increases the chance of collision in the same way that each new character in a random string exponentially reduces the chance of collision. Successful apps scale at hundreds or thousands of new clients per day, so fighting the lack of entropy by adding random characters is a losing strategy. - -Because of the nature of this problem, it's possible to build an app from the ground up and scale it to a million users before this problem rears its head. By the time you notice the problem (when your peak hour use requires dozens of ids to be created per ms), if your db doesn't have unique constraints on the id because you thought your guids were safe, you're in a world of hurt. Your users start to see data that doesn't belong to them because the db just returns the first ID match it finds. - -Alternatively, you've played it safe and you only let your database create ids. Writes only happen on a master database, and load is spread out over read replicas. But with this kind of strain, you have to start scaling your database writes horizontally, too, and suddenly your application starts to crawl (if the db is smart enough to guarantee unique ids between write hosts), or you start getting id collisions between different db hosts, so your write hosts don't agree about which ids represent which data. - - -### Performance - -Because entities might need to be generated in high-performance loops, id generation should be fast. That means no waiting around for asynchronous entropy pool requests, or cross-process/cross-network communication. Performance slows to impracticality in the browser. All sources of entropy need to be fast enough for synchronous access. - -Even worse, when the database is the only guarantee that ids are unique, that means that clients are forced to send incomplete records to the database, and wait for a network round-trip before they can use the ids in any algorithm. Forget about fast client performance. It simply isn't possible. - -That situation has caused some clients to create ids that are only usable in a single client session (such as an in-memory counter). When the database returns the real id, the client has to do some juggling logic to swap out the id being used. - -If client side ID generation were stronger, the chances of collision would be much smaller, and the client could send complete records to the db for insertion without waiting for a full round-trip request to finish before using the ID. - - -#### Monotonically increasing IDs - -Cuids generated by the same process are monotonically increasing, when less than 10000 cuids are generated within the same millisecond. Generated by different processes, the cuids will still have an increasing value in time if the process clocks are synchronized. - -Monotonically increasing IDs are suitable for use as [high-performance database primary keys](http://code.openark.org/blog/mysql/monotonic-functions-sql-and-mysql), because they can be binary searched. Pure pseudo-random variants don't meet this requirement. - - -#### Tiny - -Somewhat related to performance, an algorithm to generate an ID should require a tiny implementation. This is especially important for thick-client JavaScript applications. - - -### Security - -Client-visible ids often need to have sufficient random data that it becomes practically impossible to try to guess valid IDs based on an existing, known id. That makes simple sequential ids unusable in the context of client-side generated database keys. - - -#### Portability - -Most stronger forms of the UUID / GUID algorithms require access to OS services that are not available in browsers, meaning that they are impossible to implement as specified. - - -# Features of cuids - -## Scalable - -Because of the timestamp and the counter, cuid is really good at generating unique IDs on one machine. - -Because of the fingerprints, cuid is also good at preventing collisions between multiple clients. - - -## Fast - -Because cuids can be safely generated synchronously, you can generate a lot of them quickly. Since it's unlikely that you'll get a collision, you don't have to wait for a round trip to the database just to insert a complete record in your database. - -Because cuids are monotonically increasing, database primary key performance gets a significant boost. - -Weighing in at less than 1k minified and compressed, the cuid source should be suitable for even the lightest-weight mobile clients, and will not have a significant impact on the download time of your app, particularly if you follow best practices and concatenate it with the rest of your code in order to avoid the latency hit of an extra file request. - -## Secure - -Cuids contain enough random data and moving parts as to make guessing another id based on an existing id practically impossible. It also opens up a way to detect for abuse attempts -- if a client requests large blocks of ids that don't exist, there's a good chance that the client is malicious, or trying to get at data that doesn't belong to it. - - -## Portable - -The only part of a cuid that might be hard to replicate between different clients is the fingerprint. It's easy to override the fingerprint method in order to port to different clients. Cuid already works standalone in browsers, or as a node module, so you can use cuid where you need to use it. - -The algorithm is also easy to reproduce in other languages. You are encouraged to port it to whatever language you see fit. - -### Ports: - -* JavaScript (Browsers & Node) -* [cuid for Ruby](https://github.com/iyshannon/cuid) - [Ian Shannon](https://github.com/iyshannon) -* [cuid for .Net](https://github.com/moonpyk/ncuid ) - [Clément Bourgeois](https://github.com/moonpyk) -* [cuid for Go](http://github.com/lucsky/cuid) - [Luc Heinrich](https://github.com/lucsky) -* [cuid for PHP](https://github.com/endyjasmi/cuid) - [Endy Jasmi](https://github.com/endyjasmi) -* [cuid for Elixir](https://github.com/duailibe/cuid) - [Lucas Duailibe](https://github.com/duailibe) -* [cuid for Haskell](https://github.com/crabmusket/hscuid) - [Daniel Buckmaster](https://github.com/crabmusket) -* [cuid for Python](https://github.com/necaris/cuid.py) - [Rami Chowdhury](https://github.com/necaris) -* [cuid for Clojure](https://github.com/hden/cuid) - [Hao-kang Den](https://github.com/hden) -* [cuid for Java](https://github.com/graphcool/cuid-java) - [Nilan Marktanner](https://github.com/marktani) -* [cuid for Lua](https://github.com/marcoonroad/cuid) - [Marco Aurélio](https://github.com/marcoonroad) -* [cuid for Perl](https://github.com/zakame/Data-Cuid) - [Zak B. Elep](https://github.com/zakame) -* [cuid for Perl 6](https://github.com/marcoonroad/perl6-cuid) - [Marco Aurélio](https://github.com/marcoonroad) -* [cuid for OCaml](https://github.com/marcoonroad/ocaml-cuid) - [Marco Aurélio](https://github.com/marcoonroad) -* [cuid for Swift](https://github.com/raphaelmansuy/cuid) - [Raphael Mansuy](https://github.com/raphaelmansuy) -* [cuid for Insomnia](https://github.com/n8io/insomnia-plugin-cuid) - [Nate Clark](https://github.com/n8io) -* [cuid for Rust](https://github.com/mplanchard/cuid-rust) - [Matthew Planchard](https://github.com/mplanchard) -* [cuid for Racket](https://github.com/theodesp/cuid) - [Theo Despoudis](https://github.com/theodesp) - - - -# Short URLs - -Need a smaller ID? `cuid.slug()` is for you. With 7 to 10 characters, `.slug()` is a great solution for short urls. Slugs may grow up to 10 characters as the internal counter increases. They're good for things like URL slug disambiguation (i.e., `example.com/some-post-title-`) but **absolutely not recommended for database unique IDs**. Stick to the full cuid for database keys. - -Be aware, slugs: - -* are less likely to be monotonically increasing. Stick to full cuids for database lookups, if possible. - -* have less random data, less room for the counter, and less room for the fingerprint, which means that all of them are more likely to collide or be guessed, especially as CPU speeds increase. - -Don't use them if guessing an existing ID would expose confidential information to malicious users. For example, if you're providing a service like Google Drive or DropBox, which hosts user's private files, favor `cuid()` over `.slug()`. - - -# Questions - -### Is this a replacement for GUID / UUID? - -No. Cuid is great for the use case it was designed for -- to generate ids for applications which need to be scalable past tens or hundreds of new entities per second across multiple id-generating hosts. In other words, if you're building a web or mobile app and want the assurance that your choice of id standards isn't going to slow you down, cuid is for you. - -However, if you need to obscure the order of id generation, or if it's potentially problematic to know the precise time that an id was generated, you'll want to go with something different. - -Cuids should not be considered cryptographically secure (but neither should most guid algorithms. Make sure yours is using a crypto library before you rely on it). - - -### Why don't you use sha1, md5, etc? - -A sha1 implementation in JavaScript is about 300 lines by itself, uncompressed, and its use would provide little benefit. For contrast, the cuid source code weighs in at less than 100 lines of code, uncompressed. It also comes at considerable performance cost. Md5 has similar issues. - - -### Why are there no dashes? - -Almost all web-technology identifiers allow numbers and letters (though some require you to begin with a letter -- hence the 'c' at the beginning of a cuid). However, dashes are not allowed in some identifier names. Removing dashes between groups allows the ids to be more portable. Also, identifier groupings should not be relied on in your application. Removing them should discourage application developers from trying to extract data from a cuid. - -The cuid specification should not be considered an API contract. Code that relies on the groupings as laid out here should be considered brittle and not be used in production. - - -### [Submit a Question or Comment](https://github.com/ericelliott/cuid/issues/new?title=Question) - - -### Credit - -Created by Eric Elliott, Author, ["Programming JavaScript Applications (O'Reilly)"](https://ericelliottjs.com/product/programming-javascript-applications-ebook/) - -Thanks to [Tout](http://tout.com/) for support and production testing. diff --git a/build/node_modules/cuid/index.d.ts b/build/node_modules/cuid/index.d.ts deleted file mode 100644 index 84bafaf2..00000000 --- a/build/node_modules/cuid/index.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Create a unique collision-resistant ID. - * Read more about cuid here - https://github.com/ericelliott/cuid - */ -declare const cuid: (() => string) & { - /** - * Create a shorter unique collision-resistant ID. Is 7 to 10 characters in length. - */ - slug: (() => string) - /** - * Check if string is a valid 'cuid'. - * - * @param cuid: string to check if it is a 'cuid'. - */ - isCuid: ((cuid: string) => boolean) - /** - * Check if string is a valid 'cuid' slug. - * - * @param slug: string to check if it is a 'cuid' slug. - */ - isSlug: ((slug: string) => boolean) -}; - -export = cuid; diff --git a/build/node_modules/cuid/index.js b/build/node_modules/cuid/index.js deleted file mode 100644 index 7cdab42d..00000000 --- a/build/node_modules/cuid/index.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * cuid.js - * Collision-resistant UID generator for browsers and node. - * Sequential for fast db lookups and recency sorting. - * Safe for element IDs and server-side lookups. - * - * Extracted from CLCTR - * - * Copyright (c) Eric Elliott 2012 - * MIT License - */ - -var fingerprint = require('./lib/fingerprint.js'); -var pad = require('./lib/pad.js'); -var getRandomValue = require('./lib/getRandomValue.js'); - -var c = 0, - blockSize = 4, - base = 36, - discreteValues = Math.pow(base, blockSize); - -function randomBlock () { - return pad((getRandomValue() * - discreteValues << 0) - .toString(base), blockSize); -} - -function safeCounter () { - c = c < discreteValues ? c : 0; - c++; // this is not subliminal - return c - 1; -} - -function cuid () { - // Starting with a lowercase letter makes - // it HTML element ID friendly. - var letter = 'c', // hard-coded allows for sequential access - - // timestamp - // warning: this exposes the exact date and time - // that the uid was created. - timestamp = (new Date().getTime()).toString(base), - - // Prevent same-machine collisions. - counter = pad(safeCounter().toString(base), blockSize), - - // A few chars to generate distinct ids for different - // clients (so different computers are far less - // likely to generate the same id) - print = fingerprint(), - - // Grab some more chars from Math.random() - random = randomBlock() + randomBlock(); - - return letter + timestamp + counter + print + random; -} - -cuid.slug = function slug () { - var date = new Date().getTime().toString(36), - counter = safeCounter().toString(36).slice(-4), - print = fingerprint().slice(0, 1) + - fingerprint().slice(-1), - random = randomBlock().slice(-2); - - return date.slice(-2) + - counter + print + random; -}; - -cuid.isCuid = function isCuid (stringToCheck) { - if (typeof stringToCheck !== 'string') return false; - if (stringToCheck.startsWith('c')) return true; - return false; -}; - -cuid.isSlug = function isSlug (stringToCheck) { - if (typeof stringToCheck !== 'string') return false; - var stringLength = stringToCheck.length; - if (stringLength >= 7 && stringLength <= 10) return true; - return false; -}; - -cuid.fingerprint = fingerprint; - -module.exports = cuid; diff --git a/build/node_modules/cuid/package.json b/build/node_modules/cuid/package.json deleted file mode 100644 index c506c3f7..00000000 --- a/build/node_modules/cuid/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "cuid", - "description": "Collision-resistant ids optimized for horizontal scaling and performance. For node and browsers.", - "version": "2.1.8", - "author": { - "name": "Eric Elliott", - "url": "https://ericelliottjs.com" - }, - "browser": { - "./lib/fingerprint.js": "./lib/fingerprint.browser.js", - "./lib/getRandomValue.js": "./lib/getRandomValue.browser.js" - }, - "dependencies": {}, - "devDependencies": { - "babel-polyfill": "6.26.0", - "babel-preset-env": "1.7.0", - "babel-register": "6.26.0", - "browserify": "16.5.0", - "eslint": "5.16.0", - "eslint-plugin-testcafe": "0.2.1", - "http-server": "^0.12.0", - "mkdirp": "0.5.1", - "riteway": "6.1.1", - "tape": "4.11.0", - "testcafe": "1.1.4", - "uglify-js": "3.7.2", - "updtr": "3.1.0", - "watchify": "3.11.1" - }, - "files": [ - "lib", - "dist", - "index.js", - "index.d.ts" - ], - "jsdelivr": "dist/cuid.min.js", - "keywords": [ - "guid", - "id", - "uid", - "unique id", - "uuid" - ], - "license": "MIT", - "main": "index.js", - "react-native": { - "./lib/fingerprint.js": "./lib/fingerprint.react-native.js", - "./lib/getRandomValue.js": "./lib/getRandomValue.react-native.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/ericelliott/cuid.git" - }, - "scripts": { - "build": "mkdirp dist && browserify index.js -s cuid -o dist/cuid.js && uglifyjs dist/cuid.js -c -m -o dist/cuid.min.js", - "lint": "eslint index.js lib test", - "prepare": "npm run build", - "test": "npm run -s lint && npm run -s test:server && npm run -s test:random && npm run -s test:browser && npm run -s test:worker", - "test:browser": "testcafe chrome ./test/browser.js", - "test:worker": "browserify ./test/worker/worker.js -s cuid -o ./test/worker/worker.bundled.js && testcafe chrome ./test/worker.js --app \"http-server ./test/worker -s\"", - "test:server": "tape -r babel-register -r babel-polyfill test/server.js", - "test:random": "node -r babel-register -r babel-polyfill test/getRandomValue.test.js", - "update": "updtr" - }, - "unpkg": "dist/cuid.min.js" -} diff --git a/build/node_modules/dag-map/LICENSE b/build/node_modules/dag-map/LICENSE deleted file mode 100644 index 874da160..00000000 --- a/build/node_modules/dag-map/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2014 Kris Selden and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/dag-map/README.md b/build/node_modules/dag-map/README.md deleted file mode 100644 index 8bd05d9e..00000000 --- a/build/node_modules/dag-map/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# dag-map [![Build Status](https://travis-ci.org/krisselden/dag-map.png?branch=master)](https://travis-ci.org/krisselden/dag-map) -A [directed acyclic graph](http://en.wikipedia.org/wiki/Directed_acyclic_graph) library for JavaScript. - -In addition to being a DAG implmentation, it also provides value storage on the -vertices. So in-short, it is a key/value DAG. - - -## Downloads - -## API - -```js - // create a new draph; - var graph = new DAG(); - - // add some nodes - graph.add('foo'); - graph.add('bar'); - graph.add('baz'); - - // currently, no edges exist between these nodes, so lets add some - - graph.addEdge('foo', 'bar'); - - // we now have an edge from 'foo' -> 'bar'; - - graph.addEdge('bar', 'baz'); - - // we now have an edge from 'foo' -> 'bar' -> 'baz'; - - // to have the graph calculate this topSort for us, we can use the topSort - // iterator, to build an ordered - var vertices = []; - - graph.topsort(function(vertex, path){ - vertices.push(vertex.name); - }); - - vertices === [ 'foo', 'bar', 'baz' ]; -``` - -## Developing - -* `npm install` -* `npm test` runs the tests headless -* `npm run test:server` runs the tests and the development server -* `npm build` builds the development dist -* `npm build:production` builds the production dist diff --git a/build/node_modules/dag-map/package.json b/build/node_modules/dag-map/package.json deleted file mode 100644 index e02def02..00000000 --- a/build/node_modules/dag-map/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "dag-map", - "version": "1.0.2", - "description": "DAG stands for Directed acyclic graph. It is used to build a graph of dependencies checking that there isn't circular dependencies", - "main": "dist/dag-map.js", - "repository": { - "type": "git", - "url": "https://github.com/krisselden/dag-map.git" - }, - "scripts": { - "build": "ember build", - "build:production": "ember build --environment=production", - "test": "ember test", - "test:server": "ember test --server", - "prepublish": "ember build --environment production" - }, - "author": "Kris Selden", - "license": "MIT", - "readmeFilename": "README.md", - "devDependencies": { - "broccoli-es6-module-transpiler": "^0.5.0", - "broccoli-stew": "^0.2.1", - "broccoli-uglify-js": "^0.1.3", - "ember-cli": "^0.2.0", - "es6-module-transpiler-amd-formatter": "^0.3.0", - "qunitjs": "^1.17.1" - } -} diff --git a/build/node_modules/data-uri-to-buffer/.travis.yml b/build/node_modules/data-uri-to-buffer/.travis.yml deleted file mode 100644 index 4e1d0706..00000000 --- a/build/node_modules/data-uri-to-buffer/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "1" - - "2" - - "3" - - "4" - - "5" - - "6" - - "7" - - "8" - -install: - - PATH="`npm bin`:`npm bin -g`:$PATH" - # Install dependencies and build - - npm install - -script: - # Output useful info for debugging - - node --version - - npm --version - # Run tests - - npm test diff --git a/build/node_modules/data-uri-to-buffer/History.md b/build/node_modules/data-uri-to-buffer/History.md deleted file mode 100644 index 170c7098..00000000 --- a/build/node_modules/data-uri-to-buffer/History.md +++ /dev/null @@ -1,55 +0,0 @@ - -2.0.0 / 2017-07-18 -================== - - * More correct media type handling - * add typings for Typescript - -1.2.0 / 2017-07-18 -================== - - * Essentially identical to v1.0.0. Reverting changes from v1.1.0 because they are breaking changes and should be part of a major version bump - * Revert "More correct media type handling" - * Revert "add typings for Typescript" - -1.1.0 / 2017-07-17 -================== - - * More correct media type handling - * Add typings for Typescript - -1.0.0 / 2017-06-09 -================== - - * Bumping to v1.0.0 for semver semantics - * random updates for newer Node.js versions - * travis: test more node versions and fix v0.8 - -0.0.4 / 2015-06-29 -================== - - * package: update "mocha" to v2 - * package: add RFC to the "keywords" section - * travis: test node v0.8, v0.10, and v0.12 - * README: use SVG for Travis-CI badge - * test: more tests - -0.0.3 / 2014-01-08 -================== - - * index: fix a URI with a comma in the data portion - -0.0.2 / 2014-01-08 -================== - - * index: use unescape() instead of decodeURIComponent() - * test: add more tests from Mozilla - -0.0.1 / 2014-01-02 -================== - - * add `README.md` - * index: default the `charset` property to "US-ASCII" - * default encoding is "ascii" - * default `type` to "text/plain" when none is given - * initial commit diff --git a/build/node_modules/data-uri-to-buffer/README.md b/build/node_modules/data-uri-to-buffer/README.md deleted file mode 100644 index 2463f1f5..00000000 --- a/build/node_modules/data-uri-to-buffer/README.md +++ /dev/null @@ -1,88 +0,0 @@ -data-uri-to-buffer -================== -### Generate a Buffer instance from a [Data URI][rfc] string -[![Build Status](https://travis-ci.org/TooTallNate/node-data-uri-to-buffer.svg?branch=master)](https://travis-ci.org/TooTallNate/node-data-uri-to-buffer) - -This module accepts a ["data" URI][rfc] String of data, and returns a -node.js `Buffer` instance with the decoded data. - - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install data-uri-to-buffer -``` - - -Example -------- - -``` js -var dataUriToBuffer = require('data-uri-to-buffer'); - -// plain-text data is supported -var uri = 'data:,Hello%2C%20World!'; -var decoded = dataUriToBuffer(uri); -console.log(decoded.toString()); -// 'Hello, World!' - -// base64-encoded data is supported -uri = 'data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D'; -decoded = dataUriToBuffer(uri); -console.log(decoded.toString()); -// 'Hello, World!' -``` - - -API ---- - -### dataUriToBuffer(String uri) → Buffer - -The `type` property on the Buffer instance gets set to the main type portion of -the "mediatype" portion of the "data" URI, or defaults to `"text/plain"` if not -specified. - -The `typeFull` property on the Buffer instance gets set to the entire -"mediatype" portion of the "data" URI (including all parameters), or defaults -to `"text/plain;charset=US-ASCII"` if not specified. - -The `charset` property on the Buffer instance gets set to the Charset portion of -the "mediatype" portion of the "data" URI, or defaults to `"US-ASCII"` if the -entire type is not specified, or defaults to `""` otherwise. - -*Note*: If the only the main type is specified but not the charset, e.g. -`"data:text/plain,abc"`, the charset is set to the empty string. The spec only -defaults to US-ASCII as charset if the entire type is not specified. - - -License -------- - -(The MIT License) - -Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -[rfc]: http://tools.ietf.org/html/rfc2397 diff --git a/build/node_modules/data-uri-to-buffer/index.d.ts b/build/node_modules/data-uri-to-buffer/index.d.ts deleted file mode 100644 index 2401e255..00000000 --- a/build/node_modules/data-uri-to-buffer/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/// - -declare class MimeBuffer extends Buffer { - type: string; - typeFull: string; - charset: string; -} - -declare function dataUriToBuffer(uri: string): MimeBuffer; -export = dataUriToBuffer; diff --git a/build/node_modules/data-uri-to-buffer/index.js b/build/node_modules/data-uri-to-buffer/index.js deleted file mode 100644 index 8f8ac769..00000000 --- a/build/node_modules/data-uri-to-buffer/index.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict'; - -/** - * Module exports. - */ - -module.exports = dataUriToBuffer; - -/** - * Returns a `Buffer` instance from the given data URI `uri`. - * - * @param {String} uri Data URI to turn into a Buffer instance - * @return {Buffer} Buffer instance from Data URI - * @api public - */ - -function dataUriToBuffer(uri) { - if (!/^data\:/i.test(uri)) { - throw new TypeError( - '`uri` does not appear to be a Data URI (must begin with "data:")' - ); - } - - // strip newlines - uri = uri.replace(/\r?\n/g, ''); - - // split the URI up into the "metadata" and the "data" portions - var firstComma = uri.indexOf(','); - if (-1 === firstComma || firstComma <= 4) { - throw new TypeError('malformed data: URI'); - } - - // remove the "data:" scheme and parse the metadata - var meta = uri.substring(5, firstComma).split(';'); - - var type = meta[0] || 'text/plain'; - var typeFull = type; - var base64 = false; - var charset = ''; - for (var i = 1; i < meta.length; i++) { - if ('base64' == meta[i]) { - base64 = true; - } else { - typeFull += ';' + meta[i]; - if (0 == meta[i].indexOf('charset=')) { - charset = meta[i].substring(8); - } - } - } - // defaults to US-ASCII only if type is not provided - if (!meta[0] && !charset.length) { - typeFull += ';charset=US-ASCII'; - charset = 'US-ASCII'; - } - - // get the encoded data portion and decode URI-encoded chars - var data = unescape(uri.substring(firstComma + 1)); - - var encoding = base64 ? 'base64' : 'ascii'; - var buffer = Buffer.from ? Buffer.from(data, encoding) : new Buffer(data, encoding); - - // set `.type` and `.typeFull` properties to MIME type - buffer.type = type; - buffer.typeFull = typeFull; - - // set the `.charset` property - buffer.charset = charset; - - return buffer; -} diff --git a/build/node_modules/data-uri-to-buffer/package.json b/build/node_modules/data-uri-to-buffer/package.json deleted file mode 100644 index cbd53f5c..00000000 --- a/build/node_modules/data-uri-to-buffer/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "data-uri-to-buffer", - "version": "2.0.2", - "description": "Generate a Buffer instance from a Data URI string", - "main": "index.js", - "types": "index.d.ts", - "scripts": { - "test": "mocha --reporter spec" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-data-uri-to-buffer.git" - }, - "keywords": [ - "data", - "uri", - "datauri", - "data-uri", - "buffer", - "convert", - "rfc2397", - "2397" - ], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/node-data-uri-to-buffer/issues" - }, - "homepage": "https://github.com/TooTallNate/node-data-uri-to-buffer", - "devDependencies": { - "@types/node": "^8.0.7", - "mocha": "^3.4.2" - } -} diff --git a/build/node_modules/dateformat/LICENSE b/build/node_modules/dateformat/LICENSE deleted file mode 100644 index 57d44e2a..00000000 --- a/build/node_modules/dateformat/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(c) 2007-2009 Steven Levithan - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/dateformat/Readme.md b/build/node_modules/dateformat/Readme.md deleted file mode 100644 index 9431b901..00000000 --- a/build/node_modules/dateformat/Readme.md +++ /dev/null @@ -1,204 +0,0 @@ -# dateformat - -A node.js package for Steven Levithan's excellent [dateFormat()][dateformat] function. - -[![Build Status](https://travis-ci.org/felixge/node-dateformat.svg)](https://travis-ci.org/felixge/node-dateformat) - -## Modifications - -- Removed the `Date.prototype.format` method. Sorry folks, but extending native prototypes is for suckers. -- Added a `module.exports = dateFormat;` statement at the bottom -- Added the placeholder `N` to get the ISO 8601 numeric representation of the day of the week - -## Installation - -```bash -$ npm install dateformat -$ dateformat --help -``` - -## Usage - -As taken from Steven's post, modified to match the Modifications listed above: - -```js -var dateFormat = require("dateformat"); -var now = new Date(); - -// Basic usage -dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT"); -// Saturday, June 9th, 2007, 5:46:21 PM - -// You can use one of several named masks -dateFormat(now, "isoDateTime"); -// 2007-06-09T17:46:21 - -// ...Or add your own -dateFormat.masks.hammerTime = 'HH:MM! "Can\'t touch this!"'; -dateFormat(now, "hammerTime"); -// 17:46! Can't touch this! - -// You can also provide the date as a string -dateFormat("Jun 9 2007", "fullDate"); -// Saturday, June 9, 2007 - -// Note that if you don't include the mask argument, -// dateFormat.masks.default is used -dateFormat(now); -// Sat Jun 09 2007 17:46:21 - -// And if you don't include the date argument, -// the current date and time is used -dateFormat(); -// Sat Jun 09 2007 17:46:22 - -// You can also skip the date argument (as long as your mask doesn't -// contain any numbers), in which case the current date/time is used -dateFormat("longTime"); -// 5:46:22 PM EST - -// And finally, you can convert local time to UTC time. Simply pass in -// true as an additional argument (no argument skipping allowed in this case): -dateFormat(now, "longTime", true); -// 10:46:21 PM UTC - -// ...Or add the prefix "UTC:" or "GMT:" to your mask. -dateFormat(now, "UTC:h:MM:ss TT Z"); -// 10:46:21 PM UTC - -// You can also get the ISO 8601 week of the year: -dateFormat(now, "W"); -// 42 - -// and also get the ISO 8601 numeric representation of the day of the week: -dateFormat(now, "N"); -// 6 -``` - -### Mask options - -| Mask | Description | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `d` | Day of the month as digits; no leading zero for single-digit days. | -| `dd` | Day of the month as digits; leading zero for single-digit days. | -| `ddd` | Day of the week as a three-letter abbreviation. | -| `DDD` | "Ysd", "Tdy" or "Tmw" if date lies within these three days. Else fall back to ddd. | -| `dddd` | Day of the week as its full name. | -| `DDDD` | "Yesterday", "Today" or "Tomorrow" if date lies within these three days. Else fall back to dddd. | -| `m` | Month as digits; no leading zero for single-digit months. | -| `mm` | Month as digits; leading zero for single-digit months. | -| `mmm` | Month as a three-letter abbreviation. | -| `mmmm` | Month as its full name. | -| `yy` | Year as last two digits; leading zero for years less than 10. | -| `yyyy` | Year represented by four digits. | -| `h` | Hours; no leading zero for single-digit hours (12-hour clock). | -| `hh` | Hours; leading zero for single-digit hours (12-hour clock). | -| `H` | Hours; no leading zero for single-digit hours (24-hour clock). | -| `HH` | Hours; leading zero for single-digit hours (24-hour clock). | -| `M` | Minutes; no leading zero for single-digit minutes. | -| `MM` | Minutes; leading zero for single-digit minutes. | -| `N` | ISO 8601 numeric representation of the day of the week. | -| `o` | GMT/UTC timezone offset, e.g. -0500 or +0230. | -| `p` | GMT/UTC timezone offset, e.g. -05:00 or +02:30. | -| `s` | Seconds; no leading zero for single-digit seconds. | -| `ss` | Seconds; leading zero for single-digit seconds. | -| `S` | The date's ordinal suffix (st, nd, rd, or th). Works well with `d`. | -| `l` | Milliseconds; gives 3 digits. | -| `L` | Milliseconds; gives 2 digits. | -| `t` | Lowercase, single-character time marker string: a or p. | -| `tt` | Lowercase, two-character time marker string: am or pm. | -| `T` | Uppercase, single-character time marker string: A or P. | -| `TT` | Uppercase, two-character time marker string: AM or PM. | -| `W` | ISO 8601 week number of the year, e.g. 4, 42 | -| `WW` | ISO 8601 week number of the year, leading zero for single-digit, e.g. 04, 42 | -| `Z` | US timezone abbreviation, e.g. EST or MDT. For non-US timezones, the GMT/UTC offset is returned, e.g. GMT-0500 | -| `'...'`, `"..."` | Literal character sequence. Surrounding quotes are removed. | -| `UTC:` | Must be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The "UTC:" prefix is removed. | - -### Named Formats - -| Name | Mask | Example | -| ----------------- | ------------------------------ | ------------------------ | -| `default` | `ddd mmm dd yyyy HH:MM:ss` | Sat Jun 09 2007 17:46:21 | -| `shortDate` | `m/d/yy` | 6/9/07 | -| `paddedShortDate` | `mm/dd/yyyy` | 06/09/2007 | -| `mediumDate` | `mmm d, yyyy` | Jun 9, 2007 | -| `longDate` | `mmmm d, yyyy` | June 9, 2007 | -| `fullDate` | `dddd, mmmm d, yyyy` | Saturday, June 9, 2007 | -| `shortTime` | `h:MM TT` | 5:46 PM | -| `mediumTime` | `h:MM:ss TT` | 5:46:21 PM | -| `longTime` | `h:MM:ss TT Z` | 5:46:21 PM EST | -| `isoDate` | `yyyy-mm-dd` | 2007-06-09 | -| `isoTime` | `HH:MM:ss` | 17:46:21 | -| `isoDateTime` | `yyyy-mm-dd'T'HH:MM:sso` | 2007-06-09T17:46:21+0700 | -| `isoUtcDateTime` | `UTC:yyyy-mm-dd'T'HH:MM:ss'Z'` | 2007-06-09T22:46:21Z | - -### Localization - -Day names, month names and the AM/PM indicators can be localized by -passing an object with the necessary strings. For example: - -```js -var dateFormat = require("dateformat"); -dateFormat.i18n = { - dayNames: [ - "Sun", - "Mon", - "Tue", - "Wed", - "Thu", - "Fri", - "Sat", - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - ], - monthNames: [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec", - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December", - ], - timeNames: ["a", "p", "am", "pm", "A", "P", "AM", "PM"], -}; -``` - -> Notice that only one language is supported at a time and all strings -> _must_ be present in the new value. - -### Breaking change in 2.1.0 - -- 2.1.0 was published with a breaking change, for those using localized strings. -- 2.2.0 has been published without the change, to keep packages refering to ^2.0.0 to continue working. This is now branch v2_2. -- 3.0.\* contains the localized AM/PM change. - -## License - -(c) 2007-2009 Steven Levithan [stevenlevithan.com][stevenlevithan], MIT license. - -[dateformat]: http://blog.stevenlevithan.com/archives/date-time-format -[stevenlevithan]: http://stevenlevithan.com/ diff --git a/build/node_modules/dateformat/package.json b/build/node_modules/dateformat/package.json deleted file mode 100644 index 05d97ed1..00000000 --- a/build/node_modules/dateformat/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "dateformat", - "description": "A node.js package for Steven Levithan's excellent dateFormat() function.", - "maintainers": [ - "Felix Geisendörfer " - ], - "homepage": "https://github.com/felixge/node-dateformat", - "author": "Steven Levithan", - "contributors": [ - "Steven Levithan", - "Felix Geisendörfer ", - "Christoph Tavan ", - "Jon Schlinkert (https://github.com/jonschlinkert)" - ], - "version": "4.6.3", - "license": "MIT", - "main": "lib/dateformat", - "devDependencies": { - "@babel/cli": "^7.12.10", - "@babel/core": "^7.12.10", - "@babel/preset-env": "^7.12.11", - "mocha": "^8.2.1", - "uglify-js": "^3.12.5" - }, - "engines": { - "node": "*" - }, - "scripts": { - "build": "./node_modules/.bin/babel src --out-dir lib && uglifyjs lib/dateformat.js -o lib/dateformat.js", - "test": "npm run build && mocha", - "benchmark": "npm run build && node ./benchmark/benchmark.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/felixge/node-dateformat.git" - }, - "dependencies": {} -} diff --git a/build/node_modules/debug/LICENSE b/build/node_modules/debug/LICENSE deleted file mode 100644 index 1a9820e2..00000000 --- a/build/node_modules/debug/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk -Copyright (c) 2018-2021 Josh Junon - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the 'Software'), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/build/node_modules/debug/README.md b/build/node_modules/debug/README.md deleted file mode 100644 index e9c3e047..00000000 --- a/build/node_modules/debug/README.md +++ /dev/null @@ -1,481 +0,0 @@ -# debug -[![Build Status](https://travis-ci.org/debug-js/debug.svg?branch=master)](https://travis-ci.org/debug-js/debug) [![Coverage Status](https://coveralls.io/repos/github/debug-js/debug/badge.svg?branch=master)](https://coveralls.io/github/debug-js/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) - - - -A tiny JavaScript debugging utility modelled after Node.js core's debugging -technique. Works in Node.js and web browsers. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - -`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. - -Example [_app.js_](./examples/node/app.js): - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %o', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example [_worker.js_](./examples/node/worker.js): - -```js -var a = require('debug')('worker:a') - , b = require('debug')('worker:b'); - -function work() { - a('doing lots of uninteresting work'); - setTimeout(work, Math.random() * 1000); -} - -work(); - -function workb() { - b('doing some work'); - setTimeout(workb, Math.random() * 2000); -} - -workb(); -``` - -The `DEBUG` environment variable is then used to enable these based on space or -comma-delimited names. - -Here are some examples: - -screen shot 2017-08-08 at 12 53 04 pm -screen shot 2017-08-08 at 12 53 38 pm -screen shot 2017-08-08 at 12 53 25 pm - -#### Windows command prompt notes - -##### CMD - -On Windows the environment variable is set using the `set` command. - -```cmd -set DEBUG=*,-not_this -``` - -Example: - -```cmd -set DEBUG=* & node app.js -``` - -##### PowerShell (VS Code default) - -PowerShell uses different syntax to set environment variables. - -```cmd -$env:DEBUG = "*,-not_this" -``` - -Example: - -```cmd -$env:DEBUG='app';node app.js -``` - -Then, run the program to be debugged as usual. - -npm script example: -```js - "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", -``` - -## Namespace Colors - -Every debug instance has a color generated for it based on its namespace name. -This helps when visually parsing the debug output to identify which debug instance -a debug line belongs to. - -#### Node.js - -In Node.js, colors are enabled when stderr is a TTY. You also _should_ install -the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, -otherwise debug will only use a small handful of basic colors. - - - -#### Web Browser - -Colors are also enabled on "Web Inspectors" that understand the `%c` formatting -option. These are WebKit web inspectors, Firefox ([since version -31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) -and the Firebug plugin for Firefox (any version). - - - - -## Millisecond diff - -When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - - -When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: - - - - -## Conventions - -If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. - -## Wildcards - -The `*` character may be used as a wildcard. Suppose for example your library has -debuggers named "connect:bodyParser", "connect:compress", "connect:session", -instead of listing all three with -`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do -`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - -You can also exclude specific debuggers by prefixing them with a "-" character. -For example, `DEBUG=*,-connect:*` would include all debuggers except those -starting with "connect:". - -## Environment Variables - -When running through Node.js, you can set a few environment variables that will -change the behavior of the debug logging: - -| Name | Purpose | -|-----------|-------------------------------------------------| -| `DEBUG` | Enables/disables specific debugging namespaces. | -| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | -| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | -| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - - -__Note:__ The environment variables beginning with `DEBUG_` end up being -converted into an Options object that gets used with `%o`/`%O` formatters. -See the Node.js documentation for -[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) -for the complete list. - -## Formatters - -Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. -Below are the officially supported formatters: - -| Formatter | Representation | -|-----------|----------------| -| `%O` | Pretty-print an Object on multiple lines. | -| `%o` | Pretty-print an Object all on a single line. | -| `%s` | String. | -| `%d` | Number (both integer and float). | -| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | -| `%%` | Single percent sign ('%'). This does not consume an argument. | - - -### Custom formatters - -You can add custom formatters by extending the `debug.formatters` object. -For example, if you wanted to add support for rendering a Buffer as hex with -`%h`, you could do something like: - -```js -const createDebug = require('debug') -createDebug.formatters.h = (v) => { - return v.toString('hex') -} - -// …elsewhere -const debug = createDebug('foo') -debug('this is hex: %h', new Buffer('hello world')) -// foo this is hex: 68656c6c6f20776f726c6421 +0ms -``` - - -## Browser Support - -You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), -or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), -if you don't want to build it yourself. - -Debug's enable state is currently persisted by `localStorage`. -Consider the situation shown below where you have `worker:a` and `worker:b`, -and wish to debug both. You can enable this using `localStorage.debug`: - -```js -localStorage.debug = 'worker:*' -``` - -And then refresh the page. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -In Chromium-based web browsers (e.g. Brave, Chrome, and Electron), the JavaScript console will—by default—only show messages logged by `debug` if the "Verbose" log level is _enabled_. - - - -## Output streams - - By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: - -Example [_stdout.js_](./examples/node/stdout.js): - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -## Extend -You can simply extend debugger -```js -const log = require('debug')('auth'); - -//creates new debug instance with extended namespace -const logSign = log.extend('sign'); -const logLogin = log.extend('login'); - -log('hello'); // auth hello -logSign('hello'); //auth:sign hello -logLogin('hello'); //auth:login hello -``` - -## Set dynamically - -You can also enable debug dynamically by calling the `enable()` method : - -```js -let debug = require('debug'); - -console.log(1, debug.enabled('test')); - -debug.enable('test'); -console.log(2, debug.enabled('test')); - -debug.disable(); -console.log(3, debug.enabled('test')); - -``` - -print : -``` -1 false -2 true -3 false -``` - -Usage : -`enable(namespaces)` -`namespaces` can include modes separated by a colon and wildcards. - -Note that calling `enable()` completely overrides previously set DEBUG variable : - -``` -$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' -=> false -``` - -`disable()` - -Will disable all namespaces. The functions returns the namespaces currently -enabled (and skipped). This can be useful if you want to disable debugging -temporarily without knowing what was enabled to begin with. - -For example: - -```js -let debug = require('debug'); -debug.enable('foo:*,-foo:bar'); -let namespaces = debug.disable(); -debug.enable(namespaces); -``` - -Note: There is no guarantee that the string will be identical to the initial -enable string, but semantically they will be identical. - -## Checking whether a debug target is enabled - -After you've created a debug instance, you can determine whether or not it is -enabled by checking the `enabled` property: - -```javascript -const debug = require('debug')('http'); - -if (debug.enabled) { - // do stuff... -} -``` - -You can also manually toggle this property to force the debug instance to be -enabled or disabled. - -## Usage in child processes - -Due to the way `debug` detects if the output is a TTY or not, colors are not shown in child processes when `stderr` is piped. A solution is to pass the `DEBUG_COLORS=1` environment variable to the child process. -For example: - -```javascript -worker = fork(WORKER_WRAP_PATH, [workerPath], { - stdio: [ - /* stdin: */ 0, - /* stdout: */ 'pipe', - /* stderr: */ 'pipe', - 'ipc', - ], - env: Object.assign({}, process.env, { - DEBUG_COLORS: 1 // without this settings, colors won't be shown - }), -}); - -worker.stderr.pipe(process.stderr, { end: false }); -``` - - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - - Andrew Rhyne - - Josh Junon - -## Backers - -Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> -Copyright (c) 2018-2021 Josh Junon - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/debug/package.json b/build/node_modules/debug/package.json deleted file mode 100644 index 3bcdc242..00000000 --- a/build/node_modules/debug/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "debug", - "version": "4.3.4", - "repository": { - "type": "git", - "url": "git://github.com/debug-js/debug.git" - }, - "description": "Lightweight debugging utility for Node.js and the browser", - "keywords": [ - "debug", - "log", - "debugger" - ], - "files": [ - "src", - "LICENSE", - "README.md" - ], - "author": "Josh Junon ", - "contributors": [ - "TJ Holowaychuk ", - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " - ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "istanbul cover _mocha -- test.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, - "dependencies": { - "ms": "2.1.2" - }, - "devDependencies": { - "brfs": "^2.0.1", - "browserify": "^16.2.3", - "coveralls": "^3.0.2", - "istanbul": "^0.4.5", - "karma": "^3.1.4", - "karma-browserify": "^6.0.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0", - "xo": "^0.23.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - } -} diff --git a/build/node_modules/decimal.js/LICENCE.md b/build/node_modules/decimal.js/LICENCE.md deleted file mode 100644 index 1063109d..00000000 --- a/build/node_modules/decimal.js/LICENCE.md +++ /dev/null @@ -1,23 +0,0 @@ -The MIT Licence. - -Copyright (c) 2022 Michael Mclaughlin - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/build/node_modules/decimal.js/README.md b/build/node_modules/decimal.js/README.md deleted file mode 100644 index 1d02eb74..00000000 --- a/build/node_modules/decimal.js/README.md +++ /dev/null @@ -1,246 +0,0 @@ -![decimal.js](https://raw.githubusercontent.com/MikeMcl/decimal.js/gh-pages/decimaljs.png) - -An arbitrary-precision Decimal type for JavaScript. - -[![npm version](https://img.shields.io/npm/v/decimal.js.svg)](https://www.npmjs.com/package/decimal.js) -[![npm downloads](https://img.shields.io/npm/dw/decimal.js)](https://www.npmjs.com/package/decimal.js) -[![Build Status](https://travis-ci.org/MikeMcl/decimal.js.svg)](https://travis-ci.org/MikeMcl/decimal.js) -[![CDNJS](https://img.shields.io/cdnjs/v/decimal.js.svg)](https://cdnjs.com/libraries/decimal.js) - -
- -## Features - - - Integers and floats - - Simple but full-featured API - - Replicates many of the methods of JavaScript's `Number.prototype` and `Math` objects - - Also handles hexadecimal, binary and octal values - - Faster, smaller, and perhaps easier to use than JavaScript versions of Java's BigDecimal - - No dependencies - - Wide platform compatibility: uses JavaScript 1.5 (ECMAScript 3) features only - - Comprehensive [documentation](https://mikemcl.github.io/decimal.js/) and test set - - Used under the hood by [math.js](https://github.com/josdejong/mathjs) - - Includes a TypeScript declaration file: *decimal.d.ts* - -![API](https://raw.githubusercontent.com/MikeMcl/decimal.js/gh-pages/API.png) - -The library is similar to [bignumber.js](https://github.com/MikeMcl/bignumber.js/), but here -precision is specified in terms of significant digits rather than decimal places, and all -calculations are rounded to the precision (similar to Python's decimal module) rather than just -those involving division. - -This library also adds the trigonometric functions, among others, and supports non-integer powers, -which makes it a significantly larger library than *bignumber.js* and the even smaller -[big.js](https://github.com/MikeMcl/big.js/). - -For a lighter version of this library without the trigonometric functions see -[decimal.js-light](https://github.com/MikeMcl/decimal.js-light/). - -## Load - -The library is the single JavaScript file *decimal.js* or ES module *decimal.mjs*. - -Browser: - -```html - - - -``` - -[Node.js](https://nodejs.org): - -```bash -npm install decimal.js -``` -```js -const Decimal = require('decimal.js'); - -import Decimal from 'decimal.js'; - -import {Decimal} from 'decimal.js'; -``` - -## Use - -*In all examples below, semicolons and `toString` calls are not shown. -If a commented-out value is in quotes it means `toString` has been called on the preceding expression.* - -The library exports a single constructor function, `Decimal`, which expects a single argument that is a number, string or Decimal instance. - -```js -x = new Decimal(123.4567) -y = new Decimal('123456.7e-3') -z = new Decimal(x) -x.equals(y) && y.equals(z) && x.equals(z) // true -``` - -If using values with more than a few digits, it is recommended to pass strings rather than numbers to avoid a potential loss of precision. - -```js -// Precision loss from using numeric literals with more than 15 significant digits. -new Decimal(1.0000000000000001) // '1' -new Decimal(88259496234518.57) // '88259496234518.56' -new Decimal(99999999999999999999) // '100000000000000000000' - -// Precision loss from using numeric literals outside the range of Number values. -new Decimal(2e+308) // 'Infinity' -new Decimal(1e-324) // '0' - -// Precision loss from the unexpected result of arithmetic with Number values. -new Decimal(0.7 + 0.1) // '0.7999999999999999' -``` - -As with JavaScript numbers, strings can contain underscores as separators to improve readability. - -```js -x = new Decimal('2_147_483_647') -``` - -String values in binary, hexadecimal or octal notation are also accepted if the appropriate prefix is included. - -```js -x = new Decimal('0xff.f') // '255.9375' -y = new Decimal('0b10101100') // '172' -z = x.plus(y) // '427.9375' - -z.toBinary() // '0b110101011.1111' -z.toBinary(13) // '0b1.101010111111p+8' - -// Using binary exponential notation to create a Decimal with the value of `Number.MAX_VALUE`. -x = new Decimal('0b1.1111111111111111111111111111111111111111111111111111p+1023') -// '1.7976931348623157081e+308' -``` - -Decimal instances are immutable in the sense that they are not changed by their methods. - -```js -0.3 - 0.1 // 0.19999999999999998 -x = new Decimal(0.3) -x.minus(0.1) // '0.2' -x // '0.3' -``` - -The methods that return a Decimal can be chained. - -```js -x.dividedBy(y).plus(z).times(9).floor() -x.times('1.23456780123456789e+9').plus(9876.5432321).dividedBy('4444562598.111772').ceil() -``` - -Many method names have a shorter alias. - -```js -x.squareRoot().dividedBy(y).toPower(3).equals(x.sqrt().div(y).pow(3)) // true -x.comparedTo(y.modulo(z).negated() === x.cmp(y.mod(z).neg()) // true -``` - -Most of the methods of JavaScript's `Number.prototype` and `Math` objects are replicated. - -```js -x = new Decimal(255.5) -x.toExponential(5) // '2.55500e+2' -x.toFixed(5) // '255.50000' -x.toPrecision(5) // '255.50' - -Decimal.sqrt('6.98372465832e+9823') // '8.3568682281821340204e+4911' -Decimal.pow(2, 0.0979843) // '1.0702770511687781839' - -// Using `toFixed()` to avoid exponential notation: -x = new Decimal('0.0000001') -x.toString() // '1e-7' -x.toFixed() // '0.0000001' -``` - -And there are `isNaN` and `isFinite` methods, as `NaN` and `Infinity` are valid `Decimal` values. - -```js -x = new Decimal(NaN) // 'NaN' -y = new Decimal(Infinity) // 'Infinity' -x.isNaN() && !y.isNaN() && !x.isFinite() && !y.isFinite() // true -``` - -There is also a `toFraction` method with an optional *maximum denominator* argument. - -```js -z = new Decimal(355) -pi = z.dividedBy(113) // '3.1415929204' -pi.toFraction() // [ '7853982301', '2500000000' ] -pi.toFraction(1000) // [ '355', '113' ] -``` - -All calculations are rounded according to the number of significant digits and rounding mode specified -by the `precision` and `rounding` properties of the Decimal constructor. - -For advanced usage, multiple Decimal constructors can be created, each with their own independent -configuration which applies to all Decimal numbers created from it. - -```js -// Set the precision and rounding of the default Decimal constructor -Decimal.set({ precision: 5, rounding: 4 }) - -// Create another Decimal constructor, optionally passing in a configuration object -Dec = Decimal.clone({ precision: 9, rounding: 1 }) - -x = new Decimal(5) -y = new Dec(5) - -x.div(3) // '1.6667' -y.div(3) // '1.66666666' -``` - -The value of a Decimal is stored in a floating point format in terms of its digits, exponent and sign, but these properties should be considered read-only. - -```js -x = new Decimal(-12345.67); -x.d // [ 12345, 6700000 ] digits (base 10000000) -x.e // 4 exponent (base 10) -x.s // -1 sign -``` - -For further information see the [API](http://mikemcl.github.io/decimal.js/) reference in the *doc* directory. - -## Test - -To run the tests using Node.js from the root directory: - -```bash -npm test -``` - -Each separate test module can also be executed individually, for example: - -```bash -node test/modules/toFraction -``` - -To run the tests in a browser, open *test/test.html*. - -## Minify - -Two minification examples: - -Using [uglify-js](https://github.com/mishoo/UglifyJS) to minify the *decimal.js* file: - -```bash -npm install uglify-js -g -uglifyjs decimal.js --source-map url=decimal.min.js.map -c -m -o decimal.min.js -``` - -Using [terser](https://github.com/terser/terser) to minify the ES module version, *decimal.mjs*: - -```bash -npm install terser -g -terser decimal.mjs --source-map url=decimal.min.mjs.map -c -m --toplevel -o decimal.min.mjs -``` - -```js -import Decimal from './decimal.min.mjs'; -``` - -## Licence - -[The MIT Licence (Expat).](LICENCE.md) diff --git a/build/node_modules/decimal.js/decimal.d.ts b/build/node_modules/decimal.js/decimal.d.ts deleted file mode 100644 index 0fbc7b25..00000000 --- a/build/node_modules/decimal.js/decimal.d.ts +++ /dev/null @@ -1,299 +0,0 @@ -// Type definitions for decimal.js >=7.0.0 -// Project: https://github.com/MikeMcl/decimal.js -// Definitions by: Michael Mclaughlin -// Definitions: https://github.com/MikeMcl/decimal.js -// -// Documentation: http://mikemcl.github.io/decimal.js/ -// -// Exports: -// -// class Decimal (default export) -// type Decimal.Constructor -// type Decimal.Instance -// type Decimal.Modulo -// type Decimal.Rounding -// type Decimal.Value -// interface Decimal.Config -// -// Example (alternative syntax commented-out): -// -// import {Decimal} from "decimal.js" -// //import Decimal from "decimal.js" -// -// let r: Decimal.Rounding = Decimal.ROUND_UP; -// let c: Decimal.Configuration = {precision: 4, rounding: r}; -// Decimal.set(c); -// let v: Decimal.Value = '12345.6789'; -// let d: Decimal = new Decimal(v); -// //let d: Decimal.Instance = new Decimal(v); -// -// The use of compiler option `--strictNullChecks` is recommended. - -export default Decimal; - -export namespace Decimal { - export type Constructor = typeof Decimal; - export type Instance = Decimal; - export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; - export type Modulo = Rounding | 9; - export type Value = string | number | Decimal; - - // http://mikemcl.github.io/decimal.js/#constructor-properties - export interface Config { - precision?: number; - rounding?: Rounding; - toExpNeg?: number; - toExpPos?: number; - minE?: number; - maxE?: number; - crypto?: boolean; - modulo?: Modulo; - defaults?: boolean; - } -} - -export declare class Decimal { - readonly d: number[]; - readonly e: number; - readonly s: number; - - constructor(n: Decimal.Value); - - absoluteValue(): Decimal; - abs(): Decimal; - - ceil(): Decimal; - - clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; - clamp(min: Decimal.Value, max: Decimal.Value): Decimal; - - comparedTo(n: Decimal.Value): number; - cmp(n: Decimal.Value): number; - - cosine(): Decimal; - cos(): Decimal; - - cubeRoot(): Decimal; - cbrt(): Decimal; - - decimalPlaces(): number; - dp(): number; - - dividedBy(n: Decimal.Value): Decimal; - div(n: Decimal.Value): Decimal; - - dividedToIntegerBy(n: Decimal.Value): Decimal; - divToInt(n: Decimal.Value): Decimal; - - equals(n: Decimal.Value): boolean; - eq(n: Decimal.Value): boolean; - - floor(): Decimal; - - greaterThan(n: Decimal.Value): boolean; - gt(n: Decimal.Value): boolean; - - greaterThanOrEqualTo(n: Decimal.Value): boolean; - gte(n: Decimal.Value): boolean; - - hyperbolicCosine(): Decimal; - cosh(): Decimal; - - hyperbolicSine(): Decimal; - sinh(): Decimal; - - hyperbolicTangent(): Decimal; - tanh(): Decimal; - - inverseCosine(): Decimal; - acos(): Decimal; - - inverseHyperbolicCosine(): Decimal; - acosh(): Decimal; - - inverseHyperbolicSine(): Decimal; - asinh(): Decimal; - - inverseHyperbolicTangent(): Decimal; - atanh(): Decimal; - - inverseSine(): Decimal; - asin(): Decimal; - - inverseTangent(): Decimal; - atan(): Decimal; - - isFinite(): boolean; - - isInteger(): boolean; - isInt(): boolean; - - isNaN(): boolean; - - isNegative(): boolean; - isNeg(): boolean; - - isPositive(): boolean; - isPos(): boolean; - - isZero(): boolean; - - lessThan(n: Decimal.Value): boolean; - lt(n: Decimal.Value): boolean; - - lessThanOrEqualTo(n: Decimal.Value): boolean; - lte(n: Decimal.Value): boolean; - - logarithm(n?: Decimal.Value): Decimal; - log(n?: Decimal.Value): Decimal; - - minus(n: Decimal.Value): Decimal; - sub(n: Decimal.Value): Decimal; - - modulo(n: Decimal.Value): Decimal; - mod(n: Decimal.Value): Decimal; - - naturalExponential(): Decimal; - exp(): Decimal; - - naturalLogarithm(): Decimal; - ln(): Decimal; - - negated(): Decimal; - neg(): Decimal; - - plus(n: Decimal.Value): Decimal; - add(n: Decimal.Value): Decimal; - - precision(includeZeros?: boolean): number; - sd(includeZeros?: boolean): number; - - round(): Decimal; - - sine() : Decimal; - sin() : Decimal; - - squareRoot(): Decimal; - sqrt(): Decimal; - - tangent() : Decimal; - tan() : Decimal; - - times(n: Decimal.Value): Decimal; - mul(n: Decimal.Value) : Decimal; - - toBinary(significantDigits?: number): string; - toBinary(significantDigits: number, rounding: Decimal.Rounding): string; - - toDecimalPlaces(decimalPlaces?: number): Decimal; - toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; - toDP(decimalPlaces?: number): Decimal; - toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; - - toExponential(decimalPlaces?: number): string; - toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; - - toFixed(decimalPlaces?: number): string; - toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; - - toFraction(max_denominator?: Decimal.Value): Decimal[]; - - toHexadecimal(significantDigits?: number): string; - toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; - toHex(significantDigits?: number): string; - toHex(significantDigits: number, rounding?: Decimal.Rounding): string; - - toJSON(): string; - - toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; - - toNumber(): number; - - toOctal(significantDigits?: number): string; - toOctal(significantDigits: number, rounding: Decimal.Rounding): string; - - toPower(n: Decimal.Value): Decimal; - pow(n: Decimal.Value): Decimal; - - toPrecision(significantDigits?: number): string; - toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; - - toSignificantDigits(significantDigits?: number): Decimal; - toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; - toSD(significantDigits?: number): Decimal; - toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; - - toString(): string; - - truncated(): Decimal; - trunc(): Decimal; - - valueOf(): string; - - static abs(n: Decimal.Value): Decimal; - static acos(n: Decimal.Value): Decimal; - static acosh(n: Decimal.Value): Decimal; - static add(x: Decimal.Value, y: Decimal.Value): Decimal; - static asin(n: Decimal.Value): Decimal; - static asinh(n: Decimal.Value): Decimal; - static atan(n: Decimal.Value): Decimal; - static atanh(n: Decimal.Value): Decimal; - static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; - static cbrt(n: Decimal.Value): Decimal; - static ceil(n: Decimal.Value): Decimal; - static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; - static clone(object?: Decimal.Config): Decimal.Constructor; - static config(object: Decimal.Config): Decimal.Constructor; - static cos(n: Decimal.Value): Decimal; - static cosh(n: Decimal.Value): Decimal; - static div(x: Decimal.Value, y: Decimal.Value): Decimal; - static exp(n: Decimal.Value): Decimal; - static floor(n: Decimal.Value): Decimal; - static hypot(...n: Decimal.Value[]): Decimal; - static isDecimal(object: any): object is Decimal; - static ln(n: Decimal.Value): Decimal; - static log(n: Decimal.Value, base?: Decimal.Value): Decimal; - static log2(n: Decimal.Value): Decimal; - static log10(n: Decimal.Value): Decimal; - static max(...n: Decimal.Value[]): Decimal; - static min(...n: Decimal.Value[]): Decimal; - static mod(x: Decimal.Value, y: Decimal.Value): Decimal; - static mul(x: Decimal.Value, y: Decimal.Value): Decimal; - static noConflict(): Decimal.Constructor; // Browser only - static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; - static random(significantDigits?: number): Decimal; - static round(n: Decimal.Value): Decimal; - static set(object: Decimal.Config): Decimal.Constructor; - static sign(n: Decimal.Value): number; - static sin(n: Decimal.Value): Decimal; - static sinh(n: Decimal.Value): Decimal; - static sqrt(n: Decimal.Value): Decimal; - static sub(x: Decimal.Value, y: Decimal.Value): Decimal; - static sum(...n: Decimal.Value[]): Decimal; - static tan(n: Decimal.Value): Decimal; - static tanh(n: Decimal.Value): Decimal; - static trunc(n: Decimal.Value): Decimal; - - static readonly default?: Decimal.Constructor; - static readonly Decimal?: Decimal.Constructor; - - static readonly precision: number; - static readonly rounding: Decimal.Rounding; - static readonly toExpNeg: number; - static readonly toExpPos: number; - static readonly minE: number; - static readonly maxE: number; - static readonly crypto: boolean; - static readonly modulo: Decimal.Modulo; - - static readonly ROUND_UP: 0; - static readonly ROUND_DOWN: 1; - static readonly ROUND_CEIL: 2; - static readonly ROUND_FLOOR: 3; - static readonly ROUND_HALF_UP: 4; - static readonly ROUND_HALF_DOWN: 5; - static readonly ROUND_HALF_EVEN: 6; - static readonly ROUND_HALF_CEIL: 7; - static readonly ROUND_HALF_FLOOR: 8; - static readonly EUCLID: 9; -} diff --git a/build/node_modules/decimal.js/decimal.js b/build/node_modules/decimal.js/decimal.js deleted file mode 100644 index aa6526aa..00000000 --- a/build/node_modules/decimal.js/decimal.js +++ /dev/null @@ -1,4934 +0,0 @@ -;(function (globalScope) { - 'use strict'; - - - /*! - * decimal.js v10.4.3 - * An arbitrary-precision Decimal type for JavaScript. - * https://github.com/MikeMcl/decimal.js - * Copyright (c) 2022 Michael Mclaughlin - * MIT Licence - */ - - - // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ // - - - // The maximum exponent magnitude. - // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`. - var EXP_LIMIT = 9e15, // 0 to 9e15 - - // The limit on the value of `precision`, and on the value of the first argument to - // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`. - MAX_DIGITS = 1e9, // 0 to 1e9 - - // Base conversion alphabet. - NUMERALS = '0123456789abcdef', - - // The natural logarithm of 10 (1025 digits). - LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058', - - // Pi (1025 digits). - PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789', - - - // The initial configuration properties of the Decimal constructor. - DEFAULTS = { - - // These values must be integers within the stated ranges (inclusive). - // Most of these values can be changed at run-time using the `Decimal.config` method. - - // The maximum number of significant digits of the result of a calculation or base conversion. - // E.g. `Decimal.config({ precision: 20 });` - precision: 20, // 1 to MAX_DIGITS - - // The rounding mode used when rounding to `precision`. - // - // ROUND_UP 0 Away from zero. - // ROUND_DOWN 1 Towards zero. - // ROUND_CEIL 2 Towards +Infinity. - // ROUND_FLOOR 3 Towards -Infinity. - // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up. - // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. - // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. - // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. - // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. - // - // E.g. - // `Decimal.rounding = 4;` - // `Decimal.rounding = Decimal.ROUND_HALF_UP;` - rounding: 4, // 0 to 8 - - // The modulo mode used when calculating the modulus: a mod n. - // The quotient (q = a / n) is calculated according to the corresponding rounding mode. - // The remainder (r) is calculated as: r = a - n * q. - // - // UP 0 The remainder is positive if the dividend is negative, else is negative. - // DOWN 1 The remainder has the same sign as the dividend (JavaScript %). - // FLOOR 3 The remainder has the same sign as the divisor (Python %). - // HALF_EVEN 6 The IEEE 754 remainder function. - // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive. - // - // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian - // division (9) are commonly used for the modulus operation. The other rounding modes can also - // be used, but they may not give useful results. - modulo: 1, // 0 to 9 - - // The exponent value at and beneath which `toString` returns exponential notation. - // JavaScript numbers: -7 - toExpNeg: -7, // 0 to -EXP_LIMIT - - // The exponent value at and above which `toString` returns exponential notation. - // JavaScript numbers: 21 - toExpPos: 21, // 0 to EXP_LIMIT - - // The minimum exponent value, beneath which underflow to zero occurs. - // JavaScript numbers: -324 (5e-324) - minE: -EXP_LIMIT, // -1 to -EXP_LIMIT - - // The maximum exponent value, above which overflow to Infinity occurs. - // JavaScript numbers: 308 (1.7976931348623157e+308) - maxE: EXP_LIMIT, // 1 to EXP_LIMIT - - // Whether to use cryptographically-secure random number generation, if available. - crypto: false // true/false - }, - - - // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- // - - - Decimal, inexact, noConflict, quadrant, - external = true, - - decimalError = '[DecimalError] ', - invalidArgument = decimalError + 'Invalid argument: ', - precisionLimitExceeded = decimalError + 'Precision limit exceeded', - cryptoUnavailable = decimalError + 'crypto unavailable', - tag = '[object Decimal]', - - mathfloor = Math.floor, - mathpow = Math.pow, - - isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, - isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, - isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, - isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, - - BASE = 1e7, - LOG_BASE = 7, - MAX_SAFE_INTEGER = 9007199254740991, - - LN10_PRECISION = LN10.length - 1, - PI_PRECISION = PI.length - 1, - - // Decimal.prototype object - P = { toStringTag: tag }; - - - // Decimal prototype methods - - - /* - * absoluteValue abs - * ceil - * clampedTo clamp - * comparedTo cmp - * cosine cos - * cubeRoot cbrt - * decimalPlaces dp - * dividedBy div - * dividedToIntegerBy divToInt - * equals eq - * floor - * greaterThan gt - * greaterThanOrEqualTo gte - * hyperbolicCosine cosh - * hyperbolicSine sinh - * hyperbolicTangent tanh - * inverseCosine acos - * inverseHyperbolicCosine acosh - * inverseHyperbolicSine asinh - * inverseHyperbolicTangent atanh - * inverseSine asin - * inverseTangent atan - * isFinite - * isInteger isInt - * isNaN - * isNegative isNeg - * isPositive isPos - * isZero - * lessThan lt - * lessThanOrEqualTo lte - * logarithm log - * [maximum] [max] - * [minimum] [min] - * minus sub - * modulo mod - * naturalExponential exp - * naturalLogarithm ln - * negated neg - * plus add - * precision sd - * round - * sine sin - * squareRoot sqrt - * tangent tan - * times mul - * toBinary - * toDecimalPlaces toDP - * toExponential - * toFixed - * toFraction - * toHexadecimal toHex - * toNearest - * toNumber - * toOctal - * toPower pow - * toPrecision - * toSignificantDigits toSD - * toString - * truncated trunc - * valueOf toJSON - */ - - - /* - * Return a new Decimal whose value is the absolute value of this Decimal. - * - */ - P.absoluteValue = P.abs = function () { - var x = new this.constructor(this); - if (x.s < 0) x.s = 1; - return finalise(x); - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the - * direction of positive Infinity. - * - */ - P.ceil = function () { - return finalise(new this.constructor(this), this.e + 1, 2); - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal clamped to the range - * delineated by `min` and `max`. - * - * min {number|string|Decimal} - * max {number|string|Decimal} - * - */ - P.clampedTo = P.clamp = function (min, max) { - var k, - x = this, - Ctor = x.constructor; - min = new Ctor(min); - max = new Ctor(max); - if (!min.s || !max.s) return new Ctor(NaN); - if (min.gt(max)) throw Error(invalidArgument + max); - k = x.cmp(min); - return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x); - }; - - - /* - * Return - * 1 if the value of this Decimal is greater than the value of `y`, - * -1 if the value of this Decimal is less than the value of `y`, - * 0 if they have the same value, - * NaN if the value of either Decimal is NaN. - * - */ - P.comparedTo = P.cmp = function (y) { - var i, j, xdL, ydL, - x = this, - xd = x.d, - yd = (y = new x.constructor(y)).d, - xs = x.s, - ys = y.s; - - // Either NaN or ±Infinity? - if (!xd || !yd) { - return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1; - } - - // Either zero? - if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0; - - // Signs differ? - if (xs !== ys) return xs; - - // Compare exponents. - if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1; - - xdL = xd.length; - ydL = yd.length; - - // Compare digit by digit. - for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) { - if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1; - } - - // Compare lengths. - return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1; - }; - - - /* - * Return a new Decimal whose value is the cosine of the value in radians of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-1, 1] - * - * cos(0) = 1 - * cos(-0) = 1 - * cos(Infinity) = NaN - * cos(-Infinity) = NaN - * cos(NaN) = NaN - * - */ - P.cosine = P.cos = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.d) return new Ctor(NaN); - - // cos(0) = cos(-0) = 1 - if (!x.d[0]) return new Ctor(1); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; - Ctor.rounding = 1; - - x = cosine(Ctor, toLessThanHalfPi(Ctor, x)); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true); - }; - - - /* - * - * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * cbrt(0) = 0 - * cbrt(-0) = -0 - * cbrt(1) = 1 - * cbrt(-1) = -1 - * cbrt(N) = N - * cbrt(-I) = -I - * cbrt(I) = I - * - * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3)) - * - */ - P.cubeRoot = P.cbrt = function () { - var e, m, n, r, rep, s, sd, t, t3, t3plusx, - x = this, - Ctor = x.constructor; - - if (!x.isFinite() || x.isZero()) return new Ctor(x); - external = false; - - // Initial estimate. - s = x.s * mathpow(x.s * x, 1 / 3); - - // Math.cbrt underflow/overflow? - // Pass x to Math.pow as integer, then adjust the exponent of the result. - if (!s || Math.abs(s) == 1 / 0) { - n = digitsToString(x.d); - e = x.e; - - // Adjust n exponent so it is a multiple of 3 away from x exponent. - if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00'); - s = mathpow(n, 1 / 3); - - // Rarely, e may be one less than the result exponent value. - e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2)); - - if (s == 1 / 0) { - n = '5e' + e; - } else { - n = s.toExponential(); - n = n.slice(0, n.indexOf('e') + 1) + e; - } - - r = new Ctor(n); - r.s = x.s; - } else { - r = new Ctor(s.toString()); - } - - sd = (e = Ctor.precision) + 3; - - // Halley's method. - // TODO? Compare Newton's method. - for (;;) { - t = r; - t3 = t.times(t).times(t); - t3plusx = t3.plus(x); - r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1); - - // TODO? Replace with for-loop and checkRoundingDigits. - if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) { - n = n.slice(sd - 3, sd + 1); - - // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999 - // , i.e. approaching a rounding boundary, continue the iteration. - if (n == '9999' || !rep && n == '4999') { - - // On the first iteration only, check to see if rounding up gives the exact result as the - // nines may infinitely repeat. - if (!rep) { - finalise(t, e + 1, 0); - - if (t.times(t).times(t).eq(x)) { - r = t; - break; - } - } - - sd += 4; - rep = 1; - } else { - - // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result. - // If not, then there are further digits and m will be truthy. - if (!+n || !+n.slice(1) && n.charAt(0) == '5') { - - // Truncate to the first rounding digit. - finalise(r, e + 1, 1); - m = !r.times(r).times(r).eq(x); - } - - break; - } - } - } - - external = true; - - return finalise(r, e, Ctor.rounding, m); - }; - - - /* - * Return the number of decimal places of the value of this Decimal. - * - */ - P.decimalPlaces = P.dp = function () { - var w, - d = this.d, - n = NaN; - - if (d) { - w = d.length - 1; - n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE; - - // Subtract the number of trailing zeros of the last word. - w = d[w]; - if (w) for (; w % 10 == 0; w /= 10) n--; - if (n < 0) n = 0; - } - - return n; - }; - - - /* - * n / 0 = I - * n / N = N - * n / I = 0 - * 0 / n = 0 - * 0 / 0 = N - * 0 / N = N - * 0 / I = 0 - * N / n = N - * N / 0 = N - * N / N = N - * N / I = N - * I / n = I - * I / 0 = I - * I / N = N - * I / I = N - * - * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - */ - P.dividedBy = P.div = function (y) { - return divide(this, new this.constructor(y)); - }; - - - /* - * Return a new Decimal whose value is the integer part of dividing the value of this Decimal - * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`. - * - */ - P.dividedToIntegerBy = P.divToInt = function (y) { - var x = this, - Ctor = x.constructor; - return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding); - }; - - - /* - * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false. - * - */ - P.equals = P.eq = function (y) { - return this.cmp(y) === 0; - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the - * direction of negative Infinity. - * - */ - P.floor = function () { - return finalise(new this.constructor(this), this.e + 1, 3); - }; - - - /* - * Return true if the value of this Decimal is greater than the value of `y`, otherwise return - * false. - * - */ - P.greaterThan = P.gt = function (y) { - return this.cmp(y) > 0; - }; - - - /* - * Return true if the value of this Decimal is greater than or equal to the value of `y`, - * otherwise return false. - * - */ - P.greaterThanOrEqualTo = P.gte = function (y) { - var k = this.cmp(y); - return k == 1 || k === 0; - }; - - - /* - * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [1, Infinity] - * - * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ... - * - * cosh(0) = 1 - * cosh(-0) = 1 - * cosh(Infinity) = Infinity - * cosh(-Infinity) = Infinity - * cosh(NaN) = NaN - * - * x time taken (ms) result - * 1000 9 9.8503555700852349694e+433 - * 10000 25 4.4034091128314607936e+4342 - * 100000 171 1.4033316802130615897e+43429 - * 1000000 3817 1.5166076984010437725e+434294 - * 10000000 abandoned after 2 minute wait - * - * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x)) - * - */ - P.hyperbolicCosine = P.cosh = function () { - var k, n, pr, rm, len, - x = this, - Ctor = x.constructor, - one = new Ctor(1); - - if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN); - if (x.isZero()) return one; - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; - Ctor.rounding = 1; - len = x.d.length; - - // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1 - // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4)) - - // Estimate the optimum number of times to use the argument reduction. - // TODO? Estimation reused from cosine() and may not be optimal here. - if (len < 32) { - k = Math.ceil(len / 3); - n = (1 / tinyPow(4, k)).toString(); - } else { - k = 16; - n = '2.3283064365386962890625e-10'; - } - - x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true); - - // Reverse argument reduction - var cosh2_x, - i = k, - d8 = new Ctor(8); - for (; i--;) { - cosh2_x = x.times(x); - x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8)))); - } - - return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true); - }; - - - /* - * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-Infinity, Infinity] - * - * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ... - * - * sinh(0) = 0 - * sinh(-0) = -0 - * sinh(Infinity) = Infinity - * sinh(-Infinity) = -Infinity - * sinh(NaN) = NaN - * - * x time taken (ms) - * 10 2 ms - * 100 5 ms - * 1000 14 ms - * 10000 82 ms - * 100000 886 ms 1.4033316802130615897e+43429 - * 200000 2613 ms - * 300000 5407 ms - * 400000 8824 ms - * 500000 13026 ms 8.7080643612718084129e+217146 - * 1000000 48543 ms - * - * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x)) - * - */ - P.hyperbolicSine = P.sinh = function () { - var k, pr, rm, len, - x = this, - Ctor = x.constructor; - - if (!x.isFinite() || x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; - Ctor.rounding = 1; - len = x.d.length; - - if (len < 3) { - x = taylorSeries(Ctor, 2, x, x, true); - } else { - - // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x)) - // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3)) - // 3 multiplications and 1 addition - - // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x))) - // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5))) - // 4 multiplications and 2 additions - - // Estimate the optimum number of times to use the argument reduction. - k = 1.4 * Math.sqrt(len); - k = k > 16 ? 16 : k | 0; - - x = x.times(1 / tinyPow(5, k)); - x = taylorSeries(Ctor, 2, x, x, true); - - // Reverse argument reduction - var sinh2_x, - d5 = new Ctor(5), - d16 = new Ctor(16), - d20 = new Ctor(20); - for (; k--;) { - sinh2_x = x.times(x); - x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20)))); - } - } - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(x, pr, rm, true); - }; - - - /* - * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-1, 1] - * - * tanh(x) = sinh(x) / cosh(x) - * - * tanh(0) = 0 - * tanh(-0) = -0 - * tanh(Infinity) = 1 - * tanh(-Infinity) = -1 - * tanh(NaN) = NaN - * - */ - P.hyperbolicTangent = P.tanh = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(x.s); - if (x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + 7; - Ctor.rounding = 1; - - return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm); - }; - - - /* - * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of - * this Decimal. - * - * Domain: [-1, 1] - * Range: [0, pi] - * - * acos(x) = pi/2 - asin(x) - * - * acos(0) = pi/2 - * acos(-0) = pi/2 - * acos(1) = 0 - * acos(-1) = pi - * acos(1/2) = pi/3 - * acos(-1/2) = 2*pi/3 - * acos(|x| > 1) = NaN - * acos(NaN) = NaN - * - */ - P.inverseCosine = P.acos = function () { - var halfPi, - x = this, - Ctor = x.constructor, - k = x.abs().cmp(1), - pr = Ctor.precision, - rm = Ctor.rounding; - - if (k !== -1) { - return k === 0 - // |x| is 1 - ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) - // |x| > 1 or x is NaN - : new Ctor(NaN); - } - - if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5); - - // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3 - - Ctor.precision = pr + 6; - Ctor.rounding = 1; - - x = x.asin(); - halfPi = getPi(Ctor, pr + 4, rm).times(0.5); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return halfPi.minus(x); - }; - - - /* - * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the - * value of this Decimal. - * - * Domain: [1, Infinity] - * Range: [0, Infinity] - * - * acosh(x) = ln(x + sqrt(x^2 - 1)) - * - * acosh(x < 1) = NaN - * acosh(NaN) = NaN - * acosh(Infinity) = Infinity - * acosh(-Infinity) = NaN - * acosh(0) = NaN - * acosh(-0) = NaN - * acosh(1) = 0 - * acosh(-1) = NaN - * - */ - P.inverseHyperbolicCosine = P.acosh = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN); - if (!x.isFinite()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4; - Ctor.rounding = 1; - external = false; - - x = x.times(x).minus(1).sqrt().plus(x); - - external = true; - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.ln(); - }; - - - /* - * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value - * of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-Infinity, Infinity] - * - * asinh(x) = ln(x + sqrt(x^2 + 1)) - * - * asinh(NaN) = NaN - * asinh(Infinity) = Infinity - * asinh(-Infinity) = -Infinity - * asinh(0) = 0 - * asinh(-0) = -0 - * - */ - P.inverseHyperbolicSine = P.asinh = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite() || x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6; - Ctor.rounding = 1; - external = false; - - x = x.times(x).plus(1).sqrt().plus(x); - - external = true; - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.ln(); - }; - - - /* - * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the - * value of this Decimal. - * - * Domain: [-1, 1] - * Range: [-Infinity, Infinity] - * - * atanh(x) = 0.5 * ln((1 + x) / (1 - x)) - * - * atanh(|x| > 1) = NaN - * atanh(NaN) = NaN - * atanh(Infinity) = NaN - * atanh(-Infinity) = NaN - * atanh(0) = 0 - * atanh(-0) = -0 - * atanh(1) = Infinity - * atanh(-1) = -Infinity - * - */ - P.inverseHyperbolicTangent = P.atanh = function () { - var pr, rm, wpr, xsd, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(NaN); - if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN); - - pr = Ctor.precision; - rm = Ctor.rounding; - xsd = x.sd(); - - if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true); - - Ctor.precision = wpr = xsd - x.e; - - x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1); - - Ctor.precision = pr + 4; - Ctor.rounding = 1; - - x = x.ln(); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.times(0.5); - }; - - - /* - * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-pi/2, pi/2] - * - * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2))) - * - * asin(0) = 0 - * asin(-0) = -0 - * asin(1/2) = pi/6 - * asin(-1/2) = -pi/6 - * asin(1) = pi/2 - * asin(-1) = -pi/2 - * asin(|x| > 1) = NaN - * asin(NaN) = NaN - * - * TODO? Compare performance of Taylor series. - * - */ - P.inverseSine = P.asin = function () { - var halfPi, k, - pr, rm, - x = this, - Ctor = x.constructor; - - if (x.isZero()) return new Ctor(x); - - k = x.abs().cmp(1); - pr = Ctor.precision; - rm = Ctor.rounding; - - if (k !== -1) { - - // |x| is 1 - if (k === 0) { - halfPi = getPi(Ctor, pr + 4, rm).times(0.5); - halfPi.s = x.s; - return halfPi; - } - - // |x| > 1 or x is NaN - return new Ctor(NaN); - } - - // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6 - - Ctor.precision = pr + 6; - Ctor.rounding = 1; - - x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.times(2); - }; - - - /* - * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value - * of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-pi/2, pi/2] - * - * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ... - * - * atan(0) = 0 - * atan(-0) = -0 - * atan(1) = pi/4 - * atan(-1) = -pi/4 - * atan(Infinity) = pi/2 - * atan(-Infinity) = -pi/2 - * atan(NaN) = NaN - * - */ - P.inverseTangent = P.atan = function () { - var i, j, k, n, px, t, r, wpr, x2, - x = this, - Ctor = x.constructor, - pr = Ctor.precision, - rm = Ctor.rounding; - - if (!x.isFinite()) { - if (!x.s) return new Ctor(NaN); - if (pr + 4 <= PI_PRECISION) { - r = getPi(Ctor, pr + 4, rm).times(0.5); - r.s = x.s; - return r; - } - } else if (x.isZero()) { - return new Ctor(x); - } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) { - r = getPi(Ctor, pr + 4, rm).times(0.25); - r.s = x.s; - return r; - } - - Ctor.precision = wpr = pr + 10; - Ctor.rounding = 1; - - // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x); - - // Argument reduction - // Ensure |x| < 0.42 - // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2))) - - k = Math.min(28, wpr / LOG_BASE + 2 | 0); - - for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1)); - - external = false; - - j = Math.ceil(wpr / LOG_BASE); - n = 1; - x2 = x.times(x); - r = new Ctor(x); - px = x; - - // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ... - for (; i !== -1;) { - px = px.times(x2); - t = r.minus(px.div(n += 2)); - - px = px.times(x2); - r = t.plus(px.div(n += 2)); - - if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;); - } - - if (k) r = r.times(2 << (k - 1)); - - external = true; - - return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true); - }; - - - /* - * Return true if the value of this Decimal is a finite number, otherwise return false. - * - */ - P.isFinite = function () { - return !!this.d; - }; - - - /* - * Return true if the value of this Decimal is an integer, otherwise return false. - * - */ - P.isInteger = P.isInt = function () { - return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2; - }; - - - /* - * Return true if the value of this Decimal is NaN, otherwise return false. - * - */ - P.isNaN = function () { - return !this.s; - }; - - - /* - * Return true if the value of this Decimal is negative, otherwise return false. - * - */ - P.isNegative = P.isNeg = function () { - return this.s < 0; - }; - - - /* - * Return true if the value of this Decimal is positive, otherwise return false. - * - */ - P.isPositive = P.isPos = function () { - return this.s > 0; - }; - - - /* - * Return true if the value of this Decimal is 0 or -0, otherwise return false. - * - */ - P.isZero = function () { - return !!this.d && this.d[0] === 0; - }; - - - /* - * Return true if the value of this Decimal is less than `y`, otherwise return false. - * - */ - P.lessThan = P.lt = function (y) { - return this.cmp(y) < 0; - }; - - - /* - * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false. - * - */ - P.lessThanOrEqualTo = P.lte = function (y) { - return this.cmp(y) < 1; - }; - - - /* - * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * If no base is specified, return log[10](arg). - * - * log[base](arg) = ln(arg) / ln(base) - * - * The result will always be correctly rounded if the base of the log is 10, and 'almost always' - * otherwise: - * - * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen - * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error - * between the result and the correctly rounded result will be one ulp (unit in the last place). - * - * log[-b](a) = NaN - * log[0](a) = NaN - * log[1](a) = NaN - * log[NaN](a) = NaN - * log[Infinity](a) = NaN - * log[b](0) = -Infinity - * log[b](-0) = -Infinity - * log[b](-a) = NaN - * log[b](1) = 0 - * log[b](Infinity) = Infinity - * log[b](NaN) = NaN - * - * [base] {number|string|Decimal} The base of the logarithm. - * - */ - P.logarithm = P.log = function (base) { - var isBase10, d, denominator, k, inf, num, sd, r, - arg = this, - Ctor = arg.constructor, - pr = Ctor.precision, - rm = Ctor.rounding, - guard = 5; - - // Default base is 10. - if (base == null) { - base = new Ctor(10); - isBase10 = true; - } else { - base = new Ctor(base); - d = base.d; - - // Return NaN if base is negative, or non-finite, or is 0 or 1. - if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN); - - isBase10 = base.eq(10); - } - - d = arg.d; - - // Is arg negative, non-finite, 0 or 1? - if (arg.s < 0 || !d || !d[0] || arg.eq(1)) { - return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0); - } - - // The result will have a non-terminating decimal expansion if base is 10 and arg is not an - // integer power of 10. - if (isBase10) { - if (d.length > 1) { - inf = true; - } else { - for (k = d[0]; k % 10 === 0;) k /= 10; - inf = k !== 1; - } - } - - external = false; - sd = pr + guard; - num = naturalLogarithm(arg, sd); - denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); - - // The result will have 5 rounding digits. - r = divide(num, denominator, sd, 1); - - // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000, - // calculate 10 further digits. - // - // If the result is known to have an infinite decimal expansion, repeat this until it is clear - // that the result is above or below the boundary. Otherwise, if after calculating the 10 - // further digits, the last 14 are nines, round up and assume the result is exact. - // Also assume the result is exact if the last 14 are zero. - // - // Example of a result that will be incorrectly rounded: - // log[1048576](4503599627370502) = 2.60000000000000009610279511444746... - // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it - // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so - // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal - // place is still 2.6. - if (checkRoundingDigits(r.d, k = pr, rm)) { - - do { - sd += 10; - num = naturalLogarithm(arg, sd); - denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); - r = divide(num, denominator, sd, 1); - - if (!inf) { - - // Check for 14 nines from the 2nd rounding digit, as the first may be 4. - if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) { - r = finalise(r, pr + 1, 0); - } - - break; - } - } while (checkRoundingDigits(r.d, k += 10, rm)); - } - - external = true; - - return finalise(r, pr, rm); - }; - - - /* - * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal. - * - * arguments {number|string|Decimal} - * - P.max = function () { - Array.prototype.push.call(arguments, this); - return maxOrMin(this.constructor, arguments, 'lt'); - }; - */ - - - /* - * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal. - * - * arguments {number|string|Decimal} - * - P.min = function () { - Array.prototype.push.call(arguments, this); - return maxOrMin(this.constructor, arguments, 'gt'); - }; - */ - - - /* - * n - 0 = n - * n - N = N - * n - I = -I - * 0 - n = -n - * 0 - 0 = 0 - * 0 - N = N - * 0 - I = -I - * N - n = N - * N - 0 = N - * N - N = N - * N - I = N - * I - n = I - * I - 0 = I - * I - N = N - * I - I = N - * - * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - */ - P.minus = P.sub = function (y) { - var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd, - x = this, - Ctor = x.constructor; - - y = new Ctor(y); - - // If either is not finite... - if (!x.d || !y.d) { - - // Return NaN if either is NaN. - if (!x.s || !y.s) y = new Ctor(NaN); - - // Return y negated if x is finite and y is ±Infinity. - else if (x.d) y.s = -y.s; - - // Return x if y is finite and x is ±Infinity. - // Return x if both are ±Infinity with different signs. - // Return NaN if both are ±Infinity with the same sign. - else y = new Ctor(y.d || x.s !== y.s ? x : NaN); - - return y; - } - - // If signs differ... - if (x.s != y.s) { - y.s = -y.s; - return x.plus(y); - } - - xd = x.d; - yd = y.d; - pr = Ctor.precision; - rm = Ctor.rounding; - - // If either is zero... - if (!xd[0] || !yd[0]) { - - // Return y negated if x is zero and y is non-zero. - if (yd[0]) y.s = -y.s; - - // Return x if y is zero and x is non-zero. - else if (xd[0]) y = new Ctor(x); - - // Return zero if both are zero. - // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity. - else return new Ctor(rm === 3 ? -0 : 0); - - return external ? finalise(y, pr, rm) : y; - } - - // x and y are finite, non-zero numbers with the same sign. - - // Calculate base 1e7 exponents. - e = mathfloor(y.e / LOG_BASE); - xe = mathfloor(x.e / LOG_BASE); - - xd = xd.slice(); - k = xe - e; - - // If base 1e7 exponents differ... - if (k) { - xLTy = k < 0; - - if (xLTy) { - d = xd; - k = -k; - len = yd.length; - } else { - d = yd; - e = xe; - len = xd.length; - } - - // Numbers with massively different exponents would result in a very high number of - // zeros needing to be prepended, but this can be avoided while still ensuring correct - // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`. - i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2; - - if (k > i) { - k = i; - d.length = 1; - } - - // Prepend zeros to equalise exponents. - d.reverse(); - for (i = k; i--;) d.push(0); - d.reverse(); - - // Base 1e7 exponents equal. - } else { - - // Check digits to determine which is the bigger number. - - i = xd.length; - len = yd.length; - xLTy = i < len; - if (xLTy) len = i; - - for (i = 0; i < len; i++) { - if (xd[i] != yd[i]) { - xLTy = xd[i] < yd[i]; - break; - } - } - - k = 0; - } - - if (xLTy) { - d = xd; - xd = yd; - yd = d; - y.s = -y.s; - } - - len = xd.length; - - // Append zeros to `xd` if shorter. - // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length. - for (i = yd.length - len; i > 0; --i) xd[len++] = 0; - - // Subtract yd from xd. - for (i = yd.length; i > k;) { - - if (xd[--i] < yd[i]) { - for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1; - --xd[j]; - xd[i] += BASE; - } - - xd[i] -= yd[i]; - } - - // Remove trailing zeros. - for (; xd[--len] === 0;) xd.pop(); - - // Remove leading zeros and adjust exponent accordingly. - for (; xd[0] === 0; xd.shift()) --e; - - // Zero? - if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0); - - y.d = xd; - y.e = getBase10Exponent(xd, e); - - return external ? finalise(y, pr, rm) : y; - }; - - - /* - * n % 0 = N - * n % N = N - * n % I = n - * 0 % n = 0 - * -0 % n = -0 - * 0 % 0 = N - * 0 % N = N - * 0 % I = 0 - * N % n = N - * N % 0 = N - * N % N = N - * N % I = N - * I % n = N - * I % 0 = N - * I % N = N - * I % I = N - * - * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * The result depends on the modulo mode. - * - */ - P.modulo = P.mod = function (y) { - var q, - x = this, - Ctor = x.constructor; - - y = new Ctor(y); - - // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0. - if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); - - // Return x if y is ±Infinity or x is ±0. - if (!y.d || x.d && !x.d[0]) { - return finalise(new Ctor(x), Ctor.precision, Ctor.rounding); - } - - // Prevent rounding of intermediate calculations. - external = false; - - if (Ctor.modulo == 9) { - - // Euclidian division: q = sign(y) * floor(x / abs(y)) - // result = x - q * y where 0 <= result < abs(y) - q = divide(x, y.abs(), 0, 3, 1); - q.s *= y.s; - } else { - q = divide(x, y, 0, Ctor.modulo, 1); - } - - q = q.times(y); - - external = true; - - return x.minus(q); - }; - - - /* - * Return a new Decimal whose value is the natural exponential of the value of this Decimal, - * i.e. the base e raised to the power the value of this Decimal, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - */ - P.naturalExponential = P.exp = function () { - return naturalExponential(this); - }; - - - /* - * Return a new Decimal whose value is the natural logarithm of the value of this Decimal, - * rounded to `precision` significant digits using rounding mode `rounding`. - * - */ - P.naturalLogarithm = P.ln = function () { - return naturalLogarithm(this); - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by - * -1. - * - */ - P.negated = P.neg = function () { - var x = new this.constructor(this); - x.s = -x.s; - return finalise(x); - }; - - - /* - * n + 0 = n - * n + N = N - * n + I = I - * 0 + n = n - * 0 + 0 = 0 - * 0 + N = N - * 0 + I = I - * N + n = N - * N + 0 = N - * N + N = N - * N + I = N - * I + n = I - * I + 0 = I - * I + N = N - * I + I = I - * - * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - */ - P.plus = P.add = function (y) { - var carry, d, e, i, k, len, pr, rm, xd, yd, - x = this, - Ctor = x.constructor; - - y = new Ctor(y); - - // If either is not finite... - if (!x.d || !y.d) { - - // Return NaN if either is NaN. - if (!x.s || !y.s) y = new Ctor(NaN); - - // Return x if y is finite and x is ±Infinity. - // Return x if both are ±Infinity with the same sign. - // Return NaN if both are ±Infinity with different signs. - // Return y if x is finite and y is ±Infinity. - else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN); - - return y; - } - - // If signs differ... - if (x.s != y.s) { - y.s = -y.s; - return x.minus(y); - } - - xd = x.d; - yd = y.d; - pr = Ctor.precision; - rm = Ctor.rounding; - - // If either is zero... - if (!xd[0] || !yd[0]) { - - // Return x if y is zero. - // Return y if y is non-zero. - if (!yd[0]) y = new Ctor(x); - - return external ? finalise(y, pr, rm) : y; - } - - // x and y are finite, non-zero numbers with the same sign. - - // Calculate base 1e7 exponents. - k = mathfloor(x.e / LOG_BASE); - e = mathfloor(y.e / LOG_BASE); - - xd = xd.slice(); - i = k - e; - - // If base 1e7 exponents differ... - if (i) { - - if (i < 0) { - d = xd; - i = -i; - len = yd.length; - } else { - d = yd; - e = k; - len = xd.length; - } - - // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1. - k = Math.ceil(pr / LOG_BASE); - len = k > len ? k + 1 : len + 1; - - if (i > len) { - i = len; - d.length = 1; - } - - // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts. - d.reverse(); - for (; i--;) d.push(0); - d.reverse(); - } - - len = xd.length; - i = yd.length; - - // If yd is longer than xd, swap xd and yd so xd points to the longer array. - if (len - i < 0) { - i = len; - d = yd; - yd = xd; - xd = d; - } - - // Only start adding at yd.length - 1 as the further digits of xd can be left as they are. - for (carry = 0; i;) { - carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0; - xd[i] %= BASE; - } - - if (carry) { - xd.unshift(carry); - ++e; - } - - // Remove trailing zeros. - // No need to check for zero, as +x + +y != 0 && -x + -y != 0 - for (len = xd.length; xd[--len] == 0;) xd.pop(); - - y.d = xd; - y.e = getBase10Exponent(xd, e); - - return external ? finalise(y, pr, rm) : y; - }; - - - /* - * Return the number of significant digits of the value of this Decimal. - * - * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0. - * - */ - P.precision = P.sd = function (z) { - var k, - x = this; - - if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z); - - if (x.d) { - k = getPrecision(x.d); - if (z && x.e + 1 > k) k = x.e + 1; - } else { - k = NaN; - } - - return k; - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using - * rounding mode `rounding`. - * - */ - P.round = function () { - var x = this, - Ctor = x.constructor; - - return finalise(new Ctor(x), x.e + 1, Ctor.rounding); - }; - - - /* - * Return a new Decimal whose value is the sine of the value in radians of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-1, 1] - * - * sin(x) = x - x^3/3! + x^5/5! - ... - * - * sin(0) = 0 - * sin(-0) = -0 - * sin(Infinity) = NaN - * sin(-Infinity) = NaN - * sin(NaN) = NaN - * - */ - P.sine = P.sin = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(NaN); - if (x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; - Ctor.rounding = 1; - - x = sine(Ctor, toLessThanHalfPi(Ctor, x)); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true); - }; - - - /* - * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * sqrt(-n) = N - * sqrt(N) = N - * sqrt(-I) = N - * sqrt(I) = I - * sqrt(0) = 0 - * sqrt(-0) = -0 - * - */ - P.squareRoot = P.sqrt = function () { - var m, n, sd, r, rep, t, - x = this, - d = x.d, - e = x.e, - s = x.s, - Ctor = x.constructor; - - // Negative/NaN/Infinity/zero? - if (s !== 1 || !d || !d[0]) { - return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0); - } - - external = false; - - // Initial estimate. - s = Math.sqrt(+x); - - // Math.sqrt underflow/overflow? - // Pass x to Math.sqrt as integer, then adjust the exponent of the result. - if (s == 0 || s == 1 / 0) { - n = digitsToString(d); - - if ((n.length + e) % 2 == 0) n += '0'; - s = Math.sqrt(n); - e = mathfloor((e + 1) / 2) - (e < 0 || e % 2); - - if (s == 1 / 0) { - n = '5e' + e; - } else { - n = s.toExponential(); - n = n.slice(0, n.indexOf('e') + 1) + e; - } - - r = new Ctor(n); - } else { - r = new Ctor(s.toString()); - } - - sd = (e = Ctor.precision) + 3; - - // Newton-Raphson iteration. - for (;;) { - t = r; - r = t.plus(divide(x, t, sd + 2, 1)).times(0.5); - - // TODO? Replace with for-loop and checkRoundingDigits. - if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) { - n = n.slice(sd - 3, sd + 1); - - // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or - // 4999, i.e. approaching a rounding boundary, continue the iteration. - if (n == '9999' || !rep && n == '4999') { - - // On the first iteration only, check to see if rounding up gives the exact result as the - // nines may infinitely repeat. - if (!rep) { - finalise(t, e + 1, 0); - - if (t.times(t).eq(x)) { - r = t; - break; - } - } - - sd += 4; - rep = 1; - } else { - - // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result. - // If not, then there are further digits and m will be truthy. - if (!+n || !+n.slice(1) && n.charAt(0) == '5') { - - // Truncate to the first rounding digit. - finalise(r, e + 1, 1); - m = !r.times(r).eq(x); - } - - break; - } - } - } - - external = true; - - return finalise(r, e, Ctor.rounding, m); - }; - - - /* - * Return a new Decimal whose value is the tangent of the value in radians of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-Infinity, Infinity] - * - * tan(0) = 0 - * tan(-0) = -0 - * tan(Infinity) = NaN - * tan(-Infinity) = NaN - * tan(NaN) = NaN - * - */ - P.tangent = P.tan = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(NaN); - if (x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + 10; - Ctor.rounding = 1; - - x = x.sin(); - x.s = 1; - x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true); - }; - - - /* - * n * 0 = 0 - * n * N = N - * n * I = I - * 0 * n = 0 - * 0 * 0 = 0 - * 0 * N = N - * 0 * I = N - * N * n = N - * N * 0 = N - * N * N = N - * N * I = N - * I * n = I - * I * 0 = N - * I * N = N - * I * I = I - * - * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - */ - P.times = P.mul = function (y) { - var carry, e, i, k, r, rL, t, xdL, ydL, - x = this, - Ctor = x.constructor, - xd = x.d, - yd = (y = new Ctor(y)).d; - - y.s *= x.s; - - // If either is NaN, ±Infinity or ±0... - if (!xd || !xd[0] || !yd || !yd[0]) { - - return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd - - // Return NaN if either is NaN. - // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity. - ? NaN - - // Return ±Infinity if either is ±Infinity. - // Return ±0 if either is ±0. - : !xd || !yd ? y.s / 0 : y.s * 0); - } - - e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE); - xdL = xd.length; - ydL = yd.length; - - // Ensure xd points to the longer array. - if (xdL < ydL) { - r = xd; - xd = yd; - yd = r; - rL = xdL; - xdL = ydL; - ydL = rL; - } - - // Initialise the result array with zeros. - r = []; - rL = xdL + ydL; - for (i = rL; i--;) r.push(0); - - // Multiply! - for (i = ydL; --i >= 0;) { - carry = 0; - for (k = xdL + i; k > i;) { - t = r[k] + yd[i] * xd[k - i - 1] + carry; - r[k--] = t % BASE | 0; - carry = t / BASE | 0; - } - - r[k] = (r[k] + carry) % BASE | 0; - } - - // Remove trailing zeros. - for (; !r[--rL];) r.pop(); - - if (carry) ++e; - else r.shift(); - - y.d = r; - y.e = getBase10Exponent(r, e); - - return external ? finalise(y, Ctor.precision, Ctor.rounding) : y; - }; - - - /* - * Return a string representing the value of this Decimal in base 2, round to `sd` significant - * digits using rounding mode `rm`. - * - * If the optional `sd` argument is present then return binary exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ - P.toBinary = function (sd, rm) { - return toStringBinary(this, 2, sd, rm); - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp` - * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted. - * - * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal. - * - * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ - P.toDecimalPlaces = P.toDP = function (dp, rm) { - var x = this, - Ctor = x.constructor; - - x = new Ctor(x); - if (dp === void 0) return x; - - checkInt32(dp, 0, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - return finalise(x, dp + x.e + 1, rm); - }; - - - /* - * Return a string representing the value of this Decimal in exponential notation rounded to - * `dp` fixed decimal places using rounding mode `rounding`. - * - * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ - P.toExponential = function (dp, rm) { - var str, - x = this, - Ctor = x.constructor; - - if (dp === void 0) { - str = finiteToString(x, true); - } else { - checkInt32(dp, 0, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - x = finalise(new Ctor(x), dp + 1, rm); - str = finiteToString(x, true, dp + 1); - } - - return x.isNeg() && !x.isZero() ? '-' + str : str; - }; - - - /* - * Return a string representing the value of this Decimal in normal (fixed-point) notation to - * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is - * omitted. - * - * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'. - * - * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. - * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. - * (-0).toFixed(3) is '0.000'. - * (-0.5).toFixed(0) is '-0'. - * - */ - P.toFixed = function (dp, rm) { - var str, y, - x = this, - Ctor = x.constructor; - - if (dp === void 0) { - str = finiteToString(x); - } else { - checkInt32(dp, 0, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - y = finalise(new Ctor(x), dp + x.e + 1, rm); - str = finiteToString(y, false, dp + y.e + 1); - } - - // To determine whether to add the minus sign look at the value before it was rounded, - // i.e. look at `x` rather than `y`. - return x.isNeg() && !x.isZero() ? '-' + str : str; - }; - - - /* - * Return an array representing the value of this Decimal as a simple fraction with an integer - * numerator and an integer denominator. - * - * The denominator will be a positive non-zero value less than or equal to the specified maximum - * denominator. If a maximum denominator is not specified, the denominator will be the lowest - * value necessary to represent the number exactly. - * - * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity. - * - */ - P.toFraction = function (maxD) { - var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r, - x = this, - xd = x.d, - Ctor = x.constructor; - - if (!xd) return new Ctor(x); - - n1 = d0 = new Ctor(1); - d1 = n0 = new Ctor(0); - - d = new Ctor(d1); - e = d.e = getPrecision(xd) - x.e - 1; - k = e % LOG_BASE; - d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k); - - if (maxD == null) { - - // d is 10**e, the minimum max-denominator needed. - maxD = e > 0 ? d : n1; - } else { - n = new Ctor(maxD); - if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n); - maxD = n.gt(d) ? (e > 0 ? d : n1) : n; - } - - external = false; - n = new Ctor(digitsToString(xd)); - pr = Ctor.precision; - Ctor.precision = e = xd.length * LOG_BASE * 2; - - for (;;) { - q = divide(n, d, 0, 1, 1); - d2 = d0.plus(q.times(d1)); - if (d2.cmp(maxD) == 1) break; - d0 = d1; - d1 = d2; - d2 = n1; - n1 = n0.plus(q.times(d2)); - n0 = d2; - d2 = d; - d = n.minus(q.times(d2)); - n = d2; - } - - d2 = divide(maxD.minus(d0), d1, 0, 1, 1); - n0 = n0.plus(d2.times(n1)); - d0 = d0.plus(d2.times(d1)); - n0.s = n1.s = x.s; - - // Determine which fraction is closer to x, n0/d0 or n1/d1? - r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1 - ? [n1, d1] : [n0, d0]; - - Ctor.precision = pr; - external = true; - - return r; - }; - - - /* - * Return a string representing the value of this Decimal in base 16, round to `sd` significant - * digits using rounding mode `rm`. - * - * If the optional `sd` argument is present then return binary exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ - P.toHexadecimal = P.toHex = function (sd, rm) { - return toStringBinary(this, 16, sd, rm); - }; - - - /* - * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding - * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal. - * - * The return value will always have the same sign as this Decimal, unless either this Decimal - * or `y` is NaN, in which case the return value will be also be NaN. - * - * The return value is not affected by the value of `precision`. - * - * y {number|string|Decimal} The magnitude to round to a multiple of. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * 'toNearest() rounding mode not an integer: {rm}' - * 'toNearest() rounding mode out of range: {rm}' - * - */ - P.toNearest = function (y, rm) { - var x = this, - Ctor = x.constructor; - - x = new Ctor(x); - - if (y == null) { - - // If x is not finite, return x. - if (!x.d) return x; - - y = new Ctor(1); - rm = Ctor.rounding; - } else { - y = new Ctor(y); - if (rm === void 0) { - rm = Ctor.rounding; - } else { - checkInt32(rm, 0, 8); - } - - // If x is not finite, return x if y is not NaN, else NaN. - if (!x.d) return y.s ? x : y; - - // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN. - if (!y.d) { - if (y.s) y.s = x.s; - return y; - } - } - - // If y is not zero, calculate the nearest multiple of y to x. - if (y.d[0]) { - external = false; - x = divide(x, y, 0, rm, 1).times(y); - external = true; - finalise(x); - - // If y is zero, return zero with the sign of x. - } else { - y.s = x.s; - x = y; - } - - return x; - }; - - - /* - * Return the value of this Decimal converted to a number primitive. - * Zero keeps its sign. - * - */ - P.toNumber = function () { - return +this; - }; - - - /* - * Return a string representing the value of this Decimal in base 8, round to `sd` significant - * digits using rounding mode `rm`. - * - * If the optional `sd` argument is present then return binary exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ - P.toOctal = function (sd, rm) { - return toStringBinary(this, 8, sd, rm); - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded - * to `precision` significant digits using rounding mode `rounding`. - * - * ECMAScript compliant. - * - * pow(x, NaN) = NaN - * pow(x, ±0) = 1 - - * pow(NaN, non-zero) = NaN - * pow(abs(x) > 1, +Infinity) = +Infinity - * pow(abs(x) > 1, -Infinity) = +0 - * pow(abs(x) == 1, ±Infinity) = NaN - * pow(abs(x) < 1, +Infinity) = +0 - * pow(abs(x) < 1, -Infinity) = +Infinity - * pow(+Infinity, y > 0) = +Infinity - * pow(+Infinity, y < 0) = +0 - * pow(-Infinity, odd integer > 0) = -Infinity - * pow(-Infinity, even integer > 0) = +Infinity - * pow(-Infinity, odd integer < 0) = -0 - * pow(-Infinity, even integer < 0) = +0 - * pow(+0, y > 0) = +0 - * pow(+0, y < 0) = +Infinity - * pow(-0, odd integer > 0) = -0 - * pow(-0, even integer > 0) = +0 - * pow(-0, odd integer < 0) = -Infinity - * pow(-0, even integer < 0) = +Infinity - * pow(finite x < 0, finite non-integer) = NaN - * - * For non-integer or very large exponents pow(x, y) is calculated using - * - * x^y = exp(y*ln(x)) - * - * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the - * probability of an incorrectly rounded result - * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14 - * i.e. 1 in 250,000,000,000,000 - * - * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place). - * - * y {number|string|Decimal} The power to which to raise this Decimal. - * - */ - P.toPower = P.pow = function (y) { - var e, k, pr, r, rm, s, - x = this, - Ctor = x.constructor, - yn = +(y = new Ctor(y)); - - // Either ±Infinity, NaN or ±0? - if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn)); - - x = new Ctor(x); - - if (x.eq(1)) return x; - - pr = Ctor.precision; - rm = Ctor.rounding; - - if (y.eq(1)) return finalise(x, pr, rm); - - // y exponent - e = mathfloor(y.e / LOG_BASE); - - // If y is a small integer use the 'exponentiation by squaring' algorithm. - if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) { - r = intPow(Ctor, x, k, pr); - return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm); - } - - s = x.s; - - // if x is negative - if (s < 0) { - - // if y is not an integer - if (e < y.d.length - 1) return new Ctor(NaN); - - // Result is positive if x is negative and the last digit of integer y is even. - if ((y.d[e] & 1) == 0) s = 1; - - // if x.eq(-1) - if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) { - x.s = s; - return x; - } - } - - // Estimate result exponent. - // x^y = 10^e, where e = y * log10(x) - // log10(x) = log10(x_significand) + x_exponent - // log10(x_significand) = ln(x_significand) / ln(10) - k = mathpow(+x, yn); - e = k == 0 || !isFinite(k) - ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1)) - : new Ctor(k + '').e; - - // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1. - - // Overflow/underflow? - if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0); - - external = false; - Ctor.rounding = x.s = 1; - - // Estimate the extra guard digits needed to ensure five correct rounding digits from - // naturalLogarithm(x). Example of failure without these extra digits (precision: 10): - // new Decimal(2.32456).pow('2087987436534566.46411') - // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815 - k = Math.min(12, (e + '').length); - - // r = x^y = exp(y*ln(x)) - r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr); - - // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40) - if (r.d) { - - // Truncate to the required precision plus five rounding digits. - r = finalise(r, pr + 5, 1); - - // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate - // the result. - if (checkRoundingDigits(r.d, pr, rm)) { - e = pr + 10; - - // Truncate to the increased precision plus five rounding digits. - r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1); - - // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9). - if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) { - r = finalise(r, pr + 1, 0); - } - } - } - - r.s = s; - external = true; - Ctor.rounding = rm; - - return finalise(r, pr, rm); - }; - - - /* - * Return a string representing the value of this Decimal rounded to `sd` significant digits - * using rounding mode `rounding`. - * - * Return exponential notation if `sd` is less than the number of digits necessary to represent - * the integer part of the value in normal notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ - P.toPrecision = function (sd, rm) { - var str, - x = this, - Ctor = x.constructor; - - if (sd === void 0) { - str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); - } else { - checkInt32(sd, 1, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - x = finalise(new Ctor(x), sd, rm); - str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd); - } - - return x.isNeg() && !x.isZero() ? '-' + str : str; - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd` - * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if - * omitted. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * 'toSD() digits out of range: {sd}' - * 'toSD() digits not an integer: {sd}' - * 'toSD() rounding mode not an integer: {rm}' - * 'toSD() rounding mode out of range: {rm}' - * - */ - P.toSignificantDigits = P.toSD = function (sd, rm) { - var x = this, - Ctor = x.constructor; - - if (sd === void 0) { - sd = Ctor.precision; - rm = Ctor.rounding; - } else { - checkInt32(sd, 1, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - } - - return finalise(new Ctor(x), sd, rm); - }; - - - /* - * Return a string representing the value of this Decimal. - * - * Return exponential notation if this Decimal has a positive exponent equal to or greater than - * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. - * - */ - P.toString = function () { - var x = this, - Ctor = x.constructor, - str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); - - return x.isNeg() && !x.isZero() ? '-' + str : str; - }; - - - /* - * Return a new Decimal whose value is the value of this Decimal truncated to a whole number. - * - */ - P.truncated = P.trunc = function () { - return finalise(new this.constructor(this), this.e + 1, 1); - }; - - - /* - * Return a string representing the value of this Decimal. - * Unlike `toString`, negative zero will include the minus sign. - * - */ - P.valueOf = P.toJSON = function () { - var x = this, - Ctor = x.constructor, - str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); - - return x.isNeg() ? '-' + str : str; - }; - - - // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers. - - - /* - * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower, - * finiteToString, naturalExponential, naturalLogarithm - * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest, - * P.toPrecision, P.toSignificantDigits, toStringBinary, random - * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm - * convertBase toStringBinary, parseOther - * cos P.cos - * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy, - * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction, - * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm, - * taylorSeries, atan2, parseOther - * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh, - * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus, - * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot, - * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed, - * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits, - * P.truncated, divide, getLn10, getPi, naturalExponential, - * naturalLogarithm, ceil, floor, round, trunc - * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf, - * toStringBinary - * getBase10Exponent P.minus, P.plus, P.times, parseOther - * getLn10 P.logarithm, naturalLogarithm - * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2 - * getPrecision P.precision, P.toFraction - * getZeroString digitsToString, finiteToString - * intPow P.toPower, parseOther - * isOdd toLessThanHalfPi - * maxOrMin max, min - * naturalExponential P.naturalExponential, P.toPower - * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm, - * P.toPower, naturalExponential - * nonFiniteToString finiteToString, toStringBinary - * parseDecimal Decimal - * parseOther Decimal - * sin P.sin - * taylorSeries P.cosh, P.sinh, cos, sin - * toLessThanHalfPi P.cos, P.sin - * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal - * truncate intPow - * - * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi, - * naturalLogarithm, config, parseOther, random, Decimal - */ - - - function digitsToString(d) { - var i, k, ws, - indexOfLastWord = d.length - 1, - str = '', - w = d[0]; - - if (indexOfLastWord > 0) { - str += w; - for (i = 1; i < indexOfLastWord; i++) { - ws = d[i] + ''; - k = LOG_BASE - ws.length; - if (k) str += getZeroString(k); - str += ws; - } - - w = d[i]; - ws = w + ''; - k = LOG_BASE - ws.length; - if (k) str += getZeroString(k); - } else if (w === 0) { - return '0'; - } - - // Remove trailing zeros of last w. - for (; w % 10 === 0;) w /= 10; - - return str + w; - } - - - function checkInt32(i, min, max) { - if (i !== ~~i || i < min || i > max) { - throw Error(invalidArgument + i); - } - } - - - /* - * Check 5 rounding digits if `repeating` is null, 4 otherwise. - * `repeating == null` if caller is `log` or `pow`, - * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`. - */ - function checkRoundingDigits(d, i, rm, repeating) { - var di, k, r, rd; - - // Get the length of the first word of the array d. - for (k = d[0]; k >= 10; k /= 10) --i; - - // Is the rounding digit in the first word of d? - if (--i < 0) { - i += LOG_BASE; - di = 0; - } else { - di = Math.ceil((i + 1) / LOG_BASE); - i %= LOG_BASE; - } - - // i is the index (0 - 6) of the rounding digit. - // E.g. if within the word 3487563 the first rounding digit is 5, - // then i = 4, k = 1000, rd = 3487563 % 1000 = 563 - k = mathpow(10, LOG_BASE - i); - rd = d[di] % k | 0; - - if (repeating == null) { - if (i < 3) { - if (i == 0) rd = rd / 100 | 0; - else if (i == 1) rd = rd / 10 | 0; - r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0; - } else { - r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && - (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 || - (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0; - } - } else { - if (i < 4) { - if (i == 0) rd = rd / 1000 | 0; - else if (i == 1) rd = rd / 100 | 0; - else if (i == 2) rd = rd / 10 | 0; - r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999; - } else { - r = ((repeating || rm < 4) && rd + 1 == k || - (!repeating && rm > 3) && rd + 1 == k / 2) && - (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1; - } - } - - return r; - } - - - // Convert string of `baseIn` to an array of numbers of `baseOut`. - // Eg. convertBase('255', 10, 16) returns [15, 15]. - // Eg. convertBase('ff', 16, 10) returns [2, 5, 5]. - function convertBase(str, baseIn, baseOut) { - var j, - arr = [0], - arrL, - i = 0, - strL = str.length; - - for (; i < strL;) { - for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn; - arr[0] += NUMERALS.indexOf(str.charAt(i++)); - for (j = 0; j < arr.length; j++) { - if (arr[j] > baseOut - 1) { - if (arr[j + 1] === void 0) arr[j + 1] = 0; - arr[j + 1] += arr[j] / baseOut | 0; - arr[j] %= baseOut; - } - } - } - - return arr.reverse(); - } - - - /* - * cos(x) = 1 - x^2/2! + x^4/4! - ... - * |x| < pi/2 - * - */ - function cosine(Ctor, x) { - var k, len, y; - - if (x.isZero()) return x; - - // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1 - // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1 - - // Estimate the optimum number of times to use the argument reduction. - len = x.d.length; - if (len < 32) { - k = Math.ceil(len / 3); - y = (1 / tinyPow(4, k)).toString(); - } else { - k = 16; - y = '2.3283064365386962890625e-10'; - } - - Ctor.precision += k; - - x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1)); - - // Reverse argument reduction - for (var i = k; i--;) { - var cos2x = x.times(x); - x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1); - } - - Ctor.precision -= k; - - return x; - } - - - /* - * Perform division in the specified base. - */ - var divide = (function () { - - // Assumes non-zero x and k, and hence non-zero result. - function multiplyInteger(x, k, base) { - var temp, - carry = 0, - i = x.length; - - for (x = x.slice(); i--;) { - temp = x[i] * k + carry; - x[i] = temp % base | 0; - carry = temp / base | 0; - } - - if (carry) x.unshift(carry); - - return x; - } - - function compare(a, b, aL, bL) { - var i, r; - - if (aL != bL) { - r = aL > bL ? 1 : -1; - } else { - for (i = r = 0; i < aL; i++) { - if (a[i] != b[i]) { - r = a[i] > b[i] ? 1 : -1; - break; - } - } - } - - return r; - } - - function subtract(a, b, aL, base) { - var i = 0; - - // Subtract b from a. - for (; aL--;) { - a[aL] -= i; - i = a[aL] < b[aL] ? 1 : 0; - a[aL] = i * base + a[aL] - b[aL]; - } - - // Remove leading zeros. - for (; !a[0] && a.length > 1;) a.shift(); - } - - return function (x, y, pr, rm, dp, base) { - var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, - yL, yz, - Ctor = x.constructor, - sign = x.s == y.s ? 1 : -1, - xd = x.d, - yd = y.d; - - // Either NaN, Infinity or 0? - if (!xd || !xd[0] || !yd || !yd[0]) { - - return new Ctor(// Return NaN if either NaN, or both Infinity or 0. - !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : - - // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0. - xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0); - } - - if (base) { - logBase = 1; - e = x.e - y.e; - } else { - base = BASE; - logBase = LOG_BASE; - e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase); - } - - yL = yd.length; - xL = xd.length; - q = new Ctor(sign); - qd = q.d = []; - - // Result exponent may be one less than e. - // The digit array of a Decimal from toStringBinary may have trailing zeros. - for (i = 0; yd[i] == (xd[i] || 0); i++); - - if (yd[i] > (xd[i] || 0)) e--; - - if (pr == null) { - sd = pr = Ctor.precision; - rm = Ctor.rounding; - } else if (dp) { - sd = pr + (x.e - y.e) + 1; - } else { - sd = pr; - } - - if (sd < 0) { - qd.push(1); - more = true; - } else { - - // Convert precision in number of base 10 digits to base 1e7 digits. - sd = sd / logBase + 2 | 0; - i = 0; - - // divisor < 1e7 - if (yL == 1) { - k = 0; - yd = yd[0]; - sd++; - - // k is the carry. - for (; (i < xL || k) && sd--; i++) { - t = k * base + (xd[i] || 0); - qd[i] = t / yd | 0; - k = t % yd | 0; - } - - more = k || i < xL; - - // divisor >= 1e7 - } else { - - // Normalise xd and yd so highest order digit of yd is >= base/2 - k = base / (yd[0] + 1) | 0; - - if (k > 1) { - yd = multiplyInteger(yd, k, base); - xd = multiplyInteger(xd, k, base); - yL = yd.length; - xL = xd.length; - } - - xi = yL; - rem = xd.slice(0, yL); - remL = rem.length; - - // Add zeros to make remainder as long as divisor. - for (; remL < yL;) rem[remL++] = 0; - - yz = yd.slice(); - yz.unshift(0); - yd0 = yd[0]; - - if (yd[1] >= base / 2) ++yd0; - - do { - k = 0; - - // Compare divisor and remainder. - cmp = compare(yd, rem, yL, remL); - - // If divisor < remainder. - if (cmp < 0) { - - // Calculate trial digit, k. - rem0 = rem[0]; - if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); - - // k will be how many times the divisor goes into the current remainder. - k = rem0 / yd0 | 0; - - // Algorithm: - // 1. product = divisor * trial digit (k) - // 2. if product > remainder: product -= divisor, k-- - // 3. remainder -= product - // 4. if product was < remainder at 2: - // 5. compare new remainder and divisor - // 6. If remainder > divisor: remainder -= divisor, k++ - - if (k > 1) { - if (k >= base) k = base - 1; - - // product = divisor * trial digit. - prod = multiplyInteger(yd, k, base); - prodL = prod.length; - remL = rem.length; - - // Compare product and remainder. - cmp = compare(prod, rem, prodL, remL); - - // product > remainder. - if (cmp == 1) { - k--; - - // Subtract divisor from product. - subtract(prod, yL < prodL ? yz : yd, prodL, base); - } - } else { - - // cmp is -1. - // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1 - // to avoid it. If k is 1 there is a need to compare yd and rem again below. - if (k == 0) cmp = k = 1; - prod = yd.slice(); - } - - prodL = prod.length; - if (prodL < remL) prod.unshift(0); - - // Subtract product from remainder. - subtract(rem, prod, remL, base); - - // If product was < previous remainder. - if (cmp == -1) { - remL = rem.length; - - // Compare divisor and new remainder. - cmp = compare(yd, rem, yL, remL); - - // If divisor < new remainder, subtract divisor from remainder. - if (cmp < 1) { - k++; - - // Subtract divisor from remainder. - subtract(rem, yL < remL ? yz : yd, remL, base); - } - } - - remL = rem.length; - } else if (cmp === 0) { - k++; - rem = [0]; - } // if cmp === 1, k will be 0 - - // Add the next digit, k, to the result array. - qd[i++] = k; - - // Update the remainder. - if (cmp && rem[0]) { - rem[remL++] = xd[xi] || 0; - } else { - rem = [xd[xi]]; - remL = 1; - } - - } while ((xi++ < xL || rem[0] !== void 0) && sd--); - - more = rem[0] !== void 0; - } - - // Leading zero? - if (!qd[0]) qd.shift(); - } - - // logBase is 1 when divide is being used for base conversion. - if (logBase == 1) { - q.e = e; - inexact = more; - } else { - - // To calculate q.e, first get the number of digits of qd[0]. - for (i = 1, k = qd[0]; k >= 10; k /= 10) i++; - q.e = i + e * logBase - 1; - - finalise(q, dp ? pr + q.e + 1 : pr, rm, more); - } - - return q; - }; - })(); - - - /* - * Round `x` to `sd` significant digits using rounding mode `rm`. - * Check for over/under-flow. - */ - function finalise(x, sd, rm, isTruncated) { - var digits, i, j, k, rd, roundUp, w, xd, xdi, - Ctor = x.constructor; - - // Don't round if sd is null or undefined. - out: if (sd != null) { - xd = x.d; - - // Infinity/NaN. - if (!xd) return x; - - // rd: the rounding digit, i.e. the digit after the digit that may be rounded up. - // w: the word of xd containing rd, a base 1e7 number. - // xdi: the index of w within xd. - // digits: the number of digits of w. - // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if - // they had leading zeros) - // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero). - - // Get the length of the first word of the digits array xd. - for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++; - i = sd - digits; - - // Is the rounding digit in the first word of xd? - if (i < 0) { - i += LOG_BASE; - j = sd; - w = xd[xdi = 0]; - - // Get the rounding digit at index j of w. - rd = w / mathpow(10, digits - j - 1) % 10 | 0; - } else { - xdi = Math.ceil((i + 1) / LOG_BASE); - k = xd.length; - if (xdi >= k) { - if (isTruncated) { - - // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`. - for (; k++ <= xdi;) xd.push(0); - w = rd = 0; - digits = 1; - i %= LOG_BASE; - j = i - LOG_BASE + 1; - } else { - break out; - } - } else { - w = k = xd[xdi]; - - // Get the number of digits of w. - for (digits = 1; k >= 10; k /= 10) digits++; - - // Get the index of rd within w. - i %= LOG_BASE; - - // Get the index of rd within w, adjusted for leading zeros. - // The number of leading zeros of w is given by LOG_BASE - digits. - j = i - LOG_BASE + digits; - - // Get the rounding digit at index j of w. - rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0; - } - } - - // Are there any non-zero digits after the rounding digit? - isTruncated = isTruncated || sd < 0 || - xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1)); - - // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right - // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression - // will give 714. - - roundUp = rm < 4 - ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) - : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && - - // Check whether the digit to the left of the rounding digit is odd. - ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 || - rm == (x.s < 0 ? 8 : 7)); - - if (sd < 1 || !xd[0]) { - xd.length = 0; - if (roundUp) { - - // Convert sd to decimal places. - sd -= x.e + 1; - - // 1, 0.1, 0.01, 0.001, 0.0001 etc. - xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE); - x.e = -sd || 0; - } else { - - // Zero. - xd[0] = x.e = 0; - } - - return x; - } - - // Remove excess digits. - if (i == 0) { - xd.length = xdi; - k = 1; - xdi--; - } else { - xd.length = xdi + 1; - k = mathpow(10, LOG_BASE - i); - - // E.g. 56700 becomes 56000 if 7 is the rounding digit. - // j > 0 means i > number of leading zeros of w. - xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0; - } - - if (roundUp) { - for (;;) { - - // Is the digit to be rounded up in the first word of xd? - if (xdi == 0) { - - // i will be the length of xd[0] before k is added. - for (i = 1, j = xd[0]; j >= 10; j /= 10) i++; - j = xd[0] += k; - for (k = 1; j >= 10; j /= 10) k++; - - // if i != k the length has increased. - if (i != k) { - x.e++; - if (xd[0] == BASE) xd[0] = 1; - } - - break; - } else { - xd[xdi] += k; - if (xd[xdi] != BASE) break; - xd[xdi--] = 0; - k = 1; - } - } - } - - // Remove trailing zeros. - for (i = xd.length; xd[--i] === 0;) xd.pop(); - } - - if (external) { - - // Overflow? - if (x.e > Ctor.maxE) { - - // Infinity. - x.d = null; - x.e = NaN; - - // Underflow? - } else if (x.e < Ctor.minE) { - - // Zero. - x.e = 0; - x.d = [0]; - // Ctor.underflow = true; - } // else Ctor.underflow = false; - } - - return x; - } - - - function finiteToString(x, isExp, sd) { - if (!x.isFinite()) return nonFiniteToString(x); - var k, - e = x.e, - str = digitsToString(x.d), - len = str.length; - - if (isExp) { - if (sd && (k = sd - len) > 0) { - str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k); - } else if (len > 1) { - str = str.charAt(0) + '.' + str.slice(1); - } - - str = str + (x.e < 0 ? 'e' : 'e+') + x.e; - } else if (e < 0) { - str = '0.' + getZeroString(-e - 1) + str; - if (sd && (k = sd - len) > 0) str += getZeroString(k); - } else if (e >= len) { - str += getZeroString(e + 1 - len); - if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k); - } else { - if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k); - if (sd && (k = sd - len) > 0) { - if (e + 1 === len) str += '.'; - str += getZeroString(k); - } - } - - return str; - } - - - // Calculate the base 10 exponent from the base 1e7 exponent. - function getBase10Exponent(digits, e) { - var w = digits[0]; - - // Add the number of digits of the first word of the digits array. - for ( e *= LOG_BASE; w >= 10; w /= 10) e++; - return e; - } - - - function getLn10(Ctor, sd, pr) { - if (sd > LN10_PRECISION) { - - // Reset global state in case the exception is caught. - external = true; - if (pr) Ctor.precision = pr; - throw Error(precisionLimitExceeded); - } - return finalise(new Ctor(LN10), sd, 1, true); - } - - - function getPi(Ctor, sd, rm) { - if (sd > PI_PRECISION) throw Error(precisionLimitExceeded); - return finalise(new Ctor(PI), sd, rm, true); - } - - - function getPrecision(digits) { - var w = digits.length - 1, - len = w * LOG_BASE + 1; - - w = digits[w]; - - // If non-zero... - if (w) { - - // Subtract the number of trailing zeros of the last word. - for (; w % 10 == 0; w /= 10) len--; - - // Add the number of digits of the first word. - for (w = digits[0]; w >= 10; w /= 10) len++; - } - - return len; - } - - - function getZeroString(k) { - var zs = ''; - for (; k--;) zs += '0'; - return zs; - } - - - /* - * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an - * integer of type number. - * - * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`. - * - */ - function intPow(Ctor, x, n, pr) { - var isTruncated, - r = new Ctor(1), - - // Max n of 9007199254740991 takes 53 loop iterations. - // Maximum digits array length; leaves [28, 34] guard digits. - k = Math.ceil(pr / LOG_BASE + 4); - - external = false; - - for (;;) { - if (n % 2) { - r = r.times(x); - if (truncate(r.d, k)) isTruncated = true; - } - - n = mathfloor(n / 2); - if (n === 0) { - - // To ensure correct rounding when r.d is truncated, increment the last word if it is zero. - n = r.d.length - 1; - if (isTruncated && r.d[n] === 0) ++r.d[n]; - break; - } - - x = x.times(x); - truncate(x.d, k); - } - - external = true; - - return r; - } - - - function isOdd(n) { - return n.d[n.d.length - 1] & 1; - } - - - /* - * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'. - */ - function maxOrMin(Ctor, args, ltgt) { - var y, - x = new Ctor(args[0]), - i = 0; - - for (; ++i < args.length;) { - y = new Ctor(args[i]); - if (!y.s) { - x = y; - break; - } else if (x[ltgt](y)) { - x = y; - } - } - - return x; - } - - - /* - * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant - * digits. - * - * Taylor/Maclaurin series. - * - * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ... - * - * Argument reduction: - * Repeat x = x / 32, k += 5, until |x| < 0.1 - * exp(x) = exp(x / 2^k)^(2^k) - * - * Previously, the argument was initially reduced by - * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10) - * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was - * found to be slower than just dividing repeatedly by 32 as above. - * - * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000 - * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000 - * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324) - * - * exp(Infinity) = Infinity - * exp(-Infinity) = 0 - * exp(NaN) = NaN - * exp(±0) = 1 - * - * exp(x) is non-terminating for any finite, non-zero x. - * - * The result will always be correctly rounded. - * - */ - function naturalExponential(x, sd) { - var denominator, guard, j, pow, sum, t, wpr, - rep = 0, - i = 0, - k = 0, - Ctor = x.constructor, - rm = Ctor.rounding, - pr = Ctor.precision; - - // 0/NaN/Infinity? - if (!x.d || !x.d[0] || x.e > 17) { - - return new Ctor(x.d - ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 - : x.s ? x.s < 0 ? 0 : x : 0 / 0); - } - - if (sd == null) { - external = false; - wpr = pr; - } else { - wpr = sd; - } - - t = new Ctor(0.03125); - - // while abs(x) >= 0.1 - while (x.e > -2) { - - // x = x / 2^5 - x = x.times(t); - k += 5; - } - - // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision - // necessary to ensure the first 4 rounding digits are correct. - guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0; - wpr += guard; - denominator = pow = sum = new Ctor(1); - Ctor.precision = wpr; - - for (;;) { - pow = finalise(pow.times(x), wpr, 1); - denominator = denominator.times(++i); - t = sum.plus(divide(pow, denominator, wpr, 1)); - - if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) { - j = k; - while (j--) sum = finalise(sum.times(sum), wpr, 1); - - // Check to see if the first 4 rounding digits are [49]999. - // If so, repeat the summation with a higher precision, otherwise - // e.g. with precision: 18, rounding: 1 - // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123) - // `wpr - guard` is the index of first rounding digit. - if (sd == null) { - - if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) { - Ctor.precision = wpr += 10; - denominator = pow = t = new Ctor(1); - i = 0; - rep++; - } else { - return finalise(sum, Ctor.precision = pr, rm, external = true); - } - } else { - Ctor.precision = pr; - return sum; - } - } - - sum = t; - } - } - - - /* - * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant - * digits. - * - * ln(-n) = NaN - * ln(0) = -Infinity - * ln(-0) = -Infinity - * ln(1) = 0 - * ln(Infinity) = Infinity - * ln(-Infinity) = NaN - * ln(NaN) = NaN - * - * ln(n) (n != 1) is non-terminating. - * - */ - function naturalLogarithm(y, sd) { - var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2, - n = 1, - guard = 10, - x = y, - xd = x.d, - Ctor = x.constructor, - rm = Ctor.rounding, - pr = Ctor.precision; - - // Is x negative or Infinity, NaN, 0 or 1? - if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) { - return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x); - } - - if (sd == null) { - external = false; - wpr = pr; - } else { - wpr = sd; - } - - Ctor.precision = wpr += guard; - c = digitsToString(xd); - c0 = c.charAt(0); - - if (Math.abs(e = x.e) < 1.5e15) { - - // Argument reduction. - // The series converges faster the closer the argument is to 1, so using - // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b - // multiply the argument by itself until the leading digits of the significand are 7, 8, 9, - // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can - // later be divided by this number, then separate out the power of 10 using - // ln(a*10^b) = ln(a) + b*ln(10). - - // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14). - //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) { - // max n is 6 (gives 0.7 - 1.3) - while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) { - x = x.times(y); - c = digitsToString(x.d); - c0 = c.charAt(0); - n++; - } - - e = x.e; - - if (c0 > 1) { - x = new Ctor('0.' + c); - e++; - } else { - x = new Ctor(c0 + '.' + c.slice(1)); - } - } else { - - // The argument reduction method above may result in overflow if the argument y is a massive - // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this - // function using ln(x*10^e) = ln(x) + e*ln(10). - t = getLn10(Ctor, wpr + 2, pr).times(e + ''); - x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t); - Ctor.precision = pr; - - return sd == null ? finalise(x, pr, rm, external = true) : x; - } - - // x1 is x reduced to a value near 1. - x1 = x; - - // Taylor series. - // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...) - // where x = (y - 1)/(y + 1) (|x| < 1) - sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1); - x2 = finalise(x.times(x), wpr, 1); - denominator = 3; - - for (;;) { - numerator = finalise(numerator.times(x2), wpr, 1); - t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1)); - - if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) { - sum = sum.times(2); - - // Reverse the argument reduction. Check that e is not 0 because, besides preventing an - // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0. - if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + '')); - sum = divide(sum, new Ctor(n), wpr, 1); - - // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has - // been repeated previously) and the first 4 rounding digits 9999? - // If so, restart the summation with a higher precision, otherwise - // e.g. with precision: 12, rounding: 1 - // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463. - // `wpr - guard` is the index of first rounding digit. - if (sd == null) { - if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) { - Ctor.precision = wpr += guard; - t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1); - x2 = finalise(x.times(x), wpr, 1); - denominator = rep = 1; - } else { - return finalise(sum, Ctor.precision = pr, rm, external = true); - } - } else { - Ctor.precision = pr; - return sum; - } - } - - sum = t; - denominator += 2; - } - } - - - // ±Infinity, NaN. - function nonFiniteToString(x) { - // Unsigned. - return String(x.s * x.s / 0); - } - - - /* - * Parse the value of a new Decimal `x` from string `str`. - */ - function parseDecimal(x, str) { - var e, i, len; - - // Decimal point? - if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); - - // Exponential form? - if ((i = str.search(/e/i)) > 0) { - - // Determine exponent. - if (e < 0) e = i; - e += +str.slice(i + 1); - str = str.substring(0, i); - } else if (e < 0) { - - // Integer. - e = str.length; - } - - // Determine leading zeros. - for (i = 0; str.charCodeAt(i) === 48; i++); - - // Determine trailing zeros. - for (len = str.length; str.charCodeAt(len - 1) === 48; --len); - str = str.slice(i, len); - - if (str) { - len -= i; - x.e = e = e - i - 1; - x.d = []; - - // Transform base - - // e is the base 10 exponent. - // i is where to slice str to get the first word of the digits array. - i = (e + 1) % LOG_BASE; - if (e < 0) i += LOG_BASE; - - if (i < len) { - if (i) x.d.push(+str.slice(0, i)); - for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE)); - str = str.slice(i); - i = LOG_BASE - str.length; - } else { - i -= len; - } - - for (; i--;) str += '0'; - x.d.push(+str); - - if (external) { - - // Overflow? - if (x.e > x.constructor.maxE) { - - // Infinity. - x.d = null; - x.e = NaN; - - // Underflow? - } else if (x.e < x.constructor.minE) { - - // Zero. - x.e = 0; - x.d = [0]; - // x.constructor.underflow = true; - } // else x.constructor.underflow = false; - } - } else { - - // Zero. - x.e = 0; - x.d = [0]; - } - - return x; - } - - - /* - * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value. - */ - function parseOther(x, str) { - var base, Ctor, divisor, i, isFloat, len, p, xd, xe; - - if (str.indexOf('_') > -1) { - str = str.replace(/(\d)_(?=\d)/g, '$1'); - if (isDecimal.test(str)) return parseDecimal(x, str); - } else if (str === 'Infinity' || str === 'NaN') { - if (!+str) x.s = NaN; - x.e = NaN; - x.d = null; - return x; - } - - if (isHex.test(str)) { - base = 16; - str = str.toLowerCase(); - } else if (isBinary.test(str)) { - base = 2; - } else if (isOctal.test(str)) { - base = 8; - } else { - throw Error(invalidArgument + str); - } - - // Is there a binary exponent part? - i = str.search(/p/i); - - if (i > 0) { - p = +str.slice(i + 1); - str = str.substring(2, i); - } else { - str = str.slice(2); - } - - // Convert `str` as an integer then divide the result by `base` raised to a power such that the - // fraction part will be restored. - i = str.indexOf('.'); - isFloat = i >= 0; - Ctor = x.constructor; - - if (isFloat) { - str = str.replace('.', ''); - len = str.length; - i = len - i; - - // log[10](16) = 1.2041... , log[10](88) = 1.9444.... - divisor = intPow(Ctor, new Ctor(base), i, i * 2); - } - - xd = convertBase(str, base, BASE); - xe = xd.length - 1; - - // Remove trailing zeros. - for (i = xe; xd[i] === 0; --i) xd.pop(); - if (i < 0) return new Ctor(x.s * 0); - x.e = getBase10Exponent(xd, xe); - x.d = xd; - external = false; - - // At what precision to perform the division to ensure exact conversion? - // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount) - // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412 - // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits. - // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount - // Therefore using 4 * the number of digits of str will always be enough. - if (isFloat) x = divide(x, divisor, len * 4); - - // Multiply by the binary exponent part if present. - if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p)); - external = true; - - return x; - } - - - /* - * sin(x) = x - x^3/3! + x^5/5! - ... - * |x| < pi/2 - * - */ - function sine(Ctor, x) { - var k, - len = x.d.length; - - if (len < 3) { - return x.isZero() ? x : taylorSeries(Ctor, 2, x, x); - } - - // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x) - // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5) - // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20)) - - // Estimate the optimum number of times to use the argument reduction. - k = 1.4 * Math.sqrt(len); - k = k > 16 ? 16 : k | 0; - - x = x.times(1 / tinyPow(5, k)); - x = taylorSeries(Ctor, 2, x, x); - - // Reverse argument reduction - var sin2_x, - d5 = new Ctor(5), - d16 = new Ctor(16), - d20 = new Ctor(20); - for (; k--;) { - sin2_x = x.times(x); - x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20)))); - } - - return x; - } - - - // Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`. - function taylorSeries(Ctor, n, x, y, isHyperbolic) { - var j, t, u, x2, - i = 1, - pr = Ctor.precision, - k = Math.ceil(pr / LOG_BASE); - - external = false; - x2 = x.times(x); - u = new Ctor(y); - - for (;;) { - t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1); - u = isHyperbolic ? y.plus(t) : y.minus(t); - y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1); - t = u.plus(y); - - if (t.d[k] !== void 0) { - for (j = k; t.d[j] === u.d[j] && j--;); - if (j == -1) break; - } - - j = u; - u = y; - y = t; - t = j; - i++; - } - - external = true; - t.d.length = k + 1; - - return t; - } - - - // Exponent e must be positive and non-zero. - function tinyPow(b, e) { - var n = b; - while (--e) n *= b; - return n; - } - - - // Return the absolute value of `x` reduced to less than or equal to half pi. - function toLessThanHalfPi(Ctor, x) { - var t, - isNeg = x.s < 0, - pi = getPi(Ctor, Ctor.precision, 1), - halfPi = pi.times(0.5); - - x = x.abs(); - - if (x.lte(halfPi)) { - quadrant = isNeg ? 4 : 1; - return x; - } - - t = x.divToInt(pi); - - if (t.isZero()) { - quadrant = isNeg ? 3 : 2; - } else { - x = x.minus(t.times(pi)); - - // 0 <= x < pi - if (x.lte(halfPi)) { - quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1); - return x; - } - - quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2); - } - - return x.minus(pi).abs(); - } - - - /* - * Return the value of Decimal `x` as a string in base `baseOut`. - * - * If the optional `sd` argument is present include a binary exponent suffix. - */ - function toStringBinary(x, baseOut, sd, rm) { - var base, e, i, k, len, roundUp, str, xd, y, - Ctor = x.constructor, - isExp = sd !== void 0; - - if (isExp) { - checkInt32(sd, 1, MAX_DIGITS); - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - } else { - sd = Ctor.precision; - rm = Ctor.rounding; - } - - if (!x.isFinite()) { - str = nonFiniteToString(x); - } else { - str = finiteToString(x); - i = str.indexOf('.'); - - // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required: - // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10)) - // minBinaryExponent = floor(decimalExponent * log[2](10)) - // log[2](10) = 3.321928094887362347870319429489390175864 - - if (isExp) { - base = 2; - if (baseOut == 16) { - sd = sd * 4 - 3; - } else if (baseOut == 8) { - sd = sd * 3 - 2; - } - } else { - base = baseOut; - } - - // Convert the number as an integer then divide the result by its base raised to a power such - // that the fraction part will be restored. - - // Non-integer. - if (i >= 0) { - str = str.replace('.', ''); - y = new Ctor(1); - y.e = str.length - i; - y.d = convertBase(finiteToString(y), 10, base); - y.e = y.d.length; - } - - xd = convertBase(str, 10, base); - e = len = xd.length; - - // Remove trailing zeros. - for (; xd[--len] == 0;) xd.pop(); - - if (!xd[0]) { - str = isExp ? '0p+0' : '0'; - } else { - if (i < 0) { - e--; - } else { - x = new Ctor(x); - x.d = xd; - x.e = e; - x = divide(x, y, sd, rm, 0, base); - xd = x.d; - e = x.e; - roundUp = inexact; - } - - // The rounding digit, i.e. the digit after the digit that may be rounded up. - i = xd[sd]; - k = base / 2; - roundUp = roundUp || xd[sd + 1] !== void 0; - - roundUp = rm < 4 - ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) - : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || - rm === (x.s < 0 ? 8 : 7)); - - xd.length = sd; - - if (roundUp) { - - // Rounding up may mean the previous digit has to be rounded up and so on. - for (; ++xd[--sd] > base - 1;) { - xd[sd] = 0; - if (!sd) { - ++e; - xd.unshift(1); - } - } - } - - // Determine trailing zeros. - for (len = xd.length; !xd[len - 1]; --len); - - // E.g. [4, 11, 15] becomes 4bf. - for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]); - - // Add binary exponent suffix? - if (isExp) { - if (len > 1) { - if (baseOut == 16 || baseOut == 8) { - i = baseOut == 16 ? 4 : 3; - for (--len; len % i; len++) str += '0'; - xd = convertBase(str, base, baseOut); - for (len = xd.length; !xd[len - 1]; --len); - - // xd[0] will always be be 1 - for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]); - } else { - str = str.charAt(0) + '.' + str.slice(1); - } - } - - str = str + (e < 0 ? 'p' : 'p+') + e; - } else if (e < 0) { - for (; ++e;) str = '0' + str; - str = '0.' + str; - } else { - if (++e > len) for (e -= len; e-- ;) str += '0'; - else if (e < len) str = str.slice(0, e) + '.' + str.slice(e); - } - } - - str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str; - } - - return x.s < 0 ? '-' + str : str; - } - - - // Does not strip trailing zeros. - function truncate(arr, len) { - if (arr.length > len) { - arr.length = len; - return true; - } - } - - - // Decimal methods - - - /* - * abs - * acos - * acosh - * add - * asin - * asinh - * atan - * atanh - * atan2 - * cbrt - * ceil - * clamp - * clone - * config - * cos - * cosh - * div - * exp - * floor - * hypot - * ln - * log - * log2 - * log10 - * max - * min - * mod - * mul - * pow - * random - * round - * set - * sign - * sin - * sinh - * sqrt - * sub - * sum - * tan - * tanh - * trunc - */ - - - /* - * Return a new Decimal whose value is the absolute value of `x`. - * - * x {number|string|Decimal} - * - */ - function abs(x) { - return new this(x).abs(); - } - - - /* - * Return a new Decimal whose value is the arccosine in radians of `x`. - * - * x {number|string|Decimal} - * - */ - function acos(x) { - return new this(x).acos(); - } - - - /* - * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function acosh(x) { - return new this(x).acosh(); - } - - - /* - * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ - function add(x, y) { - return new this(x).plus(y); - } - - - /* - * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function asin(x) { - return new this(x).asin(); - } - - - /* - * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function asinh(x) { - return new this(x).asinh(); - } - - - /* - * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function atan(x) { - return new this(x).atan(); - } - - - /* - * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function atanh(x) { - return new this(x).atanh(); - } - - - /* - * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi - * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`. - * - * Domain: [-Infinity, Infinity] - * Range: [-pi, pi] - * - * y {number|string|Decimal} The y-coordinate. - * x {number|string|Decimal} The x-coordinate. - * - * atan2(±0, -0) = ±pi - * atan2(±0, +0) = ±0 - * atan2(±0, -x) = ±pi for x > 0 - * atan2(±0, x) = ±0 for x > 0 - * atan2(-y, ±0) = -pi/2 for y > 0 - * atan2(y, ±0) = pi/2 for y > 0 - * atan2(±y, -Infinity) = ±pi for finite y > 0 - * atan2(±y, +Infinity) = ±0 for finite y > 0 - * atan2(±Infinity, x) = ±pi/2 for finite x - * atan2(±Infinity, -Infinity) = ±3*pi/4 - * atan2(±Infinity, +Infinity) = ±pi/4 - * atan2(NaN, x) = NaN - * atan2(y, NaN) = NaN - * - */ - function atan2(y, x) { - y = new this(y); - x = new this(x); - var r, - pr = this.precision, - rm = this.rounding, - wpr = pr + 4; - - // Either NaN - if (!y.s || !x.s) { - r = new this(NaN); - - // Both ±Infinity - } else if (!y.d && !x.d) { - r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75); - r.s = y.s; - - // x is ±Infinity or y is ±0 - } else if (!x.d || y.isZero()) { - r = x.s < 0 ? getPi(this, pr, rm) : new this(0); - r.s = y.s; - - // y is ±Infinity or x is ±0 - } else if (!y.d || x.isZero()) { - r = getPi(this, wpr, 1).times(0.5); - r.s = y.s; - - // Both non-zero and finite - } else if (x.s < 0) { - this.precision = wpr; - this.rounding = 1; - r = this.atan(divide(y, x, wpr, 1)); - x = getPi(this, wpr, 1); - this.precision = pr; - this.rounding = rm; - r = y.s < 0 ? r.minus(x) : r.plus(x); - } else { - r = this.atan(divide(y, x, wpr, 1)); - } - - return r; - } - - - /* - * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function cbrt(x) { - return new this(x).cbrt(); - } - - - /* - * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`. - * - * x {number|string|Decimal} - * - */ - function ceil(x) { - return finalise(x = new this(x), x.e + 1, 2); - } - - - /* - * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`. - * - * x {number|string|Decimal} - * min {number|string|Decimal} - * max {number|string|Decimal} - * - */ - function clamp(x, min, max) { - return new this(x).clamp(min, max); - } - - - /* - * Configure global settings for a Decimal constructor. - * - * `obj` is an object with one or more of the following properties, - * - * precision {number} - * rounding {number} - * toExpNeg {number} - * toExpPos {number} - * maxE {number} - * minE {number} - * modulo {number} - * crypto {boolean|number} - * defaults {true} - * - * E.g. Decimal.config({ precision: 20, rounding: 4 }) - * - */ - function config(obj) { - if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected'); - var i, p, v, - useDefaults = obj.defaults === true, - ps = [ - 'precision', 1, MAX_DIGITS, - 'rounding', 0, 8, - 'toExpNeg', -EXP_LIMIT, 0, - 'toExpPos', 0, EXP_LIMIT, - 'maxE', 0, EXP_LIMIT, - 'minE', -EXP_LIMIT, 0, - 'modulo', 0, 9 - ]; - - for (i = 0; i < ps.length; i += 3) { - if (p = ps[i], useDefaults) this[p] = DEFAULTS[p]; - if ((v = obj[p]) !== void 0) { - if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v; - else throw Error(invalidArgument + p + ': ' + v); - } - } - - if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p]; - if ((v = obj[p]) !== void 0) { - if (v === true || v === false || v === 0 || v === 1) { - if (v) { - if (typeof crypto != 'undefined' && crypto && - (crypto.getRandomValues || crypto.randomBytes)) { - this[p] = true; - } else { - throw Error(cryptoUnavailable); - } - } else { - this[p] = false; - } - } else { - throw Error(invalidArgument + p + ': ' + v); - } - } - - return this; - } - - - /* - * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function cos(x) { - return new this(x).cos(); - } - - - /* - * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function cosh(x) { - return new this(x).cosh(); - } - - - /* - * Create and return a Decimal constructor with the same configuration properties as this Decimal - * constructor. - * - */ - function clone(obj) { - var i, p, ps; - - /* - * The Decimal constructor and exported function. - * Return a new Decimal instance. - * - * v {number|string|Decimal} A numeric value. - * - */ - function Decimal(v) { - var e, i, t, - x = this; - - // Decimal called without new. - if (!(x instanceof Decimal)) return new Decimal(v); - - // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor - // which points to Object. - x.constructor = Decimal; - - // Duplicate. - if (isDecimalInstance(v)) { - x.s = v.s; - - if (external) { - if (!v.d || v.e > Decimal.maxE) { - - // Infinity. - x.e = NaN; - x.d = null; - } else if (v.e < Decimal.minE) { - - // Zero. - x.e = 0; - x.d = [0]; - } else { - x.e = v.e; - x.d = v.d.slice(); - } - } else { - x.e = v.e; - x.d = v.d ? v.d.slice() : v.d; - } - - return; - } - - t = typeof v; - - if (t === 'number') { - if (v === 0) { - x.s = 1 / v < 0 ? -1 : 1; - x.e = 0; - x.d = [0]; - return; - } - - if (v < 0) { - v = -v; - x.s = -1; - } else { - x.s = 1; - } - - // Fast path for small integers. - if (v === ~~v && v < 1e7) { - for (e = 0, i = v; i >= 10; i /= 10) e++; - - if (external) { - if (e > Decimal.maxE) { - x.e = NaN; - x.d = null; - } else if (e < Decimal.minE) { - x.e = 0; - x.d = [0]; - } else { - x.e = e; - x.d = [v]; - } - } else { - x.e = e; - x.d = [v]; - } - - return; - - // Infinity, NaN. - } else if (v * 0 !== 0) { - if (!v) x.s = NaN; - x.e = NaN; - x.d = null; - return; - } - - return parseDecimal(x, v.toString()); - - } else if (t !== 'string') { - throw Error(invalidArgument + v); - } - - // Minus sign? - if ((i = v.charCodeAt(0)) === 45) { - v = v.slice(1); - x.s = -1; - } else { - // Plus sign? - if (i === 43) v = v.slice(1); - x.s = 1; - } - - return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v); - } - - Decimal.prototype = P; - - Decimal.ROUND_UP = 0; - Decimal.ROUND_DOWN = 1; - Decimal.ROUND_CEIL = 2; - Decimal.ROUND_FLOOR = 3; - Decimal.ROUND_HALF_UP = 4; - Decimal.ROUND_HALF_DOWN = 5; - Decimal.ROUND_HALF_EVEN = 6; - Decimal.ROUND_HALF_CEIL = 7; - Decimal.ROUND_HALF_FLOOR = 8; - Decimal.EUCLID = 9; - - Decimal.config = Decimal.set = config; - Decimal.clone = clone; - Decimal.isDecimal = isDecimalInstance; - - Decimal.abs = abs; - Decimal.acos = acos; - Decimal.acosh = acosh; // ES6 - Decimal.add = add; - Decimal.asin = asin; - Decimal.asinh = asinh; // ES6 - Decimal.atan = atan; - Decimal.atanh = atanh; // ES6 - Decimal.atan2 = atan2; - Decimal.cbrt = cbrt; // ES6 - Decimal.ceil = ceil; - Decimal.clamp = clamp; - Decimal.cos = cos; - Decimal.cosh = cosh; // ES6 - Decimal.div = div; - Decimal.exp = exp; - Decimal.floor = floor; - Decimal.hypot = hypot; // ES6 - Decimal.ln = ln; - Decimal.log = log; - Decimal.log10 = log10; // ES6 - Decimal.log2 = log2; // ES6 - Decimal.max = max; - Decimal.min = min; - Decimal.mod = mod; - Decimal.mul = mul; - Decimal.pow = pow; - Decimal.random = random; - Decimal.round = round; - Decimal.sign = sign; // ES6 - Decimal.sin = sin; - Decimal.sinh = sinh; // ES6 - Decimal.sqrt = sqrt; - Decimal.sub = sub; - Decimal.sum = sum; - Decimal.tan = tan; - Decimal.tanh = tanh; // ES6 - Decimal.trunc = trunc; // ES6 - - if (obj === void 0) obj = {}; - if (obj) { - if (obj.defaults !== true) { - ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto']; - for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p]; - } - } - - Decimal.config(obj); - - return Decimal; - } - - - /* - * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ - function div(x, y) { - return new this(x).div(y); - } - - - /* - * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} The power to which to raise the base of the natural log. - * - */ - function exp(x) { - return new this(x).exp(); - } - - - /* - * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`. - * - * x {number|string|Decimal} - * - */ - function floor(x) { - return finalise(x = new this(x), x.e + 1, 3); - } - - - /* - * Return a new Decimal whose value is the square root of the sum of the squares of the arguments, - * rounded to `precision` significant digits using rounding mode `rounding`. - * - * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...) - * - * arguments {number|string|Decimal} - * - */ - function hypot() { - var i, n, - t = new this(0); - - external = false; - - for (i = 0; i < arguments.length;) { - n = new this(arguments[i++]); - if (!n.d) { - if (n.s) { - external = true; - return new this(1 / 0); - } - t = n; - } else if (t.d) { - t = t.plus(n.times(n)); - } - } - - external = true; - - return t.sqrt(); - } - - - /* - * Return true if object is a Decimal instance (where Decimal is any Decimal constructor), - * otherwise return false. - * - */ - function isDecimalInstance(obj) { - return obj instanceof Decimal || obj && obj.toStringTag === tag || false; - } - - - /* - * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function ln(x) { - return new this(x).ln(); - } - - - /* - * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base - * is specified, rounded to `precision` significant digits using rounding mode `rounding`. - * - * log[y](x) - * - * x {number|string|Decimal} The argument of the logarithm. - * y {number|string|Decimal} The base of the logarithm. - * - */ - function log(x, y) { - return new this(x).log(y); - } - - - /* - * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function log2(x) { - return new this(x).log(2); - } - - - /* - * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function log10(x) { - return new this(x).log(10); - } - - - /* - * Return a new Decimal whose value is the maximum of the arguments. - * - * arguments {number|string|Decimal} - * - */ - function max() { - return maxOrMin(this, arguments, 'lt'); - } - - - /* - * Return a new Decimal whose value is the minimum of the arguments. - * - * arguments {number|string|Decimal} - * - */ - function min() { - return maxOrMin(this, arguments, 'gt'); - } - - - /* - * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits - * using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ - function mod(x, y) { - return new this(x).mod(y); - } - - - /* - * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ - function mul(x, y) { - return new this(x).mul(y); - } - - - /* - * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} The base. - * y {number|string|Decimal} The exponent. - * - */ - function pow(x, y) { - return new this(x).pow(y); - } - - - /* - * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with - * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros - * are produced). - * - * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive. - * - */ - function random(sd) { - var d, e, k, n, - i = 0, - r = new this(1), - rd = []; - - if (sd === void 0) sd = this.precision; - else checkInt32(sd, 1, MAX_DIGITS); - - k = Math.ceil(sd / LOG_BASE); - - if (!this.crypto) { - for (; i < k;) rd[i++] = Math.random() * 1e7 | 0; - - // Browsers supporting crypto.getRandomValues. - } else if (crypto.getRandomValues) { - d = crypto.getRandomValues(new Uint32Array(k)); - - for (; i < k;) { - n = d[i]; - - // 0 <= n < 4294967296 - // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865). - if (n >= 4.29e9) { - d[i] = crypto.getRandomValues(new Uint32Array(1))[0]; - } else { - - // 0 <= n <= 4289999999 - // 0 <= (n % 1e7) <= 9999999 - rd[i++] = n % 1e7; - } - } - - // Node.js supporting crypto.randomBytes. - } else if (crypto.randomBytes) { - - // buffer - d = crypto.randomBytes(k *= 4); - - for (; i < k;) { - - // 0 <= n < 2147483648 - n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24); - - // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286). - if (n >= 2.14e9) { - crypto.randomBytes(4).copy(d, i); - } else { - - // 0 <= n <= 2139999999 - // 0 <= (n % 1e7) <= 9999999 - rd.push(n % 1e7); - i += 4; - } - } - - i = k / 4; - } else { - throw Error(cryptoUnavailable); - } - - k = rd[--i]; - sd %= LOG_BASE; - - // Convert trailing digits to zeros according to sd. - if (k && sd) { - n = mathpow(10, LOG_BASE - sd); - rd[i] = (k / n | 0) * n; - } - - // Remove trailing words which are zero. - for (; rd[i] === 0; i--) rd.pop(); - - // Zero? - if (i < 0) { - e = 0; - rd = [0]; - } else { - e = -1; - - // Remove leading words which are zero and adjust exponent accordingly. - for (; rd[0] === 0; e -= LOG_BASE) rd.shift(); - - // Count the digits of the first word of rd to determine leading zeros. - for (k = 1, n = rd[0]; n >= 10; n /= 10) k++; - - // Adjust the exponent for leading zeros of the first word of rd. - if (k < LOG_BASE) e -= LOG_BASE - k; - } - - r.e = e; - r.d = rd; - - return r; - } - - - /* - * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`. - * - * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL). - * - * x {number|string|Decimal} - * - */ - function round(x) { - return finalise(x = new this(x), x.e + 1, this.rounding); - } - - - /* - * Return - * 1 if x > 0, - * -1 if x < 0, - * 0 if x is 0, - * -0 if x is -0, - * NaN otherwise - * - * x {number|string|Decimal} - * - */ - function sign(x) { - x = new this(x); - return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN; - } - - - /* - * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits - * using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function sin(x) { - return new this(x).sin(); - } - - - /* - * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function sinh(x) { - return new this(x).sinh(); - } - - - /* - * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ - function sqrt(x) { - return new this(x).sqrt(); - } - - - /* - * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits - * using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ - function sub(x, y) { - return new this(x).sub(y); - } - - - /* - * Return a new Decimal whose value is the sum of the arguments, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * Only the result is rounded, not the intermediate calculations. - * - * arguments {number|string|Decimal} - * - */ - function sum() { - var i = 0, - args = arguments, - x = new this(args[i]); - - external = false; - for (; x.s && ++i < args.length;) x = x.plus(args[i]); - external = true; - - return finalise(x, this.precision, this.rounding); - } - - - /* - * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function tan(x) { - return new this(x).tan(); - } - - - /* - * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ - function tanh(x) { - return new this(x).tanh(); - } - - - /* - * Return a new Decimal whose value is `x` truncated to an integer. - * - * x {number|string|Decimal} - * - */ - function trunc(x) { - return finalise(x = new this(x), x.e + 1, 1); - } - - - // Create and configure initial Decimal constructor. - Decimal = clone(DEFAULTS); - Decimal.prototype.constructor = Decimal; - Decimal['default'] = Decimal.Decimal = Decimal; - - // Create the internal constants from their string values. - LN10 = new Decimal(LN10); - PI = new Decimal(PI); - - - // Export. - - - // AMD. - if (typeof define == 'function' && define.amd) { - define(function () { - return Decimal; - }); - - // Node and other environments that support module.exports. - } else if (typeof module != 'undefined' && module.exports) { - if (typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol') { - P[Symbol['for']('nodejs.util.inspect.custom')] = P.toString; - P[Symbol.toStringTag] = 'Decimal'; - } - - module.exports = Decimal; - - // Browser. - } else { - if (!globalScope) { - globalScope = typeof self != 'undefined' && self && self.self == self ? self : window; - } - - noConflict = globalScope.Decimal; - Decimal.noConflict = function () { - globalScope.Decimal = noConflict; - return Decimal; - }; - - globalScope.Decimal = Decimal; - } -})(this); diff --git a/build/node_modules/decimal.js/decimal.mjs b/build/node_modules/decimal.js/decimal.mjs deleted file mode 100644 index 909300cb..00000000 --- a/build/node_modules/decimal.js/decimal.mjs +++ /dev/null @@ -1,4898 +0,0 @@ -/*! - * decimal.js v10.4.3 - * An arbitrary-precision Decimal type for JavaScript. - * https://github.com/MikeMcl/decimal.js - * Copyright (c) 2022 Michael Mclaughlin - * MIT Licence - */ - - -// ----------------------------------- EDITABLE DEFAULTS ------------------------------------ // - - - // The maximum exponent magnitude. - // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`. -var EXP_LIMIT = 9e15, // 0 to 9e15 - - // The limit on the value of `precision`, and on the value of the first argument to - // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`. - MAX_DIGITS = 1e9, // 0 to 1e9 - - // Base conversion alphabet. - NUMERALS = '0123456789abcdef', - - // The natural logarithm of 10 (1025 digits). - LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058', - - // Pi (1025 digits). - PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789', - - - // The initial configuration properties of the Decimal constructor. - DEFAULTS = { - - // These values must be integers within the stated ranges (inclusive). - // Most of these values can be changed at run-time using the `Decimal.config` method. - - // The maximum number of significant digits of the result of a calculation or base conversion. - // E.g. `Decimal.config({ precision: 20 });` - precision: 20, // 1 to MAX_DIGITS - - // The rounding mode used when rounding to `precision`. - // - // ROUND_UP 0 Away from zero. - // ROUND_DOWN 1 Towards zero. - // ROUND_CEIL 2 Towards +Infinity. - // ROUND_FLOOR 3 Towards -Infinity. - // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up. - // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. - // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. - // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. - // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. - // - // E.g. - // `Decimal.rounding = 4;` - // `Decimal.rounding = Decimal.ROUND_HALF_UP;` - rounding: 4, // 0 to 8 - - // The modulo mode used when calculating the modulus: a mod n. - // The quotient (q = a / n) is calculated according to the corresponding rounding mode. - // The remainder (r) is calculated as: r = a - n * q. - // - // UP 0 The remainder is positive if the dividend is negative, else is negative. - // DOWN 1 The remainder has the same sign as the dividend (JavaScript %). - // FLOOR 3 The remainder has the same sign as the divisor (Python %). - // HALF_EVEN 6 The IEEE 754 remainder function. - // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive. - // - // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian - // division (9) are commonly used for the modulus operation. The other rounding modes can also - // be used, but they may not give useful results. - modulo: 1, // 0 to 9 - - // The exponent value at and beneath which `toString` returns exponential notation. - // JavaScript numbers: -7 - toExpNeg: -7, // 0 to -EXP_LIMIT - - // The exponent value at and above which `toString` returns exponential notation. - // JavaScript numbers: 21 - toExpPos: 21, // 0 to EXP_LIMIT - - // The minimum exponent value, beneath which underflow to zero occurs. - // JavaScript numbers: -324 (5e-324) - minE: -EXP_LIMIT, // -1 to -EXP_LIMIT - - // The maximum exponent value, above which overflow to Infinity occurs. - // JavaScript numbers: 308 (1.7976931348623157e+308) - maxE: EXP_LIMIT, // 1 to EXP_LIMIT - - // Whether to use cryptographically-secure random number generation, if available. - crypto: false // true/false - }, - - -// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- // - - - inexact, quadrant, - external = true, - - decimalError = '[DecimalError] ', - invalidArgument = decimalError + 'Invalid argument: ', - precisionLimitExceeded = decimalError + 'Precision limit exceeded', - cryptoUnavailable = decimalError + 'crypto unavailable', - tag = '[object Decimal]', - - mathfloor = Math.floor, - mathpow = Math.pow, - - isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, - isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, - isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, - isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, - - BASE = 1e7, - LOG_BASE = 7, - MAX_SAFE_INTEGER = 9007199254740991, - - LN10_PRECISION = LN10.length - 1, - PI_PRECISION = PI.length - 1, - - // Decimal.prototype object - P = { toStringTag: tag }; - - -// Decimal prototype methods - - -/* - * absoluteValue abs - * ceil - * clampedTo clamp - * comparedTo cmp - * cosine cos - * cubeRoot cbrt - * decimalPlaces dp - * dividedBy div - * dividedToIntegerBy divToInt - * equals eq - * floor - * greaterThan gt - * greaterThanOrEqualTo gte - * hyperbolicCosine cosh - * hyperbolicSine sinh - * hyperbolicTangent tanh - * inverseCosine acos - * inverseHyperbolicCosine acosh - * inverseHyperbolicSine asinh - * inverseHyperbolicTangent atanh - * inverseSine asin - * inverseTangent atan - * isFinite - * isInteger isInt - * isNaN - * isNegative isNeg - * isPositive isPos - * isZero - * lessThan lt - * lessThanOrEqualTo lte - * logarithm log - * [maximum] [max] - * [minimum] [min] - * minus sub - * modulo mod - * naturalExponential exp - * naturalLogarithm ln - * negated neg - * plus add - * precision sd - * round - * sine sin - * squareRoot sqrt - * tangent tan - * times mul - * toBinary - * toDecimalPlaces toDP - * toExponential - * toFixed - * toFraction - * toHexadecimal toHex - * toNearest - * toNumber - * toOctal - * toPower pow - * toPrecision - * toSignificantDigits toSD - * toString - * truncated trunc - * valueOf toJSON - */ - - -/* - * Return a new Decimal whose value is the absolute value of this Decimal. - * - */ -P.absoluteValue = P.abs = function () { - var x = new this.constructor(this); - if (x.s < 0) x.s = 1; - return finalise(x); -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the - * direction of positive Infinity. - * - */ -P.ceil = function () { - return finalise(new this.constructor(this), this.e + 1, 2); -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal clamped to the range - * delineated by `min` and `max`. - * - * min {number|string|Decimal} - * max {number|string|Decimal} - * - */ -P.clampedTo = P.clamp = function (min, max) { - var k, - x = this, - Ctor = x.constructor; - min = new Ctor(min); - max = new Ctor(max); - if (!min.s || !max.s) return new Ctor(NaN); - if (min.gt(max)) throw Error(invalidArgument + max); - k = x.cmp(min); - return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x); -}; - - -/* - * Return - * 1 if the value of this Decimal is greater than the value of `y`, - * -1 if the value of this Decimal is less than the value of `y`, - * 0 if they have the same value, - * NaN if the value of either Decimal is NaN. - * - */ -P.comparedTo = P.cmp = function (y) { - var i, j, xdL, ydL, - x = this, - xd = x.d, - yd = (y = new x.constructor(y)).d, - xs = x.s, - ys = y.s; - - // Either NaN or ±Infinity? - if (!xd || !yd) { - return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1; - } - - // Either zero? - if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0; - - // Signs differ? - if (xs !== ys) return xs; - - // Compare exponents. - if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1; - - xdL = xd.length; - ydL = yd.length; - - // Compare digit by digit. - for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) { - if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1; - } - - // Compare lengths. - return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1; -}; - - -/* - * Return a new Decimal whose value is the cosine of the value in radians of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-1, 1] - * - * cos(0) = 1 - * cos(-0) = 1 - * cos(Infinity) = NaN - * cos(-Infinity) = NaN - * cos(NaN) = NaN - * - */ -P.cosine = P.cos = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.d) return new Ctor(NaN); - - // cos(0) = cos(-0) = 1 - if (!x.d[0]) return new Ctor(1); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; - Ctor.rounding = 1; - - x = cosine(Ctor, toLessThanHalfPi(Ctor, x)); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true); -}; - - -/* - * - * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * cbrt(0) = 0 - * cbrt(-0) = -0 - * cbrt(1) = 1 - * cbrt(-1) = -1 - * cbrt(N) = N - * cbrt(-I) = -I - * cbrt(I) = I - * - * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3)) - * - */ -P.cubeRoot = P.cbrt = function () { - var e, m, n, r, rep, s, sd, t, t3, t3plusx, - x = this, - Ctor = x.constructor; - - if (!x.isFinite() || x.isZero()) return new Ctor(x); - external = false; - - // Initial estimate. - s = x.s * mathpow(x.s * x, 1 / 3); - - // Math.cbrt underflow/overflow? - // Pass x to Math.pow as integer, then adjust the exponent of the result. - if (!s || Math.abs(s) == 1 / 0) { - n = digitsToString(x.d); - e = x.e; - - // Adjust n exponent so it is a multiple of 3 away from x exponent. - if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00'); - s = mathpow(n, 1 / 3); - - // Rarely, e may be one less than the result exponent value. - e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2)); - - if (s == 1 / 0) { - n = '5e' + e; - } else { - n = s.toExponential(); - n = n.slice(0, n.indexOf('e') + 1) + e; - } - - r = new Ctor(n); - r.s = x.s; - } else { - r = new Ctor(s.toString()); - } - - sd = (e = Ctor.precision) + 3; - - // Halley's method. - // TODO? Compare Newton's method. - for (;;) { - t = r; - t3 = t.times(t).times(t); - t3plusx = t3.plus(x); - r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1); - - // TODO? Replace with for-loop and checkRoundingDigits. - if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) { - n = n.slice(sd - 3, sd + 1); - - // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999 - // , i.e. approaching a rounding boundary, continue the iteration. - if (n == '9999' || !rep && n == '4999') { - - // On the first iteration only, check to see if rounding up gives the exact result as the - // nines may infinitely repeat. - if (!rep) { - finalise(t, e + 1, 0); - - if (t.times(t).times(t).eq(x)) { - r = t; - break; - } - } - - sd += 4; - rep = 1; - } else { - - // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result. - // If not, then there are further digits and m will be truthy. - if (!+n || !+n.slice(1) && n.charAt(0) == '5') { - - // Truncate to the first rounding digit. - finalise(r, e + 1, 1); - m = !r.times(r).times(r).eq(x); - } - - break; - } - } - } - - external = true; - - return finalise(r, e, Ctor.rounding, m); -}; - - -/* - * Return the number of decimal places of the value of this Decimal. - * - */ -P.decimalPlaces = P.dp = function () { - var w, - d = this.d, - n = NaN; - - if (d) { - w = d.length - 1; - n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE; - - // Subtract the number of trailing zeros of the last word. - w = d[w]; - if (w) for (; w % 10 == 0; w /= 10) n--; - if (n < 0) n = 0; - } - - return n; -}; - - -/* - * n / 0 = I - * n / N = N - * n / I = 0 - * 0 / n = 0 - * 0 / 0 = N - * 0 / N = N - * 0 / I = 0 - * N / n = N - * N / 0 = N - * N / N = N - * N / I = N - * I / n = I - * I / 0 = I - * I / N = N - * I / I = N - * - * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - */ -P.dividedBy = P.div = function (y) { - return divide(this, new this.constructor(y)); -}; - - -/* - * Return a new Decimal whose value is the integer part of dividing the value of this Decimal - * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`. - * - */ -P.dividedToIntegerBy = P.divToInt = function (y) { - var x = this, - Ctor = x.constructor; - return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding); -}; - - -/* - * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false. - * - */ -P.equals = P.eq = function (y) { - return this.cmp(y) === 0; -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the - * direction of negative Infinity. - * - */ -P.floor = function () { - return finalise(new this.constructor(this), this.e + 1, 3); -}; - - -/* - * Return true if the value of this Decimal is greater than the value of `y`, otherwise return - * false. - * - */ -P.greaterThan = P.gt = function (y) { - return this.cmp(y) > 0; -}; - - -/* - * Return true if the value of this Decimal is greater than or equal to the value of `y`, - * otherwise return false. - * - */ -P.greaterThanOrEqualTo = P.gte = function (y) { - var k = this.cmp(y); - return k == 1 || k === 0; -}; - - -/* - * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [1, Infinity] - * - * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ... - * - * cosh(0) = 1 - * cosh(-0) = 1 - * cosh(Infinity) = Infinity - * cosh(-Infinity) = Infinity - * cosh(NaN) = NaN - * - * x time taken (ms) result - * 1000 9 9.8503555700852349694e+433 - * 10000 25 4.4034091128314607936e+4342 - * 100000 171 1.4033316802130615897e+43429 - * 1000000 3817 1.5166076984010437725e+434294 - * 10000000 abandoned after 2 minute wait - * - * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x)) - * - */ -P.hyperbolicCosine = P.cosh = function () { - var k, n, pr, rm, len, - x = this, - Ctor = x.constructor, - one = new Ctor(1); - - if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN); - if (x.isZero()) return one; - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; - Ctor.rounding = 1; - len = x.d.length; - - // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1 - // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4)) - - // Estimate the optimum number of times to use the argument reduction. - // TODO? Estimation reused from cosine() and may not be optimal here. - if (len < 32) { - k = Math.ceil(len / 3); - n = (1 / tinyPow(4, k)).toString(); - } else { - k = 16; - n = '2.3283064365386962890625e-10'; - } - - x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true); - - // Reverse argument reduction - var cosh2_x, - i = k, - d8 = new Ctor(8); - for (; i--;) { - cosh2_x = x.times(x); - x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8)))); - } - - return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true); -}; - - -/* - * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-Infinity, Infinity] - * - * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ... - * - * sinh(0) = 0 - * sinh(-0) = -0 - * sinh(Infinity) = Infinity - * sinh(-Infinity) = -Infinity - * sinh(NaN) = NaN - * - * x time taken (ms) - * 10 2 ms - * 100 5 ms - * 1000 14 ms - * 10000 82 ms - * 100000 886 ms 1.4033316802130615897e+43429 - * 200000 2613 ms - * 300000 5407 ms - * 400000 8824 ms - * 500000 13026 ms 8.7080643612718084129e+217146 - * 1000000 48543 ms - * - * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x)) - * - */ -P.hyperbolicSine = P.sinh = function () { - var k, pr, rm, len, - x = this, - Ctor = x.constructor; - - if (!x.isFinite() || x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + 4; - Ctor.rounding = 1; - len = x.d.length; - - if (len < 3) { - x = taylorSeries(Ctor, 2, x, x, true); - } else { - - // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x)) - // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3)) - // 3 multiplications and 1 addition - - // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x))) - // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5))) - // 4 multiplications and 2 additions - - // Estimate the optimum number of times to use the argument reduction. - k = 1.4 * Math.sqrt(len); - k = k > 16 ? 16 : k | 0; - - x = x.times(1 / tinyPow(5, k)); - x = taylorSeries(Ctor, 2, x, x, true); - - // Reverse argument reduction - var sinh2_x, - d5 = new Ctor(5), - d16 = new Ctor(16), - d20 = new Ctor(20); - for (; k--;) { - sinh2_x = x.times(x); - x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20)))); - } - } - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(x, pr, rm, true); -}; - - -/* - * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-1, 1] - * - * tanh(x) = sinh(x) / cosh(x) - * - * tanh(0) = 0 - * tanh(-0) = -0 - * tanh(Infinity) = 1 - * tanh(-Infinity) = -1 - * tanh(NaN) = NaN - * - */ -P.hyperbolicTangent = P.tanh = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(x.s); - if (x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + 7; - Ctor.rounding = 1; - - return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm); -}; - - -/* - * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of - * this Decimal. - * - * Domain: [-1, 1] - * Range: [0, pi] - * - * acos(x) = pi/2 - asin(x) - * - * acos(0) = pi/2 - * acos(-0) = pi/2 - * acos(1) = 0 - * acos(-1) = pi - * acos(1/2) = pi/3 - * acos(-1/2) = 2*pi/3 - * acos(|x| > 1) = NaN - * acos(NaN) = NaN - * - */ -P.inverseCosine = P.acos = function () { - var halfPi, - x = this, - Ctor = x.constructor, - k = x.abs().cmp(1), - pr = Ctor.precision, - rm = Ctor.rounding; - - if (k !== -1) { - return k === 0 - // |x| is 1 - ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) - // |x| > 1 or x is NaN - : new Ctor(NaN); - } - - if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5); - - // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3 - - Ctor.precision = pr + 6; - Ctor.rounding = 1; - - x = x.asin(); - halfPi = getPi(Ctor, pr + 4, rm).times(0.5); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return halfPi.minus(x); -}; - - -/* - * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the - * value of this Decimal. - * - * Domain: [1, Infinity] - * Range: [0, Infinity] - * - * acosh(x) = ln(x + sqrt(x^2 - 1)) - * - * acosh(x < 1) = NaN - * acosh(NaN) = NaN - * acosh(Infinity) = Infinity - * acosh(-Infinity) = NaN - * acosh(0) = NaN - * acosh(-0) = NaN - * acosh(1) = 0 - * acosh(-1) = NaN - * - */ -P.inverseHyperbolicCosine = P.acosh = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN); - if (!x.isFinite()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4; - Ctor.rounding = 1; - external = false; - - x = x.times(x).minus(1).sqrt().plus(x); - - external = true; - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.ln(); -}; - - -/* - * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value - * of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-Infinity, Infinity] - * - * asinh(x) = ln(x + sqrt(x^2 + 1)) - * - * asinh(NaN) = NaN - * asinh(Infinity) = Infinity - * asinh(-Infinity) = -Infinity - * asinh(0) = 0 - * asinh(-0) = -0 - * - */ -P.inverseHyperbolicSine = P.asinh = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite() || x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6; - Ctor.rounding = 1; - external = false; - - x = x.times(x).plus(1).sqrt().plus(x); - - external = true; - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.ln(); -}; - - -/* - * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the - * value of this Decimal. - * - * Domain: [-1, 1] - * Range: [-Infinity, Infinity] - * - * atanh(x) = 0.5 * ln((1 + x) / (1 - x)) - * - * atanh(|x| > 1) = NaN - * atanh(NaN) = NaN - * atanh(Infinity) = NaN - * atanh(-Infinity) = NaN - * atanh(0) = 0 - * atanh(-0) = -0 - * atanh(1) = Infinity - * atanh(-1) = -Infinity - * - */ -P.inverseHyperbolicTangent = P.atanh = function () { - var pr, rm, wpr, xsd, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(NaN); - if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN); - - pr = Ctor.precision; - rm = Ctor.rounding; - xsd = x.sd(); - - if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true); - - Ctor.precision = wpr = xsd - x.e; - - x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1); - - Ctor.precision = pr + 4; - Ctor.rounding = 1; - - x = x.ln(); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.times(0.5); -}; - - -/* - * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this - * Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-pi/2, pi/2] - * - * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2))) - * - * asin(0) = 0 - * asin(-0) = -0 - * asin(1/2) = pi/6 - * asin(-1/2) = -pi/6 - * asin(1) = pi/2 - * asin(-1) = -pi/2 - * asin(|x| > 1) = NaN - * asin(NaN) = NaN - * - * TODO? Compare performance of Taylor series. - * - */ -P.inverseSine = P.asin = function () { - var halfPi, k, - pr, rm, - x = this, - Ctor = x.constructor; - - if (x.isZero()) return new Ctor(x); - - k = x.abs().cmp(1); - pr = Ctor.precision; - rm = Ctor.rounding; - - if (k !== -1) { - - // |x| is 1 - if (k === 0) { - halfPi = getPi(Ctor, pr + 4, rm).times(0.5); - halfPi.s = x.s; - return halfPi; - } - - // |x| > 1 or x is NaN - return new Ctor(NaN); - } - - // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6 - - Ctor.precision = pr + 6; - Ctor.rounding = 1; - - x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan(); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return x.times(2); -}; - - -/* - * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value - * of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-pi/2, pi/2] - * - * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ... - * - * atan(0) = 0 - * atan(-0) = -0 - * atan(1) = pi/4 - * atan(-1) = -pi/4 - * atan(Infinity) = pi/2 - * atan(-Infinity) = -pi/2 - * atan(NaN) = NaN - * - */ -P.inverseTangent = P.atan = function () { - var i, j, k, n, px, t, r, wpr, x2, - x = this, - Ctor = x.constructor, - pr = Ctor.precision, - rm = Ctor.rounding; - - if (!x.isFinite()) { - if (!x.s) return new Ctor(NaN); - if (pr + 4 <= PI_PRECISION) { - r = getPi(Ctor, pr + 4, rm).times(0.5); - r.s = x.s; - return r; - } - } else if (x.isZero()) { - return new Ctor(x); - } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) { - r = getPi(Ctor, pr + 4, rm).times(0.25); - r.s = x.s; - return r; - } - - Ctor.precision = wpr = pr + 10; - Ctor.rounding = 1; - - // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x); - - // Argument reduction - // Ensure |x| < 0.42 - // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2))) - - k = Math.min(28, wpr / LOG_BASE + 2 | 0); - - for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1)); - - external = false; - - j = Math.ceil(wpr / LOG_BASE); - n = 1; - x2 = x.times(x); - r = new Ctor(x); - px = x; - - // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ... - for (; i !== -1;) { - px = px.times(x2); - t = r.minus(px.div(n += 2)); - - px = px.times(x2); - r = t.plus(px.div(n += 2)); - - if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;); - } - - if (k) r = r.times(2 << (k - 1)); - - external = true; - - return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true); -}; - - -/* - * Return true if the value of this Decimal is a finite number, otherwise return false. - * - */ -P.isFinite = function () { - return !!this.d; -}; - - -/* - * Return true if the value of this Decimal is an integer, otherwise return false. - * - */ -P.isInteger = P.isInt = function () { - return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2; -}; - - -/* - * Return true if the value of this Decimal is NaN, otherwise return false. - * - */ -P.isNaN = function () { - return !this.s; -}; - - -/* - * Return true if the value of this Decimal is negative, otherwise return false. - * - */ -P.isNegative = P.isNeg = function () { - return this.s < 0; -}; - - -/* - * Return true if the value of this Decimal is positive, otherwise return false. - * - */ -P.isPositive = P.isPos = function () { - return this.s > 0; -}; - - -/* - * Return true if the value of this Decimal is 0 or -0, otherwise return false. - * - */ -P.isZero = function () { - return !!this.d && this.d[0] === 0; -}; - - -/* - * Return true if the value of this Decimal is less than `y`, otherwise return false. - * - */ -P.lessThan = P.lt = function (y) { - return this.cmp(y) < 0; -}; - - -/* - * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false. - * - */ -P.lessThanOrEqualTo = P.lte = function (y) { - return this.cmp(y) < 1; -}; - - -/* - * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * If no base is specified, return log[10](arg). - * - * log[base](arg) = ln(arg) / ln(base) - * - * The result will always be correctly rounded if the base of the log is 10, and 'almost always' - * otherwise: - * - * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen - * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error - * between the result and the correctly rounded result will be one ulp (unit in the last place). - * - * log[-b](a) = NaN - * log[0](a) = NaN - * log[1](a) = NaN - * log[NaN](a) = NaN - * log[Infinity](a) = NaN - * log[b](0) = -Infinity - * log[b](-0) = -Infinity - * log[b](-a) = NaN - * log[b](1) = 0 - * log[b](Infinity) = Infinity - * log[b](NaN) = NaN - * - * [base] {number|string|Decimal} The base of the logarithm. - * - */ -P.logarithm = P.log = function (base) { - var isBase10, d, denominator, k, inf, num, sd, r, - arg = this, - Ctor = arg.constructor, - pr = Ctor.precision, - rm = Ctor.rounding, - guard = 5; - - // Default base is 10. - if (base == null) { - base = new Ctor(10); - isBase10 = true; - } else { - base = new Ctor(base); - d = base.d; - - // Return NaN if base is negative, or non-finite, or is 0 or 1. - if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN); - - isBase10 = base.eq(10); - } - - d = arg.d; - - // Is arg negative, non-finite, 0 or 1? - if (arg.s < 0 || !d || !d[0] || arg.eq(1)) { - return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0); - } - - // The result will have a non-terminating decimal expansion if base is 10 and arg is not an - // integer power of 10. - if (isBase10) { - if (d.length > 1) { - inf = true; - } else { - for (k = d[0]; k % 10 === 0;) k /= 10; - inf = k !== 1; - } - } - - external = false; - sd = pr + guard; - num = naturalLogarithm(arg, sd); - denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); - - // The result will have 5 rounding digits. - r = divide(num, denominator, sd, 1); - - // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000, - // calculate 10 further digits. - // - // If the result is known to have an infinite decimal expansion, repeat this until it is clear - // that the result is above or below the boundary. Otherwise, if after calculating the 10 - // further digits, the last 14 are nines, round up and assume the result is exact. - // Also assume the result is exact if the last 14 are zero. - // - // Example of a result that will be incorrectly rounded: - // log[1048576](4503599627370502) = 2.60000000000000009610279511444746... - // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it - // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so - // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal - // place is still 2.6. - if (checkRoundingDigits(r.d, k = pr, rm)) { - - do { - sd += 10; - num = naturalLogarithm(arg, sd); - denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd); - r = divide(num, denominator, sd, 1); - - if (!inf) { - - // Check for 14 nines from the 2nd rounding digit, as the first may be 4. - if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) { - r = finalise(r, pr + 1, 0); - } - - break; - } - } while (checkRoundingDigits(r.d, k += 10, rm)); - } - - external = true; - - return finalise(r, pr, rm); -}; - - -/* - * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal. - * - * arguments {number|string|Decimal} - * -P.max = function () { - Array.prototype.push.call(arguments, this); - return maxOrMin(this.constructor, arguments, 'lt'); -}; - */ - - -/* - * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal. - * - * arguments {number|string|Decimal} - * -P.min = function () { - Array.prototype.push.call(arguments, this); - return maxOrMin(this.constructor, arguments, 'gt'); -}; - */ - - -/* - * n - 0 = n - * n - N = N - * n - I = -I - * 0 - n = -n - * 0 - 0 = 0 - * 0 - N = N - * 0 - I = -I - * N - n = N - * N - 0 = N - * N - N = N - * N - I = N - * I - n = I - * I - 0 = I - * I - N = N - * I - I = N - * - * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - */ -P.minus = P.sub = function (y) { - var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd, - x = this, - Ctor = x.constructor; - - y = new Ctor(y); - - // If either is not finite... - if (!x.d || !y.d) { - - // Return NaN if either is NaN. - if (!x.s || !y.s) y = new Ctor(NaN); - - // Return y negated if x is finite and y is ±Infinity. - else if (x.d) y.s = -y.s; - - // Return x if y is finite and x is ±Infinity. - // Return x if both are ±Infinity with different signs. - // Return NaN if both are ±Infinity with the same sign. - else y = new Ctor(y.d || x.s !== y.s ? x : NaN); - - return y; - } - - // If signs differ... - if (x.s != y.s) { - y.s = -y.s; - return x.plus(y); - } - - xd = x.d; - yd = y.d; - pr = Ctor.precision; - rm = Ctor.rounding; - - // If either is zero... - if (!xd[0] || !yd[0]) { - - // Return y negated if x is zero and y is non-zero. - if (yd[0]) y.s = -y.s; - - // Return x if y is zero and x is non-zero. - else if (xd[0]) y = new Ctor(x); - - // Return zero if both are zero. - // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity. - else return new Ctor(rm === 3 ? -0 : 0); - - return external ? finalise(y, pr, rm) : y; - } - - // x and y are finite, non-zero numbers with the same sign. - - // Calculate base 1e7 exponents. - e = mathfloor(y.e / LOG_BASE); - xe = mathfloor(x.e / LOG_BASE); - - xd = xd.slice(); - k = xe - e; - - // If base 1e7 exponents differ... - if (k) { - xLTy = k < 0; - - if (xLTy) { - d = xd; - k = -k; - len = yd.length; - } else { - d = yd; - e = xe; - len = xd.length; - } - - // Numbers with massively different exponents would result in a very high number of - // zeros needing to be prepended, but this can be avoided while still ensuring correct - // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`. - i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2; - - if (k > i) { - k = i; - d.length = 1; - } - - // Prepend zeros to equalise exponents. - d.reverse(); - for (i = k; i--;) d.push(0); - d.reverse(); - - // Base 1e7 exponents equal. - } else { - - // Check digits to determine which is the bigger number. - - i = xd.length; - len = yd.length; - xLTy = i < len; - if (xLTy) len = i; - - for (i = 0; i < len; i++) { - if (xd[i] != yd[i]) { - xLTy = xd[i] < yd[i]; - break; - } - } - - k = 0; - } - - if (xLTy) { - d = xd; - xd = yd; - yd = d; - y.s = -y.s; - } - - len = xd.length; - - // Append zeros to `xd` if shorter. - // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length. - for (i = yd.length - len; i > 0; --i) xd[len++] = 0; - - // Subtract yd from xd. - for (i = yd.length; i > k;) { - - if (xd[--i] < yd[i]) { - for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1; - --xd[j]; - xd[i] += BASE; - } - - xd[i] -= yd[i]; - } - - // Remove trailing zeros. - for (; xd[--len] === 0;) xd.pop(); - - // Remove leading zeros and adjust exponent accordingly. - for (; xd[0] === 0; xd.shift()) --e; - - // Zero? - if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0); - - y.d = xd; - y.e = getBase10Exponent(xd, e); - - return external ? finalise(y, pr, rm) : y; -}; - - -/* - * n % 0 = N - * n % N = N - * n % I = n - * 0 % n = 0 - * -0 % n = -0 - * 0 % 0 = N - * 0 % N = N - * 0 % I = 0 - * N % n = N - * N % 0 = N - * N % N = N - * N % I = N - * I % n = N - * I % 0 = N - * I % N = N - * I % I = N - * - * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * The result depends on the modulo mode. - * - */ -P.modulo = P.mod = function (y) { - var q, - x = this, - Ctor = x.constructor; - - y = new Ctor(y); - - // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0. - if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); - - // Return x if y is ±Infinity or x is ±0. - if (!y.d || x.d && !x.d[0]) { - return finalise(new Ctor(x), Ctor.precision, Ctor.rounding); - } - - // Prevent rounding of intermediate calculations. - external = false; - - if (Ctor.modulo == 9) { - - // Euclidian division: q = sign(y) * floor(x / abs(y)) - // result = x - q * y where 0 <= result < abs(y) - q = divide(x, y.abs(), 0, 3, 1); - q.s *= y.s; - } else { - q = divide(x, y, 0, Ctor.modulo, 1); - } - - q = q.times(y); - - external = true; - - return x.minus(q); -}; - - -/* - * Return a new Decimal whose value is the natural exponential of the value of this Decimal, - * i.e. the base e raised to the power the value of this Decimal, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - */ -P.naturalExponential = P.exp = function () { - return naturalExponential(this); -}; - - -/* - * Return a new Decimal whose value is the natural logarithm of the value of this Decimal, - * rounded to `precision` significant digits using rounding mode `rounding`. - * - */ -P.naturalLogarithm = P.ln = function () { - return naturalLogarithm(this); -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by - * -1. - * - */ -P.negated = P.neg = function () { - var x = new this.constructor(this); - x.s = -x.s; - return finalise(x); -}; - - -/* - * n + 0 = n - * n + N = N - * n + I = I - * 0 + n = n - * 0 + 0 = 0 - * 0 + N = N - * 0 + I = I - * N + n = N - * N + 0 = N - * N + N = N - * N + I = N - * I + n = I - * I + 0 = I - * I + N = N - * I + I = I - * - * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - */ -P.plus = P.add = function (y) { - var carry, d, e, i, k, len, pr, rm, xd, yd, - x = this, - Ctor = x.constructor; - - y = new Ctor(y); - - // If either is not finite... - if (!x.d || !y.d) { - - // Return NaN if either is NaN. - if (!x.s || !y.s) y = new Ctor(NaN); - - // Return x if y is finite and x is ±Infinity. - // Return x if both are ±Infinity with the same sign. - // Return NaN if both are ±Infinity with different signs. - // Return y if x is finite and y is ±Infinity. - else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN); - - return y; - } - - // If signs differ... - if (x.s != y.s) { - y.s = -y.s; - return x.minus(y); - } - - xd = x.d; - yd = y.d; - pr = Ctor.precision; - rm = Ctor.rounding; - - // If either is zero... - if (!xd[0] || !yd[0]) { - - // Return x if y is zero. - // Return y if y is non-zero. - if (!yd[0]) y = new Ctor(x); - - return external ? finalise(y, pr, rm) : y; - } - - // x and y are finite, non-zero numbers with the same sign. - - // Calculate base 1e7 exponents. - k = mathfloor(x.e / LOG_BASE); - e = mathfloor(y.e / LOG_BASE); - - xd = xd.slice(); - i = k - e; - - // If base 1e7 exponents differ... - if (i) { - - if (i < 0) { - d = xd; - i = -i; - len = yd.length; - } else { - d = yd; - e = k; - len = xd.length; - } - - // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1. - k = Math.ceil(pr / LOG_BASE); - len = k > len ? k + 1 : len + 1; - - if (i > len) { - i = len; - d.length = 1; - } - - // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts. - d.reverse(); - for (; i--;) d.push(0); - d.reverse(); - } - - len = xd.length; - i = yd.length; - - // If yd is longer than xd, swap xd and yd so xd points to the longer array. - if (len - i < 0) { - i = len; - d = yd; - yd = xd; - xd = d; - } - - // Only start adding at yd.length - 1 as the further digits of xd can be left as they are. - for (carry = 0; i;) { - carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0; - xd[i] %= BASE; - } - - if (carry) { - xd.unshift(carry); - ++e; - } - - // Remove trailing zeros. - // No need to check for zero, as +x + +y != 0 && -x + -y != 0 - for (len = xd.length; xd[--len] == 0;) xd.pop(); - - y.d = xd; - y.e = getBase10Exponent(xd, e); - - return external ? finalise(y, pr, rm) : y; -}; - - -/* - * Return the number of significant digits of the value of this Decimal. - * - * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0. - * - */ -P.precision = P.sd = function (z) { - var k, - x = this; - - if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z); - - if (x.d) { - k = getPrecision(x.d); - if (z && x.e + 1 > k) k = x.e + 1; - } else { - k = NaN; - } - - return k; -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using - * rounding mode `rounding`. - * - */ -P.round = function () { - var x = this, - Ctor = x.constructor; - - return finalise(new Ctor(x), x.e + 1, Ctor.rounding); -}; - - -/* - * Return a new Decimal whose value is the sine of the value in radians of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-1, 1] - * - * sin(x) = x - x^3/3! + x^5/5! - ... - * - * sin(0) = 0 - * sin(-0) = -0 - * sin(Infinity) = NaN - * sin(-Infinity) = NaN - * sin(NaN) = NaN - * - */ -P.sine = P.sin = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(NaN); - if (x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE; - Ctor.rounding = 1; - - x = sine(Ctor, toLessThanHalfPi(Ctor, x)); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true); -}; - - -/* - * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * sqrt(-n) = N - * sqrt(N) = N - * sqrt(-I) = N - * sqrt(I) = I - * sqrt(0) = 0 - * sqrt(-0) = -0 - * - */ -P.squareRoot = P.sqrt = function () { - var m, n, sd, r, rep, t, - x = this, - d = x.d, - e = x.e, - s = x.s, - Ctor = x.constructor; - - // Negative/NaN/Infinity/zero? - if (s !== 1 || !d || !d[0]) { - return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0); - } - - external = false; - - // Initial estimate. - s = Math.sqrt(+x); - - // Math.sqrt underflow/overflow? - // Pass x to Math.sqrt as integer, then adjust the exponent of the result. - if (s == 0 || s == 1 / 0) { - n = digitsToString(d); - - if ((n.length + e) % 2 == 0) n += '0'; - s = Math.sqrt(n); - e = mathfloor((e + 1) / 2) - (e < 0 || e % 2); - - if (s == 1 / 0) { - n = '5e' + e; - } else { - n = s.toExponential(); - n = n.slice(0, n.indexOf('e') + 1) + e; - } - - r = new Ctor(n); - } else { - r = new Ctor(s.toString()); - } - - sd = (e = Ctor.precision) + 3; - - // Newton-Raphson iteration. - for (;;) { - t = r; - r = t.plus(divide(x, t, sd + 2, 1)).times(0.5); - - // TODO? Replace with for-loop and checkRoundingDigits. - if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) { - n = n.slice(sd - 3, sd + 1); - - // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or - // 4999, i.e. approaching a rounding boundary, continue the iteration. - if (n == '9999' || !rep && n == '4999') { - - // On the first iteration only, check to see if rounding up gives the exact result as the - // nines may infinitely repeat. - if (!rep) { - finalise(t, e + 1, 0); - - if (t.times(t).eq(x)) { - r = t; - break; - } - } - - sd += 4; - rep = 1; - } else { - - // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result. - // If not, then there are further digits and m will be truthy. - if (!+n || !+n.slice(1) && n.charAt(0) == '5') { - - // Truncate to the first rounding digit. - finalise(r, e + 1, 1); - m = !r.times(r).eq(x); - } - - break; - } - } - } - - external = true; - - return finalise(r, e, Ctor.rounding, m); -}; - - -/* - * Return a new Decimal whose value is the tangent of the value in radians of this Decimal. - * - * Domain: [-Infinity, Infinity] - * Range: [-Infinity, Infinity] - * - * tan(0) = 0 - * tan(-0) = -0 - * tan(Infinity) = NaN - * tan(-Infinity) = NaN - * tan(NaN) = NaN - * - */ -P.tangent = P.tan = function () { - var pr, rm, - x = this, - Ctor = x.constructor; - - if (!x.isFinite()) return new Ctor(NaN); - if (x.isZero()) return new Ctor(x); - - pr = Ctor.precision; - rm = Ctor.rounding; - Ctor.precision = pr + 10; - Ctor.rounding = 1; - - x = x.sin(); - x.s = 1; - x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0); - - Ctor.precision = pr; - Ctor.rounding = rm; - - return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true); -}; - - -/* - * n * 0 = 0 - * n * N = N - * n * I = I - * 0 * n = 0 - * 0 * 0 = 0 - * 0 * N = N - * 0 * I = N - * N * n = N - * N * 0 = N - * N * N = N - * N * I = N - * I * n = I - * I * 0 = N - * I * N = N - * I * I = I - * - * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - */ -P.times = P.mul = function (y) { - var carry, e, i, k, r, rL, t, xdL, ydL, - x = this, - Ctor = x.constructor, - xd = x.d, - yd = (y = new Ctor(y)).d; - - y.s *= x.s; - - // If either is NaN, ±Infinity or ±0... - if (!xd || !xd[0] || !yd || !yd[0]) { - - return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd - - // Return NaN if either is NaN. - // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity. - ? NaN - - // Return ±Infinity if either is ±Infinity. - // Return ±0 if either is ±0. - : !xd || !yd ? y.s / 0 : y.s * 0); - } - - e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE); - xdL = xd.length; - ydL = yd.length; - - // Ensure xd points to the longer array. - if (xdL < ydL) { - r = xd; - xd = yd; - yd = r; - rL = xdL; - xdL = ydL; - ydL = rL; - } - - // Initialise the result array with zeros. - r = []; - rL = xdL + ydL; - for (i = rL; i--;) r.push(0); - - // Multiply! - for (i = ydL; --i >= 0;) { - carry = 0; - for (k = xdL + i; k > i;) { - t = r[k] + yd[i] * xd[k - i - 1] + carry; - r[k--] = t % BASE | 0; - carry = t / BASE | 0; - } - - r[k] = (r[k] + carry) % BASE | 0; - } - - // Remove trailing zeros. - for (; !r[--rL];) r.pop(); - - if (carry) ++e; - else r.shift(); - - y.d = r; - y.e = getBase10Exponent(r, e); - - return external ? finalise(y, Ctor.precision, Ctor.rounding) : y; -}; - - -/* - * Return a string representing the value of this Decimal in base 2, round to `sd` significant - * digits using rounding mode `rm`. - * - * If the optional `sd` argument is present then return binary exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ -P.toBinary = function (sd, rm) { - return toStringBinary(this, 2, sd, rm); -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp` - * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted. - * - * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal. - * - * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ -P.toDecimalPlaces = P.toDP = function (dp, rm) { - var x = this, - Ctor = x.constructor; - - x = new Ctor(x); - if (dp === void 0) return x; - - checkInt32(dp, 0, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - return finalise(x, dp + x.e + 1, rm); -}; - - -/* - * Return a string representing the value of this Decimal in exponential notation rounded to - * `dp` fixed decimal places using rounding mode `rounding`. - * - * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ -P.toExponential = function (dp, rm) { - var str, - x = this, - Ctor = x.constructor; - - if (dp === void 0) { - str = finiteToString(x, true); - } else { - checkInt32(dp, 0, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - x = finalise(new Ctor(x), dp + 1, rm); - str = finiteToString(x, true, dp + 1); - } - - return x.isNeg() && !x.isZero() ? '-' + str : str; -}; - - -/* - * Return a string representing the value of this Decimal in normal (fixed-point) notation to - * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is - * omitted. - * - * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'. - * - * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. - * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. - * (-0).toFixed(3) is '0.000'. - * (-0.5).toFixed(0) is '-0'. - * - */ -P.toFixed = function (dp, rm) { - var str, y, - x = this, - Ctor = x.constructor; - - if (dp === void 0) { - str = finiteToString(x); - } else { - checkInt32(dp, 0, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - y = finalise(new Ctor(x), dp + x.e + 1, rm); - str = finiteToString(y, false, dp + y.e + 1); - } - - // To determine whether to add the minus sign look at the value before it was rounded, - // i.e. look at `x` rather than `y`. - return x.isNeg() && !x.isZero() ? '-' + str : str; -}; - - -/* - * Return an array representing the value of this Decimal as a simple fraction with an integer - * numerator and an integer denominator. - * - * The denominator will be a positive non-zero value less than or equal to the specified maximum - * denominator. If a maximum denominator is not specified, the denominator will be the lowest - * value necessary to represent the number exactly. - * - * [maxD] {number|string|Decimal} Maximum denominator. Integer >= 1 and < Infinity. - * - */ -P.toFraction = function (maxD) { - var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r, - x = this, - xd = x.d, - Ctor = x.constructor; - - if (!xd) return new Ctor(x); - - n1 = d0 = new Ctor(1); - d1 = n0 = new Ctor(0); - - d = new Ctor(d1); - e = d.e = getPrecision(xd) - x.e - 1; - k = e % LOG_BASE; - d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k); - - if (maxD == null) { - - // d is 10**e, the minimum max-denominator needed. - maxD = e > 0 ? d : n1; - } else { - n = new Ctor(maxD); - if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n); - maxD = n.gt(d) ? (e > 0 ? d : n1) : n; - } - - external = false; - n = new Ctor(digitsToString(xd)); - pr = Ctor.precision; - Ctor.precision = e = xd.length * LOG_BASE * 2; - - for (;;) { - q = divide(n, d, 0, 1, 1); - d2 = d0.plus(q.times(d1)); - if (d2.cmp(maxD) == 1) break; - d0 = d1; - d1 = d2; - d2 = n1; - n1 = n0.plus(q.times(d2)); - n0 = d2; - d2 = d; - d = n.minus(q.times(d2)); - n = d2; - } - - d2 = divide(maxD.minus(d0), d1, 0, 1, 1); - n0 = n0.plus(d2.times(n1)); - d0 = d0.plus(d2.times(d1)); - n0.s = n1.s = x.s; - - // Determine which fraction is closer to x, n0/d0 or n1/d1? - r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1 - ? [n1, d1] : [n0, d0]; - - Ctor.precision = pr; - external = true; - - return r; -}; - - -/* - * Return a string representing the value of this Decimal in base 16, round to `sd` significant - * digits using rounding mode `rm`. - * - * If the optional `sd` argument is present then return binary exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ -P.toHexadecimal = P.toHex = function (sd, rm) { - return toStringBinary(this, 16, sd, rm); -}; - - -/* - * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding - * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal. - * - * The return value will always have the same sign as this Decimal, unless either this Decimal - * or `y` is NaN, in which case the return value will be also be NaN. - * - * The return value is not affected by the value of `precision`. - * - * y {number|string|Decimal} The magnitude to round to a multiple of. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * 'toNearest() rounding mode not an integer: {rm}' - * 'toNearest() rounding mode out of range: {rm}' - * - */ -P.toNearest = function (y, rm) { - var x = this, - Ctor = x.constructor; - - x = new Ctor(x); - - if (y == null) { - - // If x is not finite, return x. - if (!x.d) return x; - - y = new Ctor(1); - rm = Ctor.rounding; - } else { - y = new Ctor(y); - if (rm === void 0) { - rm = Ctor.rounding; - } else { - checkInt32(rm, 0, 8); - } - - // If x is not finite, return x if y is not NaN, else NaN. - if (!x.d) return y.s ? x : y; - - // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN. - if (!y.d) { - if (y.s) y.s = x.s; - return y; - } - } - - // If y is not zero, calculate the nearest multiple of y to x. - if (y.d[0]) { - external = false; - x = divide(x, y, 0, rm, 1).times(y); - external = true; - finalise(x); - - // If y is zero, return zero with the sign of x. - } else { - y.s = x.s; - x = y; - } - - return x; -}; - - -/* - * Return the value of this Decimal converted to a number primitive. - * Zero keeps its sign. - * - */ -P.toNumber = function () { - return +this; -}; - - -/* - * Return a string representing the value of this Decimal in base 8, round to `sd` significant - * digits using rounding mode `rm`. - * - * If the optional `sd` argument is present then return binary exponential notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ -P.toOctal = function (sd, rm) { - return toStringBinary(this, 8, sd, rm); -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded - * to `precision` significant digits using rounding mode `rounding`. - * - * ECMAScript compliant. - * - * pow(x, NaN) = NaN - * pow(x, ±0) = 1 - - * pow(NaN, non-zero) = NaN - * pow(abs(x) > 1, +Infinity) = +Infinity - * pow(abs(x) > 1, -Infinity) = +0 - * pow(abs(x) == 1, ±Infinity) = NaN - * pow(abs(x) < 1, +Infinity) = +0 - * pow(abs(x) < 1, -Infinity) = +Infinity - * pow(+Infinity, y > 0) = +Infinity - * pow(+Infinity, y < 0) = +0 - * pow(-Infinity, odd integer > 0) = -Infinity - * pow(-Infinity, even integer > 0) = +Infinity - * pow(-Infinity, odd integer < 0) = -0 - * pow(-Infinity, even integer < 0) = +0 - * pow(+0, y > 0) = +0 - * pow(+0, y < 0) = +Infinity - * pow(-0, odd integer > 0) = -0 - * pow(-0, even integer > 0) = +0 - * pow(-0, odd integer < 0) = -Infinity - * pow(-0, even integer < 0) = +Infinity - * pow(finite x < 0, finite non-integer) = NaN - * - * For non-integer or very large exponents pow(x, y) is calculated using - * - * x^y = exp(y*ln(x)) - * - * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the - * probability of an incorrectly rounded result - * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14 - * i.e. 1 in 250,000,000,000,000 - * - * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place). - * - * y {number|string|Decimal} The power to which to raise this Decimal. - * - */ -P.toPower = P.pow = function (y) { - var e, k, pr, r, rm, s, - x = this, - Ctor = x.constructor, - yn = +(y = new Ctor(y)); - - // Either ±Infinity, NaN or ±0? - if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn)); - - x = new Ctor(x); - - if (x.eq(1)) return x; - - pr = Ctor.precision; - rm = Ctor.rounding; - - if (y.eq(1)) return finalise(x, pr, rm); - - // y exponent - e = mathfloor(y.e / LOG_BASE); - - // If y is a small integer use the 'exponentiation by squaring' algorithm. - if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) { - r = intPow(Ctor, x, k, pr); - return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm); - } - - s = x.s; - - // if x is negative - if (s < 0) { - - // if y is not an integer - if (e < y.d.length - 1) return new Ctor(NaN); - - // Result is positive if x is negative and the last digit of integer y is even. - if ((y.d[e] & 1) == 0) s = 1; - - // if x.eq(-1) - if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) { - x.s = s; - return x; - } - } - - // Estimate result exponent. - // x^y = 10^e, where e = y * log10(x) - // log10(x) = log10(x_significand) + x_exponent - // log10(x_significand) = ln(x_significand) / ln(10) - k = mathpow(+x, yn); - e = k == 0 || !isFinite(k) - ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1)) - : new Ctor(k + '').e; - - // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1. - - // Overflow/underflow? - if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0); - - external = false; - Ctor.rounding = x.s = 1; - - // Estimate the extra guard digits needed to ensure five correct rounding digits from - // naturalLogarithm(x). Example of failure without these extra digits (precision: 10): - // new Decimal(2.32456).pow('2087987436534566.46411') - // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815 - k = Math.min(12, (e + '').length); - - // r = x^y = exp(y*ln(x)) - r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr); - - // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40) - if (r.d) { - - // Truncate to the required precision plus five rounding digits. - r = finalise(r, pr + 5, 1); - - // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate - // the result. - if (checkRoundingDigits(r.d, pr, rm)) { - e = pr + 10; - - // Truncate to the increased precision plus five rounding digits. - r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1); - - // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9). - if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) { - r = finalise(r, pr + 1, 0); - } - } - } - - r.s = s; - external = true; - Ctor.rounding = rm; - - return finalise(r, pr, rm); -}; - - -/* - * Return a string representing the value of this Decimal rounded to `sd` significant digits - * using rounding mode `rounding`. - * - * Return exponential notation if `sd` is less than the number of digits necessary to represent - * the integer part of the value in normal notation. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - */ -P.toPrecision = function (sd, rm) { - var str, - x = this, - Ctor = x.constructor; - - if (sd === void 0) { - str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); - } else { - checkInt32(sd, 1, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - - x = finalise(new Ctor(x), sd, rm); - str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd); - } - - return x.isNeg() && !x.isZero() ? '-' + str : str; -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd` - * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if - * omitted. - * - * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive. - * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive. - * - * 'toSD() digits out of range: {sd}' - * 'toSD() digits not an integer: {sd}' - * 'toSD() rounding mode not an integer: {rm}' - * 'toSD() rounding mode out of range: {rm}' - * - */ -P.toSignificantDigits = P.toSD = function (sd, rm) { - var x = this, - Ctor = x.constructor; - - if (sd === void 0) { - sd = Ctor.precision; - rm = Ctor.rounding; - } else { - checkInt32(sd, 1, MAX_DIGITS); - - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - } - - return finalise(new Ctor(x), sd, rm); -}; - - -/* - * Return a string representing the value of this Decimal. - * - * Return exponential notation if this Decimal has a positive exponent equal to or greater than - * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`. - * - */ -P.toString = function () { - var x = this, - Ctor = x.constructor, - str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); - - return x.isNeg() && !x.isZero() ? '-' + str : str; -}; - - -/* - * Return a new Decimal whose value is the value of this Decimal truncated to a whole number. - * - */ -P.truncated = P.trunc = function () { - return finalise(new this.constructor(this), this.e + 1, 1); -}; - - -/* - * Return a string representing the value of this Decimal. - * Unlike `toString`, negative zero will include the minus sign. - * - */ -P.valueOf = P.toJSON = function () { - var x = this, - Ctor = x.constructor, - str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos); - - return x.isNeg() ? '-' + str : str; -}; - - -// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers. - - -/* - * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower, - * finiteToString, naturalExponential, naturalLogarithm - * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest, - * P.toPrecision, P.toSignificantDigits, toStringBinary, random - * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm - * convertBase toStringBinary, parseOther - * cos P.cos - * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy, - * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction, - * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm, - * taylorSeries, atan2, parseOther - * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh, - * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus, - * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot, - * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed, - * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits, - * P.truncated, divide, getLn10, getPi, naturalExponential, - * naturalLogarithm, ceil, floor, round, trunc - * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf, - * toStringBinary - * getBase10Exponent P.minus, P.plus, P.times, parseOther - * getLn10 P.logarithm, naturalLogarithm - * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2 - * getPrecision P.precision, P.toFraction - * getZeroString digitsToString, finiteToString - * intPow P.toPower, parseOther - * isOdd toLessThanHalfPi - * maxOrMin max, min - * naturalExponential P.naturalExponential, P.toPower - * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm, - * P.toPower, naturalExponential - * nonFiniteToString finiteToString, toStringBinary - * parseDecimal Decimal - * parseOther Decimal - * sin P.sin - * taylorSeries P.cosh, P.sinh, cos, sin - * toLessThanHalfPi P.cos, P.sin - * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal - * truncate intPow - * - * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi, - * naturalLogarithm, config, parseOther, random, Decimal - */ - - -function digitsToString(d) { - var i, k, ws, - indexOfLastWord = d.length - 1, - str = '', - w = d[0]; - - if (indexOfLastWord > 0) { - str += w; - for (i = 1; i < indexOfLastWord; i++) { - ws = d[i] + ''; - k = LOG_BASE - ws.length; - if (k) str += getZeroString(k); - str += ws; - } - - w = d[i]; - ws = w + ''; - k = LOG_BASE - ws.length; - if (k) str += getZeroString(k); - } else if (w === 0) { - return '0'; - } - - // Remove trailing zeros of last w. - for (; w % 10 === 0;) w /= 10; - - return str + w; -} - - -function checkInt32(i, min, max) { - if (i !== ~~i || i < min || i > max) { - throw Error(invalidArgument + i); - } -} - - -/* - * Check 5 rounding digits if `repeating` is null, 4 otherwise. - * `repeating == null` if caller is `log` or `pow`, - * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`. - */ -function checkRoundingDigits(d, i, rm, repeating) { - var di, k, r, rd; - - // Get the length of the first word of the array d. - for (k = d[0]; k >= 10; k /= 10) --i; - - // Is the rounding digit in the first word of d? - if (--i < 0) { - i += LOG_BASE; - di = 0; - } else { - di = Math.ceil((i + 1) / LOG_BASE); - i %= LOG_BASE; - } - - // i is the index (0 - 6) of the rounding digit. - // E.g. if within the word 3487563 the first rounding digit is 5, - // then i = 4, k = 1000, rd = 3487563 % 1000 = 563 - k = mathpow(10, LOG_BASE - i); - rd = d[di] % k | 0; - - if (repeating == null) { - if (i < 3) { - if (i == 0) rd = rd / 100 | 0; - else if (i == 1) rd = rd / 10 | 0; - r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0; - } else { - r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && - (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 || - (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0; - } - } else { - if (i < 4) { - if (i == 0) rd = rd / 1000 | 0; - else if (i == 1) rd = rd / 100 | 0; - else if (i == 2) rd = rd / 10 | 0; - r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999; - } else { - r = ((repeating || rm < 4) && rd + 1 == k || - (!repeating && rm > 3) && rd + 1 == k / 2) && - (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1; - } - } - - return r; -} - - -// Convert string of `baseIn` to an array of numbers of `baseOut`. -// Eg. convertBase('255', 10, 16) returns [15, 15]. -// Eg. convertBase('ff', 16, 10) returns [2, 5, 5]. -function convertBase(str, baseIn, baseOut) { - var j, - arr = [0], - arrL, - i = 0, - strL = str.length; - - for (; i < strL;) { - for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn; - arr[0] += NUMERALS.indexOf(str.charAt(i++)); - for (j = 0; j < arr.length; j++) { - if (arr[j] > baseOut - 1) { - if (arr[j + 1] === void 0) arr[j + 1] = 0; - arr[j + 1] += arr[j] / baseOut | 0; - arr[j] %= baseOut; - } - } - } - - return arr.reverse(); -} - - -/* - * cos(x) = 1 - x^2/2! + x^4/4! - ... - * |x| < pi/2 - * - */ -function cosine(Ctor, x) { - var k, len, y; - - if (x.isZero()) return x; - - // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1 - // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1 - - // Estimate the optimum number of times to use the argument reduction. - len = x.d.length; - if (len < 32) { - k = Math.ceil(len / 3); - y = (1 / tinyPow(4, k)).toString(); - } else { - k = 16; - y = '2.3283064365386962890625e-10'; - } - - Ctor.precision += k; - - x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1)); - - // Reverse argument reduction - for (var i = k; i--;) { - var cos2x = x.times(x); - x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1); - } - - Ctor.precision -= k; - - return x; -} - - -/* - * Perform division in the specified base. - */ -var divide = (function () { - - // Assumes non-zero x and k, and hence non-zero result. - function multiplyInteger(x, k, base) { - var temp, - carry = 0, - i = x.length; - - for (x = x.slice(); i--;) { - temp = x[i] * k + carry; - x[i] = temp % base | 0; - carry = temp / base | 0; - } - - if (carry) x.unshift(carry); - - return x; - } - - function compare(a, b, aL, bL) { - var i, r; - - if (aL != bL) { - r = aL > bL ? 1 : -1; - } else { - for (i = r = 0; i < aL; i++) { - if (a[i] != b[i]) { - r = a[i] > b[i] ? 1 : -1; - break; - } - } - } - - return r; - } - - function subtract(a, b, aL, base) { - var i = 0; - - // Subtract b from a. - for (; aL--;) { - a[aL] -= i; - i = a[aL] < b[aL] ? 1 : 0; - a[aL] = i * base + a[aL] - b[aL]; - } - - // Remove leading zeros. - for (; !a[0] && a.length > 1;) a.shift(); - } - - return function (x, y, pr, rm, dp, base) { - var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, - yL, yz, - Ctor = x.constructor, - sign = x.s == y.s ? 1 : -1, - xd = x.d, - yd = y.d; - - // Either NaN, Infinity or 0? - if (!xd || !xd[0] || !yd || !yd[0]) { - - return new Ctor(// Return NaN if either NaN, or both Infinity or 0. - !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : - - // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0. - xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0); - } - - if (base) { - logBase = 1; - e = x.e - y.e; - } else { - base = BASE; - logBase = LOG_BASE; - e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase); - } - - yL = yd.length; - xL = xd.length; - q = new Ctor(sign); - qd = q.d = []; - - // Result exponent may be one less than e. - // The digit array of a Decimal from toStringBinary may have trailing zeros. - for (i = 0; yd[i] == (xd[i] || 0); i++); - - if (yd[i] > (xd[i] || 0)) e--; - - if (pr == null) { - sd = pr = Ctor.precision; - rm = Ctor.rounding; - } else if (dp) { - sd = pr + (x.e - y.e) + 1; - } else { - sd = pr; - } - - if (sd < 0) { - qd.push(1); - more = true; - } else { - - // Convert precision in number of base 10 digits to base 1e7 digits. - sd = sd / logBase + 2 | 0; - i = 0; - - // divisor < 1e7 - if (yL == 1) { - k = 0; - yd = yd[0]; - sd++; - - // k is the carry. - for (; (i < xL || k) && sd--; i++) { - t = k * base + (xd[i] || 0); - qd[i] = t / yd | 0; - k = t % yd | 0; - } - - more = k || i < xL; - - // divisor >= 1e7 - } else { - - // Normalise xd and yd so highest order digit of yd is >= base/2 - k = base / (yd[0] + 1) | 0; - - if (k > 1) { - yd = multiplyInteger(yd, k, base); - xd = multiplyInteger(xd, k, base); - yL = yd.length; - xL = xd.length; - } - - xi = yL; - rem = xd.slice(0, yL); - remL = rem.length; - - // Add zeros to make remainder as long as divisor. - for (; remL < yL;) rem[remL++] = 0; - - yz = yd.slice(); - yz.unshift(0); - yd0 = yd[0]; - - if (yd[1] >= base / 2) ++yd0; - - do { - k = 0; - - // Compare divisor and remainder. - cmp = compare(yd, rem, yL, remL); - - // If divisor < remainder. - if (cmp < 0) { - - // Calculate trial digit, k. - rem0 = rem[0]; - if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); - - // k will be how many times the divisor goes into the current remainder. - k = rem0 / yd0 | 0; - - // Algorithm: - // 1. product = divisor * trial digit (k) - // 2. if product > remainder: product -= divisor, k-- - // 3. remainder -= product - // 4. if product was < remainder at 2: - // 5. compare new remainder and divisor - // 6. If remainder > divisor: remainder -= divisor, k++ - - if (k > 1) { - if (k >= base) k = base - 1; - - // product = divisor * trial digit. - prod = multiplyInteger(yd, k, base); - prodL = prod.length; - remL = rem.length; - - // Compare product and remainder. - cmp = compare(prod, rem, prodL, remL); - - // product > remainder. - if (cmp == 1) { - k--; - - // Subtract divisor from product. - subtract(prod, yL < prodL ? yz : yd, prodL, base); - } - } else { - - // cmp is -1. - // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1 - // to avoid it. If k is 1 there is a need to compare yd and rem again below. - if (k == 0) cmp = k = 1; - prod = yd.slice(); - } - - prodL = prod.length; - if (prodL < remL) prod.unshift(0); - - // Subtract product from remainder. - subtract(rem, prod, remL, base); - - // If product was < previous remainder. - if (cmp == -1) { - remL = rem.length; - - // Compare divisor and new remainder. - cmp = compare(yd, rem, yL, remL); - - // If divisor < new remainder, subtract divisor from remainder. - if (cmp < 1) { - k++; - - // Subtract divisor from remainder. - subtract(rem, yL < remL ? yz : yd, remL, base); - } - } - - remL = rem.length; - } else if (cmp === 0) { - k++; - rem = [0]; - } // if cmp === 1, k will be 0 - - // Add the next digit, k, to the result array. - qd[i++] = k; - - // Update the remainder. - if (cmp && rem[0]) { - rem[remL++] = xd[xi] || 0; - } else { - rem = [xd[xi]]; - remL = 1; - } - - } while ((xi++ < xL || rem[0] !== void 0) && sd--); - - more = rem[0] !== void 0; - } - - // Leading zero? - if (!qd[0]) qd.shift(); - } - - // logBase is 1 when divide is being used for base conversion. - if (logBase == 1) { - q.e = e; - inexact = more; - } else { - - // To calculate q.e, first get the number of digits of qd[0]. - for (i = 1, k = qd[0]; k >= 10; k /= 10) i++; - q.e = i + e * logBase - 1; - - finalise(q, dp ? pr + q.e + 1 : pr, rm, more); - } - - return q; - }; -})(); - - -/* - * Round `x` to `sd` significant digits using rounding mode `rm`. - * Check for over/under-flow. - */ - function finalise(x, sd, rm, isTruncated) { - var digits, i, j, k, rd, roundUp, w, xd, xdi, - Ctor = x.constructor; - - // Don't round if sd is null or undefined. - out: if (sd != null) { - xd = x.d; - - // Infinity/NaN. - if (!xd) return x; - - // rd: the rounding digit, i.e. the digit after the digit that may be rounded up. - // w: the word of xd containing rd, a base 1e7 number. - // xdi: the index of w within xd. - // digits: the number of digits of w. - // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if - // they had leading zeros) - // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero). - - // Get the length of the first word of the digits array xd. - for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++; - i = sd - digits; - - // Is the rounding digit in the first word of xd? - if (i < 0) { - i += LOG_BASE; - j = sd; - w = xd[xdi = 0]; - - // Get the rounding digit at index j of w. - rd = w / mathpow(10, digits - j - 1) % 10 | 0; - } else { - xdi = Math.ceil((i + 1) / LOG_BASE); - k = xd.length; - if (xdi >= k) { - if (isTruncated) { - - // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`. - for (; k++ <= xdi;) xd.push(0); - w = rd = 0; - digits = 1; - i %= LOG_BASE; - j = i - LOG_BASE + 1; - } else { - break out; - } - } else { - w = k = xd[xdi]; - - // Get the number of digits of w. - for (digits = 1; k >= 10; k /= 10) digits++; - - // Get the index of rd within w. - i %= LOG_BASE; - - // Get the index of rd within w, adjusted for leading zeros. - // The number of leading zeros of w is given by LOG_BASE - digits. - j = i - LOG_BASE + digits; - - // Get the rounding digit at index j of w. - rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0; - } - } - - // Are there any non-zero digits after the rounding digit? - isTruncated = isTruncated || sd < 0 || - xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1)); - - // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right - // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression - // will give 714. - - roundUp = rm < 4 - ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) - : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && - - // Check whether the digit to the left of the rounding digit is odd. - ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 || - rm == (x.s < 0 ? 8 : 7)); - - if (sd < 1 || !xd[0]) { - xd.length = 0; - if (roundUp) { - - // Convert sd to decimal places. - sd -= x.e + 1; - - // 1, 0.1, 0.01, 0.001, 0.0001 etc. - xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE); - x.e = -sd || 0; - } else { - - // Zero. - xd[0] = x.e = 0; - } - - return x; - } - - // Remove excess digits. - if (i == 0) { - xd.length = xdi; - k = 1; - xdi--; - } else { - xd.length = xdi + 1; - k = mathpow(10, LOG_BASE - i); - - // E.g. 56700 becomes 56000 if 7 is the rounding digit. - // j > 0 means i > number of leading zeros of w. - xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0; - } - - if (roundUp) { - for (;;) { - - // Is the digit to be rounded up in the first word of xd? - if (xdi == 0) { - - // i will be the length of xd[0] before k is added. - for (i = 1, j = xd[0]; j >= 10; j /= 10) i++; - j = xd[0] += k; - for (k = 1; j >= 10; j /= 10) k++; - - // if i != k the length has increased. - if (i != k) { - x.e++; - if (xd[0] == BASE) xd[0] = 1; - } - - break; - } else { - xd[xdi] += k; - if (xd[xdi] != BASE) break; - xd[xdi--] = 0; - k = 1; - } - } - } - - // Remove trailing zeros. - for (i = xd.length; xd[--i] === 0;) xd.pop(); - } - - if (external) { - - // Overflow? - if (x.e > Ctor.maxE) { - - // Infinity. - x.d = null; - x.e = NaN; - - // Underflow? - } else if (x.e < Ctor.minE) { - - // Zero. - x.e = 0; - x.d = [0]; - // Ctor.underflow = true; - } // else Ctor.underflow = false; - } - - return x; -} - - -function finiteToString(x, isExp, sd) { - if (!x.isFinite()) return nonFiniteToString(x); - var k, - e = x.e, - str = digitsToString(x.d), - len = str.length; - - if (isExp) { - if (sd && (k = sd - len) > 0) { - str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k); - } else if (len > 1) { - str = str.charAt(0) + '.' + str.slice(1); - } - - str = str + (x.e < 0 ? 'e' : 'e+') + x.e; - } else if (e < 0) { - str = '0.' + getZeroString(-e - 1) + str; - if (sd && (k = sd - len) > 0) str += getZeroString(k); - } else if (e >= len) { - str += getZeroString(e + 1 - len); - if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k); - } else { - if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k); - if (sd && (k = sd - len) > 0) { - if (e + 1 === len) str += '.'; - str += getZeroString(k); - } - } - - return str; -} - - -// Calculate the base 10 exponent from the base 1e7 exponent. -function getBase10Exponent(digits, e) { - var w = digits[0]; - - // Add the number of digits of the first word of the digits array. - for ( e *= LOG_BASE; w >= 10; w /= 10) e++; - return e; -} - - -function getLn10(Ctor, sd, pr) { - if (sd > LN10_PRECISION) { - - // Reset global state in case the exception is caught. - external = true; - if (pr) Ctor.precision = pr; - throw Error(precisionLimitExceeded); - } - return finalise(new Ctor(LN10), sd, 1, true); -} - - -function getPi(Ctor, sd, rm) { - if (sd > PI_PRECISION) throw Error(precisionLimitExceeded); - return finalise(new Ctor(PI), sd, rm, true); -} - - -function getPrecision(digits) { - var w = digits.length - 1, - len = w * LOG_BASE + 1; - - w = digits[w]; - - // If non-zero... - if (w) { - - // Subtract the number of trailing zeros of the last word. - for (; w % 10 == 0; w /= 10) len--; - - // Add the number of digits of the first word. - for (w = digits[0]; w >= 10; w /= 10) len++; - } - - return len; -} - - -function getZeroString(k) { - var zs = ''; - for (; k--;) zs += '0'; - return zs; -} - - -/* - * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an - * integer of type number. - * - * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`. - * - */ -function intPow(Ctor, x, n, pr) { - var isTruncated, - r = new Ctor(1), - - // Max n of 9007199254740991 takes 53 loop iterations. - // Maximum digits array length; leaves [28, 34] guard digits. - k = Math.ceil(pr / LOG_BASE + 4); - - external = false; - - for (;;) { - if (n % 2) { - r = r.times(x); - if (truncate(r.d, k)) isTruncated = true; - } - - n = mathfloor(n / 2); - if (n === 0) { - - // To ensure correct rounding when r.d is truncated, increment the last word if it is zero. - n = r.d.length - 1; - if (isTruncated && r.d[n] === 0) ++r.d[n]; - break; - } - - x = x.times(x); - truncate(x.d, k); - } - - external = true; - - return r; -} - - -function isOdd(n) { - return n.d[n.d.length - 1] & 1; -} - - -/* - * Handle `max` and `min`. `ltgt` is 'lt' or 'gt'. - */ -function maxOrMin(Ctor, args, ltgt) { - var y, - x = new Ctor(args[0]), - i = 0; - - for (; ++i < args.length;) { - y = new Ctor(args[i]); - if (!y.s) { - x = y; - break; - } else if (x[ltgt](y)) { - x = y; - } - } - - return x; -} - - -/* - * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant - * digits. - * - * Taylor/Maclaurin series. - * - * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ... - * - * Argument reduction: - * Repeat x = x / 32, k += 5, until |x| < 0.1 - * exp(x) = exp(x / 2^k)^(2^k) - * - * Previously, the argument was initially reduced by - * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10) - * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was - * found to be slower than just dividing repeatedly by 32 as above. - * - * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000 - * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000 - * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324) - * - * exp(Infinity) = Infinity - * exp(-Infinity) = 0 - * exp(NaN) = NaN - * exp(±0) = 1 - * - * exp(x) is non-terminating for any finite, non-zero x. - * - * The result will always be correctly rounded. - * - */ -function naturalExponential(x, sd) { - var denominator, guard, j, pow, sum, t, wpr, - rep = 0, - i = 0, - k = 0, - Ctor = x.constructor, - rm = Ctor.rounding, - pr = Ctor.precision; - - // 0/NaN/Infinity? - if (!x.d || !x.d[0] || x.e > 17) { - - return new Ctor(x.d - ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 - : x.s ? x.s < 0 ? 0 : x : 0 / 0); - } - - if (sd == null) { - external = false; - wpr = pr; - } else { - wpr = sd; - } - - t = new Ctor(0.03125); - - // while abs(x) >= 0.1 - while (x.e > -2) { - - // x = x / 2^5 - x = x.times(t); - k += 5; - } - - // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision - // necessary to ensure the first 4 rounding digits are correct. - guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0; - wpr += guard; - denominator = pow = sum = new Ctor(1); - Ctor.precision = wpr; - - for (;;) { - pow = finalise(pow.times(x), wpr, 1); - denominator = denominator.times(++i); - t = sum.plus(divide(pow, denominator, wpr, 1)); - - if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) { - j = k; - while (j--) sum = finalise(sum.times(sum), wpr, 1); - - // Check to see if the first 4 rounding digits are [49]999. - // If so, repeat the summation with a higher precision, otherwise - // e.g. with precision: 18, rounding: 1 - // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123) - // `wpr - guard` is the index of first rounding digit. - if (sd == null) { - - if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) { - Ctor.precision = wpr += 10; - denominator = pow = t = new Ctor(1); - i = 0; - rep++; - } else { - return finalise(sum, Ctor.precision = pr, rm, external = true); - } - } else { - Ctor.precision = pr; - return sum; - } - } - - sum = t; - } -} - - -/* - * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant - * digits. - * - * ln(-n) = NaN - * ln(0) = -Infinity - * ln(-0) = -Infinity - * ln(1) = 0 - * ln(Infinity) = Infinity - * ln(-Infinity) = NaN - * ln(NaN) = NaN - * - * ln(n) (n != 1) is non-terminating. - * - */ -function naturalLogarithm(y, sd) { - var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2, - n = 1, - guard = 10, - x = y, - xd = x.d, - Ctor = x.constructor, - rm = Ctor.rounding, - pr = Ctor.precision; - - // Is x negative or Infinity, NaN, 0 or 1? - if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) { - return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x); - } - - if (sd == null) { - external = false; - wpr = pr; - } else { - wpr = sd; - } - - Ctor.precision = wpr += guard; - c = digitsToString(xd); - c0 = c.charAt(0); - - if (Math.abs(e = x.e) < 1.5e15) { - - // Argument reduction. - // The series converges faster the closer the argument is to 1, so using - // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b - // multiply the argument by itself until the leading digits of the significand are 7, 8, 9, - // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can - // later be divided by this number, then separate out the power of 10 using - // ln(a*10^b) = ln(a) + b*ln(10). - - // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14). - //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) { - // max n is 6 (gives 0.7 - 1.3) - while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) { - x = x.times(y); - c = digitsToString(x.d); - c0 = c.charAt(0); - n++; - } - - e = x.e; - - if (c0 > 1) { - x = new Ctor('0.' + c); - e++; - } else { - x = new Ctor(c0 + '.' + c.slice(1)); - } - } else { - - // The argument reduction method above may result in overflow if the argument y is a massive - // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this - // function using ln(x*10^e) = ln(x) + e*ln(10). - t = getLn10(Ctor, wpr + 2, pr).times(e + ''); - x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t); - Ctor.precision = pr; - - return sd == null ? finalise(x, pr, rm, external = true) : x; - } - - // x1 is x reduced to a value near 1. - x1 = x; - - // Taylor series. - // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...) - // where x = (y - 1)/(y + 1) (|x| < 1) - sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1); - x2 = finalise(x.times(x), wpr, 1); - denominator = 3; - - for (;;) { - numerator = finalise(numerator.times(x2), wpr, 1); - t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1)); - - if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) { - sum = sum.times(2); - - // Reverse the argument reduction. Check that e is not 0 because, besides preventing an - // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0. - if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + '')); - sum = divide(sum, new Ctor(n), wpr, 1); - - // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has - // been repeated previously) and the first 4 rounding digits 9999? - // If so, restart the summation with a higher precision, otherwise - // e.g. with precision: 12, rounding: 1 - // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463. - // `wpr - guard` is the index of first rounding digit. - if (sd == null) { - if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) { - Ctor.precision = wpr += guard; - t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1); - x2 = finalise(x.times(x), wpr, 1); - denominator = rep = 1; - } else { - return finalise(sum, Ctor.precision = pr, rm, external = true); - } - } else { - Ctor.precision = pr; - return sum; - } - } - - sum = t; - denominator += 2; - } -} - - -// ±Infinity, NaN. -function nonFiniteToString(x) { - // Unsigned. - return String(x.s * x.s / 0); -} - - -/* - * Parse the value of a new Decimal `x` from string `str`. - */ -function parseDecimal(x, str) { - var e, i, len; - - // Decimal point? - if ((e = str.indexOf('.')) > -1) str = str.replace('.', ''); - - // Exponential form? - if ((i = str.search(/e/i)) > 0) { - - // Determine exponent. - if (e < 0) e = i; - e += +str.slice(i + 1); - str = str.substring(0, i); - } else if (e < 0) { - - // Integer. - e = str.length; - } - - // Determine leading zeros. - for (i = 0; str.charCodeAt(i) === 48; i++); - - // Determine trailing zeros. - for (len = str.length; str.charCodeAt(len - 1) === 48; --len); - str = str.slice(i, len); - - if (str) { - len -= i; - x.e = e = e - i - 1; - x.d = []; - - // Transform base - - // e is the base 10 exponent. - // i is where to slice str to get the first word of the digits array. - i = (e + 1) % LOG_BASE; - if (e < 0) i += LOG_BASE; - - if (i < len) { - if (i) x.d.push(+str.slice(0, i)); - for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE)); - str = str.slice(i); - i = LOG_BASE - str.length; - } else { - i -= len; - } - - for (; i--;) str += '0'; - x.d.push(+str); - - if (external) { - - // Overflow? - if (x.e > x.constructor.maxE) { - - // Infinity. - x.d = null; - x.e = NaN; - - // Underflow? - } else if (x.e < x.constructor.minE) { - - // Zero. - x.e = 0; - x.d = [0]; - // x.constructor.underflow = true; - } // else x.constructor.underflow = false; - } - } else { - - // Zero. - x.e = 0; - x.d = [0]; - } - - return x; -} - - -/* - * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value. - */ -function parseOther(x, str) { - var base, Ctor, divisor, i, isFloat, len, p, xd, xe; - - if (str.indexOf('_') > -1) { - str = str.replace(/(\d)_(?=\d)/g, '$1'); - if (isDecimal.test(str)) return parseDecimal(x, str); - } else if (str === 'Infinity' || str === 'NaN') { - if (!+str) x.s = NaN; - x.e = NaN; - x.d = null; - return x; - } - - if (isHex.test(str)) { - base = 16; - str = str.toLowerCase(); - } else if (isBinary.test(str)) { - base = 2; - } else if (isOctal.test(str)) { - base = 8; - } else { - throw Error(invalidArgument + str); - } - - // Is there a binary exponent part? - i = str.search(/p/i); - - if (i > 0) { - p = +str.slice(i + 1); - str = str.substring(2, i); - } else { - str = str.slice(2); - } - - // Convert `str` as an integer then divide the result by `base` raised to a power such that the - // fraction part will be restored. - i = str.indexOf('.'); - isFloat = i >= 0; - Ctor = x.constructor; - - if (isFloat) { - str = str.replace('.', ''); - len = str.length; - i = len - i; - - // log[10](16) = 1.2041... , log[10](88) = 1.9444.... - divisor = intPow(Ctor, new Ctor(base), i, i * 2); - } - - xd = convertBase(str, base, BASE); - xe = xd.length - 1; - - // Remove trailing zeros. - for (i = xe; xd[i] === 0; --i) xd.pop(); - if (i < 0) return new Ctor(x.s * 0); - x.e = getBase10Exponent(xd, xe); - x.d = xd; - external = false; - - // At what precision to perform the division to ensure exact conversion? - // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount) - // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412 - // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits. - // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount - // Therefore using 4 * the number of digits of str will always be enough. - if (isFloat) x = divide(x, divisor, len * 4); - - // Multiply by the binary exponent part if present. - if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p)); - external = true; - - return x; -} - - -/* - * sin(x) = x - x^3/3! + x^5/5! - ... - * |x| < pi/2 - * - */ -function sine(Ctor, x) { - var k, - len = x.d.length; - - if (len < 3) { - return x.isZero() ? x : taylorSeries(Ctor, 2, x, x); - } - - // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x) - // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5) - // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20)) - - // Estimate the optimum number of times to use the argument reduction. - k = 1.4 * Math.sqrt(len); - k = k > 16 ? 16 : k | 0; - - x = x.times(1 / tinyPow(5, k)); - x = taylorSeries(Ctor, 2, x, x); - - // Reverse argument reduction - var sin2_x, - d5 = new Ctor(5), - d16 = new Ctor(16), - d20 = new Ctor(20); - for (; k--;) { - sin2_x = x.times(x); - x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20)))); - } - - return x; -} - - -// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`. -function taylorSeries(Ctor, n, x, y, isHyperbolic) { - var j, t, u, x2, - i = 1, - pr = Ctor.precision, - k = Math.ceil(pr / LOG_BASE); - - external = false; - x2 = x.times(x); - u = new Ctor(y); - - for (;;) { - t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1); - u = isHyperbolic ? y.plus(t) : y.minus(t); - y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1); - t = u.plus(y); - - if (t.d[k] !== void 0) { - for (j = k; t.d[j] === u.d[j] && j--;); - if (j == -1) break; - } - - j = u; - u = y; - y = t; - t = j; - i++; - } - - external = true; - t.d.length = k + 1; - - return t; -} - - -// Exponent e must be positive and non-zero. -function tinyPow(b, e) { - var n = b; - while (--e) n *= b; - return n; -} - - -// Return the absolute value of `x` reduced to less than or equal to half pi. -function toLessThanHalfPi(Ctor, x) { - var t, - isNeg = x.s < 0, - pi = getPi(Ctor, Ctor.precision, 1), - halfPi = pi.times(0.5); - - x = x.abs(); - - if (x.lte(halfPi)) { - quadrant = isNeg ? 4 : 1; - return x; - } - - t = x.divToInt(pi); - - if (t.isZero()) { - quadrant = isNeg ? 3 : 2; - } else { - x = x.minus(t.times(pi)); - - // 0 <= x < pi - if (x.lte(halfPi)) { - quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1); - return x; - } - - quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2); - } - - return x.minus(pi).abs(); -} - - -/* - * Return the value of Decimal `x` as a string in base `baseOut`. - * - * If the optional `sd` argument is present include a binary exponent suffix. - */ -function toStringBinary(x, baseOut, sd, rm) { - var base, e, i, k, len, roundUp, str, xd, y, - Ctor = x.constructor, - isExp = sd !== void 0; - - if (isExp) { - checkInt32(sd, 1, MAX_DIGITS); - if (rm === void 0) rm = Ctor.rounding; - else checkInt32(rm, 0, 8); - } else { - sd = Ctor.precision; - rm = Ctor.rounding; - } - - if (!x.isFinite()) { - str = nonFiniteToString(x); - } else { - str = finiteToString(x); - i = str.indexOf('.'); - - // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required: - // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10)) - // minBinaryExponent = floor(decimalExponent * log[2](10)) - // log[2](10) = 3.321928094887362347870319429489390175864 - - if (isExp) { - base = 2; - if (baseOut == 16) { - sd = sd * 4 - 3; - } else if (baseOut == 8) { - sd = sd * 3 - 2; - } - } else { - base = baseOut; - } - - // Convert the number as an integer then divide the result by its base raised to a power such - // that the fraction part will be restored. - - // Non-integer. - if (i >= 0) { - str = str.replace('.', ''); - y = new Ctor(1); - y.e = str.length - i; - y.d = convertBase(finiteToString(y), 10, base); - y.e = y.d.length; - } - - xd = convertBase(str, 10, base); - e = len = xd.length; - - // Remove trailing zeros. - for (; xd[--len] == 0;) xd.pop(); - - if (!xd[0]) { - str = isExp ? '0p+0' : '0'; - } else { - if (i < 0) { - e--; - } else { - x = new Ctor(x); - x.d = xd; - x.e = e; - x = divide(x, y, sd, rm, 0, base); - xd = x.d; - e = x.e; - roundUp = inexact; - } - - // The rounding digit, i.e. the digit after the digit that may be rounded up. - i = xd[sd]; - k = base / 2; - roundUp = roundUp || xd[sd + 1] !== void 0; - - roundUp = rm < 4 - ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) - : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || - rm === (x.s < 0 ? 8 : 7)); - - xd.length = sd; - - if (roundUp) { - - // Rounding up may mean the previous digit has to be rounded up and so on. - for (; ++xd[--sd] > base - 1;) { - xd[sd] = 0; - if (!sd) { - ++e; - xd.unshift(1); - } - } - } - - // Determine trailing zeros. - for (len = xd.length; !xd[len - 1]; --len); - - // E.g. [4, 11, 15] becomes 4bf. - for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]); - - // Add binary exponent suffix? - if (isExp) { - if (len > 1) { - if (baseOut == 16 || baseOut == 8) { - i = baseOut == 16 ? 4 : 3; - for (--len; len % i; len++) str += '0'; - xd = convertBase(str, base, baseOut); - for (len = xd.length; !xd[len - 1]; --len); - - // xd[0] will always be be 1 - for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]); - } else { - str = str.charAt(0) + '.' + str.slice(1); - } - } - - str = str + (e < 0 ? 'p' : 'p+') + e; - } else if (e < 0) { - for (; ++e;) str = '0' + str; - str = '0.' + str; - } else { - if (++e > len) for (e -= len; e-- ;) str += '0'; - else if (e < len) str = str.slice(0, e) + '.' + str.slice(e); - } - } - - str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str; - } - - return x.s < 0 ? '-' + str : str; -} - - -// Does not strip trailing zeros. -function truncate(arr, len) { - if (arr.length > len) { - arr.length = len; - return true; - } -} - - -// Decimal methods - - -/* - * abs - * acos - * acosh - * add - * asin - * asinh - * atan - * atanh - * atan2 - * cbrt - * ceil - * clamp - * clone - * config - * cos - * cosh - * div - * exp - * floor - * hypot - * ln - * log - * log2 - * log10 - * max - * min - * mod - * mul - * pow - * random - * round - * set - * sign - * sin - * sinh - * sqrt - * sub - * sum - * tan - * tanh - * trunc - */ - - -/* - * Return a new Decimal whose value is the absolute value of `x`. - * - * x {number|string|Decimal} - * - */ -function abs(x) { - return new this(x).abs(); -} - - -/* - * Return a new Decimal whose value is the arccosine in radians of `x`. - * - * x {number|string|Decimal} - * - */ -function acos(x) { - return new this(x).acos(); -} - - -/* - * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function acosh(x) { - return new this(x).acosh(); -} - - -/* - * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ -function add(x, y) { - return new this(x).plus(y); -} - - -/* - * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function asin(x) { - return new this(x).asin(); -} - - -/* - * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function asinh(x) { - return new this(x).asinh(); -} - - -/* - * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function atan(x) { - return new this(x).atan(); -} - - -/* - * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to - * `precision` significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function atanh(x) { - return new this(x).atanh(); -} - - -/* - * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi - * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`. - * - * Domain: [-Infinity, Infinity] - * Range: [-pi, pi] - * - * y {number|string|Decimal} The y-coordinate. - * x {number|string|Decimal} The x-coordinate. - * - * atan2(±0, -0) = ±pi - * atan2(±0, +0) = ±0 - * atan2(±0, -x) = ±pi for x > 0 - * atan2(±0, x) = ±0 for x > 0 - * atan2(-y, ±0) = -pi/2 for y > 0 - * atan2(y, ±0) = pi/2 for y > 0 - * atan2(±y, -Infinity) = ±pi for finite y > 0 - * atan2(±y, +Infinity) = ±0 for finite y > 0 - * atan2(±Infinity, x) = ±pi/2 for finite x - * atan2(±Infinity, -Infinity) = ±3*pi/4 - * atan2(±Infinity, +Infinity) = ±pi/4 - * atan2(NaN, x) = NaN - * atan2(y, NaN) = NaN - * - */ -function atan2(y, x) { - y = new this(y); - x = new this(x); - var r, - pr = this.precision, - rm = this.rounding, - wpr = pr + 4; - - // Either NaN - if (!y.s || !x.s) { - r = new this(NaN); - - // Both ±Infinity - } else if (!y.d && !x.d) { - r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75); - r.s = y.s; - - // x is ±Infinity or y is ±0 - } else if (!x.d || y.isZero()) { - r = x.s < 0 ? getPi(this, pr, rm) : new this(0); - r.s = y.s; - - // y is ±Infinity or x is ±0 - } else if (!y.d || x.isZero()) { - r = getPi(this, wpr, 1).times(0.5); - r.s = y.s; - - // Both non-zero and finite - } else if (x.s < 0) { - this.precision = wpr; - this.rounding = 1; - r = this.atan(divide(y, x, wpr, 1)); - x = getPi(this, wpr, 1); - this.precision = pr; - this.rounding = rm; - r = y.s < 0 ? r.minus(x) : r.plus(x); - } else { - r = this.atan(divide(y, x, wpr, 1)); - } - - return r; -} - - -/* - * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function cbrt(x) { - return new this(x).cbrt(); -} - - -/* - * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`. - * - * x {number|string|Decimal} - * - */ -function ceil(x) { - return finalise(x = new this(x), x.e + 1, 2); -} - - -/* - * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`. - * - * x {number|string|Decimal} - * min {number|string|Decimal} - * max {number|string|Decimal} - * - */ -function clamp(x, min, max) { - return new this(x).clamp(min, max); -} - - -/* - * Configure global settings for a Decimal constructor. - * - * `obj` is an object with one or more of the following properties, - * - * precision {number} - * rounding {number} - * toExpNeg {number} - * toExpPos {number} - * maxE {number} - * minE {number} - * modulo {number} - * crypto {boolean|number} - * defaults {true} - * - * E.g. Decimal.config({ precision: 20, rounding: 4 }) - * - */ -function config(obj) { - if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected'); - var i, p, v, - useDefaults = obj.defaults === true, - ps = [ - 'precision', 1, MAX_DIGITS, - 'rounding', 0, 8, - 'toExpNeg', -EXP_LIMIT, 0, - 'toExpPos', 0, EXP_LIMIT, - 'maxE', 0, EXP_LIMIT, - 'minE', -EXP_LIMIT, 0, - 'modulo', 0, 9 - ]; - - for (i = 0; i < ps.length; i += 3) { - if (p = ps[i], useDefaults) this[p] = DEFAULTS[p]; - if ((v = obj[p]) !== void 0) { - if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v; - else throw Error(invalidArgument + p + ': ' + v); - } - } - - if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p]; - if ((v = obj[p]) !== void 0) { - if (v === true || v === false || v === 0 || v === 1) { - if (v) { - if (typeof crypto != 'undefined' && crypto && - (crypto.getRandomValues || crypto.randomBytes)) { - this[p] = true; - } else { - throw Error(cryptoUnavailable); - } - } else { - this[p] = false; - } - } else { - throw Error(invalidArgument + p + ': ' + v); - } - } - - return this; -} - - -/* - * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function cos(x) { - return new this(x).cos(); -} - - -/* - * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function cosh(x) { - return new this(x).cosh(); -} - - -/* - * Create and return a Decimal constructor with the same configuration properties as this Decimal - * constructor. - * - */ -function clone(obj) { - var i, p, ps; - - /* - * The Decimal constructor and exported function. - * Return a new Decimal instance. - * - * v {number|string|Decimal} A numeric value. - * - */ - function Decimal(v) { - var e, i, t, - x = this; - - // Decimal called without new. - if (!(x instanceof Decimal)) return new Decimal(v); - - // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor - // which points to Object. - x.constructor = Decimal; - - // Duplicate. - if (isDecimalInstance(v)) { - x.s = v.s; - - if (external) { - if (!v.d || v.e > Decimal.maxE) { - - // Infinity. - x.e = NaN; - x.d = null; - } else if (v.e < Decimal.minE) { - - // Zero. - x.e = 0; - x.d = [0]; - } else { - x.e = v.e; - x.d = v.d.slice(); - } - } else { - x.e = v.e; - x.d = v.d ? v.d.slice() : v.d; - } - - return; - } - - t = typeof v; - - if (t === 'number') { - if (v === 0) { - x.s = 1 / v < 0 ? -1 : 1; - x.e = 0; - x.d = [0]; - return; - } - - if (v < 0) { - v = -v; - x.s = -1; - } else { - x.s = 1; - } - - // Fast path for small integers. - if (v === ~~v && v < 1e7) { - for (e = 0, i = v; i >= 10; i /= 10) e++; - - if (external) { - if (e > Decimal.maxE) { - x.e = NaN; - x.d = null; - } else if (e < Decimal.minE) { - x.e = 0; - x.d = [0]; - } else { - x.e = e; - x.d = [v]; - } - } else { - x.e = e; - x.d = [v]; - } - - return; - - // Infinity, NaN. - } else if (v * 0 !== 0) { - if (!v) x.s = NaN; - x.e = NaN; - x.d = null; - return; - } - - return parseDecimal(x, v.toString()); - - } else if (t !== 'string') { - throw Error(invalidArgument + v); - } - - // Minus sign? - if ((i = v.charCodeAt(0)) === 45) { - v = v.slice(1); - x.s = -1; - } else { - // Plus sign? - if (i === 43) v = v.slice(1); - x.s = 1; - } - - return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v); - } - - Decimal.prototype = P; - - Decimal.ROUND_UP = 0; - Decimal.ROUND_DOWN = 1; - Decimal.ROUND_CEIL = 2; - Decimal.ROUND_FLOOR = 3; - Decimal.ROUND_HALF_UP = 4; - Decimal.ROUND_HALF_DOWN = 5; - Decimal.ROUND_HALF_EVEN = 6; - Decimal.ROUND_HALF_CEIL = 7; - Decimal.ROUND_HALF_FLOOR = 8; - Decimal.EUCLID = 9; - - Decimal.config = Decimal.set = config; - Decimal.clone = clone; - Decimal.isDecimal = isDecimalInstance; - - Decimal.abs = abs; - Decimal.acos = acos; - Decimal.acosh = acosh; // ES6 - Decimal.add = add; - Decimal.asin = asin; - Decimal.asinh = asinh; // ES6 - Decimal.atan = atan; - Decimal.atanh = atanh; // ES6 - Decimal.atan2 = atan2; - Decimal.cbrt = cbrt; // ES6 - Decimal.ceil = ceil; - Decimal.clamp = clamp; - Decimal.cos = cos; - Decimal.cosh = cosh; // ES6 - Decimal.div = div; - Decimal.exp = exp; - Decimal.floor = floor; - Decimal.hypot = hypot; // ES6 - Decimal.ln = ln; - Decimal.log = log; - Decimal.log10 = log10; // ES6 - Decimal.log2 = log2; // ES6 - Decimal.max = max; - Decimal.min = min; - Decimal.mod = mod; - Decimal.mul = mul; - Decimal.pow = pow; - Decimal.random = random; - Decimal.round = round; - Decimal.sign = sign; // ES6 - Decimal.sin = sin; - Decimal.sinh = sinh; // ES6 - Decimal.sqrt = sqrt; - Decimal.sub = sub; - Decimal.sum = sum; - Decimal.tan = tan; - Decimal.tanh = tanh; // ES6 - Decimal.trunc = trunc; // ES6 - - if (obj === void 0) obj = {}; - if (obj) { - if (obj.defaults !== true) { - ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto']; - for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p]; - } - } - - Decimal.config(obj); - - return Decimal; -} - - -/* - * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ -function div(x, y) { - return new this(x).div(y); -} - - -/* - * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} The power to which to raise the base of the natural log. - * - */ -function exp(x) { - return new this(x).exp(); -} - - -/* - * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`. - * - * x {number|string|Decimal} - * - */ -function floor(x) { - return finalise(x = new this(x), x.e + 1, 3); -} - - -/* - * Return a new Decimal whose value is the square root of the sum of the squares of the arguments, - * rounded to `precision` significant digits using rounding mode `rounding`. - * - * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...) - * - * arguments {number|string|Decimal} - * - */ -function hypot() { - var i, n, - t = new this(0); - - external = false; - - for (i = 0; i < arguments.length;) { - n = new this(arguments[i++]); - if (!n.d) { - if (n.s) { - external = true; - return new this(1 / 0); - } - t = n; - } else if (t.d) { - t = t.plus(n.times(n)); - } - } - - external = true; - - return t.sqrt(); -} - - -/* - * Return true if object is a Decimal instance (where Decimal is any Decimal constructor), - * otherwise return false. - * - */ -function isDecimalInstance(obj) { - return obj instanceof Decimal || obj && obj.toStringTag === tag || false; -} - - -/* - * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function ln(x) { - return new this(x).ln(); -} - - -/* - * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base - * is specified, rounded to `precision` significant digits using rounding mode `rounding`. - * - * log[y](x) - * - * x {number|string|Decimal} The argument of the logarithm. - * y {number|string|Decimal} The base of the logarithm. - * - */ -function log(x, y) { - return new this(x).log(y); -} - - -/* - * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function log2(x) { - return new this(x).log(2); -} - - -/* - * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function log10(x) { - return new this(x).log(10); -} - - -/* - * Return a new Decimal whose value is the maximum of the arguments. - * - * arguments {number|string|Decimal} - * - */ -function max() { - return maxOrMin(this, arguments, 'lt'); -} - - -/* - * Return a new Decimal whose value is the minimum of the arguments. - * - * arguments {number|string|Decimal} - * - */ -function min() { - return maxOrMin(this, arguments, 'gt'); -} - - -/* - * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits - * using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ -function mod(x, y) { - return new this(x).mod(y); -} - - -/* - * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ -function mul(x, y) { - return new this(x).mul(y); -} - - -/* - * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} The base. - * y {number|string|Decimal} The exponent. - * - */ -function pow(x, y) { - return new this(x).pow(y); -} - - -/* - * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with - * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros - * are produced). - * - * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive. - * - */ -function random(sd) { - var d, e, k, n, - i = 0, - r = new this(1), - rd = []; - - if (sd === void 0) sd = this.precision; - else checkInt32(sd, 1, MAX_DIGITS); - - k = Math.ceil(sd / LOG_BASE); - - if (!this.crypto) { - for (; i < k;) rd[i++] = Math.random() * 1e7 | 0; - - // Browsers supporting crypto.getRandomValues. - } else if (crypto.getRandomValues) { - d = crypto.getRandomValues(new Uint32Array(k)); - - for (; i < k;) { - n = d[i]; - - // 0 <= n < 4294967296 - // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865). - if (n >= 4.29e9) { - d[i] = crypto.getRandomValues(new Uint32Array(1))[0]; - } else { - - // 0 <= n <= 4289999999 - // 0 <= (n % 1e7) <= 9999999 - rd[i++] = n % 1e7; - } - } - - // Node.js supporting crypto.randomBytes. - } else if (crypto.randomBytes) { - - // buffer - d = crypto.randomBytes(k *= 4); - - for (; i < k;) { - - // 0 <= n < 2147483648 - n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24); - - // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286). - if (n >= 2.14e9) { - crypto.randomBytes(4).copy(d, i); - } else { - - // 0 <= n <= 2139999999 - // 0 <= (n % 1e7) <= 9999999 - rd.push(n % 1e7); - i += 4; - } - } - - i = k / 4; - } else { - throw Error(cryptoUnavailable); - } - - k = rd[--i]; - sd %= LOG_BASE; - - // Convert trailing digits to zeros according to sd. - if (k && sd) { - n = mathpow(10, LOG_BASE - sd); - rd[i] = (k / n | 0) * n; - } - - // Remove trailing words which are zero. - for (; rd[i] === 0; i--) rd.pop(); - - // Zero? - if (i < 0) { - e = 0; - rd = [0]; - } else { - e = -1; - - // Remove leading words which are zero and adjust exponent accordingly. - for (; rd[0] === 0; e -= LOG_BASE) rd.shift(); - - // Count the digits of the first word of rd to determine leading zeros. - for (k = 1, n = rd[0]; n >= 10; n /= 10) k++; - - // Adjust the exponent for leading zeros of the first word of rd. - if (k < LOG_BASE) e -= LOG_BASE - k; - } - - r.e = e; - r.d = rd; - - return r; -} - - -/* - * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`. - * - * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL). - * - * x {number|string|Decimal} - * - */ -function round(x) { - return finalise(x = new this(x), x.e + 1, this.rounding); -} - - -/* - * Return - * 1 if x > 0, - * -1 if x < 0, - * 0 if x is 0, - * -0 if x is -0, - * NaN otherwise - * - * x {number|string|Decimal} - * - */ -function sign(x) { - x = new this(x); - return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN; -} - - -/* - * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits - * using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function sin(x) { - return new this(x).sin(); -} - - -/* - * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function sinh(x) { - return new this(x).sinh(); -} - - -/* - * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} - * - */ -function sqrt(x) { - return new this(x).sqrt(); -} - - -/* - * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits - * using rounding mode `rounding`. - * - * x {number|string|Decimal} - * y {number|string|Decimal} - * - */ -function sub(x, y) { - return new this(x).sub(y); -} - - -/* - * Return a new Decimal whose value is the sum of the arguments, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * Only the result is rounded, not the intermediate calculations. - * - * arguments {number|string|Decimal} - * - */ -function sum() { - var i = 0, - args = arguments, - x = new this(args[i]); - - external = false; - for (; x.s && ++i < args.length;) x = x.plus(args[i]); - external = true; - - return finalise(x, this.precision, this.rounding); -} - - -/* - * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant - * digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function tan(x) { - return new this(x).tan(); -} - - -/* - * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision` - * significant digits using rounding mode `rounding`. - * - * x {number|string|Decimal} A value in radians. - * - */ -function tanh(x) { - return new this(x).tanh(); -} - - -/* - * Return a new Decimal whose value is `x` truncated to an integer. - * - * x {number|string|Decimal} - * - */ -function trunc(x) { - return finalise(x = new this(x), x.e + 1, 1); -} - - -P[Symbol.for('nodejs.util.inspect.custom')] = P.toString; -P[Symbol.toStringTag] = 'Decimal'; - -// Create and configure initial Decimal constructor. -export var Decimal = P.constructor = clone(DEFAULTS); - -// Create the internal constants from their string values. -LN10 = new Decimal(LN10); -PI = new Decimal(PI); - -export default Decimal; diff --git a/build/node_modules/decimal.js/package.json b/build/node_modules/decimal.js/package.json deleted file mode 100644 index 4b59cd68..00000000 --- a/build/node_modules/decimal.js/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "decimal.js", - "description": "An arbitrary-precision Decimal type for JavaScript.", - "version": "10.4.3", - "keywords": [ - "arbitrary", - "precision", - "arithmetic", - "big", - "number", - "decimal", - "float", - "biginteger", - "bigdecimal", - "bignumber", - "bigint", - "bignum" - ], - "repository" : { - "type": "git", - "url": "https://github.com/MikeMcl/decimal.js.git" - }, - "main": "decimal", - "module": "decimal.mjs", - "browser": "decimal.js", - "exports": { - ".": { - "types": "./decimal.d.ts", - "import": "./decimal.mjs", - "require": "./decimal.js" - }, - "./decimal.mjs": "./decimal.mjs", - "./decimal.js": "./decimal.js", - "./package.json": "./package.json", - "./decimal": { - "types": "./decimal.d.ts", - "import": "./decimal.mjs", - "require": "./decimal.js" - } - }, - "author": { - "name": "Michael Mclaughlin", - "email": "M8ch88l@gmail.com" - }, - "license": "MIT", - "scripts": { - "test": "node ./test/test.js" - }, - "types": "decimal.d.ts", - "files": [ - "decimal.js", - "decimal.mjs", - "decimal.d.ts" - ] -} diff --git a/build/node_modules/decode-uri-component/index.js b/build/node_modules/decode-uri-component/index.js deleted file mode 100644 index 24e7db0c..00000000 --- a/build/node_modules/decode-uri-component/index.js +++ /dev/null @@ -1,94 +0,0 @@ -'use strict'; -var token = '%[a-f0-9]{2}'; -var singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi'); -var multiMatcher = new RegExp('(' + token + ')+', 'gi'); - -function decodeComponents(components, split) { - try { - // Try to decode the entire string first - return [decodeURIComponent(components.join(''))]; - } catch (err) { - // Do nothing - } - - if (components.length === 1) { - return components; - } - - split = split || 1; - - // Split the array in 2 parts - var left = components.slice(0, split); - var right = components.slice(split); - - return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right)); -} - -function decode(input) { - try { - return decodeURIComponent(input); - } catch (err) { - var tokens = input.match(singleMatcher) || []; - - for (var i = 1; i < tokens.length; i++) { - input = decodeComponents(tokens, i).join(''); - - tokens = input.match(singleMatcher) || []; - } - - return input; - } -} - -function customDecodeURIComponent(input) { - // Keep track of all the replacements and prefill the map with the `BOM` - var replaceMap = { - '%FE%FF': '\uFFFD\uFFFD', - '%FF%FE': '\uFFFD\uFFFD' - }; - - var match = multiMatcher.exec(input); - while (match) { - try { - // Decode as big chunks as possible - replaceMap[match[0]] = decodeURIComponent(match[0]); - } catch (err) { - var result = decode(match[0]); - - if (result !== match[0]) { - replaceMap[match[0]] = result; - } - } - - match = multiMatcher.exec(input); - } - - // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else - replaceMap['%C2'] = '\uFFFD'; - - var entries = Object.keys(replaceMap); - - for (var i = 0; i < entries.length; i++) { - // Replace all decoded components - var key = entries[i]; - input = input.replace(new RegExp(key, 'g'), replaceMap[key]); - } - - return input; -} - -module.exports = function (encodedURI) { - if (typeof encodedURI !== 'string') { - throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`'); - } - - try { - encodedURI = encodedURI.replace(/\+/g, ' '); - - // Try the built in decoder first - return decodeURIComponent(encodedURI); - } catch (err) { - // Fallback to a more advanced decoder - return customDecodeURIComponent(encodedURI); - } -}; diff --git a/build/node_modules/decode-uri-component/license b/build/node_modules/decode-uri-component/license deleted file mode 100644 index 8dbcd531..00000000 --- a/build/node_modules/decode-uri-component/license +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017, Sam Verschueren (github.com/SamVerschueren) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/decode-uri-component/package.json b/build/node_modules/decode-uri-component/package.json deleted file mode 100644 index e2328233..00000000 --- a/build/node_modules/decode-uri-component/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "decode-uri-component", - "version": "0.2.2", - "description": "A better decodeURIComponent", - "license": "MIT", - "repository": "SamVerschueren/decode-uri-component", - "author": { - "name": "Sam Verschueren", - "email": "sam.verschueren@gmail.com", - "url": "github.com/SamVerschueren" - }, - "engines": { - "node": ">=0.10" - }, - "scripts": { - "test": "xo && nyc ava", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "index.js" - ], - "keywords": [ - "decode", - "uri", - "component", - "decodeuricomponent", - "components", - "decoder", - "url" - ], - "devDependencies": { - "ava": "^0.17.0", - "coveralls": "^2.13.1", - "nyc": "^10.3.2", - "xo": "^0.16.0" - } -} diff --git a/build/node_modules/decode-uri-component/readme.md b/build/node_modules/decode-uri-component/readme.md deleted file mode 100644 index 3ed99b01..00000000 --- a/build/node_modules/decode-uri-component/readme.md +++ /dev/null @@ -1,83 +0,0 @@ -# decode-uri-component - -![CI](https://github.com/SamVerschueren/decode-uri-component/workflows/CI/badge.svg) [![Coverage Status](https://coveralls.io/repos/SamVerschueren/decode-uri-component/badge.svg?branch=master&service=github)](https://coveralls.io/github/SamVerschueren/decode-uri-component?branch=master) - -> A better [decodeURIComponent](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent) - - -## Why? - -- Decodes `+` to a space. -- Converts the [BOM](https://en.wikipedia.org/wiki/Byte_order_mark) to a [replacement character](https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character) `�`. -- Does not throw with invalid encoded input. -- Decodes as much of the string as possible. - - -## Install - -``` -$ npm install --save decode-uri-component -``` - - -## Usage - -```js -const decodeUriComponent = require('decode-uri-component'); - -decodeUriComponent('%25'); -//=> '%' - -decodeUriComponent('%'); -//=> '%' - -decodeUriComponent('st%C3%A5le'); -//=> 'ståle' - -decodeUriComponent('%st%C3%A5le%'); -//=> '%ståle%' - -decodeUriComponent('%%7Bst%C3%A5le%7D%'); -//=> '%{ståle}%' - -decodeUriComponent('%7B%ab%%7C%de%%7D'); -//=> '{%ab%|%de%}' - -decodeUriComponent('%FE%FF'); -//=> '\uFFFD\uFFFD' - -decodeUriComponent('%C2'); -//=> '\uFFFD' - -decodeUriComponent('%C2%B5'); -//=> 'µ' -``` - - -## API - -### decodeUriComponent(encodedURI) - -#### encodedURI - -Type: `string` - -An encoded component of a Uniform Resource Identifier. - - -## License - -MIT © [Sam Verschueren](https://github.com/SamVerschueren) - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/deep-eql/LICENSE b/build/node_modules/deep-eql/LICENSE deleted file mode 100644 index 7ea799f0..00000000 --- a/build/node_modules/deep-eql/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013 Jake Luer (http://alogicalparadox.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/deep-eql/README.md b/build/node_modules/deep-eql/README.md deleted file mode 100644 index f6e1b85c..00000000 --- a/build/node_modules/deep-eql/README.md +++ /dev/null @@ -1,93 +0,0 @@ -

- - deep-eql - -

- -

- Improved deep equality testing for node and the browser. -

- -

- - build:? - - coverage:? - - dependencies:? - - devDependencies:? - -
- - Join the Slack chat - - - Join the Gitter chat - -

- -## What is Deep-Eql? - -Deep Eql is a module which you can use to determine if two objects are "deeply" equal - that is, rather than having referential equality (`a === b`), this module checks an object's keys recursively, until it finds primitives to check for referential equality. For more on equality in JavaScript, read [the comparison operators article on mdn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators). - -As an example, take the following: - -```js -1 === 1 // These are primitives, they hold the same reference - they are strictly equal -1 == '1' // These are two different primitives, through type coercion they hold the same value - they are loosely equal -{ a: 1 } !== { a: 1 } // These are two different objects, they hold different references and so are not strictly equal - even though they hold the same values inside -{ a: 1 } != { a: 1 } // They have the same type, meaning loose equality performs the same check as strict equality - they are still not equal. - -var deepEql = require("deep-eql"); -deepEql({ a: 1 }, { a: 1 }) === true // deepEql can determine that they share the same keys and those keys share the same values, therefore they are deeply equal! -``` - -## Installation - -### Node.js - -`deep-eql` is available on [npm](http://npmjs.org). - - $ npm install deep-eql - -## Usage - -The primary export of `deep-eql` is function that can be given two objects to compare. It will always return a boolean which can be used to determine if two objects are deeply equal. - -### Rules - -- Strict equality for non-traversable nodes according to [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is): - - `eql(NaN, NaN).should.be.true;` - - `eql(-0, +0).should.be.false;` -- All own and inherited enumerable properties are considered: - - `eql(Object.create({ foo: { a: 1 } }), Object.create({ foo: { a: 1 } })).should.be.true;` - - `eql(Object.create({ foo: { a: 1 } }), Object.create({ foo: { a: 2 } })).should.be.false;` -- When comparing `Error` objects, only `name`, `message`, and `code` properties are considered, regardless of enumerability: - - `eql(Error('foo'), Error('foo')).should.be.true;` - - `eql(Error('foo'), Error('bar')).should.be.false;` - - `eql(Error('foo'), TypeError('foo')).should.be.false;` - - `eql(Object.assign(Error('foo'), { code: 42 }), Object.assign(Error('foo'), { code: 42 })).should.be.true;` - - `eql(Object.assign(Error('foo'), { code: 42 }), Object.assign(Error('foo'), { code: 13 })).should.be.false;` - - `eql(Object.assign(Error('foo'), { otherProp: 42 }), Object.assign(Error('foo'), { otherProp: 13 })).should.be.true;` -- Arguments are not Arrays: - - `eql([], arguments).should.be.false;` - - `eql([], Array.prototype.slice.call(arguments)).should.be.true;` diff --git a/build/node_modules/deep-eql/deep-eql.js b/build/node_modules/deep-eql/deep-eql.js deleted file mode 100644 index 0070ed45..00000000 --- a/build/node_modules/deep-eql/deep-eql.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i - * MIT Licensed - */ - -var type = require('type-detect'); -function FakeMap() { - this._key = 'chai/deep-eql__' + Math.random() + Date.now(); -} - -FakeMap.prototype = { - get: function get(key) { - return key[this._key]; - }, - set: function set(key, value) { - if (Object.isExtensible(key)) { - Object.defineProperty(key, this._key, { - value: value, - configurable: true, - }); - } - }, -}; - -var MemoizeMap = typeof WeakMap === 'function' ? WeakMap : FakeMap; -/*! - * Check to see if the MemoizeMap has recorded a result of the two operands - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {MemoizeMap} memoizeMap - * @returns {Boolean|null} result -*/ -function memoizeCompare(leftHandOperand, rightHandOperand, memoizeMap) { - // Technically, WeakMap keys can *only* be objects, not primitives. - if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return null; - } - var leftHandMap = memoizeMap.get(leftHandOperand); - if (leftHandMap) { - var result = leftHandMap.get(rightHandOperand); - if (typeof result === 'boolean') { - return result; - } - } - return null; -} - -/*! - * Set the result of the equality into the MemoizeMap - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {MemoizeMap} memoizeMap - * @param {Boolean} result -*/ -function memoizeSet(leftHandOperand, rightHandOperand, memoizeMap, result) { - // Technically, WeakMap keys can *only* be objects, not primitives. - if (!memoizeMap || isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - return; - } - var leftHandMap = memoizeMap.get(leftHandOperand); - if (leftHandMap) { - leftHandMap.set(rightHandOperand, result); - } else { - leftHandMap = new MemoizeMap(); - leftHandMap.set(rightHandOperand, result); - memoizeMap.set(leftHandOperand, leftHandMap); - } -} - -/*! - * Primary Export - */ - -module.exports = deepEqual; -module.exports.MemoizeMap = MemoizeMap; - -/** - * Assert deeply nested sameValue equality between two objects of any type. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (optional) Additional options - * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. - * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of - complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular - references to blow the stack. - * @return {Boolean} equal match - */ -function deepEqual(leftHandOperand, rightHandOperand, options) { - // If we have a comparator, we can't assume anything; so bail to its check first. - if (options && options.comparator) { - return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); - } - - var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); - if (simpleResult !== null) { - return simpleResult; - } - - // Deeper comparisons are pushed through to a larger function - return extensiveDeepEqual(leftHandOperand, rightHandOperand, options); -} - -/** - * Many comparisons can be canceled out early via simple equality or primitive checks. - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @return {Boolean|null} equal match - */ -function simpleEqual(leftHandOperand, rightHandOperand) { - // Equal references (except for Numbers) can be returned early - if (leftHandOperand === rightHandOperand) { - // Handle +-0 cases - return leftHandOperand !== 0 || 1 / leftHandOperand === 1 / rightHandOperand; - } - - // handle NaN cases - if ( - leftHandOperand !== leftHandOperand && // eslint-disable-line no-self-compare - rightHandOperand !== rightHandOperand // eslint-disable-line no-self-compare - ) { - return true; - } - - // Anything that is not an 'object', i.e. symbols, functions, booleans, numbers, - // strings, and undefined, can be compared by reference. - if (isPrimitive(leftHandOperand) || isPrimitive(rightHandOperand)) { - // Easy out b/c it would have passed the first equality check - return false; - } - return null; -} - -/*! - * The main logic of the `deepEqual` function. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (optional) Additional options - * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. - * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of - complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular - references to blow the stack. - * @return {Boolean} equal match -*/ -function extensiveDeepEqual(leftHandOperand, rightHandOperand, options) { - options = options || {}; - options.memoize = options.memoize === false ? false : options.memoize || new MemoizeMap(); - var comparator = options && options.comparator; - - // Check if a memoized result exists. - var memoizeResultLeft = memoizeCompare(leftHandOperand, rightHandOperand, options.memoize); - if (memoizeResultLeft !== null) { - return memoizeResultLeft; - } - var memoizeResultRight = memoizeCompare(rightHandOperand, leftHandOperand, options.memoize); - if (memoizeResultRight !== null) { - return memoizeResultRight; - } - - // If a comparator is present, use it. - if (comparator) { - var comparatorResult = comparator(leftHandOperand, rightHandOperand); - // Comparators may return null, in which case we want to go back to default behavior. - if (comparatorResult === false || comparatorResult === true) { - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, comparatorResult); - return comparatorResult; - } - // To allow comparators to override *any* behavior, we ran them first. Since it didn't decide - // what to do, we need to make sure to return the basic tests first before we move on. - var simpleResult = simpleEqual(leftHandOperand, rightHandOperand); - if (simpleResult !== null) { - // Don't memoize this, it takes longer to set/retrieve than to just compare. - return simpleResult; - } - } - - var leftHandType = type(leftHandOperand); - if (leftHandType !== type(rightHandOperand)) { - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, false); - return false; - } - - // Temporarily set the operands in the memoize object to prevent blowing the stack - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, true); - - var result = extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options); - memoizeSet(leftHandOperand, rightHandOperand, options.memoize, result); - return result; -} - -function extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandType, options) { - switch (leftHandType) { - case 'String': - case 'Number': - case 'Boolean': - case 'Date': - // If these types are their instance types (e.g. `new Number`) then re-deepEqual against their values - return deepEqual(leftHandOperand.valueOf(), rightHandOperand.valueOf()); - case 'Promise': - case 'Symbol': - case 'function': - case 'WeakMap': - case 'WeakSet': - return leftHandOperand === rightHandOperand; - case 'Error': - return keysEqual(leftHandOperand, rightHandOperand, [ 'name', 'message', 'code' ], options); - case 'Arguments': - case 'Int8Array': - case 'Uint8Array': - case 'Uint8ClampedArray': - case 'Int16Array': - case 'Uint16Array': - case 'Int32Array': - case 'Uint32Array': - case 'Float32Array': - case 'Float64Array': - case 'Array': - return iterableEqual(leftHandOperand, rightHandOperand, options); - case 'RegExp': - return regexpEqual(leftHandOperand, rightHandOperand); - case 'Generator': - return generatorEqual(leftHandOperand, rightHandOperand, options); - case 'DataView': - return iterableEqual(new Uint8Array(leftHandOperand.buffer), new Uint8Array(rightHandOperand.buffer), options); - case 'ArrayBuffer': - return iterableEqual(new Uint8Array(leftHandOperand), new Uint8Array(rightHandOperand), options); - case 'Set': - return entriesEqual(leftHandOperand, rightHandOperand, options); - case 'Map': - return entriesEqual(leftHandOperand, rightHandOperand, options); - case 'Temporal.PlainDate': - case 'Temporal.PlainTime': - case 'Temporal.PlainDateTime': - case 'Temporal.Instant': - case 'Temporal.ZonedDateTime': - case 'Temporal.PlainYearMonth': - case 'Temporal.PlainMonthDay': - return leftHandOperand.equals(rightHandOperand); - case 'Temporal.Duration': - return leftHandOperand.total('nanoseconds') === rightHandOperand.total('nanoseconds'); - case 'Temporal.TimeZone': - case 'Temporal.Calendar': - return leftHandOperand.toString() === rightHandOperand.toString(); - default: - return objectEqual(leftHandOperand, rightHandOperand, options); - } -} - -/*! - * Compare two Regular Expressions for equality. - * - * @param {RegExp} leftHandOperand - * @param {RegExp} rightHandOperand - * @return {Boolean} result - */ - -function regexpEqual(leftHandOperand, rightHandOperand) { - return leftHandOperand.toString() === rightHandOperand.toString(); -} - -/*! - * Compare two Sets/Maps for equality. Faster than other equality functions. - * - * @param {Set} leftHandOperand - * @param {Set} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ - -function entriesEqual(leftHandOperand, rightHandOperand, options) { - // IE11 doesn't support Set#entries or Set#@@iterator, so we need manually populate using Set#forEach - if (leftHandOperand.size !== rightHandOperand.size) { - return false; - } - if (leftHandOperand.size === 0) { - return true; - } - var leftHandItems = []; - var rightHandItems = []; - leftHandOperand.forEach(function gatherEntries(key, value) { - leftHandItems.push([ key, value ]); - }); - rightHandOperand.forEach(function gatherEntries(key, value) { - rightHandItems.push([ key, value ]); - }); - return iterableEqual(leftHandItems.sort(), rightHandItems.sort(), options); -} - -/*! - * Simple equality for flat iterable objects such as Arrays, TypedArrays or Node.js buffers. - * - * @param {Iterable} leftHandOperand - * @param {Iterable} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ - -function iterableEqual(leftHandOperand, rightHandOperand, options) { - var length = leftHandOperand.length; - if (length !== rightHandOperand.length) { - return false; - } - if (length === 0) { - return true; - } - var index = -1; - while (++index < length) { - if (deepEqual(leftHandOperand[index], rightHandOperand[index], options) === false) { - return false; - } - } - return true; -} - -/*! - * Simple equality for generator objects such as those returned by generator functions. - * - * @param {Iterable} leftHandOperand - * @param {Iterable} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ - -function generatorEqual(leftHandOperand, rightHandOperand, options) { - return iterableEqual(getGeneratorEntries(leftHandOperand), getGeneratorEntries(rightHandOperand), options); -} - -/*! - * Determine if the given object has an @@iterator function. - * - * @param {Object} target - * @return {Boolean} `true` if the object has an @@iterator function. - */ -function hasIteratorFunction(target) { - return typeof Symbol !== 'undefined' && - typeof target === 'object' && - typeof Symbol.iterator !== 'undefined' && - typeof target[Symbol.iterator] === 'function'; -} - -/*! - * Gets all iterator entries from the given Object. If the Object has no @@iterator function, returns an empty array. - * This will consume the iterator - which could have side effects depending on the @@iterator implementation. - * - * @param {Object} target - * @returns {Array} an array of entries from the @@iterator function - */ -function getIteratorEntries(target) { - if (hasIteratorFunction(target)) { - try { - return getGeneratorEntries(target[Symbol.iterator]()); - } catch (iteratorError) { - return []; - } - } - return []; -} - -/*! - * Gets all entries from a Generator. This will consume the generator - which could have side effects. - * - * @param {Generator} target - * @returns {Array} an array of entries from the Generator. - */ -function getGeneratorEntries(generator) { - var generatorResult = generator.next(); - var accumulator = [ generatorResult.value ]; - while (generatorResult.done === false) { - generatorResult = generator.next(); - accumulator.push(generatorResult.value); - } - return accumulator; -} - -/*! - * Gets all own and inherited enumerable keys from a target. - * - * @param {Object} target - * @returns {Array} an array of own and inherited enumerable keys from the target. - */ -function getEnumerableKeys(target) { - var keys = []; - for (var key in target) { - keys.push(key); - } - return keys; -} - -function getEnumerableSymbols(target) { - var keys = []; - var allKeys = Object.getOwnPropertySymbols(target); - for (var i = 0; i < allKeys.length; i += 1) { - var key = allKeys[i]; - if (Object.getOwnPropertyDescriptor(target, key).enumerable) { - keys.push(key); - } - } - return keys; -} - -/*! - * Determines if two objects have matching values, given a set of keys. Defers to deepEqual for the equality check of - * each key. If any value of the given key is not equal, the function will return false (early). - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Array} keys An array of keys to compare the values of leftHandOperand and rightHandOperand against - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -function keysEqual(leftHandOperand, rightHandOperand, keys, options) { - var length = keys.length; - if (length === 0) { - return true; - } - for (var i = 0; i < length; i += 1) { - if (deepEqual(leftHandOperand[keys[i]], rightHandOperand[keys[i]], options) === false) { - return false; - } - } - return true; -} - -/*! - * Recursively check the equality of two Objects. Once basic sameness has been established it will defer to `deepEqual` - * for each enumerable key in the object. - * - * @param {Mixed} leftHandOperand - * @param {Mixed} rightHandOperand - * @param {Object} [options] (Optional) - * @return {Boolean} result - */ -function objectEqual(leftHandOperand, rightHandOperand, options) { - var leftHandKeys = getEnumerableKeys(leftHandOperand); - var rightHandKeys = getEnumerableKeys(rightHandOperand); - var leftHandSymbols = getEnumerableSymbols(leftHandOperand); - var rightHandSymbols = getEnumerableSymbols(rightHandOperand); - leftHandKeys = leftHandKeys.concat(leftHandSymbols); - rightHandKeys = rightHandKeys.concat(rightHandSymbols); - - if (leftHandKeys.length && leftHandKeys.length === rightHandKeys.length) { - if (iterableEqual(mapSymbols(leftHandKeys).sort(), mapSymbols(rightHandKeys).sort()) === false) { - return false; - } - return keysEqual(leftHandOperand, rightHandOperand, leftHandKeys, options); - } - - var leftHandEntries = getIteratorEntries(leftHandOperand); - var rightHandEntries = getIteratorEntries(rightHandOperand); - if (leftHandEntries.length && leftHandEntries.length === rightHandEntries.length) { - leftHandEntries.sort(); - rightHandEntries.sort(); - return iterableEqual(leftHandEntries, rightHandEntries, options); - } - - if (leftHandKeys.length === 0 && - leftHandEntries.length === 0 && - rightHandKeys.length === 0 && - rightHandEntries.length === 0) { - return true; - } - - return false; -} - -/*! - * Returns true if the argument is a primitive. - * - * This intentionally returns true for all objects that can be compared by reference, - * including functions and symbols. - * - * @param {Mixed} value - * @return {Boolean} result - */ -function isPrimitive(value) { - return value === null || typeof value !== 'object'; -} - -function mapSymbols(arr) { - return arr.map(function mapSymbol(entry) { - if (typeof entry === 'symbol') { - return entry.toString(); - } - - return entry; - }); -} diff --git a/build/node_modules/deep-eql/package.json b/build/node_modules/deep-eql/package.json deleted file mode 100644 index dc1b9aaa..00000000 --- a/build/node_modules/deep-eql/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "deep-eql", - "version": "4.1.3", - "description": "Improved deep equality testing for Node.js and the browser.", - "keywords": [ - "chai util", - "deep equal", - "object equal", - "testing" - ], - "repository": { - "type": "git", - "url": "git@github.com:chaijs/deep-eql.git" - }, - "license": "MIT", - "author": "Jake Luer ", - "contributors": [ - "Keith Cirkel (https://github.com/keithamus)", - "dougluce (https://github.com/dougluce)", - "Lorenz Leutgeb (https://github.com/flowlo)" - ], - "main": "./index", - "files": [ - "index.js", - "deep-eql.js" - ], - "scripts": { - "bench": "node bench", - "build": "browserify $npm_package_main --standalone deepEqual -o deep-eql.js", - "lint": "eslint --ignore-path .gitignore .", - "prepublish": "npm run build", - "semantic-release": "semantic-release pre && npm publish && semantic-release post", - "pretest": "npm run lint", - "test": "npm run test:node && npm run test:browser", - "test:browser": "karma start --singleRun=true", - "test:node": "istanbul cover _mocha", - "upload-coverage": "lcov-result-merger 'coverage/**/lcov.info' | coveralls; exit 0", - "watch": "karma start --auto-watch --singleRun=false" - }, - "eslintConfig": { - "extends": [ - "strict/es5" - ], - "rules": { - "complexity": 0, - "no-underscore-dangle": 0, - "no-use-before-define": 0, - "spaced-comment": 0 - } - }, - "dependencies": { - "type-detect": "^4.0.0" - }, - "devDependencies": { - "@js-temporal/polyfill": "^0.4.1", - "benchmark": "^2.1.0", - "browserify": "^17.0.0", - "browserify-istanbul": "^3.0.1", - "coveralls": "^3.1.1", - "eslint": "^7.32.0", - "eslint-config-strict": "^14.0.1", - "eslint-plugin-filenames": "^1.3.2", - "istanbul": "^0.4.2", - "karma": "^6.3.4", - "karma-browserify": "^8.1.0", - "karma-chrome-launcher": "^3.1.0", - "karma-coverage": "^2.0.3", - "karma-mocha": "^2.0.1", - "karma-sauce-launcher": "^4.1.4", - "kewlr": "^0.4.1", - "lcov-result-merger": "^1.0.2", - "lodash.isequal": "^4.4.0", - "mocha": "^9.1.1", - "simple-assert": "^1.0.0" - }, - "engines": { - "node": ">=6" - } -} diff --git a/build/node_modules/deep-extend/CHANGELOG.md b/build/node_modules/deep-extend/CHANGELOG.md deleted file mode 100644 index dd13ec13..00000000 --- a/build/node_modules/deep-extend/CHANGELOG.md +++ /dev/null @@ -1,46 +0,0 @@ -Changelog -========= - -v0.6.0 ------- - -- Updated "devDependencies" versions to fix vulnerability alerts -- Dropped support of io.js and node.js v0.12.x and lower since new versions of - "devDependencies" couldn't work with those old node.js versions - (minimal supported version of node.js now is v4.0.0) - -v0.5.1 ------- - -- Fix prototype pollution vulnerability (thanks to @mwakerman for the PR) -- Avoid using deprecated Buffer API (thanks to @ChALkeR for the PR) - -v0.5.0 ------- - -- Auto-testing provided by Travis CI; -- Support older Node.JS versions (`v0.11.x` and `v0.10.x`); -- Removed tests files from npm package. - -v0.4.2 ------- - -- Fix for `null` as an argument. - -v0.4.1 ------- - -- Removed test code from npm package - ([see pull request #21](https://github.com/unclechu/node-deep-extend/pull/21)); -- Increased minimal version of Node from `0.4.0` to `0.12.0` - (because can't run tests on lesser version anyway). - -v0.4.0 ------- - -- **WARNING!** Broken backward compatibility with `v0.3.x`; -- Fixed bug with extending arrays instead of cloning; -- Deep cloning for arrays; -- Check for own property; -- Fixed some documentation issues; -- Strict JS mode. diff --git a/build/node_modules/deep-extend/LICENSE b/build/node_modules/deep-extend/LICENSE deleted file mode 100644 index 5c58916f..00000000 --- a/build/node_modules/deep-extend/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2018, Viacheslav Lotsmanov - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/deep-extend/README.md b/build/node_modules/deep-extend/README.md deleted file mode 100644 index 67c7fc08..00000000 --- a/build/node_modules/deep-extend/README.md +++ /dev/null @@ -1,91 +0,0 @@ -Deep Extend -=========== - -Recursive object extending. - -[![Build Status](https://api.travis-ci.org/unclechu/node-deep-extend.svg?branch=master)](https://travis-ci.org/unclechu/node-deep-extend) - -[![NPM](https://nodei.co/npm/deep-extend.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/deep-extend/) - -Install -------- - -```bash -$ npm install deep-extend -``` - -Usage ------ - -```javascript -var deepExtend = require('deep-extend'); -var obj1 = { - a: 1, - b: 2, - d: { - a: 1, - b: [], - c: { test1: 123, test2: 321 } - }, - f: 5, - g: 123, - i: 321, - j: [1, 2] -}; -var obj2 = { - b: 3, - c: 5, - d: { - b: { first: 'one', second: 'two' }, - c: { test2: 222 } - }, - e: { one: 1, two: 2 }, - f: [], - g: (void 0), - h: /abc/g, - i: null, - j: [3, 4] -}; - -deepExtend(obj1, obj2); - -console.log(obj1); -/* -{ a: 1, - b: 3, - d: - { a: 1, - b: { first: 'one', second: 'two' }, - c: { test1: 123, test2: 222 } }, - f: [], - g: undefined, - c: 5, - e: { one: 1, two: 2 }, - h: /abc/g, - i: null, - j: [3, 4] } -*/ -``` - -Unit testing ------------- - -```bash -$ npm test -``` - -Changelog ---------- - -[CHANGELOG.md](./CHANGELOG.md) - -Any issues? ------------ - -Please, report about issues -[here](https://github.com/unclechu/node-deep-extend/issues). - -License -------- - -[MIT](./LICENSE) diff --git a/build/node_modules/deep-extend/index.js b/build/node_modules/deep-extend/index.js deleted file mode 100644 index 762d81e9..00000000 --- a/build/node_modules/deep-extend/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./lib/deep-extend'); diff --git a/build/node_modules/deep-extend/package.json b/build/node_modules/deep-extend/package.json deleted file mode 100644 index 5f2195ff..00000000 --- a/build/node_modules/deep-extend/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "deep-extend", - "description": "Recursive object extending", - "license": "MIT", - "version": "0.6.0", - "homepage": "https://github.com/unclechu/node-deep-extend", - "keywords": [ - "deep-extend", - "extend", - "deep", - "recursive", - "xtend", - "clone", - "merge", - "json" - ], - "licenses": [ - { - "type": "MIT", - "url": "https://raw.githubusercontent.com/unclechu/node-deep-extend/master/LICENSE" - } - ], - "repository": { - "type": "git", - "url": "git://github.com/unclechu/node-deep-extend.git" - }, - "author": "Viacheslav Lotsmanov ", - "bugs": "https://github.com/unclechu/node-deep-extend/issues", - "contributors": [ - { - "name": "Romain Prieto", - "url": "https://github.com/rprieto" - }, - { - "name": "Max Maximov", - "url": "https://github.com/maxmaximov" - }, - { - "name": "Marshall Bowers", - "url": "https://github.com/maxdeviant" - }, - { - "name": "Misha Wakerman", - "url": "https://github.com/mwakerman" - } - ], - "main": "lib/deep-extend.js", - "engines": { - "node": ">=4.0.0" - }, - "scripts": { - "test": "./node_modules/.bin/mocha" - }, - "devDependencies": { - "mocha": "5.2.0", - "should": "13.2.1" - }, - "files": [ - "index.js", - "lib/" - ] -} diff --git a/build/node_modules/deep-is/.travis.yml b/build/node_modules/deep-is/.travis.yml deleted file mode 100644 index 58f23716..00000000 --- a/build/node_modules/deep-is/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 - - 0.10 diff --git a/build/node_modules/deep-is/LICENSE b/build/node_modules/deep-is/LICENSE deleted file mode 100644 index c38f8407..00000000 --- a/build/node_modules/deep-is/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012, 2013 Thorsten Lorenz -Copyright (c) 2012 James Halliday -Copyright (c) 2009 Thomas Robinson <280north.com> - -This software is released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/deep-is/README.markdown b/build/node_modules/deep-is/README.markdown deleted file mode 100644 index eb69a83b..00000000 --- a/build/node_modules/deep-is/README.markdown +++ /dev/null @@ -1,70 +0,0 @@ -deep-is -========== - -Node's `assert.deepEqual() algorithm` as a standalone module. Exactly like -[deep-equal](https://github.com/substack/node-deep-equal) except for the fact that `deepEqual(NaN, NaN) === true`. - -This module is around [5 times faster](https://gist.github.com/2790507) -than wrapping `assert.deepEqual()` in a `try/catch`. - -[![browser support](http://ci.testling.com/thlorenz/deep-is.png)](http://ci.testling.com/thlorenz/deep-is) - -[![build status](https://secure.travis-ci.org/thlorenz/deep-is.png)](http://travis-ci.org/thlorenz/deep-is) - -example -======= - -``` js -var equal = require('deep-is'); -console.dir([ - equal( - { a : [ 2, 3 ], b : [ 4 ] }, - { a : [ 2, 3 ], b : [ 4 ] } - ), - equal( - { x : 5, y : [6] }, - { x : 5, y : 6 } - ) -]); -``` - -methods -======= - -var deepIs = require('deep-is') - -deepIs(a, b) ---------------- - -Compare objects `a` and `b`, returning whether they are equal according to a -recursive equality algorithm. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install deep-is -``` - -test -==== - -With [npm](http://npmjs.org) do: - -``` -npm test -``` - -license -======= - -Copyright (c) 2012, 2013 Thorsten Lorenz -Copyright (c) 2012 James Halliday - -Derived largely from node's assert module, which has the copyright statement: - -Copyright (c) 2009 Thomas Robinson <280north.com> - -Released under the MIT license, see LICENSE for details. diff --git a/build/node_modules/deep-is/index.js b/build/node_modules/deep-is/index.js deleted file mode 100644 index 506fe279..00000000 --- a/build/node_modules/deep-is/index.js +++ /dev/null @@ -1,102 +0,0 @@ -var pSlice = Array.prototype.slice; -var Object_keys = typeof Object.keys === 'function' - ? Object.keys - : function (obj) { - var keys = []; - for (var key in obj) keys.push(key); - return keys; - } -; - -var deepEqual = module.exports = function (actual, expected) { - // enforce Object.is +0 !== -0 - if (actual === 0 && expected === 0) { - return areZerosEqual(actual, expected); - - // 7.1. All identical values are equivalent, as determined by ===. - } else if (actual === expected) { - return true; - - } else if (actual instanceof Date && expected instanceof Date) { - return actual.getTime() === expected.getTime(); - - } else if (isNumberNaN(actual)) { - return isNumberNaN(expected); - - // 7.3. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (typeof actual != 'object' && typeof expected != 'object') { - return actual == expected; - - // 7.4. For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } -}; - -function isUndefinedOrNull(value) { - return value === null || value === undefined; -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function isNumberNaN(value) { - // NaN === NaN -> false - return typeof value == 'number' && value !== value; -} - -function areZerosEqual(zeroA, zeroB) { - // (1 / +0|0) -> Infinity, but (1 / -0) -> -Infinity and (Infinity !== -Infinity) - return (1 / zeroA) === (1 / zeroB); -} - -function objEquiv(a, b) { - if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) - return false; - - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - //~~~I've managed to break Object.keys through screwy arguments passing. - // Converting to array solves the problem. - if (isArguments(a)) { - if (!isArguments(b)) { - return false; - } - a = pSlice.call(a); - b = pSlice.call(b); - return deepEqual(a, b); - } - try { - var ka = Object_keys(a), - kb = Object_keys(b), - key, i; - } catch (e) {//happens when one is a string literal and the other isn't - return false; - } - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!deepEqual(a[key], b[key])) return false; - } - return true; -} diff --git a/build/node_modules/deep-is/package.json b/build/node_modules/deep-is/package.json deleted file mode 100644 index dae72d78..00000000 --- a/build/node_modules/deep-is/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "deep-is", - "version": "0.1.4", - "description": "node's assert.deepEqual algorithm except for NaN being equal to NaN", - "main": "index.js", - "directories": { - "lib": ".", - "example": "example", - "test": "test" - }, - "scripts": { - "test": "tape test/*.js" - }, - "devDependencies": { - "tape": "~1.0.2" - }, - "repository": { - "type": "git", - "url": "http://github.com/thlorenz/deep-is.git" - }, - "keywords": [ - "equality", - "equal", - "compare" - ], - "author": { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": "http://thlorenz.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - } -} diff --git a/build/node_modules/default-browser-id/index.js b/build/node_modules/default-browser-id/index.js deleted file mode 100644 index 97b982e9..00000000 --- a/build/node_modules/default-browser-id/index.js +++ /dev/null @@ -1,42 +0,0 @@ -import os from 'os'; -import {promises as fs} from 'fs'; -import bplist from 'bplist-parser'; -import untildify from 'untildify'; - -const macOsVersion = Number(os.release().split('.')[0]); -const filePath = untildify(macOsVersion >= 14 ? '~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist' : '~/Library/Preferences/com.apple.LaunchServices.plist'); - -export default async function defaultBrowserId() { - if (process.platform !== 'darwin') { - throw new Error('macOS only'); - } - - let bundleId = 'com.apple.Safari'; - - let buffer; - try { - buffer = await fs.readFile(filePath); - } catch (error) { - if (error.code === 'ENOENT') { - return bundleId; - } - - throw error; - } - - const data = bplist.parseBuffer(buffer); - const handlers = data && data[0].LSHandlers; - - if (!handlers || handlers.length === 0) { - return bundleId; - } - - for (const handler of handlers) { - if (handler.LSHandlerURLScheme === 'http' && handler.LSHandlerRoleAll) { - bundleId = handler.LSHandlerRoleAll; - break; - } - } - - return bundleId; -} diff --git a/build/node_modules/default-browser-id/license b/build/node_modules/default-browser-id/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/default-browser-id/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/default-browser-id/package.json b/build/node_modules/default-browser-id/package.json deleted file mode 100644 index 13486311..00000000 --- a/build/node_modules/default-browser-id/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "default-browser-id", - "version": "3.0.0", - "description": "Get the bundle identifier of the default browser (macOS). Example: com.apple.Safari", - "license": "MIT", - "repository": "sindresorhus/default-browser-id", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "type": "module", - "exports": "./index.js", - "engines": { - "node": ">=12" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "macos", - "browser", - "default", - "plist", - "web", - "bundle", - "bundleid", - "id", - "identifier", - "uti" - ], - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "devDependencies": { - "ava": "^3.15.0", - "xo": "^0.38.2" - } -} diff --git a/build/node_modules/default-browser-id/readme.md b/build/node_modules/default-browser-id/readme.md deleted file mode 100644 index 892d2e7e..00000000 --- a/build/node_modules/default-browser-id/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# default-browser-id - -> Get the [bundle identifier](https://developer.apple.com/library/Mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/plist/info/CFBundleIdentifier) of the default browser *(macOS)*\ -> Example: `com.apple.Safari` - -## Install - -``` -$ npm install default-browser-id -``` - -## Usage - -```js -import defaultBrowserId from 'default-browser-id'; - -console.log(await defaultBrowserId()); -//=> 'com.apple.Safari' -``` diff --git a/build/node_modules/default-browser/index.d.ts b/build/node_modules/default-browser/index.d.ts deleted file mode 100644 index d9e83003..00000000 --- a/build/node_modules/default-browser/index.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -export type Browser = { - /** - Human-readadable name of the browser. - */ - name: string; - - /** - Unique ID for the browser on the current platform: - - On macOS, it's the ID in LaunchServices. - - On Linux, it's the desktop file ID (from `xdg-mime`). - - On Windows, it's an invented ID as Windows doesn't have IDs. - */ - id: string; -}; - -/** -Get the default browser for the current platform. - -@returns A promise for the browser. - -``` -import defaultBrowser from 'default-browser'; - -console.log(await defaultBrowser()); -//=> {name: 'Safari', id: 'com.apple.Safari'} -``` -*/ -export default function defaultBrowser(): Promise; diff --git a/build/node_modules/default-browser/index.js b/build/node_modules/default-browser/index.js deleted file mode 100644 index f5012dec..00000000 --- a/build/node_modules/default-browser/index.js +++ /dev/null @@ -1,30 +0,0 @@ -import process from 'node:process'; -import defaultBrowserId from 'default-browser-id'; -import bundleName from 'bundle-name'; -import titleize from 'titleize'; -import {execa} from 'execa'; -import windows from './windows.js'; - -export default async function defaultBrowser() { - if (process.platform === 'linux') { - const {stdout} = await execa('xdg-mime', ['query', 'default', 'x-scheme-handler/http']); - const name = titleize(stdout.trim().replace(/.desktop$/, '').replace('-', ' ')); - - return { - name, - id: stdout, - }; - } - - if (process.platform === 'darwin') { - const id = await defaultBrowserId(); - const name = await bundleName(id); - return {name, id}; - } - - if (process.platform === 'win32') { - return windows(); - } - - throw new Error('Only macOS, Linux, and Windows are supported'); -} diff --git a/build/node_modules/default-browser/license b/build/node_modules/default-browser/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/default-browser/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/default-browser/package.json b/build/node_modules/default-browser/package.json deleted file mode 100644 index 91bc3859..00000000 --- a/build/node_modules/default-browser/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "default-browser", - "version": "4.0.0", - "description": "Get the default browser", - "license": "MIT", - "repository": "sindresorhus/default-browser", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "type": "module", - "exports": "./index.js", - "engines": { - "node": ">=14.16" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "windows.js", - "index.d.ts" - ], - "keywords": [ - "macos", - "linux", - "browser", - "default", - "plist", - "web", - "bundle", - "bundleid", - "id", - "identifier", - "uti", - "cfbundlename", - "applescript" - ], - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, - "devDependencies": { - "ava": "^5.2.0", - "tsd": "^0.28.0", - "xo": "^0.53.1" - } -} diff --git a/build/node_modules/default-browser/readme.md b/build/node_modules/default-browser/readme.md deleted file mode 100644 index cd0d05b0..00000000 --- a/build/node_modules/default-browser/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# default-browser - -> Get the default browser - -Works on macOS, Linux, and Windows. - -## Install - -```sh -npm install default-browser -``` - -## Usage - -```js -import defaultBrowser from 'default-browser'; - -console.log(await defaultBrowser()); -//=> {name: 'Safari', id: 'com.apple.Safari'} -``` - -## Related - -- [default-browser-cli](https://github.com/sindresorhus/default-browser-cli) - CLI for this package diff --git a/build/node_modules/default-browser/windows.js b/build/node_modules/default-browser/windows.js deleted file mode 100644 index bda45eca..00000000 --- a/build/node_modules/default-browser/windows.js +++ /dev/null @@ -1,37 +0,0 @@ -import {execa} from 'execa'; - -// Windows doesn't have browser IDs in the same way macOS/Linux does so we give fake -// ones that look real and match the macOS/Linux versions for cross-platform apps. -const windowsBrowserProgIds = { - AppXq0fevzme2pys62n3e0fbqa7peapykr8v: {name: 'Edge', id: 'com.microsoft.edge.old'}, - MSEdgeDHTML: {name: 'Edge', id: 'com.microsoft.edge'}, // On macOS, it's "com.microsoft.edgemac" - MSEdgeHTM: {name: 'Edge', id: 'com.microsoft.edge'}, // Newer Edge/Win10 releases - 'IE.HTTP': {name: 'Internet Explorer', id: 'com.microsoft.ie'}, - FirefoxURL: {name: 'Firefox', id: 'org.mozilla.firefox'}, - ChromeHTML: {name: 'Chrome', id: 'com.google.chrome'}, -}; - -export class UnknownBrowserError extends Error {} - -export default async function defaultBrowser(_execa = execa) { - const result = await _execa('reg', [ - 'QUERY', - ' HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice', - '/v', - 'ProgId', - ]); - - const match = /ProgId\s*REG_SZ\s*(?\S+)/.exec(result.stdout); - if (!match) { - throw new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(result.stdout)}`); - } - - const {id} = match.groups; - - const browser = windowsBrowserProgIds[id]; - if (!browser) { - throw new UnknownBrowserError(`Unknown browser ID: ${id}`); - } - - return browser; -} diff --git a/build/node_modules/default-gateway/LICENSE b/build/node_modules/default-gateway/LICENSE deleted file mode 100644 index 9669c20f..00000000 --- a/build/node_modules/default-gateway/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) silverwind -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/default-gateway/README.md b/build/node_modules/default-gateway/README.md deleted file mode 100644 index 5790d90c..00000000 --- a/build/node_modules/default-gateway/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# default-gateway -[![](https://img.shields.io/npm/v/default-gateway.svg?style=flat)](https://www.npmjs.org/package/default-gateway) [![](https://img.shields.io/npm/dm/default-gateway.svg)](https://www.npmjs.org/package/default-gateway) - -Obtains the machine's default gateway through `exec` calls to OS routing interfaces. - -- On Linux and Android, the `ip` command must be available (usually provided by the `iproute2` package). -- On Windows, `wmic` must be available. -- On IBM i, the `db2util` command must be available (provided by the `db2util` package). -- On Unix (and macOS), the `netstat` command must be available. - -## Installation - -``` -$ npm i default-gateway -``` - -## Example - -```js -const defaultGateway = require('default-gateway'); - -const {gateway, interface} = await defaultGateway.v4(); -// gateway = '1.2.3.4', interface = 'en1' - -const {gateway, interface} = await defaultGateway.v6(); -// gateway = '2001:db8::1', interface = 'en2' - -const {gateway, interface} = defaultGateway.v4.sync(); -// gateway = '1.2.3.4', interface = 'en1' - -const {gateway, interface} = defaultGateway.v6.sync(); -// gateway = '2001:db8::1', interface = 'en2' -``` - -## API -### defaultGateway.v4() -### defaultGateway.v6() -### defaultGateway.v4.sync() -### defaultGateway.v6.sync() - -Returns: `result` *Object* - - `gateway`: The IP address of the default gateway. - - `interface`: The name of the interface. On Windows, this is the network adapter name. - -The `.v{4,6}()` methods return a Promise while the `.v{4,6}.sync()` variants will return the result synchronously. - -The `gateway` property will always be defined on success, while `interface` can be `null` if it cannot be determined. All methods reject/throw on unexpected conditions. - -## License - -© [silverwind](https://github.com/silverwind), distributed under BSD licence diff --git a/build/node_modules/default-gateway/android.js b/build/node_modules/default-gateway/android.js deleted file mode 100644 index bfc4d72b..00000000 --- a/build/node_modules/default-gateway/android.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const execa = require("execa"); - -const args = { - v4: ["-4", "r"], - v6: ["-6", "r"], -}; - -const parse = stdout => { - let result; - - (stdout || "").trim().split("\n").some(line => { - const [_, gateway, iface] = /default via (.+?) dev (.+?)( |$)/.exec(line) || []; - if (gateway && isIP(gateway)) { - result = {gateway, interface: (iface ? iface : null)}; - return true; - } - }); - - if (!result) { - throw new Error("Unable to determine default gateway"); - } - - return result; -}; - -const promise = async family => { - const {stdout} = await execa("ip", args[family]); - return parse(stdout, family); -}; - -const sync = family => { - const {stdout} = execa.sync("ip", args[family]); - return parse(stdout); -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/default-gateway/darwin.js b/build/node_modules/default-gateway/darwin.js deleted file mode 100644 index 0cbb3f50..00000000 --- a/build/node_modules/default-gateway/darwin.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const {release} = require("os"); -const execa = require("execa"); -const dests = new Set(["default", "0.0.0.0", "0.0.0.0/0", "::", "::/0"]); - -const args = { - v4: ["-rn", "-f", "inet"], - v6: ["-rn", "-f", "inet6"], -}; - -// The IPv4 gateway is in column 3 in Darwin 19 (macOS 10.15 Catalina) and higher, -// previously it was in column 5 -const v4IfaceColumn = parseInt(release()) >= 19 ? 3 : 5; - -const parse = (stdout, family) => { - let result; - - (stdout || "").trim().split("\n").some(line => { - const results = line.split(/ +/) || []; - const target = results[0]; - const gateway = results[1]; - const iface = results[family === "v4" ? v4IfaceColumn : 3]; - if (dests.has(target) && gateway && isIP(gateway)) { - result = {gateway, interface: (iface ? iface : null)}; - return true; - } - }); - - if (!result) { - throw new Error("Unable to determine default gateway"); - } - - return result; -}; - -const promise = async family => { - const {stdout} = await execa("netstat", args[family]); - return parse(stdout, family); -}; - -const sync = family => { - const {stdout} = execa.sync("netstat", args[family]); - return parse(stdout, family); -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/default-gateway/freebsd.js b/build/node_modules/default-gateway/freebsd.js deleted file mode 100644 index 1e1e44ca..00000000 --- a/build/node_modules/default-gateway/freebsd.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const execa = require("execa"); -const dests = new Set(["default", "0.0.0.0", "0.0.0.0/0", "::", "::/0"]); - -const args = { - v4: ["-rn", "-f", "inet"], - v6: ["-rn", "-f", "inet6"], -}; - -const parse = stdout => { - let result; - - (stdout || "").trim().split("\n").some(line => { - const [target, gateway, _, iface] = line.split(/ +/) || []; - if (dests.has(target) && gateway && isIP(gateway)) { - result = {gateway, interface: (iface ? iface : null)}; - return true; - } - }); - - if (!result) { - throw new Error("Unable to determine default gateway"); - } - - return result; -}; - -const promise = async family => { - const {stdout} = await execa("netstat", args[family]); - return parse(stdout); -}; - -const sync = family => { - const {stdout} = execa.sync("netstat", args[family]); - return parse(stdout); -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/default-gateway/ibmi.js b/build/node_modules/default-gateway/ibmi.js deleted file mode 100644 index 8c2783b8..00000000 --- a/build/node_modules/default-gateway/ibmi.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; - -const execa = require("execa"); - -const db2util = "/QOpenSys/pkgs/bin/db2util"; -const sql = "select NEXT_HOP, LOCAL_BINDING_INTERFACE from QSYS2.NETSTAT_ROUTE_INFO where ROUTE_TYPE='DFTROUTE' and NEXT_HOP!='*DIRECT' and CONNECTION_TYPE=?"; - -const parse = stdout => { - let result; - try { - const resultObj = JSON.parse(stdout); - const gateway = resultObj.records[0].NEXT_HOP; - const iface = resultObj.records[0].LOCAL_BINDING_INTERFACE; - result = {gateway, iface}; - } catch {} - if (!result) { - throw new Error("Unable to determine default gateway"); - } - return result; -}; - -const promise = async family => { - const {stdout} = await execa(db2util, [sql, "-p", family, "-o", "json"]); - return parse(stdout); -}; - -const sync = family => { - const {stdout} = execa.sync(db2util, [sql, "-p", family, "-o", "json"]); - return parse(stdout); -}; - -module.exports.v4 = () => promise("IPV4"); -module.exports.v6 = () => promise("IPV6"); - -module.exports.v4.sync = () => sync("IPV4"); -module.exports.v6.sync = () => sync("IPV6"); diff --git a/build/node_modules/default-gateway/index.js b/build/node_modules/default-gateway/index.js deleted file mode 100644 index f142287e..00000000 --- a/build/node_modules/default-gateway/index.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -const {platform, type} = require("os"); - -const supportedPlatforms = new Set([ - "aix", - "android", - "darwin", - "freebsd", - "linux", - "openbsd", - "sunos", - "win32" -]); - -const plat = platform(); - -if (supportedPlatforms.has(plat)) { - let file = plat; - if (plat === "aix") { - file = type() === "OS400" ? "ibmi" : "sunos"; // AIX `netstat` output is compatible with Solaris - } - - const m = require(`./${file}.js`); - module.exports.v4 = () => m.v4(); - module.exports.v6 = () => m.v6(); - module.exports.v4.sync = () => m.v4.sync(); - module.exports.v6.sync = () => m.v6.sync(); -} else { - const err = new Error(`Unsupported Platform: ${plat}`); - module.exports.v4 = () => Promise.reject(err); - module.exports.v6 = () => Promise.reject(err); - module.exports.v4.sync = () => { throw err; }; - module.exports.v6.sync = () => { throw err; }; -} diff --git a/build/node_modules/default-gateway/linux.js b/build/node_modules/default-gateway/linux.js deleted file mode 100644 index d60c460d..00000000 --- a/build/node_modules/default-gateway/linux.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const {networkInterfaces} = require("os"); -const execa = require("execa"); - -const args = { - v4: ["-4", "r"], - v6: ["-6", "r"], -}; - -const parse = (stdout, family) => { - let result; - - (stdout || "").trim().split("\n").some(line => { - const results = /default( via .+?)?( dev .+?)( |$)/.exec(line) || []; - const gateway = (results[1] || "").substring(5); - const iface = (results[2] || "").substring(5); - if (gateway && isIP(gateway)) { // default via 1.2.3.4 dev en0 - result = {gateway, interface: (iface ? iface : null)}; - return true; - } else if (iface && !gateway) { // default via dev en0 - const interfaces = networkInterfaces(); - const addresses = interfaces[iface]; - if (!addresses || !addresses.length) return; - - addresses.some(addr => { - if (addr.family.substring(2) === family && isIP(addr.address)) { - result = {gateway: addr.address, interface: (iface ? iface : null)}; - return true; - } - }); - } - }); - - if (!result) { - throw new Error("Unable to determine default gateway"); - } - - return result; -}; - -const promise = async family => { - const {stdout} = await execa("ip", args[family]); - return parse(stdout, family); -}; - -const sync = family => { - const {stdout} = execa.sync("ip", args[family]); - return parse(stdout, family); -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/default-gateway/openbsd.js b/build/node_modules/default-gateway/openbsd.js deleted file mode 100644 index 050179a1..00000000 --- a/build/node_modules/default-gateway/openbsd.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const execa = require("execa"); -const dests = new Set(["default", "0.0.0.0", "0.0.0.0/0", "::", "::/0"]); - -const args = { - v4: ["-rn", "-f", "inet"], - v6: ["-rn", "-f", "inet6"], -}; - -const parse = stdout => { - let result; - - (stdout || "").trim().split("\n").some(line => { - const results = line.split(/ +/) || []; - const target = results[0]; - const gateway = results[1]; - const iface = results[7]; - if (dests.has(target) && gateway && isIP(gateway)) { - result = {gateway, interface: (iface ? iface : null)}; - return true; - } - }); - - if (!result) { - throw new Error("Unable to determine default gateway"); - } - - return result; -}; - -const promise = async family => { - const {stdout} = await execa("netstat", args[family]); - return parse(stdout); -}; - -const sync = family => { - const {stdout} = execa.sync("netstat", args[family]); - return parse(stdout); -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/default-gateway/package.json b/build/node_modules/default-gateway/package.json deleted file mode 100644 index 41fc761f..00000000 --- a/build/node_modules/default-gateway/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "default-gateway", - "version": "6.0.3", - "description": "Get the default network gateway, cross-platform.", - "author": "silverwind", - "repository": "silverwind/default-gateway", - "license": "BSD-2-Clause", - "main": "index.js", - "engines": { - "node": ">= 10" - }, - "files": [ - "index.js", - "android.js", - "darwin.js", - "freebsd.js", - "linux.js", - "openbsd.js", - "sunos.js", - "win32.js", - "ibmi.js" - ], - "dependencies": { - "execa": "^5.0.0" - }, - "devDependencies": { - "eslint": "7.17.0", - "eslint-config-silverwind": "27.0.0", - "jest": "26.6.3", - "updates": "11.4.2", - "versions": "8.4.4" - }, - "keywords": [ - "default gateway", - "network", - "default", - "gateway", - "routing", - "route" - ] -} diff --git a/build/node_modules/default-gateway/sunos.js b/build/node_modules/default-gateway/sunos.js deleted file mode 100644 index acdb1cd8..00000000 --- a/build/node_modules/default-gateway/sunos.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const execa = require("execa"); -const dests = new Set(["default", "0.0.0.0", "0.0.0.0/0", "::", "::/0"]); - -const args = { - v4: ["-rn", "-f", "inet"], - v6: ["-rn", "-f", "inet6"], -}; - -const parse = stdout => { - let result; - - (stdout || "").trim().split("\n").some(line => { - const results = line.split(/ +/) || []; - const target = results[0]; - const gateway = results[1]; - const iface = results[5]; - if (dests.has(target) && gateway && isIP(gateway)) { - result = {gateway, interface: (iface ? iface : null)}; - return true; - } - }); - - if (!result) { - throw new Error("Unable to determine default gateway"); - } - - return result; -}; - -const promise = async family => { - const {stdout} = await execa("netstat", args[family]); - return parse(stdout); -}; - -const sync = family => { - const {stdout} = execa.sync("netstat", args[family]); - return parse(stdout); -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/default-gateway/win32.js b/build/node_modules/default-gateway/win32.js deleted file mode 100644 index 9597b776..00000000 --- a/build/node_modules/default-gateway/win32.js +++ /dev/null @@ -1,99 +0,0 @@ -"use strict"; - -const {isIP} = require("net"); -const {networkInterfaces} = require("os"); -const execa = require("execa"); - -const gwArgs = "path Win32_NetworkAdapterConfiguration where IPEnabled=true get DefaultIPGateway,GatewayCostMetric,IPConnectionMetric,Index /format:table".split(" "); -const ifArgs = index => `path Win32_NetworkAdapter where Index=${index} get NetConnectionID,MACAddress /format:table`.split(" "); - -const spawnOpts = { - windowsHide: true, -}; - -// Parsing tables like this. The final metric is GatewayCostMetric + IPConnectionMetric -// -// DefaultIPGateway GatewayCostMetric Index IPConnectionMetric -// {"1.2.3.4", "2001:db8::1"} {0, 256} 12 25 -// {"2.3.4.5"} {25} 12 55 -function parseGwTable(gwTable, family) { - let [bestGw, bestMetric, bestId] = [null, null, null]; - - for (let line of (gwTable || "").trim().split(/\r?\n/).splice(1)) { - line = line.trim(); - const [_, gwArr, gwCostsArr, id, ipMetric] = /({.+?}) +?({.+?}) +?([0-9]+) +?([0-9]+)/g.exec(line) || []; - if (!gwArr) continue; - - const gateways = (gwArr.match(/"(.+?)"/g) || []).map(match => match.substring(1, match.length - 1)); - const gatewayCosts = (gwCostsArr.match(/[0-9]+/g) || []); - - for (const [index, gateway] of Object.entries(gateways)) { - if (!gateway || `v${isIP(gateway)}` !== family) continue; - - const metric = parseInt(gatewayCosts[index]) + parseInt(ipMetric); - if (!bestGw || metric < bestMetric) { - [bestGw, bestMetric, bestId] = [gateway, metric, id]; - } - } - } - - if (bestGw) return [bestGw, bestId]; -} - -function parseIfTable(ifTable) { - const line = (ifTable || "").trim().split("\n")[1]; - - let [mac, name] = line.trim().split(/\s+/); - mac = mac.toLowerCase(); - - // try to get the interface name by matching the mac to os.networkInterfaces to avoid wmic's encoding issues - // https://github.com/silverwind/default-gateway/issues/14 - for (const [osname, addrs] of Object.entries(networkInterfaces())) { - for (const addr of addrs) { - if (addr && addr.mac && addr.mac.toLowerCase() === mac) { - return osname; - } - } - } - return name; -} - -const promise = async family => { - const {stdout} = await execa("wmic", gwArgs, spawnOpts); - const [gateway, id] = parseGwTable(stdout, family) || []; - - if (!gateway) { - throw new Error("Unable to determine default gateway"); - } - - let name; - if (id) { - const {stdout} = await execa("wmic", ifArgs(id), spawnOpts); - name = parseIfTable(stdout); - } - - return {gateway, interface: name ? name : null}; -}; - -const sync = family => { - const {stdout} = execa.sync("wmic", gwArgs, spawnOpts); - const [gateway, id] = parseGwTable(stdout, family) || []; - - if (!gateway) { - throw new Error("Unable to determine default gateway"); - } - - let name; - if (id) { - const {stdout} = execa.sync("wmic", ifArgs(id), spawnOpts); - name = parseIfTable(stdout); - } - - return {gateway, interface: name ? name : null}; -}; - -module.exports.v4 = () => promise("v4"); -module.exports.v6 = () => promise("v6"); - -module.exports.v4.sync = () => sync("v4"); -module.exports.v6.sync = () => sync("v6"); diff --git a/build/node_modules/defaults/LICENSE b/build/node_modules/defaults/LICENSE deleted file mode 100644 index 11eb6fde..00000000 --- a/build/node_modules/defaults/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2022 Sindre Sorhus -Copyright (c) 2015 Elijah Insua - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/defaults/README.md b/build/node_modules/defaults/README.md deleted file mode 100644 index 12bf91f2..00000000 --- a/build/node_modules/defaults/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# defaults - -> A simple one level options merge utility - -## Install - -```sh -npm install defaults -``` - -## Usage - -```js -const defaults = require('defaults'); - -const handle = (options, fn) => { - options = defaults(options, { - timeout: 100 - }); - - setTimeout(() => { - fn(options); - }, options.timeout); -} - -handle({timeout: 1000}, () => { - // We're here 1000 ms later -}); - -handle({timeout: 10000}, () => { - // We're here 10s later -}); -``` - -## Summary - -this module exports a function that takes 2 arguments: `options` and `defaults`. When called, it overrides all of `undefined` properties in `options` with the clones of properties defined in `defaults` - -Sidecases: if called with a falsy `options` value, options will be initialized to a new object before being merged onto. diff --git a/build/node_modules/defaults/index.js b/build/node_modules/defaults/index.js deleted file mode 100644 index cb7d75c9..00000000 --- a/build/node_modules/defaults/index.js +++ /dev/null @@ -1,13 +0,0 @@ -var clone = require('clone'); - -module.exports = function(options, defaults) { - options = options || {}; - - Object.keys(defaults).forEach(function(key) { - if (typeof options[key] === 'undefined') { - options[key] = clone(defaults[key]); - } - }); - - return options; -}; \ No newline at end of file diff --git a/build/node_modules/defaults/package.json b/build/node_modules/defaults/package.json deleted file mode 100644 index 44f72b17..00000000 --- a/build/node_modules/defaults/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "defaults", - "version": "1.0.4", - "description": "merge single level defaults over a config object", - "main": "index.js", - "funding": "https://github.com/sponsors/sindresorhus", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/sindresorhus/node-defaults.git" - }, - "keywords": [ - "config", - "defaults", - "options", - "object", - "merge", - "assign", - "properties", - "deep" - ], - "author": "Elijah Insua ", - "license": "MIT", - "readmeFilename": "README.md", - "dependencies": { - "clone": "^1.0.2" - }, - "devDependencies": { - "tap": "^2.0.0" - } -} diff --git a/build/node_modules/defaults/test.js b/build/node_modules/defaults/test.js deleted file mode 100644 index 60e0ffba..00000000 --- a/build/node_modules/defaults/test.js +++ /dev/null @@ -1,34 +0,0 @@ -var defaults = require('./'), - test = require('tap').test; - -test("ensure options is an object", function(t) { - var options = defaults(false, { a : true }); - t.ok(options.a); - t.end() -}); - -test("ensure defaults override keys", function(t) { - var result = defaults({}, { a: false, b: true }); - t.ok(result.b, 'b merges over undefined'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defined keys are not overwritten", function(t) { - var result = defaults({ b: false }, { a: false, b: true }); - t.equal(result.b, false, 'b not merged'); - t.equal(result.a, false, 'a merges over undefined'); - t.end(); -}); - -test("ensure defaults clone nested objects", function(t) { - var d = { a: [1,2,3], b: { hello : 'world' } }; - var result = defaults({}, d); - t.equal(result.a.length, 3, 'objects should be clones'); - t.ok(result.a !== d.a, 'objects should be clones'); - - t.equal(Object.keys(result.b).length, 1, 'objects should be clones'); - t.ok(result.b !== d.b, 'objects should be clones'); - t.end(); -}); - diff --git a/build/node_modules/define-data-property/.eslintrc b/build/node_modules/define-data-property/.eslintrc deleted file mode 100644 index 75443e81..00000000 --- a/build/node_modules/define-data-property/.eslintrc +++ /dev/null @@ -1,24 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": 0, - "id-length": 0, - "new-cap": ["error", { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "max-lines-per-function": "off", - }, - }, - ], -} diff --git a/build/node_modules/define-data-property/.nycrc b/build/node_modules/define-data-property/.nycrc deleted file mode 100644 index 1826526e..00000000 --- a/build/node_modules/define-data-property/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/define-data-property/CHANGELOG.md b/build/node_modules/define-data-property/CHANGELOG.md deleted file mode 100644 index 94bad092..00000000 --- a/build/node_modules/define-data-property/CHANGELOG.md +++ /dev/null @@ -1,41 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.1.1](https://github.com/ljharb/define-data-property/compare/v1.1.0...v1.1.1) - 2023-10-12 - -### Commits - -- [Tests] fix tests in ES3 engines [`5c6920e`](https://github.com/ljharb/define-data-property/commit/5c6920edd1f52f675b02f417e539c28135b43f94) -- [Dev Deps] update `@types/es-value-fixtures`, `@types/for-each`, `@types/gopd`, `@types/has-property-descriptors`, `tape`, `typescript` [`7d82dfc`](https://github.com/ljharb/define-data-property/commit/7d82dfc20f778b4465bba06335dd53f6f431aea3) -- [Fix] IE 8 has a broken `Object.defineProperty` [`0672e1a`](https://github.com/ljharb/define-data-property/commit/0672e1af2a9fcc787e7c23b96dea60d290df5548) -- [meta] emit types on prepack [`73acb1f`](https://github.com/ljharb/define-data-property/commit/73acb1f903c21b314ec7156bf10f73c7910530c0) -- [Dev Deps] update `tape`, `typescript` [`9489a77`](https://github.com/ljharb/define-data-property/commit/9489a7738bf2ecf0ac71d5b78ec4ca6ad7ba0142) - -## [v1.1.0](https://github.com/ljharb/define-data-property/compare/v1.0.1...v1.1.0) - 2023-09-13 - -### Commits - -- [New] add `loose` arg [`155235a`](https://github.com/ljharb/define-data-property/commit/155235a4c4d7741f6de01cd87c99599a56654b72) -- [New] allow `null` to be passed for the non* args [`7d2fa5f`](https://github.com/ljharb/define-data-property/commit/7d2fa5f06be0392736c13b126f7cd38979f34792) - -## [v1.0.1](https://github.com/ljharb/define-data-property/compare/v1.0.0...v1.0.1) - 2023-09-12 - -### Commits - -- [meta] add TS types [`43d763c`](https://github.com/ljharb/define-data-property/commit/43d763c6c883f652de1c9c02ef6216ee507ffa69) -- [Dev Deps] update `@types/tape`, `typescript` [`f444985`](https://github.com/ljharb/define-data-property/commit/f444985811c36f3e6448a03ad2f9b7898917f4c7) -- [meta] add `safe-publish-latest`, [`172bb10`](https://github.com/ljharb/define-data-property/commit/172bb10890896ebb160e64398f6ee55760107bee) - -## v1.0.0 - 2023-09-12 - -### Commits - -- Initial implementation, tests, readme [`5b43d6b`](https://github.com/ljharb/define-data-property/commit/5b43d6b44e675a904810467a7d4e0adb7efc3196) -- Initial commit [`35e577a`](https://github.com/ljharb/define-data-property/commit/35e577a6ba59a98befa97776d70d90f3bea9009d) -- npm init [`82a0a04`](https://github.com/ljharb/define-data-property/commit/82a0a04a321ca7de220af02d41e2745e8a9962ed) -- Only apps should have lockfiles [`96df244`](https://github.com/ljharb/define-data-property/commit/96df244a3c6f426f9a2437be825d1c6f5dd7158e) -- [meta] use `npmignore` to autogenerate an npmignore file [`a87ff18`](https://github.com/ljharb/define-data-property/commit/a87ff18cb79e14c2eb5720486c4759fd9a189375) diff --git a/build/node_modules/define-data-property/LICENSE b/build/node_modules/define-data-property/LICENSE deleted file mode 100644 index b4213ac6..00000000 --- a/build/node_modules/define-data-property/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/define-data-property/README.md b/build/node_modules/define-data-property/README.md deleted file mode 100644 index f2304dae..00000000 --- a/build/node_modules/define-data-property/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# define-data-property [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Define a data property on an object. Will fall back to assignment in an engine without descriptors. - -The three `non*` argument can also be passed `null`, which will use the existing state if available. - -The `loose` argument will mean that if you attempt to set a non-normal data property, in an environment without descriptor support, it will fall back to normal assignment. - -## Usage - -```javascript -var defineDataProperty = require('define-data-property'); -var assert = require('assert'); - -var obj = {}; -defineDataProperty(obj, 'key', 'value'); -defineDataProperty( - obj, - 'key2', - 'value', - true, // nonEnumerable, optional - false, // nonWritable, optional - true, // nonConfigurable, optional - false // loose, optional -); - -assert.deepEqual( - Object.getOwnPropertyDescriptors(obj), - { - key: { - configurable: true, - enumerable: true, - value: 'value', - writable: true, - }, - key2: { - configurable: false, - enumerable: false, - value: 'value', - writable: true, - }, - } -); -``` - -[package-url]: https://npmjs.org/package/define-data-property -[npm-version-svg]: https://versionbadg.es/ljharb/define-data-property.svg -[deps-svg]: https://david-dm.org/ljharb/define-data-property.svg -[deps-url]: https://david-dm.org/ljharb/define-data-property -[dev-deps-svg]: https://david-dm.org/ljharb/define-data-property/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/define-data-property#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/define-data-property.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/define-data-property.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/define-data-property.svg -[downloads-url]: https://npm-stat.com/charts.html?package=define-data-property -[codecov-image]: https://codecov.io/gh/ljharb/define-data-property/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/define-data-property/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/define-data-property -[actions-url]: https://github.com/ljharb/define-data-property/actions diff --git a/build/node_modules/define-data-property/index.d.ts b/build/node_modules/define-data-property/index.d.ts deleted file mode 100644 index d2e353d1..00000000 --- a/build/node_modules/define-data-property/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _exports: (obj: Record, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void; -export = _exports; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/node_modules/define-data-property/index.d.ts.map b/build/node_modules/define-data-property/index.d.ts.map deleted file mode 100644 index 39aca4b8..00000000 --- a/build/node_modules/define-data-property/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"8BAqBiB,OAAO,WAAW,EAAE,OAAO,CAAC,YAAY,WAAW,SAAS,OAAO,kBAAkB,OAAO,GAAG,IAAI,gBAAgB,OAAO,GAAG,IAAI,oBAAoB,OAAO,GAAG,IAAI,UAAU,OAAO,KAAK,IAAI"} \ No newline at end of file diff --git a/build/node_modules/define-data-property/index.js b/build/node_modules/define-data-property/index.js deleted file mode 100644 index 95340651..00000000 --- a/build/node_modules/define-data-property/index.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var hasPropertyDescriptors = require('has-property-descriptors')(); - -var GetIntrinsic = require('get-intrinsic'); - -var $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true); -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = false; - } -} - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var gopd = require('gopd'); - -/** @type {(obj: Record, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */ -module.exports = function defineDataProperty( - obj, - property, - value -) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new $TypeError('`obj` must be an object or a function`'); - } - if (typeof property !== 'string' && typeof property !== 'symbol') { - throw new $TypeError('`property` must be a string or a symbol`'); - } - if (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) { - throw new $TypeError('`nonEnumerable`, if provided, must be a boolean or null'); - } - if (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) { - throw new $TypeError('`nonWritable`, if provided, must be a boolean or null'); - } - if (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) { - throw new $TypeError('`nonConfigurable`, if provided, must be a boolean or null'); - } - if (arguments.length > 6 && typeof arguments[6] !== 'boolean') { - throw new $TypeError('`loose`, if provided, must be a boolean'); - } - - var nonEnumerable = arguments.length > 3 ? arguments[3] : null; - var nonWritable = arguments.length > 4 ? arguments[4] : null; - var nonConfigurable = arguments.length > 5 ? arguments[5] : null; - var loose = arguments.length > 6 ? arguments[6] : false; - - /* @type {false | TypedPropertyDescriptor} */ - var desc = !!gopd && gopd(obj, property); - - if ($defineProperty) { - $defineProperty(obj, property, { - configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable, - enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable, - value: value, - writable: nonWritable === null && desc ? desc.writable : !nonWritable - }); - } else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) { - // must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable - obj[property] = value; // eslint-disable-line no-param-reassign - } else { - throw new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.'); - } -}; diff --git a/build/node_modules/define-data-property/package.json b/build/node_modules/define-data-property/package.json deleted file mode 100644 index 1bb5815b..00000000 --- a/build/node_modules/define-data-property/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "name": "define-data-property", - "version": "1.1.1", - "description": "Define a data property on an object. Will fall back to assignment in an engine without descriptors.", - "main": "index.js", - "exports": { - ".": [ - { - "types": "./index.d.ts", - "default": "./index.js" - }, - "./index.js" - ], - "./package.json": "./package.json" - }, - "sideEffects": false, - "types": "./index.d.ts", - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated && npm run emit-types", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "tsc": "tsc -p .", - "preemit-types": "rm -f *.ts *.ts.map test/*.ts test/*.ts.map", - "emit-types": "npm run tsc -- --noEmit false --emitDeclarationOnly", - "postemit-types": "rm test/*.ts test/*.ts.map", - "prelint": "evalmd README.md", - "lint": "eslint --ext=js,mjs .", - "postlint": "npm run tsc", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/define-data-property.git" - }, - "keywords": [ - "define", - "data", - "property", - "object", - "accessor", - "javascript", - "ecmascript", - "enumerable", - "configurable", - "writable" - ], - "author": "Jordan Harband ", - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/define-data-property/issues" - }, - "homepage": "https://github.com/ljharb/define-data-property#readme", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "@types/es-value-fixtures": "^1.4.1", - "@types/for-each": "^0.3.1", - "@types/get-intrinsic": "^1.2.0", - "@types/gopd": "^1.0.1", - "@types/has": "^1.0.0", - "@types/has-property-descriptors": "^1.0.1", - "@types/object-inspect": "^1.8.2", - "@types/object.getownpropertydescriptors": "^2.1.2", - "@types/tape": "^5.6.1", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "es-value-fixtures": "^1.4.2", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "for-each": "^0.3.3", - "has": "^1.0.3", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "object-inspect": "^1.12.3", - "object.getownpropertydescriptors": "^2.1.7", - "reflect.ownkeys": "^1.1.4", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.1", - "typescript": "^5.3.0-dev.20231012" - }, - "engines": { - "node": ">= 0.4" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows", - "!*.ts", - "!*.ts.map", - "types/reflect.ownkeys" - ] - } -} diff --git a/build/node_modules/define-data-property/tsconfig.json b/build/node_modules/define-data-property/tsconfig.json deleted file mode 100644 index 69f060dc..00000000 --- a/build/node_modules/define-data-property/tsconfig.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - - /* Language and Environment */ - "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */ - "resolveJsonModule": true, /* Enable importing .json files. */ - - /* JavaScript Support */ - "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "noEmit": true, /* Disable emitting files from a compilation. */ - - /* Interop Constraints */ - "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - - /* Completeness */ - // "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "exclude": [ - "coverage" - ] -} diff --git a/build/node_modules/define-lazy-prop/index.d.ts b/build/node_modules/define-lazy-prop/index.d.ts deleted file mode 100644 index ba8998b8..00000000 --- a/build/node_modules/define-lazy-prop/index.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** -Define a [lazily evaluated](https://en.wikipedia.org/wiki/Lazy_evaluation) property on an object. - -@param object - Object to add property to. -@param propertyName - Name of the property to add. -@param fn - Called the first time `propertyName` is accessed. - -@example -``` -import defineLazyProp = require('define-lazy-prop'); - -const unicorn = { - // … -}; - -defineLazyProp(unicorn, 'rainbow', () => expensiveComputation()); - -app.on('user-action', () => { - doSomething(unicorn.rainbow); -}); -``` -*/ -declare function defineLazyProp< - ObjectType extends {[key: string]: unknown}, - PropertyNameType extends string, - PropertyValueType ->( - object: ObjectType, - propertyName: PropertyNameType, - fn: () => PropertyValueType -): ObjectType & {[K in PropertyNameType]: PropertyValueType}; - -export = defineLazyProp; diff --git a/build/node_modules/define-lazy-prop/index.js b/build/node_modules/define-lazy-prop/index.js deleted file mode 100644 index b4f255f7..00000000 --- a/build/node_modules/define-lazy-prop/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; -module.exports = (object, propertyName, fn) => { - const define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true}); - - Object.defineProperty(object, propertyName, { - configurable: true, - enumerable: true, - get() { - const result = fn(); - define(result); - return result; - }, - set(value) { - define(value); - } - }); - - return object; -}; diff --git a/build/node_modules/define-lazy-prop/license b/build/node_modules/define-lazy-prop/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/define-lazy-prop/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/define-lazy-prop/package.json b/build/node_modules/define-lazy-prop/package.json deleted file mode 100644 index aff24d84..00000000 --- a/build/node_modules/define-lazy-prop/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "define-lazy-prop", - "version": "2.0.0", - "description": "Define a lazily evaluated property on an object", - "license": "MIT", - "repository": "sindresorhus/define-lazy-prop", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "lazy", - "property", - "properties", - "prop", - "define", - "object", - "value", - "lazily", - "laziness", - "evaluation", - "eval", - "execute", - "getter", - "function", - "fn", - "memoize", - "cache", - "defer", - "deferred" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/define-lazy-prop/readme.md b/build/node_modules/define-lazy-prop/readme.md deleted file mode 100644 index 5760b279..00000000 --- a/build/node_modules/define-lazy-prop/readme.md +++ /dev/null @@ -1,64 +0,0 @@ -# define-lazy-prop [![Build Status](https://travis-ci.org/sindresorhus/define-lazy-prop.svg?branch=master)](https://travis-ci.org/sindresorhus/define-lazy-prop) - -> Define a [lazily evaluated](https://en.wikipedia.org/wiki/Lazy_evaluation) property on an object - -Useful when the value of a property is expensive to generate, so you want to delay the computation until the property is needed. For example, improving startup performance by deferring nonessential operations. - - -## Install - -``` -$ npm install define-lazy-prop -``` - - -## Usage - -```js -const defineLazyProp = require('define-lazy-prop'); - -const unicorn = { - // … -}; - -defineLazyProp(unicorn, 'rainbow', () => expensiveComputation()); - -app.on('user-action', () => { - doSomething(unicorn.rainbow); -}); -``` - - -## API - -### defineLazyProp(object, propertyName, fn) - -#### object - -Type: `Object` - -Object to add property to. - -#### propertyName - -Type: `string` - -Name of the property to add. - -#### fn - -Type: `Function` - -Called the first time `propertyName` is accessed. Expected to return a value. - - -## Related - -- [lazy-value](https://github.com/sindresorhus/lazy-value) - Create a lazily evaluated value -- [import-lazy](https://github.com/sindresorhus/import-lazy) - Import a module lazily -- [p-lazy](https://github.com/sindresorhus/p-lazy) - Create a lazy promise - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/define-property/CHANGELOG.md b/build/node_modules/define-property/CHANGELOG.md deleted file mode 100644 index 901c8aae..00000000 --- a/build/node_modules/define-property/CHANGELOG.md +++ /dev/null @@ -1,82 +0,0 @@ -# Release history - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - -
- Guiding Principles - -- Changelogs are for humans, not machines. -- There should be an entry for every single version. -- The same types of changes should be grouped. -- Versions and sections should be linkable. -- The latest version comes first. -- The release date of each versions is displayed. -- Mention whether you follow Semantic Versioning. - -
- -
- Types of changes - -Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): - -- `Added` for new features. -- `Changed` for changes in existing functionality. -- `Deprecated` for soon-to-be removed features. -- `Removed` for now removed features. -- `Fixed` for any bug fixes. -- `Security` in case of vulnerabilities. - -
- -## [2.0.0] - 2017-04-20 - -### Changed - -- Now supports data descriptors in addition to accessor descriptors. -- Now uses [Reflect.defineProperty][reflect] when available, otherwise falls back to [Object.defineProperty][object]. - -## [1.0.0] - 2017-04-20 - -- stable release - -## [0.2.5] - 2015-08-31 - -- use is-descriptor - -## [0.2.3] - 2015-08-29 - -- check keys length - -## [0.2.2] - 2015-08-27 - -- ensure val is an object - -## [0.2.1] - 2015-08-27 - -- support functions - -## [0.2.0] - 2015-08-27 - -- support get/set -- update docs - -## [0.1.0] - 2015-08-12 - -- first commit - -[2.0.0]: https://github.com/jonschlinkert/define-property/compare/1.0.0...2.0.0 -[1.0.0]: https://github.com/jonschlinkert/define-property/compare/0.2.5...1.0.0 -[0.2.5]: https://github.com/jonschlinkert/define-property/compare/0.2.3...0.2.5 -[0.2.3]: https://github.com/jonschlinkert/define-property/compare/0.2.2...0.2.3 -[0.2.2]: https://github.com/jonschlinkert/define-property/compare/0.2.1...0.2.2 -[0.2.1]: https://github.com/jonschlinkert/define-property/compare/0.2.0...0.2.1 -[0.2.0]: https://github.com/jonschlinkert/define-property/compare/0.1.3...0.2.0 - -[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog - -[object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty -[reflect]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty diff --git a/build/node_modules/define-property/LICENSE b/build/node_modules/define-property/LICENSE deleted file mode 100644 index f8de0630..00000000 --- a/build/node_modules/define-property/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2018, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/define-property/README.md b/build/node_modules/define-property/README.md deleted file mode 100644 index f1ee8f92..00000000 --- a/build/node_modules/define-property/README.md +++ /dev/null @@ -1,117 +0,0 @@ -# define-property [![NPM version](https://img.shields.io/npm/v/define-property.svg?style=flat)](https://www.npmjs.com/package/define-property) [![NPM monthly downloads](https://img.shields.io/npm/dm/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![NPM total downloads](https://img.shields.io/npm/dt/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/define-property.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/define-property) - -> Define a non-enumerable property on an object. Uses Reflect.defineProperty when available, otherwise Object.defineProperty. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save define-property -``` - -## Release history - -See [the CHANGELOG](changelog.md) for updates. - -## Usage - -**Params** - -* `object`: The object on which to define the property. -* `key`: The name of the property to be defined or modified. -* `value`: The value or descriptor of the property being defined or modified. - -```js -var define = require('define-property'); -var obj = {}; -define(obj, 'foo', function(val) { - return val.toUpperCase(); -}); - -// by default, defined properties are non-enumberable -console.log(obj); -//=> {} - -console.log(obj.foo('bar')); -//=> 'BAR' -``` - -**defining setters/getters** - -Pass the same properties you would if using [Object.defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) or [Reflect.defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty). - -```js -define(obj, 'foo', { - set: function() {}, - get: function() {} -}); -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Related projects - -You might also be interested in these projects: - -* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.") -* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.") -* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.") -* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.") - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 28 | [jonschlinkert](https://github.com/jonschlinkert) | -| 1 | [doowb](https://github.com/doowb) | - -### Author - -**Jon Schlinkert** - -* Connect with me on [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert) -* Follow me on [github/jonschlinkert](https://github.com/jonschlinkert) -* Follow me on [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on January 25, 2018._ \ No newline at end of file diff --git a/build/node_modules/define-property/index.js b/build/node_modules/define-property/index.js deleted file mode 100644 index 0efa0a9e..00000000 --- a/build/node_modules/define-property/index.js +++ /dev/null @@ -1,38 +0,0 @@ -/*! - * define-property - * - * Copyright (c) 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -var isobject = require('isobject'); -var isDescriptor = require('is-descriptor'); -var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) - ? Reflect.defineProperty - : Object.defineProperty; - -module.exports = function defineProperty(obj, key, val) { - if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) { - throw new TypeError('expected an object, function, or array'); - } - - if (typeof key !== 'string') { - throw new TypeError('expected "key" to be a string'); - } - - if (isDescriptor(val)) { - define(obj, key, val); - return obj; - } - - define(obj, key, { - configurable: true, - enumerable: false, - writable: true, - value: val - }); - - return obj; -}; diff --git a/build/node_modules/define-property/package.json b/build/node_modules/define-property/package.json deleted file mode 100644 index f8fd21cb..00000000 --- a/build/node_modules/define-property/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "define-property", - "description": "Define a non-enumerable property on an object. Uses Reflect.defineProperty when available, otherwise Object.defineProperty.", - "version": "2.0.2", - "homepage": "https://github.com/jonschlinkert/define-property", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" - ], - "repository": "jonschlinkert/define-property", - "bugs": { - "url": "https://github.com/jonschlinkert/define-property/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "devDependencies": { - "gulp-format-md": "^1.0.0", - "mocha": "^3.5.3" - }, - "keywords": [ - "define", - "define-property", - "enumerable", - "key", - "non", - "non-enumerable", - "object", - "prop", - "property", - "value" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "assign-deep", - "extend-shallow", - "merge-deep", - "mixin-deep" - ] - }, - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/del/index.d.ts b/build/node_modules/del/index.d.ts deleted file mode 100644 index 11fdc2c5..00000000 --- a/build/node_modules/del/index.d.ts +++ /dev/null @@ -1,83 +0,0 @@ -import {IOptions as GlobOptions} from 'glob'; - -declare namespace del { - interface Options extends Readonly { - /** - Allow deleting the current working directory and outside. - - @default false - */ - readonly force?: boolean; - - /** - See what would be deleted. - - @default false - - @example - ``` - import del = require('del'); - - (async () => { - const deletedPaths = await del(['tmp/*.js'], {dryRun: true}); - - console.log('Files and folders that would be deleted:\n', deletedPaths.join('\n')); - })(); - ``` - */ - readonly dryRun?: boolean; - - /** - Concurrency limit. Minimum: `1`. - - @default Infinity - */ - readonly concurrency?: number; - } -} - -declare const del: { - /** - Delete files and folders using glob patterns. - - @param patterns - See supported minimatch [patterns](https://github.com/isaacs/minimatch#usage). - - [Pattern examples with expected matches](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) - - [Quick globbing pattern overview](https://github.com/sindresorhus/multimatch#globbing-patterns) - @param options - See the [`glob` options](https://github.com/isaacs/node-glob#options). - @returns A promise for an array of deleted paths. - - @example - ``` - import del = require('del'); - - (async () => { - const deletedPaths = await del(['tmp/*.js', '!tmp/unicorn.js']); - - console.log('Deleted files and folders:\n', deletedPaths.join('\n')); - })(); - ``` - */ - ( - patterns: string | ReadonlyArray, - options?: del.Options - ): Promise; - - /** - Synchronously delete files and folders using glob patterns. - - @param patterns - See supported minimatch [patterns](https://github.com/isaacs/minimatch#usage). - - [Pattern examples with expected matches](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) - - [Quick globbing pattern overview](https://github.com/sindresorhus/multimatch#globbing-patterns) - @param options - See the [`glob` options](https://github.com/isaacs/node-glob#options). - @returns An array of deleted paths. - */ - sync( - patterns: string | ReadonlyArray, - options?: del.Options - ): string[]; - - // TODO: Remove this for the next major release - default: typeof del; -}; - -export = del; diff --git a/build/node_modules/del/index.js b/build/node_modules/del/index.js deleted file mode 100644 index e953403a..00000000 --- a/build/node_modules/del/index.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict'; -const path = require('path'); -const globby = require('globby'); -const isPathCwd = require('is-path-cwd'); -const isPathInCwd = require('is-path-in-cwd'); -const pify = require('pify'); -const rimraf = require('rimraf'); -const pMap = require('p-map'); - -const rimrafP = pify(rimraf); - -function safeCheck(file) { - if (isPathCwd(file)) { - throw new Error('Cannot delete the current working directory. Can be overridden with the `force` option.'); - } - - if (!isPathInCwd(file)) { - throw new Error('Cannot delete files/folders outside the current working directory. Can be overridden with the `force` option.'); - } -} - -const del = (patterns, options) => { - options = Object.assign({}, options); - - const {force, dryRun} = options; - delete options.force; - delete options.dryRun; - - const mapper = file => { - if (!force) { - safeCheck(file); - } - - file = path.resolve(options.cwd || '', file); - - if (dryRun) { - return file; - } - - return rimrafP(file, {glob: false}).then(() => file); - }; - - return globby(patterns, options).then(files => pMap(files, mapper, options)); -}; - -module.exports = del; -// TODO: Remove this for the next major release -module.exports.default = del; - -module.exports.sync = (patterns, options) => { - options = Object.assign({}, options); - - const {force, dryRun} = options; - delete options.force; - delete options.dryRun; - - return globby.sync(patterns, options).map(file => { - if (!force) { - safeCheck(file); - } - - file = path.resolve(options.cwd || '', file); - - if (!dryRun) { - rimraf.sync(file, {glob: false}); - } - - return file; - }); -}; diff --git a/build/node_modules/del/license b/build/node_modules/del/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/del/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/del/package.json b/build/node_modules/del/package.json deleted file mode 100644 index 1f83f03c..00000000 --- a/build/node_modules/del/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "del", - "version": "4.1.1", - "description": "Delete files and folders", - "license": "MIT", - "repository": "sindresorhus/del", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "delete", - "files", - "folders", - "directories", - "del", - "remove", - "destroy", - "trash", - "unlink", - "clean", - "cleaning", - "cleanup", - "rm", - "rmrf", - "rimraf", - "rmdir", - "glob", - "gulpfriendly", - "file", - "folder", - "directory", - "dir", - "fs", - "filesystem" - ], - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "devDependencies": { - "ava": "^1.4.1", - "make-dir": "^2.1.0", - "tempy": "^0.2.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/del/readme.md b/build/node_modules/del/readme.md deleted file mode 100644 index 1f401ab9..00000000 --- a/build/node_modules/del/readme.md +++ /dev/null @@ -1,125 +0,0 @@ -# del [![Build Status](https://travis-ci.org/sindresorhus/del.svg?branch=master)](https://travis-ci.org/sindresorhus/del) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) - -> Delete files and folders using [globs](https://github.com/isaacs/minimatch#usage) - -Similar to [rimraf](https://github.com/isaacs/rimraf), but with a Promise API and support for multiple files and globbing. It also protects you against deleting the current working directory and above. - ---- - -

🐶

-

Support this project and improve your JavaScript skills with this great ES6 course by Wes Bos.
Try his free JavaScript 30 course for a taste of what to expect. You might also like his React and Sublime course.

- ---- - - -## Install - -``` -$ npm install del -``` - - -## Usage - -```js -const del = require('del'); - -(async () => { - const deletedPaths = await del(['tmp/*.js', '!tmp/unicorn.js']); - - console.log('Deleted files and folders:\n', deletedPaths.join('\n')); -})(); -``` - - -## Beware - -The glob pattern `**` matches all children and *the parent*. - -So this won't work: - -```js -del.sync(['public/assets/**', '!public/assets/goat.png']); -``` - -You have to explicitly ignore the parent directories too: - -```js -del.sync(['public/assets/**', '!public/assets', '!public/assets/goat.png']); -``` - -Suggestions on how to improve this welcome! - - -## API - -### del(patterns, [options]) - -Returns a promise for an array of deleted paths. - -### del.sync(patterns, [options]) - -Returns an array of deleted paths. - -#### patterns - -Type: `string` `string[]` - -See supported minimatch [patterns](https://github.com/isaacs/minimatch#usage). - -- [Pattern examples with expected matches](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) -- [Quick globbing pattern overview](https://github.com/sindresorhus/multimatch#globbing-patterns) - -#### options - -Type: `Object` - -See the [`glob` options](https://github.com/isaacs/node-glob#options). - -##### force - -Type: `boolean`
-Default: `false` - -Allow deleting the current working directory and outside. - -##### dryRun - -Type: `boolean`
-Default: `false` - -See what would be deleted. - -```js -const del = require('del'); - -(async () => { - const deletedPaths = await del(['tmp/*.js'], {dryRun: true}); - - console.log('Files and folders that would be deleted:\n', deletedPaths.join('\n')); -})(); -``` - -##### concurrency - -Type: `number`
-Default: `Infinity`
-Minimum: `1` - -Concurrency limit. - - -## CLI - -See [del-cli](https://github.com/sindresorhus/del-cli) for a CLI for this module and [trash-cli](https://github.com/sindresorhus/trash-cli) for a safe version that is suitable for running by hand. - - -## Related - -- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed -- [globby](https://github.com/sindresorhus/globby) - User-friendly glob matching - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/delayed-stream/.npmignore b/build/node_modules/delayed-stream/.npmignore deleted file mode 100644 index 9daeafb9..00000000 --- a/build/node_modules/delayed-stream/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/build/node_modules/delayed-stream/License b/build/node_modules/delayed-stream/License deleted file mode 100644 index 4804b7ab..00000000 --- a/build/node_modules/delayed-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/delayed-stream/Makefile b/build/node_modules/delayed-stream/Makefile deleted file mode 100644 index b4ff85a3..00000000 --- a/build/node_modules/delayed-stream/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -SHELL := /bin/bash - -test: - @./test/run.js - -.PHONY: test - diff --git a/build/node_modules/delayed-stream/Readme.md b/build/node_modules/delayed-stream/Readme.md deleted file mode 100644 index aca36f9f..00000000 --- a/build/node_modules/delayed-stream/Readme.md +++ /dev/null @@ -1,141 +0,0 @@ -# delayed-stream - -Buffers events from a stream until you are ready to handle them. - -## Installation - -``` bash -npm install delayed-stream -``` - -## Usage - -The following example shows how to write a http echo server that delays its -response by 1000 ms. - -``` javascript -var DelayedStream = require('delayed-stream'); -var http = require('http'); - -http.createServer(function(req, res) { - var delayed = DelayedStream.create(req); - - setTimeout(function() { - res.writeHead(200); - delayed.pipe(res); - }, 1000); -}); -``` - -If you are not using `Stream#pipe`, you can also manually release the buffered -events by calling `delayedStream.resume()`: - -``` javascript -var delayed = DelayedStream.create(req); - -setTimeout(function() { - // Emit all buffered events and resume underlaying source - delayed.resume(); -}, 1000); -``` - -## Implementation - -In order to use this meta stream properly, here are a few things you should -know about the implementation. - -### Event Buffering / Proxying - -All events of the `source` stream are hijacked by overwriting the `source.emit` -method. Until node implements a catch-all event listener, this is the only way. - -However, delayed-stream still continues to emit all events it captures on the -`source`, regardless of whether you have released the delayed stream yet or -not. - -Upon creation, delayed-stream captures all `source` events and stores them in -an internal event buffer. Once `delayedStream.release()` is called, all -buffered events are emitted on the `delayedStream`, and the event buffer is -cleared. After that, delayed-stream merely acts as a proxy for the underlaying -source. - -### Error handling - -Error events on `source` are buffered / proxied just like any other events. -However, `delayedStream.create` attaches a no-op `'error'` listener to the -`source`. This way you only have to handle errors on the `delayedStream` -object, rather than in two places. - -### Buffer limits - -delayed-stream provides a `maxDataSize` property that can be used to limit -the amount of data being buffered. In order to protect you from bad `source` -streams that don't react to `source.pause()`, this feature is enabled by -default. - -## API - -### DelayedStream.create(source, [options]) - -Returns a new `delayedStream`. Available options are: - -* `pauseStream` -* `maxDataSize` - -The description for those properties can be found below. - -### delayedStream.source - -The `source` stream managed by this object. This is useful if you are -passing your `delayedStream` around, and you still want to access properties -on the `source` object. - -### delayedStream.pauseStream = true - -Whether to pause the underlaying `source` when calling -`DelayedStream.create()`. Modifying this property afterwards has no effect. - -### delayedStream.maxDataSize = 1024 * 1024 - -The amount of data to buffer before emitting an `error`. - -If the underlaying source is emitting `Buffer` objects, the `maxDataSize` -refers to bytes. - -If the underlaying source is emitting JavaScript strings, the size refers to -characters. - -If you know what you are doing, you can set this property to `Infinity` to -disable this feature. You can also modify this property during runtime. - -### delayedStream.dataSize = 0 - -The amount of data buffered so far. - -### delayedStream.readable - -An ECMA5 getter that returns the value of `source.readable`. - -### delayedStream.resume() - -If the `delayedStream` has not been released so far, `delayedStream.release()` -is called. - -In either case, `source.resume()` is called. - -### delayedStream.pause() - -Calls `source.pause()`. - -### delayedStream.pipe(dest) - -Calls `delayedStream.resume()` and then proxies the arguments to `source.pipe`. - -### delayedStream.release() - -Emits and clears all events that have been buffered up so far. This does not -resume the underlaying source, use `delayedStream.resume()` instead. - -## License - -delayed-stream is licensed under the MIT license. diff --git a/build/node_modules/delayed-stream/package.json b/build/node_modules/delayed-stream/package.json deleted file mode 100644 index eea3291c..00000000 --- a/build/node_modules/delayed-stream/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "author": "Felix Geisendörfer (http://debuggable.com/)", - "contributors": [ - "Mike Atkins " - ], - "name": "delayed-stream", - "description": "Buffers events from a stream until you are ready to handle them.", - "license": "MIT", - "version": "1.0.0", - "homepage": "https://github.com/felixge/node-delayed-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-delayed-stream.git" - }, - "main": "./lib/delayed_stream", - "engines": { - "node": ">=0.4.0" - }, - "scripts": { - "test": "make test" - }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - } -} diff --git a/build/node_modules/delegates/.npmignore b/build/node_modules/delegates/.npmignore deleted file mode 100644 index c2658d7d..00000000 --- a/build/node_modules/delegates/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/build/node_modules/delegates/History.md b/build/node_modules/delegates/History.md deleted file mode 100644 index 25959eab..00000000 --- a/build/node_modules/delegates/History.md +++ /dev/null @@ -1,22 +0,0 @@ - -1.0.0 / 2015-12-14 -================== - - * Merge pull request #12 from kasicka/master - * Add license text - -0.1.0 / 2014-10-17 -================== - - * adds `.fluent()` to api - -0.0.3 / 2014-01-13 -================== - - * fix receiver for .method() - -0.0.2 / 2014-01-13 -================== - - * Object.defineProperty() sucks - * Initial commit diff --git a/build/node_modules/delegates/License b/build/node_modules/delegates/License deleted file mode 100644 index 60de60ad..00000000 --- a/build/node_modules/delegates/License +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2015 TJ Holowaychuk - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/delegates/Makefile b/build/node_modules/delegates/Makefile deleted file mode 100644 index a9dcfd50..00000000 --- a/build/node_modules/delegates/Makefile +++ /dev/null @@ -1,8 +0,0 @@ - -test: - @./node_modules/.bin/mocha \ - --require should \ - --reporter spec \ - --bail - -.PHONY: test \ No newline at end of file diff --git a/build/node_modules/delegates/Readme.md b/build/node_modules/delegates/Readme.md deleted file mode 100644 index ab8cf4ac..00000000 --- a/build/node_modules/delegates/Readme.md +++ /dev/null @@ -1,94 +0,0 @@ - -# delegates - - Node method and accessor delegation utilty. - -## Installation - -``` -$ npm install delegates -``` - -## Example - -```js -var delegate = require('delegates'); - -... - -delegate(proto, 'request') - .method('acceptsLanguages') - .method('acceptsEncodings') - .method('acceptsCharsets') - .method('accepts') - .method('is') - .access('querystring') - .access('idempotent') - .access('socket') - .access('length') - .access('query') - .access('search') - .access('status') - .access('method') - .access('path') - .access('body') - .access('host') - .access('url') - .getter('subdomains') - .getter('protocol') - .getter('header') - .getter('stale') - .getter('fresh') - .getter('secure') - .getter('ips') - .getter('ip') -``` - -# API - -## Delegate(proto, prop) - -Creates a delegator instance used to configure using the `prop` on the given -`proto` object. (which is usually a prototype) - -## Delegate#method(name) - -Allows the given method `name` to be accessed on the host. - -## Delegate#getter(name) - -Creates a "getter" for the property with the given `name` on the delegated -object. - -## Delegate#setter(name) - -Creates a "setter" for the property with the given `name` on the delegated -object. - -## Delegate#access(name) - -Creates an "accessor" (ie: both getter *and* setter) for the property with the -given `name` on the delegated object. - -## Delegate#fluent(name) - -A unique type of "accessor" that works for a "fluent" API. When called as a -getter, the method returns the expected value. However, if the method is called -with a value, it will return itself so it can be chained. For example: - -```js -delegate(proto, 'request') - .fluent('query') - -// getter -var q = request.query(); - -// setter (chainable) -request - .query({ a: 1 }) - .query({ b: 2 }); -``` - -# License - - MIT diff --git a/build/node_modules/delegates/index.js b/build/node_modules/delegates/index.js deleted file mode 100644 index 17c222d5..00000000 --- a/build/node_modules/delegates/index.js +++ /dev/null @@ -1,121 +0,0 @@ - -/** - * Expose `Delegator`. - */ - -module.exports = Delegator; - -/** - * Initialize a delegator. - * - * @param {Object} proto - * @param {String} target - * @api public - */ - -function Delegator(proto, target) { - if (!(this instanceof Delegator)) return new Delegator(proto, target); - this.proto = proto; - this.target = target; - this.methods = []; - this.getters = []; - this.setters = []; - this.fluents = []; -} - -/** - * Delegate method `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.method = function(name){ - var proto = this.proto; - var target = this.target; - this.methods.push(name); - - proto[name] = function(){ - return this[target][name].apply(this[target], arguments); - }; - - return this; -}; - -/** - * Delegator accessor `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.access = function(name){ - return this.getter(name).setter(name); -}; - -/** - * Delegator getter `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.getter = function(name){ - var proto = this.proto; - var target = this.target; - this.getters.push(name); - - proto.__defineGetter__(name, function(){ - return this[target][name]; - }); - - return this; -}; - -/** - * Delegator setter `name`. - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.setter = function(name){ - var proto = this.proto; - var target = this.target; - this.setters.push(name); - - proto.__defineSetter__(name, function(val){ - return this[target][name] = val; - }); - - return this; -}; - -/** - * Delegator fluent accessor - * - * @param {String} name - * @return {Delegator} self - * @api public - */ - -Delegator.prototype.fluent = function (name) { - var proto = this.proto; - var target = this.target; - this.fluents.push(name); - - proto[name] = function(val){ - if ('undefined' != typeof val) { - this[target][name] = val; - return this; - } else { - return this[target][name]; - } - }; - - return this; -}; diff --git a/build/node_modules/delegates/package.json b/build/node_modules/delegates/package.json deleted file mode 100644 index 17240384..00000000 --- a/build/node_modules/delegates/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "delegates", - "version": "1.0.0", - "repository": "visionmedia/node-delegates", - "description": "delegate methods and accessors to another property", - "keywords": ["delegate", "delegation"], - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "license": "MIT" -} diff --git a/build/node_modules/depd/History.md b/build/node_modules/depd/History.md deleted file mode 100644 index cd9ebaaa..00000000 --- a/build/node_modules/depd/History.md +++ /dev/null @@ -1,103 +0,0 @@ -2.0.0 / 2018-10-26 -================== - - * Drop support for Node.js 0.6 - * Replace internal `eval` usage with `Function` constructor - * Use instance methods on `process` to check for listeners - -1.1.2 / 2018-01-11 -================== - - * perf: remove argument reassignment - * Support Node.js 0.6 to 9.x - -1.1.1 / 2017-07-27 -================== - - * Remove unnecessary `Buffer` loading - * Support Node.js 0.6 to 8.x - -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/build/node_modules/depd/LICENSE b/build/node_modules/depd/LICENSE deleted file mode 100644 index 248de7af..00000000 --- a/build/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2018 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/depd/Readme.md b/build/node_modules/depd/Readme.md deleted file mode 100644 index 043d1ca2..00000000 --- a/build/node_modules/depd/Readme.md +++ /dev/null @@ -1,280 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - - - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction () { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/nodejs-depd/master?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://badgen.net/coveralls/c/github/dougwilson/nodejs-depd/master -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://badgen.net/npm/node/depd -[node-url]: https://nodejs.org/en/download/ -[npm-downloads-image]: https://badgen.net/npm/dm/depd -[npm-url]: https://npmjs.org/package/depd -[npm-version-image]: https://badgen.net/npm/v/depd -[travis-image]: https://badgen.net/travis/dougwilson/nodejs-depd/master?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd diff --git a/build/node_modules/depd/index.js b/build/node_modules/depd/index.js deleted file mode 100644 index 1bf2fcfd..00000000 --- a/build/node_modules/depd/index.js +++ /dev/null @@ -1,538 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2018 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace (str, namespace) { - var vals = str.split(/[ ,]+/) - var ns = String(namespace).toLowerCase() - - for (var i = 0; i < vals.length; i++) { - var val = vals[i] - - // namespace contained - if (val && (val === '*' || val.toLowerCase() === ns)) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor (obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter () { return value } - - if (descriptor.writable) { - descriptor.set = function setter (val) { return (value = val) } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString (arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString (stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + stack[i].toString() - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd (namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate (message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if event emitter has listeners of a given type. - * - * The way to do this check is done three different ways in Node.js >= 0.8 - * so this consolidates them into a minimal set using instance methods. - * - * @param {EventEmitter} emitter - * @param {string} type - * @returns {boolean} - * @private - */ - -function eehaslisteners (emitter, type) { - var count = typeof emitter.listenerCount !== 'function' - ? emitter.listeners(type).length - : emitter.listenerCount(type) - - return count > 0 -} - -/** - * Determine if namespace is ignored. - */ - -function isignored (namespace) { - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced (namespace) { - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log (message, site) { - var haslisteners = eehaslisteners(process, 'deprecation') - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var depSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - depSite = site - callSite = callSiteLocation(stack[1]) - callSite.name = depSite.name - file = callSite[0] - } else { - // get call site - i = 2 - depSite = callSiteLocation(stack[i]) - callSite = depSite - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? depSite.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - var msg = message - if (!msg) { - msg = callSite === depSite || !callSite.name - ? defaultMessage(depSite) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, msg, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var output = format.call(this, msg, caller, stack.slice(i)) - process.stderr.write(output + '\n', 'utf8') -} - -/** - * Get call site location as array. - */ - -function callSiteLocation (callSite) { - var file = callSite.getFileName() || '' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage (site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain (msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp + - ' ' + this._namespace + - ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + stack[i].toString() - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor (msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan - ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow - ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + stack[i].toString() + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation (callSite) { - return relative(basePath, callSite[0]) + - ':' + callSite[1] + - ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack () { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace (obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction (fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - // eslint-disable-next-line no-new-func - var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site', - '"use strict"\n' + - 'return function (' + args + ') {' + - 'log.call(deprecate, message, site)\n' + - 'return fn.apply(this, arguments)\n' + - '}')(fn, log, this, message, site) - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty (obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter () { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter () { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError (namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return (stackString = createStackString.call(this, stack)) - }, - set: function setter (val) { - stackString = val - } - }) - - return error -} diff --git a/build/node_modules/depd/package.json b/build/node_modules/depd/package.json deleted file mode 100644 index 3857e199..00000000 --- a/build/node_modules/depd/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "2.0.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": "dougwilson/nodejs-depd", - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "2.1.4", - "beautify-benchmark": "0.2.4", - "eslint": "5.7.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-markdown": "1.0.0-beta.7", - "eslint-plugin-node": "7.0.1", - "eslint-plugin-promise": "4.0.1", - "eslint-plugin-standard": "4.0.0", - "istanbul": "0.4.5", - "mocha": "5.2.0", - "safe-buffer": "5.1.2", - "uid-safe": "2.1.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover --print=none node_modules/mocha/bin/_mocha -- --reporter spec test/ && istanbul report lcovonly text-summary", - "test-cov": "istanbul cover --print=none node_modules/mocha/bin/_mocha -- --reporter dot test/ && istanbul report lcov text-summary" - } -} diff --git a/build/node_modules/destroy/LICENSE b/build/node_modules/destroy/LICENSE deleted file mode 100644 index 0e2c35f0..00000000 --- a/build/node_modules/destroy/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com -Copyright (c) 2015-2022 Douglas Christopher Wilson doug@somethingdoug.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/destroy/README.md b/build/node_modules/destroy/README.md deleted file mode 100644 index e7701aee..00000000 --- a/build/node_modules/destroy/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# destroy - -[![NPM version][npm-image]][npm-url] -[![Build Status][github-actions-ci-image]][github-actions-ci-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -Destroy a stream. - -This module is meant to ensure a stream gets destroyed, handling different APIs -and Node.js bugs. - -## API - -```js -var destroy = require('destroy') -``` - -### destroy(stream [, suppress]) - -Destroy the given stream, and optionally suppress any future `error` events. - -In most cases, this is identical to a simple `stream.destroy()` call. The rules -are as follows for a given stream: - - 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()` - and add a listener to the `open` event to call `stream.close()` if it is - fired. This is for a Node.js bug that will leak a file descriptor if - `.destroy()` is called before `open`. - 2. If the `stream` is an instance of a zlib stream, then call `stream.destroy()` - and close the underlying zlib handle if open, otherwise call `stream.close()`. - This is for consistency across Node.js versions and a Node.js bug that will - leak a native zlib handle. - 3. If the `stream` is not an instance of `Stream`, then nothing happens. - 4. If the `stream` has a `.destroy()` method, then call it. - -The function returns the `stream` passed in as the argument. - -## Example - -```js -var destroy = require('destroy') - -var fs = require('fs') -var stream = fs.createReadStream('package.json') - -// ... and later -destroy(stream) -``` - -[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square -[npm-url]: https://npmjs.org/package/destroy -[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square -[github-url]: https://github.com/stream-utils/destroy/tags -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master -[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/destroy -[github-actions-ci-image]: https://img.shields.io/github/workflow/status/stream-utils/destroy/ci/master?label=ci&style=flat-square -[github-actions-ci-url]: https://github.com/stream-utils/destroy/actions/workflows/ci.yml diff --git a/build/node_modules/destroy/index.js b/build/node_modules/destroy/index.js deleted file mode 100644 index 7fd5c093..00000000 --- a/build/node_modules/destroy/index.js +++ /dev/null @@ -1,209 +0,0 @@ -/*! - * destroy - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015-2022 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var EventEmitter = require('events').EventEmitter -var ReadStream = require('fs').ReadStream -var Stream = require('stream') -var Zlib = require('zlib') - -/** - * Module exports. - * @public - */ - -module.exports = destroy - -/** - * Destroy the given stream, and optionally suppress any future `error` events. - * - * @param {object} stream - * @param {boolean} suppress - * @public - */ - -function destroy (stream, suppress) { - if (isFsReadStream(stream)) { - destroyReadStream(stream) - } else if (isZlibStream(stream)) { - destroyZlibStream(stream) - } else if (hasDestroy(stream)) { - stream.destroy() - } - - if (isEventEmitter(stream) && suppress) { - stream.removeAllListeners('error') - stream.addListener('error', noop) - } - - return stream -} - -/** - * Destroy a ReadStream. - * - * @param {object} stream - * @private - */ - -function destroyReadStream (stream) { - stream.destroy() - - if (typeof stream.close === 'function') { - // node.js core bug work-around - stream.on('open', onOpenClose) - } -} - -/** - * Close a Zlib stream. - * - * Zlib streams below Node.js 4.5.5 have a buggy implementation - * of .close() when zlib encountered an error. - * - * @param {object} stream - * @private - */ - -function closeZlibStream (stream) { - if (stream._hadError === true) { - var prop = stream._binding === null - ? '_binding' - : '_handle' - - stream[prop] = { - close: function () { this[prop] = null } - } - } - - stream.close() -} - -/** - * Destroy a Zlib stream. - * - * Zlib streams don't have a destroy function in Node.js 6. On top of that - * simply calling destroy on a zlib stream in Node.js 8+ will result in a - * memory leak. So until that is fixed, we need to call both close AND destroy. - * - * PR to fix memory leak: https://github.com/nodejs/node/pull/23734 - * - * In Node.js 6+8, it's important that destroy is called before close as the - * stream would otherwise emit the error 'zlib binding closed'. - * - * @param {object} stream - * @private - */ - -function destroyZlibStream (stream) { - if (typeof stream.destroy === 'function') { - // node.js core bug work-around - // istanbul ignore if: node.js 0.8 - if (stream._binding) { - // node.js < 0.10.0 - stream.destroy() - if (stream._processing) { - stream._needDrain = true - stream.once('drain', onDrainClearBinding) - } else { - stream._binding.clear() - } - } else if (stream._destroy && stream._destroy !== Stream.Transform.prototype._destroy) { - // node.js >= 12, ^11.1.0, ^10.15.1 - stream.destroy() - } else if (stream._destroy && typeof stream.close === 'function') { - // node.js 7, 8 - stream.destroyed = true - stream.close() - } else { - // fallback - // istanbul ignore next - stream.destroy() - } - } else if (typeof stream.close === 'function') { - // node.js < 8 fallback - closeZlibStream(stream) - } -} - -/** - * Determine if stream has destroy. - * @private - */ - -function hasDestroy (stream) { - return stream instanceof Stream && - typeof stream.destroy === 'function' -} - -/** - * Determine if val is EventEmitter. - * @private - */ - -function isEventEmitter (val) { - return val instanceof EventEmitter -} - -/** - * Determine if stream is fs.ReadStream stream. - * @private - */ - -function isFsReadStream (stream) { - return stream instanceof ReadStream -} - -/** - * Determine if stream is Zlib stream. - * @private - */ - -function isZlibStream (stream) { - return stream instanceof Zlib.Gzip || - stream instanceof Zlib.Gunzip || - stream instanceof Zlib.Deflate || - stream instanceof Zlib.DeflateRaw || - stream instanceof Zlib.Inflate || - stream instanceof Zlib.InflateRaw || - stream instanceof Zlib.Unzip -} - -/** - * No-op function. - * @private - */ - -function noop () {} - -/** - * On drain handler to clear binding. - * @private - */ - -// istanbul ignore next: node.js 0.8 -function onDrainClearBinding () { - this._binding.clear() -} - -/** - * On open handler to close stream. - * @private - */ - -function onOpenClose () { - if (typeof this.fd === 'number') { - // actually close down the fd - this.close() - } -} diff --git a/build/node_modules/destroy/package.json b/build/node_modules/destroy/package.json deleted file mode 100644 index c85e4383..00000000 --- a/build/node_modules/destroy/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "destroy", - "description": "destroy a stream if possible", - "version": "1.2.0", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" - }, - "contributors": [ - "Douglas Christopher Wilson " - ], - "license": "MIT", - "repository": "stream-utils/destroy", - "devDependencies": { - "eslint": "7.32.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.25.4", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "5.2.0", - "eslint-plugin-standard": "4.1.0", - "mocha": "9.2.2", - "nyc": "15.1.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec", - "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - }, - "files": [ - "index.js", - "LICENSE" - ], - "keywords": [ - "stream", - "streams", - "destroy", - "cleanup", - "leak", - "fd" - ] -} diff --git a/build/node_modules/detect-indent/index.d.ts b/build/node_modules/detect-indent/index.d.ts deleted file mode 100644 index 3dd80269..00000000 --- a/build/node_modules/detect-indent/index.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -declare namespace detectIndent { - interface Indent { - /** - Type of indentation. Is `undefined` if no indentation is detected. - */ - type: 'tab' | 'space' | undefined; - - /** - Amount of indentation, for example `2`. - */ - amount: number; - - /** - Actual indentation. - */ - indent: string; - } -} - -/** -Detect the indentation of code. - -@param string - A string of any kind of text. - -@example -``` -import * as fs from 'fs'; -import detectIndent = require('detect-indent'); - -// { -// "ilove": "pizza" -// } -const file = fs.readFileSync('foo.json', 'utf8'); - -// Tries to detect the indentation and falls back to a default if it can't -const indent = detectIndent(file).indent || ' '; - -const json = JSON.parse(file); - -json.ilove = 'unicorns'; - -fs.writeFileSync('foo.json', JSON.stringify(json, null, indent)); -// { -// "ilove": "unicorns" -// } -``` -*/ -declare function detectIndent(string: string): detectIndent.Indent; - -export = detectIndent; diff --git a/build/node_modules/detect-indent/index.js b/build/node_modules/detect-indent/index.js deleted file mode 100644 index de9ab0c8..00000000 --- a/build/node_modules/detect-indent/index.js +++ /dev/null @@ -1,160 +0,0 @@ -'use strict'; - -// Detect either spaces or tabs but not both to properly handle tabs for indentation and spaces for alignment -const INDENT_REGEX = /^(?:( )+|\t+)/; - -const INDENT_TYPE_SPACE = 'space'; -const INDENT_TYPE_TAB = 'tab'; - -// Make a Map that counts how many indents/unindents have occurred for a given size and how many lines follow a given indentation. -// The key is a concatenation of the indentation type (s = space and t = tab) and the size of the indents/unindents. -// -// indents = { -// t3: [1, 0], -// t4: [1, 5], -// s5: [1, 0], -// s12: [1, 0], -// } -function makeIndentsMap(string, ignoreSingleSpaces) { - const indents = new Map(); - - // Remember the size of previous line's indentation - let previousSize = 0; - let previousIndentType; - - // Indents key (ident type + size of the indents/unindents) - let key; - - for (const line of string.split(/\n/g)) { - if (!line) { - // Ignore empty lines - continue; - } - - let indent; - let indentType; - let weight; - let entry; - const matches = line.match(INDENT_REGEX); - - if (matches === null) { - previousSize = 0; - previousIndentType = ''; - } else { - indent = matches[0].length; - - if (matches[1]) { - indentType = INDENT_TYPE_SPACE; - } else { - indentType = INDENT_TYPE_TAB; - } - - // Ignore single space unless it's the only indent detected to prevent common false positives - if (ignoreSingleSpaces && indentType === INDENT_TYPE_SPACE && indent === 1) { - continue; - } - - if (indentType !== previousIndentType) { - previousSize = 0; - } - - previousIndentType = indentType; - - weight = 0; - - const indentDifference = indent - previousSize; - previousSize = indent; - - // Previous line have same indent? - if (indentDifference === 0) { - weight++; - // We use the key from previous loop - } else { - const absoluteIndentDifference = indentDifference > 0 ? indentDifference : -indentDifference; - key = encodeIndentsKey(indentType, absoluteIndentDifference); - } - - // Update the stats - entry = indents.get(key); - - if (entry === undefined) { - entry = [1, 0]; // Init - } else { - entry = [++entry[0], entry[1] + weight]; - } - - indents.set(key, entry); - } - } - - return indents; -} - -// Encode the indent type and amount as a string (e.g. 's4') for use as a compound key in the indents Map. -function encodeIndentsKey(indentType, indentAmount) { - const typeCharacter = indentType === INDENT_TYPE_SPACE ? 's' : 't'; - return typeCharacter + String(indentAmount); -} - -// Extract the indent type and amount from a key of the indents Map. -function decodeIndentsKey(indentsKey) { - const keyHasTypeSpace = indentsKey[0] === 's'; - const type = keyHasTypeSpace ? INDENT_TYPE_SPACE : INDENT_TYPE_TAB; - - const amount = Number(indentsKey.slice(1)); - - return {type, amount}; -} - -// Return the key (e.g. 's4') from the indents Map that represents the most common indent, -// or return undefined if there are no indents. -function getMostUsedKey(indents) { - let result; - let maxUsed = 0; - let maxWeight = 0; - - for (const [key, [usedCount, weight]] of indents) { - if (usedCount > maxUsed || (usedCount === maxUsed && weight > maxWeight)) { - maxUsed = usedCount; - maxWeight = weight; - result = key; - } - } - - return result; -} - -function makeIndentString(type, amount) { - const indentCharacter = type === INDENT_TYPE_SPACE ? ' ' : '\t'; - return indentCharacter.repeat(amount); -} - -module.exports = string => { - if (typeof string !== 'string') { - throw new TypeError('Expected a string'); - } - - // Identify indents while skipping single space indents to avoid common edge cases (e.g. code comments) - // If no indents are identified, run again and include all indents for comprehensive detection - let indents = makeIndentsMap(string, true); - if (indents.size === 0) { - indents = makeIndentsMap(string, false); - } - - const keyOfMostUsedIndent = getMostUsedKey(indents); - - let type; - let amount = 0; - let indent = ''; - - if (keyOfMostUsedIndent !== undefined) { - ({type, amount} = decodeIndentsKey(keyOfMostUsedIndent)); - indent = makeIndentString(type, amount); - } - - return { - amount, - type, - indent - }; -}; diff --git a/build/node_modules/detect-indent/license b/build/node_modules/detect-indent/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/detect-indent/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/detect-indent/package.json b/build/node_modules/detect-indent/package.json deleted file mode 100644 index f5d4ae72..00000000 --- a/build/node_modules/detect-indent/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "detect-indent", - "version": "6.1.0", - "description": "Detect the indentation of code", - "license": "MIT", - "repository": "sindresorhus/detect-indent", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "indent", - "indentation", - "detect", - "infer", - "identify", - "code", - "string", - "text", - "source", - "space", - "tab" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - }, - "xo": { - "ignores": [ - "fixture" - ] - } -} diff --git a/build/node_modules/detect-indent/readme.md b/build/node_modules/detect-indent/readme.md deleted file mode 100644 index 24ddb39b..00000000 --- a/build/node_modules/detect-indent/readme.md +++ /dev/null @@ -1,120 +0,0 @@ -# detect-indent - -> Detect the indentation of code - -Pass in a string of any kind of text and get the indentation. - - -## Use cases - -- Persisting the indentation when modifying a file. -- Have new content match the existing indentation. -- Setting the right indentation in your editor. - - -## Install - -``` -$ npm install detect-indent -``` - - -## Usage - -Here we modify a JSON file while persisting the indentation: - -```js -const fs = require('fs'); -const detectIndent = require('detect-indent'); - -/* -{ - "ilove": "pizza" -} -*/ -const file = fs.readFileSync('foo.json', 'utf8'); - -// Tries to detect the indentation and falls back to a default if it can't -const indent = detectIndent(file).indent || ' '; - -const json = JSON.parse(file); - -json.ilove = 'unicorns'; - -fs.writeFileSync('foo.json', JSON.stringify(json, null, indent)); -/* -{ - "ilove": "unicorns" -} -*/ -``` - - -## API - -Accepts a string and returns an object with stats about the indentation: - -* `amount` {number} - Amount of indentation, for example `2` -* `type` {'tab' | 'space' | undefined} - Type of indentation. Possible values are `'tab'`, `'space'` or `undefined` if no indentation is detected -* `indent` {string} - Actual indentation - - -## Algorithm - -The current algorithm looks for the most common difference between two consecutive non-empty lines. - -In the following example, even if the 4-space indentation is used 3 times whereas the 2-space one is used 2 times, it is detected as less used because there were only 2 differences with this value instead of 4 for the 2-space indentation: - -```css -html { - box-sizing: border-box; -} - -body { - background: gray; -} - -p { - line-height: 1.3em; - margin-top: 1em; - text-indent: 2em; -} -``` - -[Source.](https://medium.com/@heatherarthur/detecting-code-indentation-eff3ed0fb56b#3918) - -Furthermore, if there are more than one most used difference, the indentation with the most lines is selected. - -In the following example, the indentation is detected as 4-spaces: - -```css -body { - background: gray; -} - -p { - line-height: 1.3em; - margin-top: 1em; - text-indent: 2em; -} -``` - - -## Related - -- [detect-indent-cli](https://github.com/sindresorhus/detect-indent-cli) - CLI for this module -- [detect-newline](https://github.com/sindresorhus/detect-newline) - Detect the dominant newline character of a string -- [detect-indent-rs](https://github.com/stefanpenner/detect-indent-rs) - Rust port - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/detect-libc/LICENSE b/build/node_modules/detect-libc/LICENSE deleted file mode 100644 index 8dada3ed..00000000 --- a/build/node_modules/detect-libc/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/detect-libc/README.md b/build/node_modules/detect-libc/README.md deleted file mode 100644 index 23212fdd..00000000 --- a/build/node_modules/detect-libc/README.md +++ /dev/null @@ -1,163 +0,0 @@ -# detect-libc - -Node.js module to detect details of the C standard library (libc) -implementation provided by a given Linux system. - -Currently supports detection of GNU glibc and MUSL libc. - -Provides asychronous and synchronous functions for the -family (e.g. `glibc`, `musl`) and version (e.g. `1.23`, `1.2.3`). - -The version numbers of libc implementations -are not guaranteed to be semver-compliant. - -For previous v1.x releases, please see the -[v1](https://github.com/lovell/detect-libc/tree/v1) branch. - -## Install - -```sh -npm install detect-libc -``` - -## API - -### GLIBC - -```ts -const GLIBC: string = 'glibc'; -``` - -A String constant containing the value `glibc`. - -### MUSL - -```ts -const MUSL: string = 'musl'; -``` - -A String constant containing the value `musl`. - -### family - -```ts -function family(): Promise; -``` - -Resolves asychronously with: - -* `glibc` or `musl` when the libc family can be determined -* `null` when the libc family cannot be determined -* `null` when run on a non-Linux platform - -```js -const { family, GLIBC, MUSL } = require('detect-libc'); - -switch (await family()) { - case GLIBC: ... - case MUSL: ... - case null: ... -} -``` - -### familySync - -```ts -function familySync(): string | null; -``` - -Synchronous version of `family()`. - -```js -const { familySync, GLIBC, MUSL } = require('detect-libc'); - -switch (familySync()) { - case GLIBC: ... - case MUSL: ... - case null: ... -} -``` - -### version - -```ts -function version(): Promise; -``` - -Resolves asychronously with: - -* The version when it can be determined -* `null` when the libc family cannot be determined -* `null` when run on a non-Linux platform - -```js -const { version } = require('detect-libc'); - -const v = await version(); -if (v) { - const [major, minor, patch] = v.split('.'); -} -``` - -### versionSync - -```ts -function versionSync(): string | null; -``` - -Synchronous version of `version()`. - -```js -const { versionSync } = require('detect-libc'); - -const v = versionSync(); -if (v) { - const [major, minor, patch] = v.split('.'); -} -``` - -### isNonGlibcLinux - -```ts -function isNonGlibcLinux(): Promise; -``` - -Resolves asychronously with: - -* `false` when the libc family is `glibc` -* `true` when the libc family is not `glibc` -* `false` when run on a non-Linux platform - -```js -const { isNonGlibcLinux } = require('detect-libc'); - -if (await isNonGlibcLinux()) { ... } -``` - -### isNonGlibcLinuxSync - -```ts -function isNonGlibcLinuxSync(): boolean; -``` - -Synchronous version of `isNonGlibcLinux()`. - -```js -const { isNonGlibcLinuxSync } = require('detect-libc'); - -if (isNonGlibcLinuxSync()) { ... } -``` - -## Licensing - -Copyright 2017 Lovell Fuller and others. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/build/node_modules/detect-libc/index.d.ts b/build/node_modules/detect-libc/index.d.ts deleted file mode 100644 index 4c0fb2b0..00000000 --- a/build/node_modules/detect-libc/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2017 Lovell Fuller and others. -// SPDX-License-Identifier: Apache-2.0 - -export const GLIBC: 'glibc'; -export const MUSL: 'musl'; - -export function family(): Promise; -export function familySync(): string | null; - -export function isNonGlibcLinux(): Promise; -export function isNonGlibcLinuxSync(): boolean; - -export function version(): Promise; -export function versionSync(): string | null; diff --git a/build/node_modules/detect-libc/package.json b/build/node_modules/detect-libc/package.json deleted file mode 100644 index dd8e42c2..00000000 --- a/build/node_modules/detect-libc/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "detect-libc", - "version": "2.0.2", - "description": "Node.js module to detect the C standard library (libc) implementation family and version", - "main": "lib/detect-libc.js", - "files": [ - "lib/", - "index.d.ts" - ], - "scripts": { - "test": "semistandard && nyc --reporter=lcov --check-coverage --branches=100 ava test/unit.js", - "bench": "node benchmark/detect-libc", - "bench:calls": "node benchmark/call-familySync.js && sleep 1 && node benchmark/call-isNonGlibcLinuxSync.js && sleep 1 && node benchmark/call-versionSync.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/lovell/detect-libc" - }, - "keywords": [ - "libc", - "glibc", - "musl" - ], - "author": "Lovell Fuller ", - "contributors": [ - "Niklas Salmoukas ", - "Vinícius Lourenço " - ], - "license": "Apache-2.0", - "devDependencies": { - "ava": "^2.4.0", - "benchmark": "^2.1.4", - "nyc": "^15.1.0", - "proxyquire": "^2.1.3", - "semistandard": "^14.2.3" - }, - "engines": { - "node": ">=8" - } -} diff --git a/build/node_modules/detect-node/LICENSE b/build/node_modules/detect-node/LICENSE deleted file mode 100644 index 31133564..00000000 --- a/build/node_modules/detect-node/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Ilya Kantor - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/detect-node/Readme.md b/build/node_modules/detect-node/Readme.md deleted file mode 100644 index 73c57b95..00000000 --- a/build/node_modules/detect-node/Readme.md +++ /dev/null @@ -1,30 +0,0 @@ -### Install - -```shell -npm install --save detect-node -``` - -### Usage: - -```js -var isNode = require('detect-node'); - -if (isNode) { - console.log("Running under Node.JS"); -} else { - alert("Hello from browser (or whatever not-a-node env)"); -} -``` - -The check is performed as: -```js -module.exports = false; - -// Only Node.JS has a process variable that is of [[Class]] process -try { - module.exports = Object.prototype.toString.call(global.process) === '[object process]' -} catch(e) {} - -``` - -Thanks to Ingvar Stepanyan for the initial idea. This check is both **the most reliable I could find** and it does not use `process` env directly, which would cause browserify to include it into the build. diff --git a/build/node_modules/detect-node/browser.js b/build/node_modules/detect-node/browser.js deleted file mode 100644 index 4172696b..00000000 --- a/build/node_modules/detect-node/browser.js +++ /dev/null @@ -1,2 +0,0 @@ -module.exports = false; - diff --git a/build/node_modules/detect-node/index.esm.js b/build/node_modules/detect-node/index.esm.js deleted file mode 100644 index b4b379f1..00000000 --- a/build/node_modules/detect-node/index.esm.js +++ /dev/null @@ -1,2 +0,0 @@ -// Only Node.JS has a process variable that is of [[Class]] process -export default Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'; diff --git a/build/node_modules/detect-node/index.js b/build/node_modules/detect-node/index.js deleted file mode 100644 index 229949e5..00000000 --- a/build/node_modules/detect-node/index.js +++ /dev/null @@ -1,2 +0,0 @@ -// Only Node.JS has a process variable that is of [[Class]] process -module.exports = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'; diff --git a/build/node_modules/detect-node/package.json b/build/node_modules/detect-node/package.json deleted file mode 100644 index 3cbabbee..00000000 --- a/build/node_modules/detect-node/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "detect-node", - "version": "2.1.0", - "description": "Detect Node.JS (as opposite to browser environment) (reliable)", - "main": "index.js", - "module": "index.esm.js", - "browser": "browser.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "https://github.com/iliakan/detect-node" - }, - "keywords": [ - "detect", - "node" - ], - "author": "Ilya Kantor", - "license": "MIT", - "bugs": { - "url": "https://github.com/iliakan/detect-node/issues" - }, - "homepage": "https://github.com/iliakan/detect-node" -} diff --git a/build/node_modules/dezalgo/LICENSE b/build/node_modules/dezalgo/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/build/node_modules/dezalgo/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/dezalgo/README.md b/build/node_modules/dezalgo/README.md deleted file mode 100644 index bdfc8ba8..00000000 --- a/build/node_modules/dezalgo/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# dezalgo - -Contain async insanity so that the dark pony lord doesn't eat souls - -See [this blog -post](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony). - -## USAGE - -Pass a callback to `dezalgo` and it will ensure that it is *always* -called in a future tick, and never in this tick. - -```javascript -var dz = require('dezalgo') - -var cache = {} -function maybeSync(arg, cb) { - cb = dz(cb) - - // this will actually defer to nextTick - if (cache[arg]) cb(null, cache[arg]) - - fs.readFile(arg, function (er, data) { - // since this is *already* defered, it will call immediately - if (er) cb(er) - cb(null, cache[arg] = data) - }) -} -``` diff --git a/build/node_modules/dezalgo/dezalgo.js b/build/node_modules/dezalgo/dezalgo.js deleted file mode 100644 index 04fd3ba7..00000000 --- a/build/node_modules/dezalgo/dezalgo.js +++ /dev/null @@ -1,22 +0,0 @@ -var wrappy = require('wrappy') -module.exports = wrappy(dezalgo) - -var asap = require('asap') - -function dezalgo (cb) { - var sync = true - asap(function () { - sync = false - }) - - return function zalgoSafe() { - var args = arguments - var me = this - if (sync) - asap(function() { - cb.apply(me, args) - }) - else - cb.apply(me, args) - } -} diff --git a/build/node_modules/dezalgo/package.json b/build/node_modules/dezalgo/package.json deleted file mode 100644 index f8ba8ec2..00000000 --- a/build/node_modules/dezalgo/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "dezalgo", - "version": "1.0.4", - "description": "Contain async insanity so that the dark pony lord doesn't eat souls", - "main": "dezalgo.js", - "files": [ - "dezalgo.js" - ], - "directories": { - "test": "test" - }, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - }, - "devDependencies": { - "tap": "^12.4.0" - }, - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/npm/dezalgo" - }, - "keywords": [ - "async", - "zalgo", - "the dark pony", - "he comes", - "asynchrony of all holy and good", - "To invoke the hive mind representing chaos", - "Invoking the feeling of chaos. /Without order", - "The Nezperdian Hive Mind of Chaos, (zalgo………………)", - "He who waits beyond the wall", - "ZALGO", - "HE COMES", - "there used to be some funky unicode keywords here, but it broke the npm website on chrome, so they were removed, sorry" - ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/dezalgo/issues" - }, - "homepage": "https://github.com/npm/dezalgo" -} diff --git a/build/node_modules/diff-sequences/LICENSE b/build/node_modules/diff-sequences/LICENSE deleted file mode 100644 index b93be905..00000000 --- a/build/node_modules/diff-sequences/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/diff-sequences/README.md b/build/node_modules/diff-sequences/README.md deleted file mode 100644 index fd5b99be..00000000 --- a/build/node_modules/diff-sequences/README.md +++ /dev/null @@ -1,404 +0,0 @@ -# diff-sequences - -Compare items in two sequences to find a **longest common subsequence**. - -The items not in common are the items to delete or insert in a **shortest edit script**. - -To maximize flexibility and minimize memory, you write **callback** functions as configuration: - -**Input** function `isCommon(aIndex, bIndex)` compares items at indexes in the sequences and returns a truthy/falsey value. This package might call your function more than once for some pairs of indexes. - -- Because your function encapsulates **comparison**, this package can compare items according to `===` operator, `Object.is` method, or other criterion. -- Because your function encapsulates **sequences**, this package can find differences in arrays, strings, or other data. - -**Output** function `foundSubsequence(nCommon, aCommon, bCommon)` receives the number of adjacent items and starting indexes of each common subsequence. If sequences do not have common items, then this package does not call your function. - -If N is the sum of lengths of sequences and L is length of a longest common subsequence, then D = N – 2L is the number of **differences** in the corresponding shortest edit script. - -[_An O(ND) Difference Algorithm and Its Variations_](http://xmailserver.org/diff2.pdf) by Eugene W. Myers is fast when sequences have **few** differences. - -This package implements the **linear space** variation with optimizations so it is fast even when sequences have **many** differences. - -## Usage - -To add this package as a dependency of a project, do either of the following: - -- `npm install diff-sequences` -- `yarn add diff-sequences` - -To use `diff` as the name of the default export from this package, do either of the following: - -- `var diff = require('diff-sequences').default; // CommonJS modules` -- `import diff from 'diff-sequences'; // ECMAScript modules` - -Call `diff` with the **lengths** of sequences and your **callback** functions: - -```js -const a = ['a', 'b', 'c', 'a', 'b', 'b', 'a']; -const b = ['c', 'b', 'a', 'b', 'a', 'c']; - -function isCommon(aIndex, bIndex) { - return a[aIndex] === b[bIndex]; -} -function foundSubsequence(nCommon, aCommon, bCommon) { - // see examples -} - -diff(a.length, b.length, isCommon, foundSubsequence); -``` - -## Example of longest common subsequence - -Some sequences (for example, `a` and `b` in the example of usage) have more than one longest common subsequence. - -This package finds the following common items: - -| comparisons of common items | values | output arguments | -| :------------------------------- | :--------- | --------------------------: | -| `a[2] === b[0]` | `'c'` | `foundSubsequence(1, 2, 0)` | -| `a[4] === b[1]` | `'b'` | `foundSubsequence(1, 4, 1)` | -| `a[5] === b[3] && a[6] === b[4]` | `'b', 'a'` | `foundSubsequence(2, 5, 3)` | - -The “edit graph” analogy in the Myers paper shows the following common items: - -| comparisons of common items | values | -| :------------------------------- | :--------- | -| `a[2] === b[0]` | `'c'` | -| `a[3] === b[2] && a[4] === b[3]` | `'a', 'b'` | -| `a[6] === b[4]` | `'a'` | - -Various packages which implement the Myers algorithm will **always agree** on the **length** of a longest common subsequence, but might **sometimes disagree** on which **items** are in it. - -## Example of callback functions to count common items - -```js -// Return length of longest common subsequence according to === operator. -function countCommonItems(a, b) { - let n = 0; - function isCommon(aIndex, bIndex) { - return a[aIndex] === b[bIndex]; - } - function foundSubsequence(nCommon) { - n += nCommon; - } - - diff(a.length, b.length, isCommon, foundSubsequence); - - return n; -} - -const commonLength = countCommonItems( - ['a', 'b', 'c', 'a', 'b', 'b', 'a'], - ['c', 'b', 'a', 'b', 'a', 'c'], -); -``` - -| category of items | expression | value | -| :----------------- | ------------------------: | ----: | -| in common | `commonLength` | `4` | -| to delete from `a` | `a.length - commonLength` | `3` | -| to insert from `b` | `b.length - commonLength` | `2` | - -If the length difference `b.length - a.length` is: - -- negative: its absolute value is the minimum number of items to **delete** from `a` -- positive: it is the minimum number of items to **insert** from `b` -- zero: there is an **equal** number of items to delete from `a` and insert from `b` -- non-zero: there is an equal number of **additional** items to delete from `a` and insert from `b` - -In this example, `6 - 7` is: - -- negative: `1` is the minimum number of items to **delete** from `a` -- non-zero: `2` is the number of **additional** items to delete from `a` and insert from `b` - -## Example of callback functions to find common items - -```js -// Return array of items in longest common subsequence according to Object.is method. -const findCommonItems = (a, b) => { - const array = []; - diff( - a.length, - b.length, - (aIndex, bIndex) => Object.is(a[aIndex], b[bIndex]), - (nCommon, aCommon) => { - for (; nCommon !== 0; nCommon -= 1, aCommon += 1) { - array.push(a[aCommon]); - } - }, - ); - return array; -}; - -const commonItems = findCommonItems( - ['a', 'b', 'c', 'a', 'b', 'b', 'a'], - ['c', 'b', 'a', 'b', 'a', 'c'], -); -``` - -| `i` | `commonItems[i]` | `aIndex` | -| --: | :--------------- | -------: | -| `0` | `'c'` | `2` | -| `1` | `'b'` | `4` | -| `2` | `'b'` | `5` | -| `3` | `'a'` | `6` | - -## Example of callback functions to diff index intervals - -Instead of slicing array-like objects, you can adjust indexes in your callback functions. - -```js -// Diff index intervals that are half open [start, end) like array slice method. -const diffIndexIntervals = (a, aStart, aEnd, b, bStart, bEnd) => { - // Validate: 0 <= aStart and aStart <= aEnd and aEnd <= a.length - // Validate: 0 <= bStart and bStart <= bEnd and bEnd <= b.length - - diff( - aEnd - aStart, - bEnd - bStart, - (aIndex, bIndex) => Object.is(a[aStart + aIndex], b[bStart + bIndex]), - (nCommon, aCommon, bCommon) => { - // aStart + aCommon, bStart + bCommon - }, - ); - - // After the last common subsequence, do any remaining work. -}; -``` - -## Example of callback functions to emulate diff command - -Linux or Unix has a `diff` command to compare files line by line. Its output is a **shortest edit script**: - -- **c**hange adjacent lines from the first file to lines from the second file -- **d**elete lines from the first file -- **a**ppend or insert lines from the second file - -```js -// Given zero-based half-open range [start, end) of array indexes, -// return one-based closed range [start + 1, end] as string. -const getRange = (start, end) => - start + 1 === end ? `${start + 1}` : `${start + 1},${end}`; - -// Given index intervals of lines to delete or insert, or both, or neither, -// push formatted diff lines onto array. -const pushDelIns = (aLines, aIndex, aEnd, bLines, bIndex, bEnd, array) => { - const deleteLines = aIndex !== aEnd; - const insertLines = bIndex !== bEnd; - const changeLines = deleteLines && insertLines; - if (changeLines) { - array.push(`${getRange(aIndex, aEnd)}c${getRange(bIndex, bEnd)}`); - } else if (deleteLines) { - array.push(`${getRange(aIndex, aEnd)}d${String(bIndex)}`); - } else if (insertLines) { - array.push(`${String(aIndex)}a${getRange(bIndex, bEnd)}`); - } else { - return; - } - - for (; aIndex !== aEnd; aIndex += 1) { - array.push(`< ${aLines[aIndex]}`); // delete is less than - } - - if (changeLines) { - array.push('---'); - } - - for (; bIndex !== bEnd; bIndex += 1) { - array.push(`> ${bLines[bIndex]}`); // insert is greater than - } -}; - -// Given content of two files, return emulated output of diff utility. -const findShortestEditScript = (a, b) => { - const aLines = a.split('\n'); - const bLines = b.split('\n'); - const aLength = aLines.length; - const bLength = bLines.length; - - const isCommon = (aIndex, bIndex) => aLines[aIndex] === bLines[bIndex]; - - let aIndex = 0; - let bIndex = 0; - const array = []; - const foundSubsequence = (nCommon, aCommon, bCommon) => { - pushDelIns(aLines, aIndex, aCommon, bLines, bIndex, bCommon, array); - aIndex = aCommon + nCommon; // number of lines compared in a - bIndex = bCommon + nCommon; // number of lines compared in b - }; - - diff(aLength, bLength, isCommon, foundSubsequence); - - // After the last common subsequence, push remaining change lines. - pushDelIns(aLines, aIndex, aLength, bLines, bIndex, bLength, array); - - return array.length === 0 ? '' : `${array.join('\n')}\n`; -}; -``` - -## Example of callback functions to format diff lines - -Here is simplified code to format **changed and unchanged lines** in expected and received values after a test fails in Jest: - -```js -// Format diff with minus or plus for change lines and space for common lines. -const formatDiffLines = (a, b) => { - // Jest depends on pretty-format package to serialize objects as strings. - // Unindented for comparison to avoid distracting differences: - const aLinesUn = format(a, {indent: 0 /*, other options*/}).split('\n'); - const bLinesUn = format(b, {indent: 0 /*, other options*/}).split('\n'); - // Indented to display changed and unchanged lines: - const aLinesIn = format(a, {indent: 2 /*, other options*/}).split('\n'); - const bLinesIn = format(b, {indent: 2 /*, other options*/}).split('\n'); - - const aLength = aLinesIn.length; // Validate: aLinesUn.length === aLength - const bLength = bLinesIn.length; // Validate: bLinesUn.length === bLength - - const isCommon = (aIndex, bIndex) => aLinesUn[aIndex] === bLinesUn[bIndex]; - - // Only because the GitHub Flavored Markdown doc collapses adjacent spaces, - // this example code and the following table represent spaces as middle dots. - let aIndex = 0; - let bIndex = 0; - const array = []; - const foundSubsequence = (nCommon, aCommon, bCommon) => { - for (; aIndex !== aCommon; aIndex += 1) { - array.push(`-·${aLinesIn[aIndex]}`); // delete is minus - } - for (; bIndex !== bCommon; bIndex += 1) { - array.push(`+·${bLinesIn[bIndex]}`); // insert is plus - } - for (; nCommon !== 0; nCommon -= 1, aIndex += 1, bIndex += 1) { - // For common lines, received indentation seems more intuitive. - array.push(`··${bLinesIn[bIndex]}`); // common is space - } - }; - - diff(aLength, bLength, isCommon, foundSubsequence); - - // After the last common subsequence, push remaining change lines. - for (; aIndex !== aLength; aIndex += 1) { - array.push(`-·${aLinesIn[aIndex]}`); - } - for (; bIndex !== bLength; bIndex += 1) { - array.push(`+·${bLinesIn[bIndex]}`); - } - - return array; -}; - -const expected = { - searching: '', - sorting: { - ascending: true, - fieldKey: 'what', - }, -}; -const received = { - searching: '', - sorting: [ - { - descending: false, - fieldKey: 'what', - }, - ], -}; - -const diffLines = formatDiffLines(expected, received); -``` - -If N is the sum of lengths of sequences and L is length of a longest common subsequence, then N – L is length of an array of diff lines. In this example, N is 7 + 9, L is 5, and N – L is 11. - -| `i` | `diffLines[i]` | `aIndex` | `bIndex` | -| ---: | :--------------------------------- | -------: | -------: | -| `0` | `'··Object {'` | `0` | `0` | -| `1` | `'····"searching": "",'` | `1` | `1` | -| `2` | `'-···"sorting": Object {'` | `2` | | -| `3` | `'-·····"ascending": true,'` | `3` | | -| `4` | `'+·····"sorting": Array ['` | | `2` | -| `5` | `'+·······Object {'` | | `3` | -| `6` | `'+·········"descending": false,'` | | `4` | -| `7` | `'··········"fieldKey": "what",'` | `4` | `5` | -| `8` | `'········},'` | `5` | `6` | -| `9` | `'+·····],'` | | `7` | -| `10` | `'··}'` | `6` | `8` | - -## Example of callback functions to find diff items - -Here is simplified code to find changed and unchanged substrings **within adjacent changed lines** in expected and received values after a test fails in Jest: - -```js -// Return diff items for strings (compatible with diff-match-patch package). -const findDiffItems = (a, b) => { - const isCommon = (aIndex, bIndex) => a[aIndex] === b[bIndex]; - - let aIndex = 0; - let bIndex = 0; - const array = []; - const foundSubsequence = (nCommon, aCommon, bCommon) => { - if (aIndex !== aCommon) { - array.push([-1, a.slice(aIndex, aCommon)]); // delete is -1 - } - if (bIndex !== bCommon) { - array.push([1, b.slice(bIndex, bCommon)]); // insert is 1 - } - - aIndex = aCommon + nCommon; // number of characters compared in a - bIndex = bCommon + nCommon; // number of characters compared in b - array.push([0, a.slice(aCommon, aIndex)]); // common is 0 - }; - - diff(a.length, b.length, isCommon, foundSubsequence); - - // After the last common subsequence, push remaining change items. - if (aIndex !== a.length) { - array.push([-1, a.slice(aIndex)]); - } - if (bIndex !== b.length) { - array.push([1, b.slice(bIndex)]); - } - - return array; -}; - -const expectedDeleted = ['"sorting": Object {', '"ascending": true,'].join( - '\n', -); -const receivedInserted = [ - '"sorting": Array [', - 'Object {', - '"descending": false,', -].join('\n'); - -const diffItems = findDiffItems(expectedDeleted, receivedInserted); -``` - -| `i` | `diffItems[i][0]` | `diffItems[i][1]` | -| --: | ----------------: | :---------------- | -| `0` | `0` | `'"sorting": '` | -| `1` | `1` | `'Array [\n'` | -| `2` | `0` | `'Object {\n"'` | -| `3` | `-1` | `'a'` | -| `4` | `1` | `'de'` | -| `5` | `0` | `'scending": '` | -| `6` | `-1` | `'tru'` | -| `7` | `1` | `'fals'` | -| `8` | `0` | `'e,'` | - -The length difference `b.length - a.length` is equal to the sum of `diffItems[i][0]` values times `diffItems[i][1]` lengths. In this example, the difference `48 - 38` is equal to the sum `10`. - -| category of diff item | `[0]` | `[1]` lengths | subtotal | -| :-------------------- | ----: | -----------------: | -------: | -| in common | `0` | `11 + 10 + 11 + 2` | `0` | -| to delete from `a` | `–1` | `1 + 3` | `-4` | -| to insert from `b` | `1` | `8 + 2 + 4` | `14` | - -Instead of formatting the changed substrings with escape codes for colors in the `foundSubsequence` function to save memory, this example spends memory to **gain flexibility** before formatting, so a separate heuristic algorithm might modify the generic array of diff items to show changes more clearly: - -| `i` | `diffItems[i][0]` | `diffItems[i][1]` | -| --: | ----------------: | :---------------- | -| `6` | `-1` | `'true'` | -| `7` | `1` | `'false'` | -| `8` | `0` | `','` | - -For expected and received strings of serialized data, the result of finding changed **lines**, and then finding changed **substrings** within adjacent changed lines (as in the preceding two examples) sometimes displays the changes in a more intuitive way than the result of finding changed substrings, and then splitting them into changed and unchanged lines. diff --git a/build/node_modules/diff-sequences/package.json b/build/node_modules/diff-sequences/package.json deleted file mode 100644 index 0324babc..00000000 --- a/build/node_modules/diff-sequences/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "diff-sequences", - "version": "29.6.3", - "repository": { - "type": "git", - "url": "https://github.com/jestjs/jest.git", - "directory": "packages/diff-sequences" - }, - "license": "MIT", - "description": "Compare items in two sequences to find a longest common subsequence", - "keywords": [ - "fast", - "linear", - "space", - "callback", - "diff" - ], - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "main": "./build/index.js", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "default": "./build/index.js" - }, - "./package.json": "./package.json" - }, - "devDependencies": { - "@fast-check/jest": "^1.3.0", - "benchmark": "^2.1.4", - "diff": "^5.0.0" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "fb7d95c8af6e0d65a8b65348433d8a0ea0725b5b" -} diff --git a/build/node_modules/dir-glob/index.js b/build/node_modules/dir-glob/index.js deleted file mode 100644 index 2db2639a..00000000 --- a/build/node_modules/dir-glob/index.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; -const path = require('path'); -const pathType = require('path-type'); - -const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; - -const getPath = (filepath, cwd) => { - const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; - return path.isAbsolute(pth) ? pth : path.join(cwd, pth); -}; - -const addExtensions = (file, extensions) => { - if (path.extname(file)) { - return `**/${file}`; - } - - return `**/${file}.${getExtensions(extensions)}`; -}; - -const getGlob = (dir, opts) => { - if (opts.files && !Array.isArray(opts.files)) { - throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof opts.files}\``); - } - - if (opts.extensions && !Array.isArray(opts.extensions)) { - throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof opts.extensions}\``); - } - - if (opts.files && opts.extensions) { - return opts.files.map(x => path.join(dir, addExtensions(x, opts.extensions))); - } - - if (opts.files) { - return opts.files.map(x => path.join(dir, `**/${x}`)); - } - - if (opts.extensions) { - return [path.join(dir, `**/*.${getExtensions(opts.extensions)}`)]; - } - - return [path.join(dir, '**')]; -}; - -module.exports = (input, opts) => { - opts = Object.assign({cwd: process.cwd()}, opts); - - if (typeof opts.cwd !== 'string') { - return Promise.reject(new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof opts.cwd}\``)); - } - - return Promise.all([].concat(input).map(x => pathType.dir(getPath(x, opts.cwd)) - .then(isDir => isDir ? getGlob(x, opts) : x))) - .then(globs => [].concat.apply([], globs)); -}; - -module.exports.sync = (input, opts) => { - opts = Object.assign({cwd: process.cwd()}, opts); - - if (typeof opts.cwd !== 'string') { - throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof opts.cwd}\``); - } - - const globs = [].concat(input).map(x => pathType.dirSync(getPath(x, opts.cwd)) ? getGlob(x, opts) : x); - return [].concat.apply([], globs); -}; diff --git a/build/node_modules/dir-glob/license b/build/node_modules/dir-glob/license deleted file mode 100644 index db6bc32c..00000000 --- a/build/node_modules/dir-glob/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Kevin Mårtensson (github.com/kevva) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/dir-glob/package.json b/build/node_modules/dir-glob/package.json deleted file mode 100644 index f64ac322..00000000 --- a/build/node_modules/dir-glob/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "dir-glob", - "version": "2.2.2", - "description": "Convert directories to glob compatible strings", - "license": "MIT", - "repository": "kevva/dir-glob", - "author": { - "name": "Kevin Mårtensson", - "email": "kevinmartensson@gmail.com", - "url": "github.com/kevva" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "convert", - "directory", - "extensions", - "files", - "glob" - ], - "dependencies": { - "path-type": "^3.0.0" - }, - "devDependencies": { - "ava": "^0.25.0", - "del": "^3.0.0", - "make-dir": "^1.0.0", - "rimraf": "^2.5.0", - "xo": "^0.20.3" - } -} diff --git a/build/node_modules/dir-glob/readme.md b/build/node_modules/dir-glob/readme.md deleted file mode 100644 index 69ec18ee..00000000 --- a/build/node_modules/dir-glob/readme.md +++ /dev/null @@ -1,87 +0,0 @@ -# dir-glob [![Build Status](https://travis-ci.org/kevva/dir-glob.svg?branch=master)](https://travis-ci.org/kevva/dir-glob) - -> Convert directories to glob compatible strings - - -## Install - -``` -$ npm install dir-glob -``` - - -## Usage - -```js -const dirGlob = require('dir-glob'); - -dirGlob(['index.js', 'test.js', 'fixtures']).then(files => { - console.log(files); - //=> ['index.js', 'test.js', 'fixtures/**'] -}); - -dirGlob(['index.js', 'inner_folder'], { - cwd: 'fixtures' -}).then(files => { - console.log(files); - //=> ['index.js', 'inner_folder/**'] -}); - -dirGlob(['lib/**', 'fixtures'], { - files: ['test', 'unicorn'] - extensions: ['js'] -}).then(files => { - console.log(files); - //=> ['lib/**', 'fixtures/**/test.js', 'fixtures/**/unicorn.js'] -}); - -dirGlob(['lib/**', 'fixtures'], { - files: ['test', 'unicorn', '*.jsx'], - extensions: ['js', 'png'] -}).then(files => { - console.log(files); - //=> ['lib/**', 'fixtures/**/test.{js,png}', 'fixtures/**/unicorn.{js,png}', 'fixtures/**/*.jsx'] -}); -``` - - -## API - -### dirGlob(input, [options]) - -Returns a `Promise` for an array of glob strings. - -### dirGlob.sync(input, [options]) - -Returns an array of glob strings. - -#### input - -Type: `Array` `string` - -A `string` or an `Array` of paths. - -#### options - -##### extensions - -Type: `Array` - -Append extensions to the end of your globs. - -##### files - -Type: `Array` - -Only glob for certain files. - -##### cwd - -Type: `string` - -Test in specific directory. - - -## License - -MIT © [Kevin Mårtensson](https://github.com/kevva) diff --git a/build/node_modules/dns-equal/.npmignore b/build/node_modules/dns-equal/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/build/node_modules/dns-equal/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/build/node_modules/dns-equal/.travis.yml b/build/node_modules/dns-equal/.travis.yml deleted file mode 100644 index 92a6e6bb..00000000 --- a/build/node_modules/dns-equal/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js -node_js: -- '5' -- '4' -- '0.12' -- '0.10' diff --git a/build/node_modules/dns-equal/LICENSE b/build/node_modules/dns-equal/LICENSE deleted file mode 100644 index 95f61daa..00000000 --- a/build/node_modules/dns-equal/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Thomas Watson Steen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/dns-equal/README.md b/build/node_modules/dns-equal/README.md deleted file mode 100644 index 43ad7828..00000000 --- a/build/node_modules/dns-equal/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# dns-equal - -Compare DNS record strings for equality. Enforces [RFC -1035](https://tools.ietf.org/html/rfc1035) domain comparison. - -[![Build status](https://travis-ci.org/watson/dns-equal.svg?branch=master)](https://travis-ci.org/watson/dns-equal) -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard) - -## Installation - -``` -npm install dns-equal --save -``` - -## Usage - -```js -var dnsEqual = require('dns-equal') - -var domain1 = 'Example.COM' -var domain2 = 'example.com' - -if (dnsEqual(domain1, domain2)) { - console.log('The two domains are the same') -} -``` - -## License - -MIT diff --git a/build/node_modules/dns-equal/index.js b/build/node_modules/dns-equal/index.js deleted file mode 100644 index 6c3f48b9..00000000 --- a/build/node_modules/dns-equal/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' - -var r = /[A-Z]/g - -module.exports = function (a, b) { - a = a.replace(r, replacer) - b = b.replace(r, replacer) - return a === b -} - -function replacer (m) { - return m.toLowerCase() -} diff --git a/build/node_modules/dns-equal/package.json b/build/node_modules/dns-equal/package.json deleted file mode 100644 index abd9aa36..00000000 --- a/build/node_modules/dns-equal/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "dns-equal", - "version": "1.0.0", - "description": "Compare DNS record strings for equality", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "standard": "^5.4.1" - }, - "scripts": { - "test": "standard && node test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/watson/dns-equal.git" - }, - "keywords": [ - "dns", - "compare", - "comparing", - "equal", - "equality", - "match", - "downcase", - "lowercase", - "case-insensitive" - ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", - "license": "MIT", - "bugs": { - "url": "https://github.com/watson/dns-equal/issues" - }, - "homepage": "https://github.com/watson/dns-equal#readme", - "coordinates": [ - 56.010004025953165, - 11.961870541375674 - ] -} diff --git a/build/node_modules/dns-equal/test.js b/build/node_modules/dns-equal/test.js deleted file mode 100644 index fc774400..00000000 --- a/build/node_modules/dns-equal/test.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -var assert = require('assert') -var dnsEqual = require('./') - -assert.strictEqual(dnsEqual('Foo', 'foo'), true) -assert.strictEqual(dnsEqual('FooÆØÅ', 'fooÆØÅ'), true) - -assert.strictEqual(dnsEqual('foo', 'bar'), false) -assert.strictEqual(dnsEqual('FooÆØÅ', 'fooæøå'), false) -assert.strictEqual(dnsEqual('café', 'cafe'), false) diff --git a/build/node_modules/dns-packet/LICENSE b/build/node_modules/dns-packet/LICENSE deleted file mode 100644 index bae9da7b..00000000 --- a/build/node_modules/dns-packet/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Mathias Buus - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/dns-packet/README.md b/build/node_modules/dns-packet/README.md deleted file mode 100644 index 3c8ccf1b..00000000 --- a/build/node_modules/dns-packet/README.md +++ /dev/null @@ -1,402 +0,0 @@ -# dns-packet -[![](https://img.shields.io/npm/v/dns-packet.svg?style=flat)](https://www.npmjs.org/package/dns-packet) [![](https://img.shields.io/npm/dm/dns-packet.svg)](https://www.npmjs.org/package/dns-packet) [![](https://github.com/github/mafintosh/dns-packet/workflows/ci.yml/badge.svg)](https://github.com/github/mafintosh/dns-packet/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/mafintosh/dns-packet/badge.svg?branch=master)](https://coveralls.io/github/mafintosh/dns-packet?branch=master) - -An [abstract-encoding](https://github.com/mafintosh/abstract-encoding) compliant module for encoding / decoding DNS packets. Lifted out of [multicast-dns](https://github.com/mafintosh/multicast-dns) as a separate module. - -``` -npm install dns-packet -``` - -## UDP Usage - -``` js -const dnsPacket = require('dns-packet') -const dgram = require('dgram') - -const socket = dgram.createSocket('udp4') - -const buf = dnsPacket.encode({ - type: 'query', - id: 1, - flags: dnsPacket.RECURSION_DESIRED, - questions: [{ - type: 'A', - name: 'google.com' - }] -}) - -socket.on('message', message => { - console.log(dnsPacket.decode(message)) // prints out a response from google dns -}) - -socket.send(buf, 0, buf.length, 53, '8.8.8.8') -``` - -Also see [the UDP example](examples/udp.js). - -## TCP, TLS, HTTPS - -While DNS has traditionally been used over a datagram transport, it is increasingly being carried over TCP for larger responses commonly including DNSSEC responses and TLS or HTTPS for enhanced security. See below examples on how to use `dns-packet` to wrap DNS packets in these protocols: - -- [TCP](examples/tcp.js) -- [DNS over TLS](examples/tls.js) -- [DNS over HTTPS](examples/doh.js) - -## API - -#### `var buf = packets.encode(packet, [buf], [offset])` - -Encodes a DNS packet into a buffer containing a UDP payload. - -#### `var packet = packets.decode(buf, [offset])` - -Decode a DNS packet from a buffer containing a UDP payload. - -#### `var buf = packets.streamEncode(packet, [buf], [offset])` - -Encodes a DNS packet into a buffer containing a TCP payload. - -#### `var packet = packets.streamDecode(buf, [offset])` - -Decode a DNS packet from a buffer containing a TCP payload. - -#### `var len = packets.encodingLength(packet)` - -Returns how many bytes are needed to encode the DNS packet - -## Packets - -Packets look like this - -``` js -{ - type: 'query|response', - id: optionalIdNumber, - flags: optionalBitFlags, - questions: [...], - answers: [...], - additionals: [...], - authorities: [...] -} -``` - -The bit flags available are - -``` js -packet.RECURSION_DESIRED -packet.RECURSION_AVAILABLE -packet.TRUNCATED_RESPONSE -packet.AUTHORITATIVE_ANSWER -packet.AUTHENTIC_DATA -packet.CHECKING_DISABLED -``` - -To use more than one flag bitwise-or them together - -``` js -var flags = packet.RECURSION_DESIRED | packet.RECURSION_AVAILABLE -``` - -And to check for a flag use bitwise-and - -``` js -var isRecursive = message.flags & packet.RECURSION_DESIRED -``` - -A question looks like this - -``` js -{ - type: 'A', // or SRV, AAAA, etc - class: 'IN', // one of IN, CS, CH, HS, ANY. Default: IN - name: 'google.com' // which record are you looking for -} -``` - -And an answer, additional, or authority looks like this - -``` js -{ - type: 'A', // or SRV, AAAA, etc - class: 'IN', // one of IN, CS, CH, HS - name: 'google.com', // which name is this record for - ttl: optionalTimeToLiveInSeconds, - (record specific data, see below) -} -``` - -## Supported record types - -#### `A` - -``` js -{ - data: 'IPv4 address' // fx 127.0.0.1 -} -``` - -#### `AAAA` - -``` js -{ - data: 'IPv6 address' // fx fe80::1 -} -``` - -#### `CAA` - -``` js -{ - flags: 128, // octet - tag: 'issue|issuewild|iodef', - value: 'ca.example.net', - issuerCritical: false -} -``` - -#### `CNAME` - -``` js -{ - data: 'cname.to.another.record' -} -``` - -#### `DNAME` - -``` js -{ - data: 'dname.to.another.record' -} -``` - -#### `DNSKEY` - -``` js -{ - flags: 257, // 16 bits - algorithm: 1, // octet - key: Buffer -} -``` - -#### `DS` - -``` js -{ - keyTag: 12345, - algorithm: 8, - digestType: 1, - digest: Buffer -} -``` - -#### `HINFO` - -``` js -{ - data: { - cpu: 'cpu info', - os: 'os info' - } -} -``` - -#### `MX` - -``` js -{ - preference: 10, - exchange: 'mail.example.net' -} -``` - -#### `NAPTR` - -``` js -{ - data: - { - order: 100, - preference: 10, - flags: 's', - services: 'SIP+D2U', - regexp: '!^.*$!sip:customer-service@example.com!', - replacement: '_sip._udp.example.com' - } -} -``` - -#### `NS` - -``` js -{ - data: nameServer -} -``` - -#### `NSEC` - -``` js -{ - nextDomain: 'a.domain', - rrtypes: ['A', 'TXT', 'RRSIG'] -} -``` - -#### `NSEC3` - -``` js -{ - algorithm: 1, - flags: 0, - iterations: 2, - salt: Buffer, - nextDomain: Buffer, // Hashed per RFC5155 - rrtypes: ['A', 'TXT', 'RRSIG'] -} -``` - -#### `NULL` - -``` js -{ - data: Buffer('any binary data') -} -``` - -#### `OPT` - -[EDNS0](https://tools.ietf.org/html/rfc6891) options. - -``` js -{ - type: 'OPT', - name: '.', - udpPayloadSize: 4096, - flags: packet.DNSSEC_OK, - options: [{ - // pass in any code/data for generic EDNS0 options - code: 12, - data: Buffer.alloc(31) - }, { - // Several EDNS0 options have enhanced support - code: 'PADDING', - length: 31, - }, { - code: 'CLIENT_SUBNET', - family: 2, // 1 for IPv4, 2 for IPv6 - sourcePrefixLength: 64, // used to truncate IP address - scopePrefixLength: 0, - ip: 'fe80::', - }, { - code: 'TCP_KEEPALIVE', - timeout: 150 // increments of 100ms. This means 15s. - }, { - code: 'KEY_TAG', - tags: [1, 2, 3], - }] -} -``` - -The options `PADDING`, `CLIENT_SUBNET`, `TCP_KEEPALIVE` and `KEY_TAG` support enhanced de/encoding. See [optionscodes.js](https://github.com/mafintosh/dns-packet/blob/master/optioncodes.js) for all supported option codes. If the `data` property is present on a option, it takes precedence. On decoding, `data` will always be defined. - -#### `PTR` - -``` js -{ - data: 'points.to.another.record' -} -``` - -#### `RP` - -``` js -{ - mbox: 'admin.example.com', - txt: 'txt.example.com' -} -``` - -#### `SSHFP` - -``` js -{ - algorithm: 1, - hash: 1, - fingerprint: 'A108C9F834354D5B37AF988141C9294822F5BC00' -} -```` - -#### `RRSIG` - -``` js -{ - typeCovered: 'A', - algorithm: 8, - labels: 1, - originalTTL: 3600, - expiration: timestamp, - inception: timestamp, - keyTag: 12345, - signersName: 'a.name', - signature: Buffer -} -``` - -#### `SOA` - -``` js -{ - data: - { - mname: domainName, - rname: mailbox, - serial: zoneSerial, - refresh: refreshInterval, - retry: retryInterval, - expire: expireInterval, - minimum: minimumTTL - } -} -``` - -#### `SRV` - -``` js -{ - data: { - port: servicePort, - target: serviceHostName, - priority: optionalServicePriority, - weight: optionalServiceWeight - } -} -``` - -#### `TLSA` - -``` js -{ - usage: 3, - selector: 1, - matchingType: 1, - certificate: Buffer -} -``` - -#### `TXT` - -``` js -{ - data: 'text' || Buffer || [ Buffer || 'text' ] -} -``` - -When encoding, scalar values are converted to an array and strings are converted to UTF-8 encoded Buffers. When decoding, the return value will always be an array of Buffer. - -If you need another record type, open an issue and we'll try to add it. - -## License - -MIT diff --git a/build/node_modules/dns-packet/classes.js b/build/node_modules/dns-packet/classes.js deleted file mode 100644 index 9a3d9b1e..00000000 --- a/build/node_modules/dns-packet/classes.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict' - -exports.toString = function (klass) { - switch (klass) { - case 1: return 'IN' - case 2: return 'CS' - case 3: return 'CH' - case 4: return 'HS' - case 255: return 'ANY' - } - return 'UNKNOWN_' + klass -} - -exports.toClass = function (name) { - switch (name.toUpperCase()) { - case 'IN': return 1 - case 'CS': return 2 - case 'CH': return 3 - case 'HS': return 4 - case 'ANY': return 255 - } - return 0 -} diff --git a/build/node_modules/dns-packet/index.js b/build/node_modules/dns-packet/index.js deleted file mode 100644 index d55b688a..00000000 --- a/build/node_modules/dns-packet/index.js +++ /dev/null @@ -1,1761 +0,0 @@ -'use strict' - -const Buffer = require('buffer').Buffer -const types = require('./types') -const rcodes = require('./rcodes') -const opcodes = require('./opcodes') -const classes = require('./classes') -const optioncodes = require('./optioncodes') -const ip = require('@leichtgewicht/ip-codec') - -const QUERY_FLAG = 0 -const RESPONSE_FLAG = 1 << 15 -const FLUSH_MASK = 1 << 15 -const NOT_FLUSH_MASK = ~FLUSH_MASK -const QU_MASK = 1 << 15 -const NOT_QU_MASK = ~QU_MASK - -const name = exports.name = {} - -name.encode = function (str, buf, offset, { mail = false } = {}) { - if (!buf) buf = Buffer.alloc(name.encodingLength(str)) - if (!offset) offset = 0 - const oldOffset = offset - - // strip leading and trailing . - const n = str.replace(/^\.|\.$/gm, '') - if (n.length) { - let list = [] - if (mail) { - let localPart = '' - n.split('.').forEach(label => { - if (label.endsWith('\\')) { - localPart += (localPart.length ? '.' : '') + label.slice(0, -1) - } else { - if (list.length === 0 && localPart.length) { - list.push(localPart + '.' + label) - } else { - list.push(label) - } - } - }) - } else { - list = n.split('.') - } - - for (let i = 0; i < list.length; i++) { - const len = buf.write(list[i], offset + 1) - buf[offset] = len - offset += len + 1 - } - } - - buf[offset++] = 0 - - name.encode.bytes = offset - oldOffset - return buf -} - -name.encode.bytes = 0 - -name.decode = function (buf, offset, { mail = false } = {}) { - if (!offset) offset = 0 - - const list = [] - let oldOffset = offset - let totalLength = 0 - let consumedBytes = 0 - let jumped = false - - while (true) { - if (offset >= buf.length) { - throw new Error('Cannot decode name (buffer overflow)') - } - const len = buf[offset++] - consumedBytes += jumped ? 0 : 1 - - if (len === 0) { - break - } else if ((len & 0xc0) === 0) { - if (offset + len > buf.length) { - throw new Error('Cannot decode name (buffer overflow)') - } - totalLength += len + 1 - if (totalLength > 254) { - throw new Error('Cannot decode name (name too long)') - } - let label = buf.toString('utf-8', offset, offset + len) - if (mail) { - label = label.replace(/\./g, '\\.') - } - list.push(label) - offset += len - consumedBytes += jumped ? 0 : len - } else if ((len & 0xc0) === 0xc0) { - if (offset + 1 > buf.length) { - throw new Error('Cannot decode name (buffer overflow)') - } - const jumpOffset = buf.readUInt16BE(offset - 1) - 0xc000 - if (jumpOffset >= oldOffset) { - // Allow only pointers to prior data. RFC 1035, section 4.1.4 states: - // "[...] an entire domain name or a list of labels at the end of a domain name - // is replaced with a pointer to a prior occurance (sic) of the same name." - throw new Error('Cannot decode name (bad pointer)') - } - offset = jumpOffset - oldOffset = jumpOffset - consumedBytes += jumped ? 0 : 1 - jumped = true - } else { - throw new Error('Cannot decode name (bad label)') - } - } - - name.decode.bytes = consumedBytes - return list.length === 0 ? '.' : list.join('.') -} - -name.decode.bytes = 0 - -name.encodingLength = function (n) { - if (n === '.' || n === '..') return 1 - return Buffer.byteLength(n.replace(/^\.|\.$/gm, '')) + 2 -} - -const string = {} - -string.encode = function (s, buf, offset) { - if (!buf) buf = Buffer.alloc(string.encodingLength(s)) - if (!offset) offset = 0 - - const len = buf.write(s, offset + 1) - buf[offset] = len - string.encode.bytes = len + 1 - return buf -} - -string.encode.bytes = 0 - -string.decode = function (buf, offset) { - if (!offset) offset = 0 - - const len = buf[offset] - const s = buf.toString('utf-8', offset + 1, offset + 1 + len) - string.decode.bytes = len + 1 - return s -} - -string.decode.bytes = 0 - -string.encodingLength = function (s) { - return Buffer.byteLength(s) + 1 -} - -const header = {} - -header.encode = function (h, buf, offset) { - if (!buf) buf = header.encodingLength(h) - if (!offset) offset = 0 - - const flags = (h.flags || 0) & 32767 - const type = h.type === 'response' ? RESPONSE_FLAG : QUERY_FLAG - - buf.writeUInt16BE(h.id || 0, offset) - buf.writeUInt16BE(flags | type, offset + 2) - buf.writeUInt16BE(h.questions.length, offset + 4) - buf.writeUInt16BE(h.answers.length, offset + 6) - buf.writeUInt16BE(h.authorities.length, offset + 8) - buf.writeUInt16BE(h.additionals.length, offset + 10) - - return buf -} - -header.encode.bytes = 12 - -header.decode = function (buf, offset) { - if (!offset) offset = 0 - if (buf.length < 12) throw new Error('Header must be 12 bytes') - const flags = buf.readUInt16BE(offset + 2) - - return { - id: buf.readUInt16BE(offset), - type: flags & RESPONSE_FLAG ? 'response' : 'query', - flags: flags & 32767, - flag_qr: ((flags >> 15) & 0x1) === 1, - opcode: opcodes.toString((flags >> 11) & 0xf), - flag_aa: ((flags >> 10) & 0x1) === 1, - flag_tc: ((flags >> 9) & 0x1) === 1, - flag_rd: ((flags >> 8) & 0x1) === 1, - flag_ra: ((flags >> 7) & 0x1) === 1, - flag_z: ((flags >> 6) & 0x1) === 1, - flag_ad: ((flags >> 5) & 0x1) === 1, - flag_cd: ((flags >> 4) & 0x1) === 1, - rcode: rcodes.toString(flags & 0xf), - questions: new Array(buf.readUInt16BE(offset + 4)), - answers: new Array(buf.readUInt16BE(offset + 6)), - authorities: new Array(buf.readUInt16BE(offset + 8)), - additionals: new Array(buf.readUInt16BE(offset + 10)) - } -} - -header.decode.bytes = 12 - -header.encodingLength = function () { - return 12 -} - -const runknown = exports.unknown = {} - -runknown.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(runknown.encodingLength(data)) - if (!offset) offset = 0 - - buf.writeUInt16BE(data.length, offset) - data.copy(buf, offset + 2) - - runknown.encode.bytes = data.length + 2 - return buf -} - -runknown.encode.bytes = 0 - -runknown.decode = function (buf, offset) { - if (!offset) offset = 0 - - const len = buf.readUInt16BE(offset) - const data = buf.slice(offset + 2, offset + 2 + len) - runknown.decode.bytes = len + 2 - return data -} - -runknown.decode.bytes = 0 - -runknown.encodingLength = function (data) { - return data.length + 2 -} - -const rns = exports.ns = {} - -rns.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rns.encodingLength(data)) - if (!offset) offset = 0 - - name.encode(data, buf, offset + 2) - buf.writeUInt16BE(name.encode.bytes, offset) - rns.encode.bytes = name.encode.bytes + 2 - return buf -} - -rns.encode.bytes = 0 - -rns.decode = function (buf, offset) { - if (!offset) offset = 0 - - const len = buf.readUInt16BE(offset) - const dd = name.decode(buf, offset + 2) - - rns.decode.bytes = len + 2 - return dd -} - -rns.decode.bytes = 0 - -rns.encodingLength = function (data) { - return name.encodingLength(data) + 2 -} - -const rsoa = exports.soa = {} - -rsoa.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rsoa.encodingLength(data)) - if (!offset) offset = 0 - - const oldOffset = offset - offset += 2 - name.encode(data.mname, buf, offset) - offset += name.encode.bytes - name.encode(data.rname, buf, offset, { mail: true }) - offset += name.encode.bytes - buf.writeUInt32BE(data.serial || 0, offset) - offset += 4 - buf.writeUInt32BE(data.refresh || 0, offset) - offset += 4 - buf.writeUInt32BE(data.retry || 0, offset) - offset += 4 - buf.writeUInt32BE(data.expire || 0, offset) - offset += 4 - buf.writeUInt32BE(data.minimum || 0, offset) - offset += 4 - - buf.writeUInt16BE(offset - oldOffset - 2, oldOffset) - rsoa.encode.bytes = offset - oldOffset - return buf -} - -rsoa.encode.bytes = 0 - -rsoa.decode = function (buf, offset) { - if (!offset) offset = 0 - - const oldOffset = offset - - const data = {} - offset += 2 - data.mname = name.decode(buf, offset) - offset += name.decode.bytes - data.rname = name.decode(buf, offset, { mail: true }) - offset += name.decode.bytes - data.serial = buf.readUInt32BE(offset) - offset += 4 - data.refresh = buf.readUInt32BE(offset) - offset += 4 - data.retry = buf.readUInt32BE(offset) - offset += 4 - data.expire = buf.readUInt32BE(offset) - offset += 4 - data.minimum = buf.readUInt32BE(offset) - offset += 4 - - rsoa.decode.bytes = offset - oldOffset - return data -} - -rsoa.decode.bytes = 0 - -rsoa.encodingLength = function (data) { - return 22 + name.encodingLength(data.mname) + name.encodingLength(data.rname) -} - -const rtxt = exports.txt = {} - -rtxt.encode = function (data, buf, offset) { - if (!Array.isArray(data)) data = [data] - for (let i = 0; i < data.length; i++) { - if (typeof data[i] === 'string') { - data[i] = Buffer.from(data[i]) - } - if (!Buffer.isBuffer(data[i])) { - throw new Error('Must be a Buffer') - } - } - - if (!buf) buf = Buffer.alloc(rtxt.encodingLength(data)) - if (!offset) offset = 0 - - const oldOffset = offset - offset += 2 - - data.forEach(function (d) { - buf[offset++] = d.length - d.copy(buf, offset, 0, d.length) - offset += d.length - }) - - buf.writeUInt16BE(offset - oldOffset - 2, oldOffset) - rtxt.encode.bytes = offset - oldOffset - return buf -} - -rtxt.encode.bytes = 0 - -rtxt.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - let remaining = buf.readUInt16BE(offset) - offset += 2 - - let data = [] - while (remaining > 0) { - const len = buf[offset++] - --remaining - if (remaining < len) { - throw new Error('Buffer overflow') - } - data.push(buf.slice(offset, offset + len)) - offset += len - remaining -= len - } - - rtxt.decode.bytes = offset - oldOffset - return data -} - -rtxt.decode.bytes = 0 - -rtxt.encodingLength = function (data) { - if (!Array.isArray(data)) data = [data] - let length = 2 - data.forEach(function (buf) { - if (typeof buf === 'string') { - length += Buffer.byteLength(buf) + 1 - } else { - length += buf.length + 1 - } - }) - return length -} - -const rnull = exports.null = {} - -rnull.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rnull.encodingLength(data)) - if (!offset) offset = 0 - - if (typeof data === 'string') data = Buffer.from(data) - if (!data) data = Buffer.alloc(0) - - const oldOffset = offset - offset += 2 - - const len = data.length - data.copy(buf, offset, 0, len) - offset += len - - buf.writeUInt16BE(offset - oldOffset - 2, oldOffset) - rnull.encode.bytes = offset - oldOffset - return buf -} - -rnull.encode.bytes = 0 - -rnull.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - const len = buf.readUInt16BE(offset) - - offset += 2 - - const data = buf.slice(offset, offset + len) - offset += len - - rnull.decode.bytes = offset - oldOffset - return data -} - -rnull.decode.bytes = 0 - -rnull.encodingLength = function (data) { - if (!data) return 2 - return (Buffer.isBuffer(data) ? data.length : Buffer.byteLength(data)) + 2 -} - -const rhinfo = exports.hinfo = {} - -rhinfo.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rhinfo.encodingLength(data)) - if (!offset) offset = 0 - - const oldOffset = offset - offset += 2 - string.encode(data.cpu, buf, offset) - offset += string.encode.bytes - string.encode(data.os, buf, offset) - offset += string.encode.bytes - buf.writeUInt16BE(offset - oldOffset - 2, oldOffset) - rhinfo.encode.bytes = offset - oldOffset - return buf -} - -rhinfo.encode.bytes = 0 - -rhinfo.decode = function (buf, offset) { - if (!offset) offset = 0 - - const oldOffset = offset - - const data = {} - offset += 2 - data.cpu = string.decode(buf, offset) - offset += string.decode.bytes - data.os = string.decode(buf, offset) - offset += string.decode.bytes - rhinfo.decode.bytes = offset - oldOffset - return data -} - -rhinfo.decode.bytes = 0 - -rhinfo.encodingLength = function (data) { - return string.encodingLength(data.cpu) + string.encodingLength(data.os) + 2 -} - -const rptr = exports.ptr = {} -const rcname = exports.cname = rptr -const rdname = exports.dname = rptr - -rptr.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rptr.encodingLength(data)) - if (!offset) offset = 0 - - name.encode(data, buf, offset + 2) - buf.writeUInt16BE(name.encode.bytes, offset) - rptr.encode.bytes = name.encode.bytes + 2 - return buf -} - -rptr.encode.bytes = 0 - -rptr.decode = function (buf, offset) { - if (!offset) offset = 0 - - const data = name.decode(buf, offset + 2) - rptr.decode.bytes = name.decode.bytes + 2 - return data -} - -rptr.decode.bytes = 0 - -rptr.encodingLength = function (data) { - return name.encodingLength(data) + 2 -} - -const rsrv = exports.srv = {} - -rsrv.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rsrv.encodingLength(data)) - if (!offset) offset = 0 - - buf.writeUInt16BE(data.priority || 0, offset + 2) - buf.writeUInt16BE(data.weight || 0, offset + 4) - buf.writeUInt16BE(data.port || 0, offset + 6) - name.encode(data.target, buf, offset + 8) - - const len = name.encode.bytes + 6 - buf.writeUInt16BE(len, offset) - - rsrv.encode.bytes = len + 2 - return buf -} - -rsrv.encode.bytes = 0 - -rsrv.decode = function (buf, offset) { - if (!offset) offset = 0 - - const len = buf.readUInt16BE(offset) - - const data = {} - data.priority = buf.readUInt16BE(offset + 2) - data.weight = buf.readUInt16BE(offset + 4) - data.port = buf.readUInt16BE(offset + 6) - data.target = name.decode(buf, offset + 8) - - rsrv.decode.bytes = len + 2 - return data -} - -rsrv.decode.bytes = 0 - -rsrv.encodingLength = function (data) { - return 8 + name.encodingLength(data.target) -} - -const rcaa = exports.caa = {} - -rcaa.ISSUER_CRITICAL = 1 << 7 - -rcaa.encode = function (data, buf, offset) { - const len = rcaa.encodingLength(data) - - if (!buf) buf = Buffer.alloc(rcaa.encodingLength(data)) - if (!offset) offset = 0 - - if (data.issuerCritical) { - data.flags = rcaa.ISSUER_CRITICAL - } - - buf.writeUInt16BE(len - 2, offset) - offset += 2 - buf.writeUInt8(data.flags || 0, offset) - offset += 1 - string.encode(data.tag, buf, offset) - offset += string.encode.bytes - buf.write(data.value, offset) - offset += Buffer.byteLength(data.value) - - rcaa.encode.bytes = len - return buf -} - -rcaa.encode.bytes = 0 - -rcaa.decode = function (buf, offset) { - if (!offset) offset = 0 - - const len = buf.readUInt16BE(offset) - offset += 2 - - const oldOffset = offset - const data = {} - data.flags = buf.readUInt8(offset) - offset += 1 - data.tag = string.decode(buf, offset) - offset += string.decode.bytes - data.value = buf.toString('utf-8', offset, oldOffset + len) - - data.issuerCritical = !!(data.flags & rcaa.ISSUER_CRITICAL) - - rcaa.decode.bytes = len + 2 - - return data -} - -rcaa.decode.bytes = 0 - -rcaa.encodingLength = function (data) { - return string.encodingLength(data.tag) + string.encodingLength(data.value) + 2 -} - -const rmx = exports.mx = {} - -rmx.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rmx.encodingLength(data)) - if (!offset) offset = 0 - - const oldOffset = offset - offset += 2 - buf.writeUInt16BE(data.preference || 0, offset) - offset += 2 - name.encode(data.exchange, buf, offset) - offset += name.encode.bytes - - buf.writeUInt16BE(offset - oldOffset - 2, oldOffset) - rmx.encode.bytes = offset - oldOffset - return buf -} - -rmx.encode.bytes = 0 - -rmx.decode = function (buf, offset) { - if (!offset) offset = 0 - - const oldOffset = offset - - const data = {} - offset += 2 - data.preference = buf.readUInt16BE(offset) - offset += 2 - data.exchange = name.decode(buf, offset) - offset += name.decode.bytes - - rmx.decode.bytes = offset - oldOffset - return data -} - -rmx.encodingLength = function (data) { - return 4 + name.encodingLength(data.exchange) -} - -const ra = exports.a = {} - -ra.encode = function (host, buf, offset) { - if (!buf) buf = Buffer.alloc(ra.encodingLength(host)) - if (!offset) offset = 0 - - buf.writeUInt16BE(4, offset) - offset += 2 - ip.v4.encode(host, buf, offset) - ra.encode.bytes = 6 - return buf -} - -ra.encode.bytes = 0 - -ra.decode = function (buf, offset) { - if (!offset) offset = 0 - - offset += 2 - const host = ip.v4.decode(buf, offset) - ra.decode.bytes = 6 - return host -} - -ra.decode.bytes = 0 - -ra.encodingLength = function () { - return 6 -} - -const raaaa = exports.aaaa = {} - -raaaa.encode = function (host, buf, offset) { - if (!buf) buf = Buffer.alloc(raaaa.encodingLength(host)) - if (!offset) offset = 0 - - buf.writeUInt16BE(16, offset) - offset += 2 - ip.v6.encode(host, buf, offset) - raaaa.encode.bytes = 18 - return buf -} - -raaaa.encode.bytes = 0 - -raaaa.decode = function (buf, offset) { - if (!offset) offset = 0 - - offset += 2 - const host = ip.v6.decode(buf, offset) - raaaa.decode.bytes = 18 - return host -} - -raaaa.decode.bytes = 0 - -raaaa.encodingLength = function () { - return 18 -} - -const roption = exports.option = {} - -roption.encode = function (option, buf, offset) { - if (!buf) buf = Buffer.alloc(roption.encodingLength(option)) - if (!offset) offset = 0 - const oldOffset = offset - - const code = optioncodes.toCode(option.code) - buf.writeUInt16BE(code, offset) - offset += 2 - if (option.data) { - buf.writeUInt16BE(option.data.length, offset) - offset += 2 - option.data.copy(buf, offset) - offset += option.data.length - } else { - switch (code) { - // case 3: NSID. No encode makes sense. - // case 5,6,7: Not implementable - case 8: // ECS - // note: do IP math before calling - const spl = option.sourcePrefixLength || 0 - const fam = option.family || ip.familyOf(option.ip) - const ipBuf = ip.encode(option.ip, Buffer.alloc) - const ipLen = Math.ceil(spl / 8) - buf.writeUInt16BE(ipLen + 4, offset) - offset += 2 - buf.writeUInt16BE(fam, offset) - offset += 2 - buf.writeUInt8(spl, offset++) - buf.writeUInt8(option.scopePrefixLength || 0, offset++) - - ipBuf.copy(buf, offset, 0, ipLen) - offset += ipLen - break - // case 9: EXPIRE (experimental) - // case 10: COOKIE. No encode makes sense. - case 11: // KEEP-ALIVE - if (option.timeout) { - buf.writeUInt16BE(2, offset) - offset += 2 - buf.writeUInt16BE(option.timeout, offset) - offset += 2 - } else { - buf.writeUInt16BE(0, offset) - offset += 2 - } - break - case 12: // PADDING - const len = option.length || 0 - buf.writeUInt16BE(len, offset) - offset += 2 - buf.fill(0, offset, offset + len) - offset += len - break - // case 13: CHAIN. Experimental. - case 14: // KEY-TAG - const tagsLen = option.tags.length * 2 - buf.writeUInt16BE(tagsLen, offset) - offset += 2 - for (const tag of option.tags) { - buf.writeUInt16BE(tag, offset) - offset += 2 - } - break - default: - throw new Error(`Unknown roption code: ${option.code}`) - } - } - - roption.encode.bytes = offset - oldOffset - return buf -} - -roption.encode.bytes = 0 - -roption.decode = function (buf, offset) { - if (!offset) offset = 0 - const option = {} - option.code = buf.readUInt16BE(offset) - option.type = optioncodes.toString(option.code) - offset += 2 - const len = buf.readUInt16BE(offset) - offset += 2 - option.data = buf.slice(offset, offset + len) - switch (option.code) { - // case 3: NSID. No decode makes sense. - case 8: // ECS - option.family = buf.readUInt16BE(offset) - offset += 2 - option.sourcePrefixLength = buf.readUInt8(offset++) - option.scopePrefixLength = buf.readUInt8(offset++) - const padded = Buffer.alloc((option.family === 1) ? 4 : 16) - buf.copy(padded, 0, offset, offset + len - 4) - option.ip = ip.decode(padded) - break - // case 12: Padding. No decode makes sense. - case 11: // KEEP-ALIVE - if (len > 0) { - option.timeout = buf.readUInt16BE(offset) - offset += 2 - } - break - case 14: - option.tags = [] - for (let i = 0; i < len; i += 2) { - option.tags.push(buf.readUInt16BE(offset)) - offset += 2 - } - // don't worry about default. caller will use data if desired - } - - roption.decode.bytes = len + 4 - return option -} - -roption.decode.bytes = 0 - -roption.encodingLength = function (option) { - if (option.data) { - return option.data.length + 4 - } - const code = optioncodes.toCode(option.code) - switch (code) { - case 8: // ECS - const spl = option.sourcePrefixLength || 0 - return Math.ceil(spl / 8) + 8 - case 11: // KEEP-ALIVE - return (typeof option.timeout === 'number') ? 6 : 4 - case 12: // PADDING - return option.length + 4 - case 14: // KEY-TAG - return 4 + (option.tags.length * 2) - } - throw new Error(`Unknown roption code: ${option.code}`) -} - -const ropt = exports.opt = {} - -ropt.encode = function (options, buf, offset) { - if (!buf) buf = Buffer.alloc(ropt.encodingLength(options)) - if (!offset) offset = 0 - const oldOffset = offset - - const rdlen = encodingLengthList(options, roption) - buf.writeUInt16BE(rdlen, offset) - offset = encodeList(options, roption, buf, offset + 2) - - ropt.encode.bytes = offset - oldOffset - return buf -} - -ropt.encode.bytes = 0 - -ropt.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - const options = [] - let rdlen = buf.readUInt16BE(offset) - offset += 2 - let o = 0 - while (rdlen > 0) { - options[o++] = roption.decode(buf, offset) - offset += roption.decode.bytes - rdlen -= roption.decode.bytes - } - ropt.decode.bytes = offset - oldOffset - return options -} - -ropt.decode.bytes = 0 - -ropt.encodingLength = function (options) { - return 2 + encodingLengthList(options || [], roption) -} - -const rdnskey = exports.dnskey = {} - -rdnskey.PROTOCOL_DNSSEC = 3 -rdnskey.ZONE_KEY = 0x80 -rdnskey.SECURE_ENTRYPOINT = 0x8000 - -rdnskey.encode = function (key, buf, offset) { - if (!buf) buf = Buffer.alloc(rdnskey.encodingLength(key)) - if (!offset) offset = 0 - const oldOffset = offset - - const keydata = key.key - if (!Buffer.isBuffer(keydata)) { - throw new Error('Key must be a Buffer') - } - - offset += 2 // Leave space for length - buf.writeUInt16BE(key.flags, offset) - offset += 2 - buf.writeUInt8(rdnskey.PROTOCOL_DNSSEC, offset) - offset += 1 - buf.writeUInt8(key.algorithm, offset) - offset += 1 - keydata.copy(buf, offset, 0, keydata.length) - offset += keydata.length - - rdnskey.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rdnskey.encode.bytes - 2, oldOffset) - return buf -} - -rdnskey.encode.bytes = 0 - -rdnskey.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - var key = {} - var length = buf.readUInt16BE(offset) - offset += 2 - key.flags = buf.readUInt16BE(offset) - offset += 2 - if (buf.readUInt8(offset) !== rdnskey.PROTOCOL_DNSSEC) { - throw new Error('Protocol must be 3') - } - offset += 1 - key.algorithm = buf.readUInt8(offset) - offset += 1 - key.key = buf.slice(offset, oldOffset + length + 2) - offset += key.key.length - rdnskey.decode.bytes = offset - oldOffset - return key -} - -rdnskey.decode.bytes = 0 - -rdnskey.encodingLength = function (key) { - return 6 + Buffer.byteLength(key.key) -} - -const rrrsig = exports.rrsig = {} - -rrrsig.encode = function (sig, buf, offset) { - if (!buf) buf = Buffer.alloc(rrrsig.encodingLength(sig)) - if (!offset) offset = 0 - const oldOffset = offset - - const signature = sig.signature - if (!Buffer.isBuffer(signature)) { - throw new Error('Signature must be a Buffer') - } - - offset += 2 // Leave space for length - buf.writeUInt16BE(types.toType(sig.typeCovered), offset) - offset += 2 - buf.writeUInt8(sig.algorithm, offset) - offset += 1 - buf.writeUInt8(sig.labels, offset) - offset += 1 - buf.writeUInt32BE(sig.originalTTL, offset) - offset += 4 - buf.writeUInt32BE(sig.expiration, offset) - offset += 4 - buf.writeUInt32BE(sig.inception, offset) - offset += 4 - buf.writeUInt16BE(sig.keyTag, offset) - offset += 2 - name.encode(sig.signersName, buf, offset) - offset += name.encode.bytes - signature.copy(buf, offset, 0, signature.length) - offset += signature.length - - rrrsig.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rrrsig.encode.bytes - 2, oldOffset) - return buf -} - -rrrsig.encode.bytes = 0 - -rrrsig.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - var sig = {} - var length = buf.readUInt16BE(offset) - offset += 2 - sig.typeCovered = types.toString(buf.readUInt16BE(offset)) - offset += 2 - sig.algorithm = buf.readUInt8(offset) - offset += 1 - sig.labels = buf.readUInt8(offset) - offset += 1 - sig.originalTTL = buf.readUInt32BE(offset) - offset += 4 - sig.expiration = buf.readUInt32BE(offset) - offset += 4 - sig.inception = buf.readUInt32BE(offset) - offset += 4 - sig.keyTag = buf.readUInt16BE(offset) - offset += 2 - sig.signersName = name.decode(buf, offset) - offset += name.decode.bytes - sig.signature = buf.slice(offset, oldOffset + length + 2) - offset += sig.signature.length - rrrsig.decode.bytes = offset - oldOffset - return sig -} - -rrrsig.decode.bytes = 0 - -rrrsig.encodingLength = function (sig) { - return 20 + - name.encodingLength(sig.signersName) + - Buffer.byteLength(sig.signature) -} - -const rrp = exports.rp = {} - -rrp.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rrp.encodingLength(data)) - if (!offset) offset = 0 - const oldOffset = offset - - offset += 2 // Leave space for length - name.encode(data.mbox || '.', buf, offset, { mail: true }) - offset += name.encode.bytes - name.encode(data.txt || '.', buf, offset) - offset += name.encode.bytes - rrp.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rrp.encode.bytes - 2, oldOffset) - return buf -} - -rrp.encode.bytes = 0 - -rrp.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - const data = {} - offset += 2 - data.mbox = name.decode(buf, offset, { mail: true }) || '.' - offset += name.decode.bytes - data.txt = name.decode(buf, offset) || '.' - offset += name.decode.bytes - rrp.decode.bytes = offset - oldOffset - return data -} - -rrp.decode.bytes = 0 - -rrp.encodingLength = function (data) { - return 2 + name.encodingLength(data.mbox || '.') + name.encodingLength(data.txt || '.') -} - -const typebitmap = {} - -typebitmap.encode = function (typelist, buf, offset) { - if (!buf) buf = Buffer.alloc(typebitmap.encodingLength(typelist)) - if (!offset) offset = 0 - const oldOffset = offset - - var typesByWindow = [] - for (var i = 0; i < typelist.length; i++) { - var typeid = types.toType(typelist[i]) - if (typesByWindow[typeid >> 8] === undefined) { - typesByWindow[typeid >> 8] = [] - } - typesByWindow[typeid >> 8][(typeid >> 3) & 0x1F] |= 1 << (7 - (typeid & 0x7)) - } - - for (i = 0; i < typesByWindow.length; i++) { - if (typesByWindow[i] !== undefined) { - var windowBuf = Buffer.from(typesByWindow[i]) - buf.writeUInt8(i, offset) - offset += 1 - buf.writeUInt8(windowBuf.length, offset) - offset += 1 - windowBuf.copy(buf, offset) - offset += windowBuf.length - } - } - - typebitmap.encode.bytes = offset - oldOffset - return buf -} - -typebitmap.encode.bytes = 0 - -typebitmap.decode = function (buf, offset, length) { - if (!offset) offset = 0 - const oldOffset = offset - - var typelist = [] - while (offset - oldOffset < length) { - var window = buf.readUInt8(offset) - offset += 1 - var windowLength = buf.readUInt8(offset) - offset += 1 - for (var i = 0; i < windowLength; i++) { - var b = buf.readUInt8(offset + i) - for (var j = 0; j < 8; j++) { - if (b & (1 << (7 - j))) { - var typeid = types.toString((window << 8) | (i << 3) | j) - typelist.push(typeid) - } - } - } - offset += windowLength - } - - typebitmap.decode.bytes = offset - oldOffset - return typelist -} - -typebitmap.decode.bytes = 0 - -typebitmap.encodingLength = function (typelist) { - var extents = [] - for (var i = 0; i < typelist.length; i++) { - var typeid = types.toType(typelist[i]) - extents[typeid >> 8] = Math.max(extents[typeid >> 8] || 0, typeid & 0xFF) - } - - var len = 0 - for (i = 0; i < extents.length; i++) { - if (extents[i] !== undefined) { - len += 2 + Math.ceil((extents[i] + 1) / 8) - } - } - - return len -} - -const rnsec = exports.nsec = {} - -rnsec.encode = function (record, buf, offset) { - if (!buf) buf = Buffer.alloc(rnsec.encodingLength(record)) - if (!offset) offset = 0 - const oldOffset = offset - - offset += 2 // Leave space for length - name.encode(record.nextDomain, buf, offset) - offset += name.encode.bytes - typebitmap.encode(record.rrtypes, buf, offset) - offset += typebitmap.encode.bytes - - rnsec.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rnsec.encode.bytes - 2, oldOffset) - return buf -} - -rnsec.encode.bytes = 0 - -rnsec.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - var record = {} - var length = buf.readUInt16BE(offset) - offset += 2 - record.nextDomain = name.decode(buf, offset) - offset += name.decode.bytes - record.rrtypes = typebitmap.decode(buf, offset, length - (offset - oldOffset)) - offset += typebitmap.decode.bytes - - rnsec.decode.bytes = offset - oldOffset - return record -} - -rnsec.decode.bytes = 0 - -rnsec.encodingLength = function (record) { - return 2 + - name.encodingLength(record.nextDomain) + - typebitmap.encodingLength(record.rrtypes) -} - -const rnsec3 = exports.nsec3 = {} - -rnsec3.encode = function (record, buf, offset) { - if (!buf) buf = Buffer.alloc(rnsec3.encodingLength(record)) - if (!offset) offset = 0 - const oldOffset = offset - - const salt = record.salt - if (!Buffer.isBuffer(salt)) { - throw new Error('salt must be a Buffer') - } - - const nextDomain = record.nextDomain - if (!Buffer.isBuffer(nextDomain)) { - throw new Error('nextDomain must be a Buffer') - } - - offset += 2 // Leave space for length - buf.writeUInt8(record.algorithm, offset) - offset += 1 - buf.writeUInt8(record.flags, offset) - offset += 1 - buf.writeUInt16BE(record.iterations, offset) - offset += 2 - buf.writeUInt8(salt.length, offset) - offset += 1 - salt.copy(buf, offset, 0, salt.length) - offset += salt.length - buf.writeUInt8(nextDomain.length, offset) - offset += 1 - nextDomain.copy(buf, offset, 0, nextDomain.length) - offset += nextDomain.length - typebitmap.encode(record.rrtypes, buf, offset) - offset += typebitmap.encode.bytes - - rnsec3.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rnsec3.encode.bytes - 2, oldOffset) - return buf -} - -rnsec3.encode.bytes = 0 - -rnsec3.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - var record = {} - var length = buf.readUInt16BE(offset) - offset += 2 - record.algorithm = buf.readUInt8(offset) - offset += 1 - record.flags = buf.readUInt8(offset) - offset += 1 - record.iterations = buf.readUInt16BE(offset) - offset += 2 - const saltLength = buf.readUInt8(offset) - offset += 1 - record.salt = buf.slice(offset, offset + saltLength) - offset += saltLength - const hashLength = buf.readUInt8(offset) - offset += 1 - record.nextDomain = buf.slice(offset, offset + hashLength) - offset += hashLength - record.rrtypes = typebitmap.decode(buf, offset, length - (offset - oldOffset)) - offset += typebitmap.decode.bytes - - rnsec3.decode.bytes = offset - oldOffset - return record -} - -rnsec3.decode.bytes = 0 - -rnsec3.encodingLength = function (record) { - return 8 + - record.salt.length + - record.nextDomain.length + - typebitmap.encodingLength(record.rrtypes) -} - -const rds = exports.ds = {} - -rds.encode = function (digest, buf, offset) { - if (!buf) buf = Buffer.alloc(rds.encodingLength(digest)) - if (!offset) offset = 0 - const oldOffset = offset - - const digestdata = digest.digest - if (!Buffer.isBuffer(digestdata)) { - throw new Error('Digest must be a Buffer') - } - - offset += 2 // Leave space for length - buf.writeUInt16BE(digest.keyTag, offset) - offset += 2 - buf.writeUInt8(digest.algorithm, offset) - offset += 1 - buf.writeUInt8(digest.digestType, offset) - offset += 1 - digestdata.copy(buf, offset, 0, digestdata.length) - offset += digestdata.length - - rds.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rds.encode.bytes - 2, oldOffset) - return buf -} - -rds.encode.bytes = 0 - -rds.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - var digest = {} - var length = buf.readUInt16BE(offset) - offset += 2 - digest.keyTag = buf.readUInt16BE(offset) - offset += 2 - digest.algorithm = buf.readUInt8(offset) - offset += 1 - digest.digestType = buf.readUInt8(offset) - offset += 1 - digest.digest = buf.slice(offset, oldOffset + length + 2) - offset += digest.digest.length - rds.decode.bytes = offset - oldOffset - return digest -} - -rds.decode.bytes = 0 - -rds.encodingLength = function (digest) { - return 6 + Buffer.byteLength(digest.digest) -} - -const rsshfp = exports.sshfp = {} - -rsshfp.getFingerprintLengthForHashType = function getFingerprintLengthForHashType (hashType) { - switch (hashType) { - case 1: return 20 - case 2: return 32 - } -} - -rsshfp.encode = function encode (record, buf, offset) { - if (!buf) buf = Buffer.alloc(rsshfp.encodingLength(record)) - if (!offset) offset = 0 - const oldOffset = offset - - offset += 2 // The function call starts with the offset pointer at the RDLENGTH field, not the RDATA one - buf[offset] = record.algorithm - offset += 1 - buf[offset] = record.hash - offset += 1 - - const fingerprintBuf = Buffer.from(record.fingerprint.toUpperCase(), 'hex') - if (fingerprintBuf.length !== rsshfp.getFingerprintLengthForHashType(record.hash)) { - throw new Error('Invalid fingerprint length') - } - fingerprintBuf.copy(buf, offset) - offset += fingerprintBuf.byteLength - - rsshfp.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rsshfp.encode.bytes - 2, oldOffset) - - return buf -} - -rsshfp.encode.bytes = 0 - -rsshfp.decode = function decode (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - const record = {} - offset += 2 // Account for the RDLENGTH field - record.algorithm = buf[offset] - offset += 1 - record.hash = buf[offset] - offset += 1 - - const fingerprintLength = rsshfp.getFingerprintLengthForHashType(record.hash) - record.fingerprint = buf.slice(offset, offset + fingerprintLength).toString('hex').toUpperCase() - offset += fingerprintLength - rsshfp.decode.bytes = offset - oldOffset - return record -} - -rsshfp.decode.bytes = 0 - -rsshfp.encodingLength = function (record) { - return 4 + Buffer.from(record.fingerprint, 'hex').byteLength -} - -const rnaptr = exports.naptr = {} - -rnaptr.encode = function (data, buf, offset) { - if (!buf) buf = Buffer.alloc(rnaptr.encodingLength(data)) - if (!offset) offset = 0 - const oldOffset = offset - offset += 2 - buf.writeUInt16BE(data.order || 0, offset) - offset += 2 - buf.writeUInt16BE(data.preference || 0, offset) - offset += 2 - string.encode(data.flags, buf, offset) - offset += string.encode.bytes - string.encode(data.services, buf, offset) - offset += string.encode.bytes - string.encode(data.regexp, buf, offset) - offset += string.encode.bytes - name.encode(data.replacement, buf, offset) - offset += name.encode.bytes - rnaptr.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rnaptr.encode.bytes - 2, oldOffset) - return buf -} - -rnaptr.encode.bytes = 0 - -rnaptr.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - const data = {} - offset += 2 - data.order = buf.readUInt16BE(offset) - offset += 2 - data.preference = buf.readUInt16BE(offset) - offset += 2 - data.flags = string.decode(buf, offset) - offset += string.decode.bytes - data.services = string.decode(buf, offset) - offset += string.decode.bytes - data.regexp = string.decode(buf, offset) - offset += string.decode.bytes - data.replacement = name.decode(buf, offset) - offset += name.decode.bytes - rnaptr.decode.bytes = offset - oldOffset - return data -} - -rnaptr.decode.bytes = 0 - -rnaptr.encodingLength = function (data) { - return string.encodingLength(data.flags) + - string.encodingLength(data.services) + - string.encodingLength(data.regexp) + - name.encodingLength(data.replacement) + 6 -} - -const rtlsa = exports.tlsa = {} - -rtlsa.encode = function (cert, buf, offset) { - if (!buf) buf = Buffer.alloc(rtlsa.encodingLength(cert)) - if (!offset) offset = 0 - const oldOffset = offset - - const certdata = cert.certificate - if (!Buffer.isBuffer(certdata)) { - throw new Error('Certificate must be a Buffer') - } - - offset += 2 // Leave space for length - buf.writeUInt8(cert.usage, offset) - offset += 1 - buf.writeUInt8(cert.selector, offset) - offset += 1 - buf.writeUInt8(cert.matchingType, offset) - offset += 1 - certdata.copy(buf, offset, 0, certdata.length) - offset += certdata.length - - rtlsa.encode.bytes = offset - oldOffset - buf.writeUInt16BE(rtlsa.encode.bytes - 2, oldOffset) - return buf -} - -rtlsa.encode.bytes = 0 - -rtlsa.decode = function (buf, offset) { - if (!offset) offset = 0 - const oldOffset = offset - - const cert = {} - const length = buf.readUInt16BE(offset) - offset += 2 - cert.usage = buf.readUInt8(offset) - offset += 1 - cert.selector = buf.readUInt8(offset) - offset += 1 - cert.matchingType = buf.readUInt8(offset) - offset += 1 - cert.certificate = buf.slice(offset, oldOffset + length + 2) - offset += cert.certificate.length - rtlsa.decode.bytes = offset - oldOffset - return cert -} - -rtlsa.decode.bytes = 0 - -rtlsa.encodingLength = function (cert) { - return 5 + Buffer.byteLength(cert.certificate) -} - -const renc = exports.record = function (type) { - switch (type.toUpperCase()) { - case 'A': return ra - case 'PTR': return rptr - case 'CNAME': return rcname - case 'DNAME': return rdname - case 'TXT': return rtxt - case 'NULL': return rnull - case 'AAAA': return raaaa - case 'SRV': return rsrv - case 'HINFO': return rhinfo - case 'CAA': return rcaa - case 'NS': return rns - case 'SOA': return rsoa - case 'MX': return rmx - case 'OPT': return ropt - case 'DNSKEY': return rdnskey - case 'RRSIG': return rrrsig - case 'RP': return rrp - case 'NSEC': return rnsec - case 'NSEC3': return rnsec3 - case 'SSHFP': return rsshfp - case 'DS': return rds - case 'NAPTR': return rnaptr - case 'TLSA': return rtlsa - } - return runknown -} - -const answer = exports.answer = {} - -answer.encode = function (a, buf, offset) { - if (!buf) buf = Buffer.alloc(answer.encodingLength(a)) - if (!offset) offset = 0 - - const oldOffset = offset - - name.encode(a.name, buf, offset) - offset += name.encode.bytes - - buf.writeUInt16BE(types.toType(a.type), offset) - - if (a.type.toUpperCase() === 'OPT') { - if (a.name !== '.') { - throw new Error('OPT name must be root.') - } - buf.writeUInt16BE(a.udpPayloadSize || 4096, offset + 2) - buf.writeUInt8(a.extendedRcode || 0, offset + 4) - buf.writeUInt8(a.ednsVersion || 0, offset + 5) - buf.writeUInt16BE(a.flags || 0, offset + 6) - - offset += 8 - ropt.encode(a.options || [], buf, offset) - offset += ropt.encode.bytes - } else { - let klass = classes.toClass(a.class === undefined ? 'IN' : a.class) - if (a.flush) klass |= FLUSH_MASK // the 1st bit of the class is the flush bit - buf.writeUInt16BE(klass, offset + 2) - buf.writeUInt32BE(a.ttl || 0, offset + 4) - - offset += 8 - const enc = renc(a.type) - enc.encode(a.data, buf, offset) - offset += enc.encode.bytes - } - - answer.encode.bytes = offset - oldOffset - return buf -} - -answer.encode.bytes = 0 - -answer.decode = function (buf, offset) { - if (!offset) offset = 0 - - const a = {} - const oldOffset = offset - - a.name = name.decode(buf, offset) - offset += name.decode.bytes - a.type = types.toString(buf.readUInt16BE(offset)) - if (a.type === 'OPT') { - a.udpPayloadSize = buf.readUInt16BE(offset + 2) - a.extendedRcode = buf.readUInt8(offset + 4) - a.ednsVersion = buf.readUInt8(offset + 5) - a.flags = buf.readUInt16BE(offset + 6) - a.flag_do = ((a.flags >> 15) & 0x1) === 1 - a.options = ropt.decode(buf, offset + 8) - offset += 8 + ropt.decode.bytes - } else { - const klass = buf.readUInt16BE(offset + 2) - a.ttl = buf.readUInt32BE(offset + 4) - - a.class = classes.toString(klass & NOT_FLUSH_MASK) - a.flush = !!(klass & FLUSH_MASK) - - const enc = renc(a.type) - a.data = enc.decode(buf, offset + 8) - offset += 8 + enc.decode.bytes - } - - answer.decode.bytes = offset - oldOffset - return a -} - -answer.decode.bytes = 0 - -answer.encodingLength = function (a) { - const data = (a.data !== null && a.data !== undefined) ? a.data : a.options - return name.encodingLength(a.name) + 8 + renc(a.type).encodingLength(data) -} - -const question = exports.question = {} - -question.encode = function (q, buf, offset) { - if (!buf) buf = Buffer.alloc(question.encodingLength(q)) - if (!offset) offset = 0 - - const oldOffset = offset - - name.encode(q.name, buf, offset) - offset += name.encode.bytes - - buf.writeUInt16BE(types.toType(q.type), offset) - offset += 2 - - buf.writeUInt16BE(classes.toClass(q.class === undefined ? 'IN' : q.class), offset) - offset += 2 - - question.encode.bytes = offset - oldOffset - return q -} - -question.encode.bytes = 0 - -question.decode = function (buf, offset) { - if (!offset) offset = 0 - - const oldOffset = offset - const q = {} - - q.name = name.decode(buf, offset) - offset += name.decode.bytes - - q.type = types.toString(buf.readUInt16BE(offset)) - offset += 2 - - q.class = classes.toString(buf.readUInt16BE(offset)) - offset += 2 - - const qu = !!(q.class & QU_MASK) - if (qu) q.class &= NOT_QU_MASK - - question.decode.bytes = offset - oldOffset - return q -} - -question.decode.bytes = 0 - -question.encodingLength = function (q) { - return name.encodingLength(q.name) + 4 -} - -exports.AUTHORITATIVE_ANSWER = 1 << 10 -exports.TRUNCATED_RESPONSE = 1 << 9 -exports.RECURSION_DESIRED = 1 << 8 -exports.RECURSION_AVAILABLE = 1 << 7 -exports.AUTHENTIC_DATA = 1 << 5 -exports.CHECKING_DISABLED = 1 << 4 -exports.DNSSEC_OK = 1 << 15 - -exports.encode = function (result, buf, offset) { - const allocing = !buf - - if (allocing) buf = Buffer.alloc(exports.encodingLength(result)) - if (!offset) offset = 0 - - const oldOffset = offset - - if (!result.questions) result.questions = [] - if (!result.answers) result.answers = [] - if (!result.authorities) result.authorities = [] - if (!result.additionals) result.additionals = [] - - header.encode(result, buf, offset) - offset += header.encode.bytes - - offset = encodeList(result.questions, question, buf, offset) - offset = encodeList(result.answers, answer, buf, offset) - offset = encodeList(result.authorities, answer, buf, offset) - offset = encodeList(result.additionals, answer, buf, offset) - - exports.encode.bytes = offset - oldOffset - - // just a quick sanity check - if (allocing && exports.encode.bytes !== buf.length) { - return buf.slice(0, exports.encode.bytes) - } - - return buf -} - -exports.encode.bytes = 0 - -exports.decode = function (buf, offset) { - if (!offset) offset = 0 - - const oldOffset = offset - const result = header.decode(buf, offset) - offset += header.decode.bytes - - offset = decodeList(result.questions, question, buf, offset) - offset = decodeList(result.answers, answer, buf, offset) - offset = decodeList(result.authorities, answer, buf, offset) - offset = decodeList(result.additionals, answer, buf, offset) - - exports.decode.bytes = offset - oldOffset - - return result -} - -exports.decode.bytes = 0 - -exports.encodingLength = function (result) { - return header.encodingLength(result) + - encodingLengthList(result.questions || [], question) + - encodingLengthList(result.answers || [], answer) + - encodingLengthList(result.authorities || [], answer) + - encodingLengthList(result.additionals || [], answer) -} - -exports.streamEncode = function (result) { - const buf = exports.encode(result) - const sbuf = Buffer.alloc(2) - sbuf.writeUInt16BE(buf.byteLength) - const combine = Buffer.concat([sbuf, buf]) - exports.streamEncode.bytes = combine.byteLength - return combine -} - -exports.streamEncode.bytes = 0 - -exports.streamDecode = function (sbuf) { - const len = sbuf.readUInt16BE(0) - if (sbuf.byteLength < len + 2) { - // not enough data - return null - } - const result = exports.decode(sbuf.slice(2)) - exports.streamDecode.bytes = exports.decode.bytes - return result -} - -exports.streamDecode.bytes = 0 - -function encodingLengthList (list, enc) { - let len = 0 - for (let i = 0; i < list.length; i++) len += enc.encodingLength(list[i]) - return len -} - -function encodeList (list, enc, buf, offset) { - for (let i = 0; i < list.length; i++) { - enc.encode(list[i], buf, offset) - offset += enc.encode.bytes - } - return offset -} - -function decodeList (list, enc, buf, offset) { - for (let i = 0; i < list.length; i++) { - list[i] = enc.decode(buf, offset) - offset += enc.decode.bytes - } - return offset -} diff --git a/build/node_modules/dns-packet/opcodes.js b/build/node_modules/dns-packet/opcodes.js deleted file mode 100644 index 32b0a1b4..00000000 --- a/build/node_modules/dns-packet/opcodes.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict' - -/* - * Traditional DNS header OPCODEs (4-bits) defined by IANA in - * https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-5 - */ - -exports.toString = function (opcode) { - switch (opcode) { - case 0: return 'QUERY' - case 1: return 'IQUERY' - case 2: return 'STATUS' - case 3: return 'OPCODE_3' - case 4: return 'NOTIFY' - case 5: return 'UPDATE' - case 6: return 'OPCODE_6' - case 7: return 'OPCODE_7' - case 8: return 'OPCODE_8' - case 9: return 'OPCODE_9' - case 10: return 'OPCODE_10' - case 11: return 'OPCODE_11' - case 12: return 'OPCODE_12' - case 13: return 'OPCODE_13' - case 14: return 'OPCODE_14' - case 15: return 'OPCODE_15' - } - return 'OPCODE_' + opcode -} - -exports.toOpcode = function (code) { - switch (code.toUpperCase()) { - case 'QUERY': return 0 - case 'IQUERY': return 1 - case 'STATUS': return 2 - case 'OPCODE_3': return 3 - case 'NOTIFY': return 4 - case 'UPDATE': return 5 - case 'OPCODE_6': return 6 - case 'OPCODE_7': return 7 - case 'OPCODE_8': return 8 - case 'OPCODE_9': return 9 - case 'OPCODE_10': return 10 - case 'OPCODE_11': return 11 - case 'OPCODE_12': return 12 - case 'OPCODE_13': return 13 - case 'OPCODE_14': return 14 - case 'OPCODE_15': return 15 - } - return 0 -} diff --git a/build/node_modules/dns-packet/optioncodes.js b/build/node_modules/dns-packet/optioncodes.js deleted file mode 100644 index 0d66e059..00000000 --- a/build/node_modules/dns-packet/optioncodes.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict' - -exports.toString = function (type) { - switch (type) { - // list at - // https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11 - case 1: return 'LLQ' - case 2: return 'UL' - case 3: return 'NSID' - case 5: return 'DAU' - case 6: return 'DHU' - case 7: return 'N3U' - case 8: return 'CLIENT_SUBNET' - case 9: return 'EXPIRE' - case 10: return 'COOKIE' - case 11: return 'TCP_KEEPALIVE' - case 12: return 'PADDING' - case 13: return 'CHAIN' - case 14: return 'KEY_TAG' - case 26946: return 'DEVICEID' - } - if (type < 0) { - return null - } - return `OPTION_${type}` -} - -exports.toCode = function (name) { - if (typeof name === 'number') { - return name - } - if (!name) { - return -1 - } - switch (name.toUpperCase()) { - case 'OPTION_0': return 0 - case 'LLQ': return 1 - case 'UL': return 2 - case 'NSID': return 3 - case 'OPTION_4': return 4 - case 'DAU': return 5 - case 'DHU': return 6 - case 'N3U': return 7 - case 'CLIENT_SUBNET': return 8 - case 'EXPIRE': return 9 - case 'COOKIE': return 10 - case 'TCP_KEEPALIVE': return 11 - case 'PADDING': return 12 - case 'CHAIN': return 13 - case 'KEY_TAG': return 14 - case 'DEVICEID': return 26946 - case 'OPTION_65535': return 65535 - } - const m = name.match(/_(\d+)$/) - if (m) { - return parseInt(m[1], 10) - } - return -1 -} diff --git a/build/node_modules/dns-packet/package.json b/build/node_modules/dns-packet/package.json deleted file mode 100644 index 9b79b96a..00000000 --- a/build/node_modules/dns-packet/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "dns-packet", - "version": "5.6.1", - "description": "An abstract-encoding compliant module for encoding / decoding DNS packets", - "author": "Mathias Buus", - "license": "MIT", - "repository": "mafintosh/dns-packet", - "homepage": "https://github.com/mafintosh/dns-packet", - "engines": { - "node": ">=6" - }, - "scripts": { - "clean": "rm -rf coverage .nyc_output/", - "lint": "eslint --color *.js examples/*.js", - "pretest": "npm run lint", - "test": "tape test.js", - "coverage": "nyc -r html npm test" - }, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "devDependencies": { - "eslint": "^5.14.1", - "eslint-config-standard": "^12.0.0", - "eslint-plugin-import": "^2.16.0", - "eslint-plugin-node": "^8.0.1", - "eslint-plugin-promise": "^4.0.1", - "eslint-plugin-standard": "^4.0.0", - "tape": "^4.10.1" - }, - "keywords": [ - "dns", - "packet", - "encodings", - "encoding", - "encoder", - "abstract-encoding" - ], - "files": [ - "index.js", - "types.js", - "rcodes.js", - "opcodes.js", - "classes.js", - "optioncodes.js" - ] -} diff --git a/build/node_modules/dns-packet/rcodes.js b/build/node_modules/dns-packet/rcodes.js deleted file mode 100644 index 0500887c..00000000 --- a/build/node_modules/dns-packet/rcodes.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict' - -/* - * Traditional DNS header RCODEs (4-bits) defined by IANA in - * https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml - */ - -exports.toString = function (rcode) { - switch (rcode) { - case 0: return 'NOERROR' - case 1: return 'FORMERR' - case 2: return 'SERVFAIL' - case 3: return 'NXDOMAIN' - case 4: return 'NOTIMP' - case 5: return 'REFUSED' - case 6: return 'YXDOMAIN' - case 7: return 'YXRRSET' - case 8: return 'NXRRSET' - case 9: return 'NOTAUTH' - case 10: return 'NOTZONE' - case 11: return 'RCODE_11' - case 12: return 'RCODE_12' - case 13: return 'RCODE_13' - case 14: return 'RCODE_14' - case 15: return 'RCODE_15' - } - return 'RCODE_' + rcode -} - -exports.toRcode = function (code) { - switch (code.toUpperCase()) { - case 'NOERROR': return 0 - case 'FORMERR': return 1 - case 'SERVFAIL': return 2 - case 'NXDOMAIN': return 3 - case 'NOTIMP': return 4 - case 'REFUSED': return 5 - case 'YXDOMAIN': return 6 - case 'YXRRSET': return 7 - case 'NXRRSET': return 8 - case 'NOTAUTH': return 9 - case 'NOTZONE': return 10 - case 'RCODE_11': return 11 - case 'RCODE_12': return 12 - case 'RCODE_13': return 13 - case 'RCODE_14': return 14 - case 'RCODE_15': return 15 - } - return 0 -} diff --git a/build/node_modules/dns-packet/types.js b/build/node_modules/dns-packet/types.js deleted file mode 100644 index 3cd78bd5..00000000 --- a/build/node_modules/dns-packet/types.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict' - -exports.toString = function (type) { - switch (type) { - case 1: return 'A' - case 10: return 'NULL' - case 28: return 'AAAA' - case 18: return 'AFSDB' - case 42: return 'APL' - case 257: return 'CAA' - case 60: return 'CDNSKEY' - case 59: return 'CDS' - case 37: return 'CERT' - case 5: return 'CNAME' - case 49: return 'DHCID' - case 32769: return 'DLV' - case 39: return 'DNAME' - case 48: return 'DNSKEY' - case 43: return 'DS' - case 55: return 'HIP' - case 13: return 'HINFO' - case 45: return 'IPSECKEY' - case 25: return 'KEY' - case 36: return 'KX' - case 29: return 'LOC' - case 15: return 'MX' - case 35: return 'NAPTR' - case 2: return 'NS' - case 47: return 'NSEC' - case 50: return 'NSEC3' - case 51: return 'NSEC3PARAM' - case 12: return 'PTR' - case 46: return 'RRSIG' - case 17: return 'RP' - case 24: return 'SIG' - case 6: return 'SOA' - case 99: return 'SPF' - case 33: return 'SRV' - case 44: return 'SSHFP' - case 32768: return 'TA' - case 249: return 'TKEY' - case 52: return 'TLSA' - case 250: return 'TSIG' - case 16: return 'TXT' - case 252: return 'AXFR' - case 251: return 'IXFR' - case 41: return 'OPT' - case 255: return 'ANY' - } - return 'UNKNOWN_' + type -} - -exports.toType = function (name) { - switch (name.toUpperCase()) { - case 'A': return 1 - case 'NULL': return 10 - case 'AAAA': return 28 - case 'AFSDB': return 18 - case 'APL': return 42 - case 'CAA': return 257 - case 'CDNSKEY': return 60 - case 'CDS': return 59 - case 'CERT': return 37 - case 'CNAME': return 5 - case 'DHCID': return 49 - case 'DLV': return 32769 - case 'DNAME': return 39 - case 'DNSKEY': return 48 - case 'DS': return 43 - case 'HIP': return 55 - case 'HINFO': return 13 - case 'IPSECKEY': return 45 - case 'KEY': return 25 - case 'KX': return 36 - case 'LOC': return 29 - case 'MX': return 15 - case 'NAPTR': return 35 - case 'NS': return 2 - case 'NSEC': return 47 - case 'NSEC3': return 50 - case 'NSEC3PARAM': return 51 - case 'PTR': return 12 - case 'RRSIG': return 46 - case 'RP': return 17 - case 'SIG': return 24 - case 'SOA': return 6 - case 'SPF': return 99 - case 'SRV': return 33 - case 'SSHFP': return 44 - case 'TA': return 32768 - case 'TKEY': return 249 - case 'TLSA': return 52 - case 'TSIG': return 250 - case 'TXT': return 16 - case 'AXFR': return 252 - case 'IXFR': return 251 - case 'OPT': return 41 - case 'ANY': return 255 - case '*': return 255 - } - if (name.toUpperCase().startsWith('UNKNOWN_')) return parseInt(name.slice(8)) - return 0 -} diff --git a/build/node_modules/doctrine/CHANGELOG.md b/build/node_modules/doctrine/CHANGELOG.md deleted file mode 100644 index 6141026e..00000000 --- a/build/node_modules/doctrine/CHANGELOG.md +++ /dev/null @@ -1,101 +0,0 @@ -v3.0.0 - November 9, 2018 - -* 0b5a8c7 Breaking: drop support for Node < 6 (#223) (Kai Cataldo) -* a05e9f2 Upgrade: eslint-release@1.0.0 (#220) (Teddy Katz) -* 36ed027 Chore: upgrade coveralls to ^3.0.1 (#213) (Teddy Katz) -* 8667e34 Upgrade: eslint-release@^0.11.1 (#210) (Kevin Partington) - -v2.1.0 - January 6, 2018 - -* 827f314 Update: support node ranges (fixes #89) (#190) (Teddy Katz) - -v2.0.2 - November 25, 2017 - -* 5049ee3 Fix: Remove redundant LICENSE/README names from files (#203) (Kevin Partington) - -v2.0.1 - November 10, 2017 - -* 009f33d Fix: Making sure union type stringification respects compact flag (#199) (Mitermayer Reis) -* 19da935 Use native String.prototype.trim instead of a custom implementation. (#201) (Rouven Weßling) -* e3a011b chore: add mocha.opts to restore custom mocha config (Jason Kurian) -* d888200 chore: adds nyc and a newer version of mocha to accurately report coverage (Jason Kurian) -* 6b210a8 fix: support type expression for @this tag (fixes #181) (#182) (Frédéric Junod) -* 1c4a4c7 fix: Allow array indexes in names (#193) (Tom MacWright) -* 9aed54d Fix incorrect behavior when arrow functions are used as default values (#189) (Gaurab Paul) -* 9efb6ca Upgrade: Use Array.isArray instead of isarray package (#195) (medanat) - -v2.0.0 - November 15, 2016 - -* 7d7c5f1 Breaking: Re-license to Apache 2 (fixes #176) (#178) (Nicholas C. Zakas) -* 5496132 Docs: Update license copyright (Nicholas C. Zakas) - -v1.5.0 - October 13, 2016 - -* e33c6bb Update: Add support for BooleanLiteralType (#173) (Erik Arvidsson) - -v1.4.0 - September 13, 2016 - -* d7426e5 Update: add ability to parse optional properties in typedefs (refs #5) (#174) (ikokostya) - -v1.3.0 - August 22, 2016 - -* 12c7ad9 Update: Add support for numeric and string literal types (fixes #156) (#172) (Andrew Walter) - -v1.2.3 - August 16, 2016 - -* b96a884 Build: Add CI release script (Nicholas C. Zakas) -* 8d9b3c7 Upgrade: Upgrade esutils to v2.0.2 (fixes #170) (#171) (Emeegeemee) - -v1.2.2 - May 19, 2016 - -* ebe0b08 Fix: Support case insensitive tags (fixes #163) (#164) (alberto) -* 8e6d81e Chore: Remove copyright and license from headers (Nicholas C. Zakas) -* 79035c6 Chore: Include jQuery Foundation copyright (Nicholas C. Zakas) -* 06910a7 Fix: Preserve whitespace in default param string values (fixes #157) (Kai Cataldo) - -v1.2.1 - March 29, 2016 - -* 1f54014 Fix: allow hyphens in names (fixes #116) (Kai Cataldo) -* bbee469 Docs: Add issue template (Nicholas C. Zakas) - -v1.2.0 - February 19, 2016 - -* 18136c5 Build: Cleanup build system (Nicholas C. Zakas) -* b082f85 Update: Add support for slash in namepaths (fixes #100) (Ryan Duffy) -* def53a2 Docs: Fix typo in option lineNumbers (Daniel Tschinder) -* e2cbbc5 Update: Bump isarray to v1.0.0 (Shinnosuke Watanabe) -* ae07aa8 Fix: Allow whitespace in optional param with default value (fixes #141) (chris) - -v1.1.0 - January 6, 2016 - -* Build: Switch to Makefile.js (Nicholas C. Zakas) -* New: support name expression for @this tag (fixes #143) (Tim Schaub) -* Build: Update ESLint settings (Nicholas C. Zakas) - -v1.0.0 - December 21, 2015 - -* New: parse caption tags in examples into separate property. (fixes #131) (Tom MacWright) - -v0.7.2 - November 27, 2015 - -* Fix: Line numbers for some tags (fixes #138) Fixing issue where input was not consumed via advance() but was skipped when parsing tags resulting in sometimes incorrect reported lineNumber. (TEHEK) -* Build: Add missing linefix package (Nicholas C. Zakas) - -v0.7.1 - November 13, 2015 - -* Update: Begin switch to Makefile.js (Nicholas C. Zakas) -* Fix: permit return tag without type (fixes #136) (Tom MacWright) -* Fix: package.json homepage field (Bogdan Chadkin) -* Fix: Parse array default syntax. Fixes #133 (Tom MacWright) -* Fix: Last tag always has \n in the description (fixes #87) (Burak Yigit Kaya) -* Docs: Add changelog (Nicholas C. Zakas) - -v0.7.0 - September 21, 2015 - -* Docs: Update README with new info (fixes #127) (Nicholas C. Zakas) -* Fix: Parsing fix for param with arrays and properties (fixes #111) (Gyandeep Singh) -* Build: Add travis build (fixes #123) (Gyandeep Singh) -* Fix: Parsing of parameter name without a type (fixes #120) (Gyandeep Singh) -* New: added preserveWhitespace option (Aleks Totic) -* New: Add "files" entry to only deploy select files (Rob Loach) -* New: Add support and tests for typedefs. Refs #5 (Tom MacWright) diff --git a/build/node_modules/doctrine/LICENSE b/build/node_modules/doctrine/LICENSE deleted file mode 100644 index 3e8ba72f..00000000 --- a/build/node_modules/doctrine/LICENSE +++ /dev/null @@ -1,177 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS diff --git a/build/node_modules/doctrine/LICENSE.closure-compiler b/build/node_modules/doctrine/LICENSE.closure-compiler deleted file mode 100644 index d6456956..00000000 --- a/build/node_modules/doctrine/LICENSE.closure-compiler +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/doctrine/LICENSE.esprima b/build/node_modules/doctrine/LICENSE.esprima deleted file mode 100644 index 3e580c35..00000000 --- a/build/node_modules/doctrine/LICENSE.esprima +++ /dev/null @@ -1,19 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/doctrine/README.md b/build/node_modules/doctrine/README.md deleted file mode 100644 index 26fad18b..00000000 --- a/build/node_modules/doctrine/README.md +++ /dev/null @@ -1,165 +0,0 @@ -[![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![Downloads][downloads-image]][downloads-url] -[![Join the chat at https://gitter.im/eslint/doctrine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/doctrine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -# Doctrine - -Doctrine is a [JSDoc](http://usejsdoc.org) parser that parses documentation comments from JavaScript (you need to pass in the comment, not a whole JavaScript file). - -## Installation - -You can install Doctrine using [npm](https://npmjs.com): - -``` -$ npm install doctrine --save-dev -``` - -Doctrine can also be used in web browsers using [Browserify](http://browserify.org). - -## Usage - -Require doctrine inside of your JavaScript: - -```js -var doctrine = require("doctrine"); -``` - -### parse() - -The primary method is `parse()`, which accepts two arguments: the JSDoc comment to parse and an optional options object. The available options are: - -* `unwrap` - set to `true` to delete the leading `/**`, any `*` that begins a line, and the trailing `*/` from the source text. Default: `false`. -* `tags` - an array of tags to return. When specified, Doctrine returns only tags in this array. For example, if `tags` is `["param"]`, then only `@param` tags will be returned. Default: `null`. -* `recoverable` - set to `true` to keep parsing even when syntax errors occur. Default: `false`. -* `sloppy` - set to `true` to allow optional parameters to be specified in brackets (`@param {string} [foo]`). Default: `false`. -* `lineNumbers` - set to `true` to add `lineNumber` to each node, specifying the line on which the node is found in the source. Default: `false`. -* `range` - set to `true` to add `range` to each node, specifying the start and end index of the node in the original comment. Default: `false`. - -Here's a simple example: - -```js -var ast = doctrine.parse( - [ - "/**", - " * This function comment is parsed by doctrine", - " * @param {{ok:String}} userName", - "*/" - ].join('\n'), { unwrap: true }); -``` - -This example returns the following AST: - - { - "description": "This function comment is parsed by doctrine", - "tags": [ - { - "title": "param", - "description": null, - "type": { - "type": "RecordType", - "fields": [ - { - "type": "FieldType", - "key": "ok", - "value": { - "type": "NameExpression", - "name": "String" - } - } - ] - }, - "name": "userName" - } - ] - } - -See the [demo page](http://eslint.org/doctrine/demo/) more detail. - -## Team - -These folks keep the project moving and are resources for help: - -* Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) - project lead -* Yusuke Suzuki ([@constellation](https://github.com/constellation)) - reviewer - -## Contributing - -Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/doctrine/issues). - -## Frequently Asked Questions - -### Can I pass a whole JavaScript file to Doctrine? - -No. Doctrine can only parse JSDoc comments, so you'll need to pass just the JSDoc comment to Doctrine in order to work. - - -### License - -#### doctrine - -Copyright JS Foundation and other contributors, https://js.foundation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -#### esprima - -some of functions is derived from esprima - -Copyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about) - (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -#### closure-compiler - -some of extensions is derived from closure-compiler - -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - - -### Where to ask for help? - -Join our [Chatroom](https://gitter.im/eslint/doctrine) - -[npm-image]: https://img.shields.io/npm/v/doctrine.svg?style=flat-square -[npm-url]: https://www.npmjs.com/package/doctrine -[travis-image]: https://img.shields.io/travis/eslint/doctrine/master.svg?style=flat-square -[travis-url]: https://travis-ci.org/eslint/doctrine -[coveralls-image]: https://img.shields.io/coveralls/eslint/doctrine/master.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/eslint/doctrine?branch=master -[downloads-image]: http://img.shields.io/npm/dm/doctrine.svg?style=flat-square -[downloads-url]: https://www.npmjs.com/package/doctrine diff --git a/build/node_modules/doctrine/package.json b/build/node_modules/doctrine/package.json deleted file mode 100644 index b6609986..00000000 --- a/build/node_modules/doctrine/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "doctrine", - "description": "JSDoc parser", - "homepage": "https://github.com/eslint/doctrine", - "main": "lib/doctrine.js", - "version": "3.0.0", - "engines": { - "node": ">=6.0.0" - }, - "directories": { - "lib": "./lib" - }, - "files": [ - "lib" - ], - "maintainers": [ - { - "name": "Nicholas C. Zakas", - "email": "nicholas+npm@nczconsulting.com", - "web": "https://www.nczonline.net" - }, - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "https://github.com/Constellation" - } - ], - "repository": "eslint/doctrine", - "devDependencies": { - "coveralls": "^3.0.1", - "dateformat": "^1.0.11", - "eslint": "^1.10.3", - "eslint-release": "^1.0.0", - "linefix": "^0.1.1", - "mocha": "^3.4.2", - "npm-license": "^0.3.1", - "nyc": "^10.3.2", - "semver": "^5.0.3", - "shelljs": "^0.5.3", - "shelljs-nodecli": "^0.1.1", - "should": "^5.0.1" - }, - "license": "Apache-2.0", - "scripts": { - "pretest": "npm run lint", - "test": "nyc mocha", - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "lint": "eslint lib/", - "generate-release": "eslint-generate-release", - "generate-alpharelease": "eslint-generate-prerelease alpha", - "generate-betarelease": "eslint-generate-prerelease beta", - "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" - }, - "dependencies": { - "esutils": "^2.0.2" - } -} diff --git a/build/node_modules/dom-converter/LICENSE b/build/node_modules/dom-converter/LICENSE deleted file mode 100644 index 0641f709..00000000 --- a/build/node_modules/dom-converter/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Aria Minaei - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/dom-converter/README.md b/build/node_modules/dom-converter/README.md deleted file mode 100644 index ccc68751..00000000 --- a/build/node_modules/dom-converter/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Converts bare objects to DOM objects, compatible with htmlparser2's DOM objects. - -This is useful when you want to work with DOM without having to compose/parse html. \ No newline at end of file diff --git a/build/node_modules/dom-converter/package.json b/build/node_modules/dom-converter/package.json deleted file mode 100644 index cbf6f404..00000000 --- a/build/node_modules/dom-converter/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "dom-converter", - "version": "0.2.0", - "description": "converts bare objects to DOM objects or xml representations", - "main": "lib/domConverter.js", - "dependencies": { - "utila": "~0.4" - }, - "devDependencies": { - "chai": "^1.10.0", - "chai-changes": "^1.3.4", - "chai-fuzzy": "^1.4.0", - "coffee-script": "^1.8.0", - "jitter": "^1.3.0", - "mocha": "^2.0.1", - "mocha-pretty-spec-reporter": "0.1.0-beta.1", - "sinon": "^1.12.2", - "sinon-chai": "^2.6.0" - }, - "scripts": { - "test": "mocha \"test/**/*.coffee\"", - "test:watch": "mocha \"test/**/*.coffee\" --watch", - "compile": "coffee --bare --compile --output ./lib ./src", - "compile:watch": "jitter src lib -b", - "watch": "npm run compile:watch & npm run test:watch", - "winwatch": "start/b npm run compile:watch & npm run test:watch", - "prepublish": "npm run compile" - }, - "author": "Aria Minaei", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/AriaMinaei/dom-converter" - }, - "bugs": { - "url": "https://github.com/AriaMinaei/dom-converter/issues" - } -} diff --git a/build/node_modules/dom-serializer/LICENSE b/build/node_modules/dom-serializer/LICENSE deleted file mode 100644 index 3d241a8d..00000000 --- a/build/node_modules/dom-serializer/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -License - -(The MIT License) - -Copyright (c) 2014 The cheeriojs contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/dom-serializer/README.md b/build/node_modules/dom-serializer/README.md deleted file mode 100644 index 9ef0eecc..00000000 --- a/build/node_modules/dom-serializer/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# dom-serializer [![Build Status](https://travis-ci.com/cheeriojs/dom-serializer.svg?branch=master)](https://travis-ci.com/cheeriojs/dom-serializer) - -Renders a [domhandler](https://github.com/fb55/domhandler) DOM node or an array of domhandler DOM nodes to a string. - -```js -import render from "dom-serializer"; - -// OR - -const render = require("dom-serializer").default; -``` - -# API - -## `render` - -▸ **render**(`node`: Node \| Node[], `options?`: [_Options_](#Options)): _string_ - -Renders a DOM node or an array of DOM nodes to a string. - -Can be thought of as the equivalent of the `outerHTML` of the passed node(s). - -#### Parameters: - -| Name | Type | Default value | Description | -| :-------- | :--------------------------------- | :------------ | :----------------------------- | -| `node` | Node \| Node[] | - | Node to be rendered. | -| `options` | [_DomSerializerOptions_](#Options) | {} | Changes serialization behavior | - -**Returns:** _string_ - -## Options - -### `decodeEntities` - -• `Optional` **decodeEntities**: _boolean_ - -Encode characters that are either reserved in HTML or XML, or are outside of the ASCII range. - -**`default`** true - ---- - -### `emptyAttrs` - -• `Optional` **emptyAttrs**: _boolean_ - -Print an empty attribute's value. - -**`default`** xmlMode - -**`example`** With emptyAttrs: false: <input checked> - -**`example`** With emptyAttrs: true: <input checked=""> - ---- - -### `selfClosingTags` - -• `Optional` **selfClosingTags**: _boolean_ - -Print self-closing tags for tags without contents. - -**`default`** xmlMode - -**`example`** With selfClosingTags: false: <foo></foo> - -**`example`** With selfClosingTags: true: <foo /> - ---- - -### `xmlMode` - -• `Optional` **xmlMode**: _boolean_ \| _"foreign"_ - -Treat the input as an XML document; enables the `emptyAttrs` and `selfClosingTags` options. - -If the value is `"foreign"`, it will try to correct mixed-case attribute names. - -**`default`** false - ---- - -## Ecosystem - -| Name | Description | -| ------------------------------------------------------------- | ------------------------------------------------------- | -| [htmlparser2](https://github.com/fb55/htmlparser2) | Fast & forgiving HTML/XML parser | -| [domhandler](https://github.com/fb55/domhandler) | Handler for htmlparser2 that turns documents into a DOM | -| [domutils](https://github.com/fb55/domutils) | Utilities for working with domhandler's DOM | -| [css-select](https://github.com/fb55/css-select) | CSS selector engine, compatible with domhandler's DOM | -| [cheerio](https://github.com/cheeriojs/cheerio) | The jQuery API for domhandler's DOM | -| [dom-serializer](https://github.com/cheeriojs/dom-serializer) | Serializer for domhandler's DOM | - ---- - -LICENSE: MIT diff --git a/build/node_modules/dom-serializer/package.json b/build/node_modules/dom-serializer/package.json deleted file mode 100644 index 219922d6..00000000 --- a/build/node_modules/dom-serializer/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "dom-serializer", - "version": "1.4.1", - "description": "render domhandler DOM nodes to a string", - "author": "Felix Boehm ", - "sideEffects": false, - "keywords": [ - "html", - "xml", - "render" - ], - "repository": { - "type": "git", - "url": "git://github.com/cheeriojs/dom-renderer.git" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "devDependencies": { - "@types/jest": "^26.0.23", - "@types/node": "^15.3.0", - "@typescript-eslint/eslint-plugin": "^4.23.0", - "@typescript-eslint/parser": "^4.23.0", - "cheerio": "^1.0.0-rc.9", - "coveralls": "^3.0.5", - "eslint": "^7.26.0", - "eslint-config-prettier": "^8.3.0", - "htmlparser2": "^6.1.0", - "jest": "^26.0.1", - "prettier": "^2.3.0", - "ts-jest": "^26.5.6", - "typescript": "^4.0.2" - }, - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "eslint src", - "format": "prettier --write '**/*.{ts,md,json}'", - "build": "tsc", - "prepare": "npm run build" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "funding": "https://github.com/cheeriojs/dom-serializer?sponsor=1", - "license": "MIT" -} diff --git a/build/node_modules/domelementtype/LICENSE b/build/node_modules/domelementtype/LICENSE deleted file mode 100644 index c464f863..00000000 --- a/build/node_modules/domelementtype/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) Felix Böhm -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/domelementtype/package.json b/build/node_modules/domelementtype/package.json deleted file mode 100644 index f23933a6..00000000 --- a/build/node_modules/domelementtype/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "domelementtype", - "version": "2.3.0", - "description": "all the types of nodes in htmlparser2's dom", - "author": "Felix Boehm ", - "license": "BSD-2-Clause", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "sideEffects": false, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "module": "lib/esm/index.js", - "exports": { - "require": "./lib/index.js", - "import": "./lib/esm/index.js" - }, - "files": [ - "lib/**/*" - ], - "repository": { - "type": "git", - "url": "git://github.com/fb55/domelementtype.git" - }, - "keywords": [ - "dom", - "element", - "types", - "htmlparser2" - ], - "scripts": { - "test": "npm run lint && prettier --check **/*.{ts,json,md}", - "lint": "eslint src", - "format": "prettier --write **/*.{ts,json,md}", - "build": "npm run build:cjs && npm run build:esm", - "build:cjs": "tsc", - "build:esm": "tsc --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json", - "prepare": "npm run build" - }, - "prettier": { - "tabWidth": 4 - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", - "eslint": "^8.12.0", - "eslint-config-prettier": "^8.5.0", - "prettier": "^2.6.2", - "typescript": "^4.6.3" - } -} diff --git a/build/node_modules/domelementtype/readme.md b/build/node_modules/domelementtype/readme.md deleted file mode 100644 index 4eadc07e..00000000 --- a/build/node_modules/domelementtype/readme.md +++ /dev/null @@ -1 +0,0 @@ -All the types of nodes in htmlparser2's DOM. diff --git a/build/node_modules/domhandler/LICENSE b/build/node_modules/domhandler/LICENSE deleted file mode 100644 index c464f863..00000000 --- a/build/node_modules/domhandler/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) Felix Böhm -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/domhandler/package.json b/build/node_modules/domhandler/package.json deleted file mode 100644 index 2afb4209..00000000 --- a/build/node_modules/domhandler/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "domhandler", - "version": "4.3.1", - "description": "Handler for htmlparser2 that turns pages into a dom", - "author": "Felix Boehm ", - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - }, - "license": "BSD-2-Clause", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "sideEffects": false, - "files": [ - "lib" - ], - "scripts": { - "test": "npm run test:jest && npm run lint", - "test:jest": "jest", - "lint": "eslint src", - "format": "prettier --write '**/*.{ts,md,json}'", - "build": "tsc", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/domhandler.git" - }, - "keywords": [ - "dom", - "htmlparser2" - ], - "engines": { - "node": ">= 4" - }, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "devDependencies": { - "@types/jest": "^27.4.1", - "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.15.0", - "@typescript-eslint/parser": "^5.15.0", - "eslint": "^8.11.0", - "eslint-config-prettier": "^8.5.0", - "htmlparser2": "^7.2.0", - "jest": "^27.5.1", - "prettier": "^2.6.0", - "ts-jest": "^27.1.3", - "typescript": "^4.6.2" - }, - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4 - } -} diff --git a/build/node_modules/domhandler/readme.md b/build/node_modules/domhandler/readme.md deleted file mode 100644 index 781eb380..00000000 --- a/build/node_modules/domhandler/readme.md +++ /dev/null @@ -1,163 +0,0 @@ -# domhandler [![Build Status](https://travis-ci.com/fb55/domhandler.svg?branch=master)](https://travis-ci.com/fb55/domhandler) - -The DOM handler creates a tree containing all nodes of a page. -The tree can be manipulated using the [domutils](https://github.com/fb55/domutils) -or [cheerio](https://github.com/cheeriojs/cheerio) libraries and -rendered using [dom-serializer](https://github.com/cheeriojs/dom-serializer) . - -## Usage - -```javascript -const handler = new DomHandler([ callback(err, dom), ] [ options ]); -// const parser = new Parser(handler[, options]); -``` - -Available options are described below. - -## Example - -```javascript -const { Parser } = require("htmlparser2"); -const { DomHandler } = require("domhandler"); -const rawHtml = - "Xyz "; -const handler = new DomHandler((error, dom) => { - if (error) { - // Handle error - } else { - // Parsing completed, do something - console.log(dom); - } -}); -const parser = new Parser(handler); -parser.write(rawHtml); -parser.end(); -``` - -Output: - -```javascript -[ - { - data: "Xyz ", - type: "text", - }, - { - type: "script", - name: "script", - attribs: { - language: "javascript", - }, - children: [ - { - data: "var foo = '';<", - type: "text", - }, - ], - }, - { - data: " - -## Table of contents - -- [Table of contents](#table-of-contents) -- [Highlights](#highlights) -- [Performance](#performance) -- [Usage](#usage) -- [Pre-processing lines](#pre-processing-lines) -- [Terms used](#terms-used) -- [Tokens](#tokens) - - [Tag Token](#tag-token) - - [Escaped Tag Token](#escaped-tag-token) - - [Raw Token](#raw-token) - - [Comment Token](#comment-token) - - [NewLine Token](#newline-token) - - [Mustache Token](#mustache-token) - - [Safe Mustache Token](#safe-mustache-token) - - [Escaped Mustache Token](#escaped-mustache-token) - - [Escaped Safe Mustache Token](#escaped-safe-mustache-token) -- [Properties](#properties) - - [BlockProp](#blockprop) - - [Prop](#prop) -- [Mustache expressions](#mustache-expressions) -- [Errors](#errors) -- [Example](#example) -- [Raised exceptions](#raised-exceptions) -- [Maintainers](#maintainers) - - - -## Highlights - -- Zero dependencies (Actually one dependency that is also to standardize edge errors). -- Just uses one regex statement. That also tested against [safe-regex](https://github.com/substack/safe-regex) for ReDOS -- Allows multiline expressions -- Collects line and columns for accurate stack traces. -- Detects for unclosed tags. -- Detects for unwrapped expressions and raises appropriate errors. - ---- - -## Performance - -Following measures are taken to keep the analysis performant. - -1. Only analyse markup that is detected as Edge whitelisted syntax. -2. Only analyse `tags`, that are passed to the tokenizer. Which means even if the syntax for tags is whitelisted, the tokeniser will analyse them if they are used by your app. -3. Do not analyse Javascript expression and leave that for [edge-parser](https://github.com/edge-js/parser). -4. Only uses one Regular expression. - ---- - -## Usage - -```js -import { Tokenizer } from 'edge-lexer' - -const template = `Hello {{ username }}` -const tags = { - if: { - block: true, - seekable: true, - }, -} - -// Filename is required to add it to error messages -const options = { - filename: 'welcome.edge', -} - -const tokenizer = new Tokenizer(template, tags, options) - -tokenizer.parse() -console.log(tokenizer.tokens) -``` - ---- - -## Pre-processing lines - -You can also pre-process lines before the tokenizer tokenizes them. - -```ts -const options = { - filename: 'welcome.edge', - onLine: (line: string) => { - // transform here and return new string value - return line - }, -} - -const tokenizer = new Tokenizer(template, {}, options) -``` - ---- - -## Terms used - -This guide makes use of the following terms to identify core pieces of the tokenizer. - -| Term | Token Type | Description | -| --------------------- | -------------- | ----------------------------------------------------------------------------------------------------- | -| Tag | tag | Tags are used to define logical blocks in the template engine. For example `if tag` or `include tag`. | -| Escaped Tag | e\_\_tag | Escaped tag, Edge will not evaluate it at runtime. | -| Mustache | mustache | Javascript expression wrapped in curly braces. `{{ }}` | -| Safe Mustache | s\_\_mustache | Safe mustache, that doesn't escape the output `{{{ }}}` | -| Escaped Mustache | e\_\_mustache | Mustache tag that is escaped | -| Escaped Safe Mustache | es\_\_mustache | Safe Mustache tag that is escaped | -| Raw | raw | A raw string, which has no meaning for the template engine | -| NewLine | newline | Newline | -| Comment | comment | Edge specific comment block. This will be ripped off in the output. | - ---- - -## Tokens - -Following is the list of Nodes returned by the tokenizer. - -#### Tag Token - -```js -{ - type: 'tag' - filename: 'eval.edge', - loc: { - start: { - line: 1, - col: 4 - }, - end: { - line: 1, - col: 13 - } - }, - properties: BlockProp, - children: [] -} -``` - -#### Escaped Tag Token - -```diff -{ -- type: 'tag', -+ type: 'e__tag', - filename: 'eval.edge', - loc: { - start: { - line: 1, - col: 4 - }, - end: { - line: 1, - col: 13 - } - }, - properties: BlockProp, - children: [] -} -``` - -#### Raw Token - -```js -{ - type: 'raw', - filename: 'eval.edge', - line: number, - value: string -} -``` - -#### Comment Token - -```js -{ - type: 'comment', - filename: 'eval.edge', - line: number, - value: string -} -``` - -#### NewLine Token - -```js -{ - type: 'newline', - line: number -} -``` - -#### Mustache Token - -```js -{ - type: 'mustache', - filename: 'eval.edge', - loc: { - start: { - line: 1, - col: 4 - }, - end: { - line: 1, - col: 13 - } - }, - properties: Prop -} -``` - -#### Safe Mustache Token - -```diff -{ -- type: 'mustache', -+ type: 's__mustache', - filename: 'eval.edge', - loc: { - start: { - line: 1, - col: 4 - }, - end: { - line: 1, - col: 13 - } - }, - properties: Prop -} -``` - -#### Escaped Mustache Token - -```diff -{ -- type: 'mustache', -+ type: 'e__mustache', - filename: 'eval.edge', - loc: { - start: { - line: 1, - col: 4 - }, - end: { - line: 1, - col: 13 - } - }, - properties: Prop -} -``` - -#### Escaped Safe Mustache Token - -```diff -{ -- type: 'mustache', -+ type: 'es__mustache', - filename: 'eval.edge', - loc: { - start: { - line: 1, - col: 4 - }, - end: { - line: 1, - col: 13 - } - }, - properties: Prop -} -``` - -| Key | Value | Description | -| ---------- | ------ | ------------------------------------------------------------------------------- | -| type | string | The type of node determines the behavior of node | -| loc | object | `loc` is only present for tags and mustache tokens | -| line | number | `line` is not present for tags and mustache tokens | -| properties | Prop | Meta data for the node. See [Properties](#properties) to more info | -| value | string | If token is a raw or comment token, then value is the string in the source file | -| children | array | Array of recursive nodes. Only exists, when token is a tag | - ---- - -## Properties - -The properties `Prop` is used to define meta data for a given Node. Nodes like `raw`, `comment` and `newline`, doesn't need any metadata. - -#### BlockProp - -The block prop is used by the `Block` node. The only difference from the regular `Prop` is the addition of `selfclosed` attribute. - -```js -{ - name: string - jsArg: string, - selfclosed: boolean -} -``` - -#### Prop - -```js -{ - jsArg: string, -} -``` - -| Key | Description | -| ---------- | ------------------------------------------------------------------------------------------------------------- | -| jsArg | The `jsArg` is the Javascript expression to evaluate. Whitespaces and newlines are preserved inside the jsArg | -| selfclosed | Whether or not the tag was `selfclosed` during usage. | - ---- - -## Mustache expressions - -For mustache nodes props, the `name` is the type of mustache expressions. The lexer supports 4 mustache expressions. - -**mustache** - -``` -{{ username }} -``` - -**e\_\_mustache (Escaped mustache)** - -The following expression is ignored by edge. Helpful when you want this expression to be parsed by a frontend template engine - -``` -@{{ username }} -``` - -**s\_\_mustache (Safe mustache)** - -The following expression output is considered HTML safe. - -``` -{{{ '

Hello world

' }}} -``` - -**es\_\_mustache (Escaped safe mustache)** - -``` -@{{{ '

Not touched

' }}} -``` - ---- - -## Errors - -Errors raised by the `lexer` are always an instance of [edge-error](https://github.com/edge-js/error) and will contain following properties. - -```js -error.message -error.line -error.col -error.filename -error.code -``` - ---- - -## Example - -```html -{{-- Show username when exists --}} @if(username) {{-- Wrap inside h2 --}} -

Hello {{ username }}

-@endif -``` - -The output of the above text will be - -```json -[ - { - "type": "comment", - "filename": "eval.edge", - "value": " Show username when exists ", - "loc": { - "start": { - "line": 1, - "col": 4 - }, - "end": { - "line": 1, - "col": 35 - } - } - }, - { - "type": "tag", - "filename": "eval.edge", - "properties": { - "name": "if", - "jsArg": "username", - "selfclosed": false - }, - "loc": { - "start": { - "line": 2, - "col": 4 - }, - "end": { - "line": 2, - "col": 13 - } - }, - "children": [ - { - "type": "newline", - "filename": "eval.edge", - "line": 2 - }, - { - "type": "comment", - "filename": "eval.edge", - "value": " Wrap inside h2 ", - "loc": { - "start": { - "line": 3, - "col": 4 - }, - "end": { - "line": 3, - "col": 24 - } - } - }, - { - "type": "newline", - "filename": "eval.edge", - "line": 3 - }, - { - "type": "raw", - "value": "

Hello ", - "filename": "eval.edge", - "line": 4 - }, - { - "type": "mustache", - "filename": "eval.edge", - "properties": { - "jsArg": " username " - }, - "loc": { - "start": { - "line": 4, - "col": 13 - }, - "end": { - "line": 4, - "col": 25 - } - } - }, - { - "type": "raw", - "value": "

", - "filename": "eval.edge", - "line": 4 - } - ] - } -] -``` - -## Raised exceptions - -Following the links to documented error codes raised by the lexer. - -- [E_CANNOT_SEEK_STATEMENT](errors/E_CANNOT_SEEK_STATEMENT.md) -- [E_UNCLOSED_CURLY_BRACE](errors/E_UNCLOSED_CURLY_BRACE.md) -- [E_UNCLOSED_PAREN](errors/E_UNCLOSED_PAREN.md) -- [E_UNCLOSED_TAG](errors/E_UNCLOSED_TAG.md) -- [E_UNOPENED_PAREN](errors/E_UNOPENED_PAREN.md) - -## Maintainers - -[Harminder virk](https://github.com/sponsors/thetutlage) - -[gh-workflow-image]: https://img.shields.io/github/workflow/status/edge-js/lexer/test?style=for-the-badge -[gh-workflow-url]: https://github.com/edge-js/lexer/actions/workflows/test.yml "Github action" - -[npm-image]: https://img.shields.io/npm/v/edge-lexer.svg?style=for-the-badge&logo=npm -[npm-url]: https://npmjs.org/package/edge-lexer 'npm' - -[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript - -[license-url]: LICENSE.md -[license-image]: https://img.shields.io/github/license/edge-js/lexer?style=for-the-badge - -[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/edge-js/lexer?label=Synk%20Vulnerabilities&style=for-the-badge -[synk-url]: https://snyk.io/test/github/edge-js/lexer?targetFile=package.json "synk" diff --git a/build/node_modules/edge-lexer/package.json b/build/node_modules/edge-lexer/package.json deleted file mode 100644 index cafda352..00000000 --- a/build/node_modules/edge-lexer/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "edge-lexer", - "version": "5.0.2", - "description": "Edge parser to convert text markup to lexer tokens", - "main": "build/index.js", - "files": [ - "build/src", - "build/index.d.ts", - "build/index.js" - ], - "exports": { - ".": "./build/index.js", - "./types": "./build/src/types.js", - "./utils": "./build/src/utils.js" - }, - "scripts": { - "pretest": "npm run lint", - "test": "npm run vscode:test", - "vscode:test": "node --require=@adonisjs/require-ts/build/register bin/test.ts", - "build": "npm run compile", - "clean": "del-cli build", - "compile": "npm run lint && npm run clean && tsc", - "release": "np", - "version": "npm run build", - "prepublishOnly": "npm run build", - "lint": "eslint . --ext=.ts", - "sync-labels": "github-label-sync --labels .github/labels.json edge-js/lexer", - "format": "prettier --write ." - }, - "keywords": [ - "edge", - "template", - "template-engine" - ], - "author": "virk", - "license": "MIT", - "devDependencies": { - "@adonisjs/require-ts": "^2.0.13", - "@commitlint/cli": "^17.4.4", - "@commitlint/config-conventional": "^17.4.4", - "@japa/assert": "^1.4.1", - "@japa/run-failed-tests": "^1.1.1", - "@japa/runner": "^2.5.1", - "@japa/spec-reporter": "^1.3.3", - "@types/dedent": "^0.7.0", - "@types/node": "^18.15.3", - "benchmark": "^2.1.4", - "dedent": "^0.7.0", - "del-cli": "^5.0.0", - "eslint": "^8.36.0", - "eslint-config-prettier": "^8.7.0", - "eslint-plugin-adonis": "^2.1.1", - "eslint-plugin-prettier": "^4.2.1", - "github-label-sync": "^2.3.1", - "husky": "^8.0.3", - "np": "^7.6.3", - "prettier": "^2.8.5", - "typescript": "^5.0.2" - }, - "dependencies": { - "edge-error": "^3.0.0" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/edge-js/lexer.git" - }, - "bugs": { - "url": "https://github.com/edge-js/lexer/issues" - }, - "homepage": "https://github.com/edge-js/lexer#readme", - "np": { - "contents": ".", - "message": "chore(release): %s", - "anyBranch": false - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "eslintConfig": { - "extends": [ - "plugin:adonis/typescriptPackage", - "prettier" - ], - "plugins": [ - "prettier" - ], - "rules": { - "prettier/prettier": [ - "error", - { - "endOfLine": "auto" - } - ] - } - }, - "eslintIgnore": [ - "build" - ], - "prettier": { - "trailingComma": "es5", - "semi": false, - "singleQuote": true, - "useTabs": false, - "quoteProps": "consistent", - "bracketSpacing": true, - "arrowParens": "always", - "printWidth": 100 - } -} diff --git a/build/node_modules/edge-parser/LICENSE.md b/build/node_modules/edge-parser/LICENSE.md deleted file mode 100644 index 1c194285..00000000 --- a/build/node_modules/edge-parser/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -# The MIT License - -Copyright 2022 Harminder Virk, contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/edge-parser/README.md b/build/node_modules/edge-parser/README.md deleted file mode 100644 index ca177622..00000000 --- a/build/node_modules/edge-parser/README.md +++ /dev/null @@ -1,428 +0,0 @@ -
- -# Edge Parser -> Parser to convert edge templates to invokable functions - -[![gh-workflow-image]][gh-workflow-url] [![npm-image]][npm-url] ![][typescript-image] [![license-image]][license-url] [![synk-image]][synk-url] - - - - -## Table of contents - -- [Table of contents](#table-of-contents) -- [Usage](#usage) -- [Parser API](#parser-api) - - [generateAST(jsExpression, lexerLoc, filename)](#generateastjsexpression-lexerloc-filename) - - [transformAst(acornAst, filename)](#transformastacornast-filename) - - [tokenize (template, options: { filename })](#tokenize-template-options--filename-) - - [stringify(expression)](#stringifyexpression) - - [processToken(token, buffer)](#processtokentoken-buffer) -- [Supported Expressions](#supported-expressions) - - [Identifier](#identifier) - - [Literal](#literal) - - [ArrayExpression](#arrayexpression) - - [ObjectExpression](#objectexpression) - - [UnaryExpression](#unaryexpression) - - [BinaryExpression](#binaryexpression) - - [LogicalExpression](#logicalexpression) - - [MemberExpression](#memberexpression) - - [ConditionalExpression](#conditionalexpression) - - [CallExpression](#callexpression) - - [SequenceExpression](#sequenceexpression) - - [TemplateLiteral](#templateliteral) - - [ArrowFunctionExpression](#arrowfunctionexpression) - - [AwaitExpression](#awaitexpression) - - [FunctionDeclaration](#functiondeclaration) - - [BlockStatement](#blockstatement) - - [ChainExpression](#chainexpression) - - - -This repo is the **parser to convert edge templates** to a self invoked Javascript function. - -## Usage - -Install the package from npm registry as follows: - -```sh -npm i edge-parser - -# yarn -yarn add edge-parser -``` - -and then use it as follows - -```js -import { Parser, EdgeBuffer, Stack } from 'edge-parser' - -const filename = 'eval.edge' -const statePropertyName = 'state' -const escapeCallPath = 'escape' -const outputVar = 'out' -const rethrowCallPath = 'reThrow' - -const parser = new Parser({}, new Stack(), { - statePropertyName, - escapeCallPath, -}) - -const buffer = new EdgeBuffer(filename, { outputVar, rethrowCallPath }) - -parser - .tokenize('Hello {{ username }}', { filename }) - .forEach((token) => parser.processToken(token, buffer)) -``` - -- All the first set of `const` declarations are the config values that impacts the compiled output. - - `filename` is required to ensure that exceptions stack traces point back to the correct filename. - - `statePropertyName` is the variable name from which the values should be accessed. For example: `{{ username }}` will be compiled as `state.username`. Leave it to empty, if state is not nested inside an object. - - `escapeCallPath` Reference to the `escape` method for escaping interpolation values. For example: `{{ username }}` will be compiled as `escape(state.username)`. The `escape` method should escape only strings and return the other data types as it is. - - `outputVar` is the variable name that holds the output of the compiled template. - - `rethrowCallPath` Reference to the `reThrow` method to raise the template exceptions with the current `$filename` and `$lineNumber`. Check the following compiled output to see how this function is called. - -**Compiled output** - -```js -let out = '' -let $lineNumber = 1 -let $filename = 'eval.edge' -try { - out += 'Hello ' - out += `${escape(state.username)}` -} catch (error) { - reThrow(error, $filename, $lineNumber) -} -return out -``` - -You can wrap the compiled output inside a function and invoke it as follows - -```ts -/** - * Convert string to a function - */ -const fn = new Function('', `return function template (state, escape, reThrow) { ${output} }`)() - -/** - * Template state - */ -const state = { username: 'virk' } - -/** - * Escape function - */ -function escape(value: any) { - return value -} - -/** - * Rethrow function - */ -function reThrow(error: Error) { - throw error -} - -console.log(fn(state, escape, reThrow)) -``` - -## Parser API - -Along with parsing the main template, the parser also exposes the API, that tags can use to selectively parse the content of a tag. - -#### generateAST(jsExpression, lexerLoc, filename) - -Parses a string as a Javascript expression. The output is a valid [Estree expression](https://github.com/estree/estree) - -The following example returns a [BinaryExpression](https://astexplorer.net/#/gist/0b6250a81804270a026fe39e3bc33fb6/latest) - -```ts -const loc = { - start: { line: 1, col: 1 }, - end: { line: 1, col: 1 }, -} -const filename = 'eval.edge' - -parser.utils.generateAST('2 + 2', loc, filename) -``` - -#### transformAst(acornAst, filename) - -Transform the acorn AST and make it compatible with Edge runtime. This method mutates the inner nodes of the original AST. - -```ts -const loc = { - start: { line: 1, col: 1 }, - end: { line: 1, col: 1 }, -} -const filename = 'eval.edge' - -parser.utils.transformAst(parser.utils.generateAST('2 + 2', loc, filename), filename) -``` - -#### tokenize (template, options: { filename }) - -Returns an array of [lexer tokens](https://github.com/edge-js/lexer) for the given template. The method is a shortcut to self import the lexer module and then generating tokens. - -```ts -const tokens = parser.tokenize('Hello {{ username }}', { - filename: 'eval.edge', -}) -``` - -**Output** - -```json -[ - { - "type": "raw", - "line": 1, - "value": "Hello " - }, - { - "type": "mustache", - "filename": "eval.edge", - "loc": { - "start": { - "line": 1, - "col": 8 - }, - "end": { - "line": 1, - "col": 20 - } - }, - "properties": { - "jsArg": " username " - } - } -] -``` - -#### stringify(expression) - -Convert edge or acorn expression back to a string. This is helpful, when you mutate some nodes inside the expression and now want a valid Javascript string out of it. - -```ts -const expression = parser.utils.generateAST( - '2 + 2', - { - start: { line: 1, col: 1 }, - end: { line: 1, col: 1 }, - }, - 'eval.edge' -) - -expression.left.value = 3 -parser.utils.stringify(expression) // returns 3 + 2 -``` - -#### processToken(token, buffer) - -You will often find yourself using this method as a tag author, when you want to recursively process all children of your tag - -```ts -const byPass = { - block: true, - seekable: false, - name: 'bypass', - - compile(parser, buffer, token) { - token.children.forEach((child) => parser.processToken(child, buffer)) - }, -} -``` - -and then use it as - -```edge -@bypass - Hello {{ username }} -@endbypass -``` - -## Supported Expressions - -The following expressions are supported by the parser. Can you also access the list of supported expressions as - -```js -import { expressions } from 'edge-parser' -``` - -#### Identifier - -The identifier are prefixed with `state.` In following statement `username` is the identifier - -``` -Hello {{ username }} -``` - -#### Literal - -A string literal - -``` -Hello {{ 'Guest' }} -``` - -#### ArrayExpression - -The `[1, 2, 3, 4]` is an array expression. - -``` -Evens are {{ - [1, 2, 3, 4].filter((num) => num % 2 === 0) -}} -``` - -#### ObjectExpression - -The `{ username: 'virk' }` is an Object expression - -``` -{{ toJSON({ username: 'virk' }) }} -``` - -#### UnaryExpression - -Following are examples of `UnaryExpression`. - -``` -{{ typeof(username) }} - -{{ !!username }} -``` - -#### BinaryExpression - -Here `{{ 2 + 2 }}` is the binary expression - -``` -{{ 2 + 2 }} = 4 -``` - -#### LogicalExpression - -Following is the example of `LogicalExpression`. - -``` -{{ username || admin.username }} -``` - -#### MemberExpression - -``` -{{ username.toUpperCase() }} -``` - -#### ConditionalExpression - -``` -{{ username ? username : 'Guest' }} -``` - -#### CallExpression - -``` -{{ upper(username) }} -``` - -#### SequenceExpression - -Sequence is not supported in mustache blocks and instead used inside tags. For example: - -Everything inside `()` is a sequence expression. - -``` -@component('button', text = 'Submit', type = 'Primary') -``` - -#### TemplateLiteral - -``` -{{ Hello `${username}` }} -``` - -#### ArrowFunctionExpression - -``` -{{ - users.map((user) => { - return user.username - }) -}} -``` - -#### AwaitExpression - -``` -{{ await foo() }} -``` - -#### FunctionDeclaration - -``` -{{ function foo () {} }} -``` - -#### BlockStatement - -Here the `map` callback is the block statement - -``` -{{ - users.map(() => {}) -}} -``` - -#### ChainExpression - -Support for optional chaining - -``` -{{ user?.username }} -``` - -#### NewExpression - -```js -{{ new User() }} -``` - -#### ReturnStatement -In the following example `return` keyword is a return statement - -```js -users.map((user) => { - return user.username -}) -``` - -#### ThisExpression -Support for the this keyword - -```js -{{ this.state }} -``` - -#### SpreadElement -Support for the spread element - -```js -{{ [...users] }} -``` - -[gh-workflow-image]: https://img.shields.io/github/workflow/status/edge-js/parser/test?style=for-the-badge -[gh-workflow-url]: https://github.com/edge-js/parser/actions/workflows/test.yml "Github action" - -[npm-image]: https://img.shields.io/npm/v/edge-parser.svg?style=for-the-badge&logo=npm -[npm-url]: https://npmjs.org/package/edge-parser 'npm' - -[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript - -[license-url]: LICENSE.md -[license-image]: https://img.shields.io/github/license/edge-js/lexer?style=for-the-badge - -[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/edge-js/parser?label=Synk%20Vulnerabilities&style=for-the-badge -[synk-url]: https://snyk.io/test/github/edge-js/parser?targetFile=package.json 'synk' diff --git a/build/node_modules/edge-parser/package.json b/build/node_modules/edge-parser/package.json deleted file mode 100644 index de74bda6..00000000 --- a/build/node_modules/edge-parser/package.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "name": "edge-parser", - "version": "8.2.2", - "description": "Parser for edge template engine", - "main": "build/index.js", - "files": [ - "build/src", - "build/index.d.ts", - "build/index.js" - ], - "scripts": { - "pretest": "npm run lint", - "test": "node .bin/test.js", - "build": "npm run compile", - "mrm": "mrm --preset=@adonisjs/mrm-preset", - "commit": "git-cz", - "test:win": "node ./node_modules/japa-cli/index.js", - "clean": "del build", - "compile": "npm run lint && npm run clean && tsc", - "release": "np --message=\"chore(release): %s\"", - "version": "npm run build", - "lint": "eslint . --ext=.ts", - "prepublishOnly": "npm run build", - "sync-labels": "github-label-sync --labels ./node_modules/@adonisjs/mrm-preset/gh-labels.json edge-js/parser", - "format": "prettier --write ." - }, - "keywords": [ - "edge", - "template", - "template-engine" - ], - "author": "virk", - "license": "MIT", - "dependencies": { - "acorn": "^8.8.2", - "astring": "^1.8.4", - "edge-error": "^3.0.0", - "edge-lexer": "^5.0.2", - "js-stringify": "^1.0.2" - }, - "devDependencies": { - "@adonisjs/mrm-preset": "^5.0.3", - "@adonisjs/require-ts": "^2.0.13", - "@types/acorn": "^6.0.0", - "@types/astring": "^1.7.0", - "@types/node": "^18.15.3", - "commitizen": "^4.3.0", - "cz-conventional-changelog": "^3.3.0", - "dedent-js": "^1.0.1", - "del-cli": "^5.0.0", - "doctoc": "^2.2.1", - "eslint": "^8.36.0", - "eslint-config-prettier": "^8.7.0", - "eslint-plugin-adonis": "^2.1.0", - "eslint-plugin-prettier": "^4.2.1", - "github-label-sync": "^2.3.1", - "husky": "^8.0.3", - "japa": "^4.0.0", - "mrm": "^4.1.14", - "np": "^7.6.4", - "prettier": "^2.8.5", - "typescript": "^5.0.2", - "youch": "^3.2.3" - }, - "config": { - "commitizen": { - "path": "cz-conventional-changelog" - } - }, - "nyc": { - "exclude": [ - "test" - ], - "extension": [ - ".ts" - ] - }, - "gitHooks": { - "commit-msg": "node ./node_modules/@adonisjs/mrm-preset/validateCommit/conventional/validate.js" - }, - "husky": { - "hooks": { - "commit-msg": "node ./node_modules/@adonisjs/mrm-preset/validateCommit/conventional/validate.js" - } - }, - "np": { - "contents": ".", - "anyBranch": false - }, - "repository": { - "type": "git", - "url": "git+https://github.com/edge-js/parser.git" - }, - "bugs": { - "url": "https://github.com/edge-js/parser/issues" - }, - "homepage": "https://github.com/edge-js/parser#readme", - "mrmConfig": { - "core": false, - "license": "MIT", - "services": [ - "github-actions" - ], - "minNodeVersion": "14.15.4", - "probotApps": [ - "stale", - "lock" - ], - "runGhActionsOnWindows": true - }, - "eslintConfig": { - "extends": [ - "plugin:adonis/typescriptPackage", - "prettier" - ], - "plugins": [ - "prettier" - ], - "rules": { - "prettier/prettier": [ - "error", - { - "endOfLine": "auto" - } - ] - } - }, - "eslintIgnore": [ - "build" - ], - "prettier": { - "trailingComma": "es5", - "semi": false, - "singleQuote": true, - "useTabs": false, - "quoteProps": "consistent", - "bracketSpacing": true, - "arrowParens": "always", - "printWidth": 100 - } -} diff --git a/build/node_modules/edge-supercharged/LICENSE.md b/build/node_modules/edge-supercharged/LICENSE.md deleted file mode 100644 index 47ca6df1..00000000 --- a/build/node_modules/edge-supercharged/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -# The MIT License - -Copyright 2021 Harminder Virk, contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/edge-supercharged/README.md b/build/node_modules/edge-supercharged/README.md deleted file mode 100644 index 03c9be09..00000000 --- a/build/node_modules/edge-supercharged/README.md +++ /dev/null @@ -1,78 +0,0 @@ -
- - - -## Table of contents - -- [Edge Supercharged](#edge-supercharged) - - [Maintainers](#maintainers) - - - -# Edge Supercharged -> Supercharge your components and use them as edge tags - -[![gh-workflow-image]][gh-workflow-url] [![typescript-image]][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url] [![synk-image]][synk-url] - -Edge supercharged enables you to use your components as edge tags. It began by scanning all the templates stored inside the `./components` directory of your view root and make them available as tags. - -## Usage -Install the package from npm registry as follows - -```sh -npm i edge-supercharged - -# yarn -yarn add edge-supercharged -``` - -And use it as follows - -```ts -const edge = require('edge.js').default -const { Supercharged } = require('edge-supercharged') - -const supercharged = new Supercharged() -edge.use(supercharged.wire, { - recurring: process.env.NODE_ENV === 'development' -}) -``` - -During development, you must set the `recurring` option to true, so that edge reapplies the plugin on each render call. This will allow `edge-supercharged` to re-discover the components from the filesystem. - -## Creating components - -The components must live inside the `./components` directory relative to the views directory and then you can reference your components as tags. - -Instead of using the component as follows - -```edge -@component('button', { type: 'submit' }) - Submit form -@end -``` - -You can use it as follows: - -```edge -@button({ type: 'submit' }) - Submit form -@end -``` - -#### [Learn more ➞](https://docs.adonisjs.com/guides/views/components#components-as-tags) - -[gh-workflow-image]: https://img.shields.io/github/workflow/status/edge-js/edge-supercharged/test?style=for-the-badge -[gh-workflow-url]: https://github.com/edge-js/edge-supercharged/actions/workflows/test.yml "Github action" - -[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript -[typescript-url]: "typescript" - -[npm-image]: https://img.shields.io/npm/v/edge-supercharged.svg?style=for-the-badge&logo=npm -[npm-url]: https://npmjs.org/package/edge-supercharged "npm" - -[license-image]: https://img.shields.io/npm/l/edge-supercharged?color=blueviolet&style=for-the-badge -[license-url]: LICENSE.md "license" - -[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/edge-js/edge-supercharged?label=Synk%20Vulnerabilities&style=for-the-badge -[synk-url]: https://snyk.io/test/github/edge-js/edge-supercharged?targetFile=package.json "synk" diff --git a/build/node_modules/edge-supercharged/package.json b/build/node_modules/edge-supercharged/package.json deleted file mode 100644 index 3072d13f..00000000 --- a/build/node_modules/edge-supercharged/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "edge-supercharged", - "version": "3.1.1", - "description": "Supercharged components for Edge template engine", - "scripts": { - "mrm": "mrm --preset=@adonisjs/mrm-preset", - "pretest": "npm run lint", - "test": "node japaFile.js", - "clean": "del build", - "compile": "npm run lint && npm run clean && tsc", - "build": "npm run compile", - "prepublishOnly": "npm run build", - "lint": "eslint . --ext=.ts", - "format": "prettier --write .", - "commit": "git-cz", - "release": "np", - "version": "npm run build", - "sync-labels": "github-label-sync --labels ./node_modules/@adonisjs/mrm-preset/gh-labels.json edge-js/edge-supercharged" - }, - "keywords": [ - "edge" - ], - "author": "virk", - "license": "MIT", - "devDependencies": { - "@adonisjs/mrm-preset": "^4.1.0", - "@adonisjs/require-ts": "^2.0.4", - "@poppinss/dev-utils": "^1.1.4", - "@types/node": "^15.6.1", - "del-cli": "^3.0.1", - "doctoc": "^2.0.0", - "edge.js": "^5.2.1", - "eslint": "^7.27.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-adonis": "^1.3.1", - "eslint-plugin-prettier": "^3.4.0", - "github-label-sync": "^2.0.0", - "husky": "^6.0.0", - "japa": "^3.1.1", - "js-stringify": "^1.0.2", - "mrm": "^3.0.2", - "np": "^7.5.0", - "prettier": "^2.3.0", - "typescript": "^4.4.0-dev.20210516" - }, - "husky": { - "hooks": { - "pre-commit": "doctoc README.md --title='## Table of contents' && git add README.md", - "commit-msg": "node ./node_modules/@adonisjs/mrm-preset/validateCommit/conventional/validate.js" - } - }, - "nyc": { - "exclude": [ - "test" - ], - "extension": [ - ".ts" - ] - }, - "main": "build/index.js", - "files": [ - "build/src", - "build/index.d.ts", - "build/index.js" - ], - "config": { - "commitizen": { - "path": "cz-conventional-changelog" - } - }, - "np": { - "contents": ".", - "anyBranch": false - }, - "dependencies": { - "@poppinss/utils": "^3.1.3", - "slash": "^3.0.0" - }, - "directories": { - "test": "test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/edge-js/edge-supercharged.git" - }, - "bugs": { - "url": "https://github.com/edge-js/edge-supercharged/issues" - }, - "homepage": "https://github.com/edge-js/edge-supercharged#readme" -} diff --git a/build/node_modules/edge.js/LICENSE.md b/build/node_modules/edge.js/LICENSE.md deleted file mode 100644 index 1c194285..00000000 --- a/build/node_modules/edge.js/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -# The MIT License - -Copyright 2022 Harminder Virk, contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/edge.js/README.md b/build/node_modules/edge.js/README.md deleted file mode 100644 index 9a602ed6..00000000 --- a/build/node_modules/edge.js/README.md +++ /dev/null @@ -1,78 +0,0 @@ -
- - - -## Table of contents - -- [Table of contents](#table-of-contents) -- [Maintainers](#maintainers) - - - -# Edge -> A template for Node.js - -[![gh-workflow-image]][gh-workflow-url] [![typescript-image]][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url] [![synk-image]][synk-url] - -Edge is a logical and batteries included template engine for Node.js. It can render any text based format, whether is **HTML**, **Markdown** or **plain text** files. - -## Usage -Install the package from the npm registry. - -```sh -npm i edge.js - -# yarn -yarn add edge.js -``` - -And use it as follows - -```js -const { join } = require('path') - -// CommonJS -const { Edge } = require('edge.js') - -// Typescript import -// import { Edge } from 'edge.js' - -const edge = new Edge({ cache: false }) -edge.mount(join(__dirname, 'views')) - -const html = await edge.render('welcome', { - greeting: 'Hello world' -}) - -console.log(html) -``` - -Next create the `views/welcome.edge` file. - -```edge -

{{ greeting }}

-``` - -Edge was created to be used inside the AdonisJS framework. However it is a framework agnostic library and can be used standalone as well. - -The documentation is written on the [AdonisJS website](https://docs.adonisjs.com/guides/views/rendering). In AdonisJS docs, we refer the `edge` variable as `view`. - -
-
- -![](https://cdn.jsdelivr.net/gh/thetutlage/static/sponsorkit/sponsors.png) - -[gh-workflow-image]: https://img.shields.io/github/actions/workflow/status/edge-js/edge/test.yml?style=for-the-badge -[gh-workflow-url]: https://github.com/edge-js/edge/actions/workflows/test.yml "Github action" - -[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript -[typescript-url]: "typescript" - -[license-image]: https://img.shields.io/npm/l/edge.js?color=blueviolet&style=for-the-badge -[license-url]: LICENSE.md 'license' - -[npm-image]: https://img.shields.io/npm/v/edge.js.svg?style=for-the-badge&logo=npm -[npm-url]: https://npmjs.org/package/edge.js 'npm' - -[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/edge-js/edge?label=Synk%20Vulnerabilities&style=for-the-badge -[synk-url]: https://snyk.io/test/github/edge-js/edge?targetFile=package.json "synk" diff --git a/build/node_modules/edge.js/package.json b/build/node_modules/edge.js/package.json deleted file mode 100644 index e3cb2c7d..00000000 --- a/build/node_modules/edge.js/package.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "name": "edge.js", - "version": "5.5.1", - "description": "Template engine", - "main": "build/index.js", - "files": [ - "build/src", - "build/index.d.ts", - "build/index.js" - ], - "scripts": { - "pretest": "npm run lint", - "test": "node -r @adonisjs/require-ts/build/register ./bin/test.ts", - "mrm": "mrm --preset=@adonisjs/mrm-preset", - "commit": "git-cz", - "clean": "del-cli build", - "compile": "npm run lint && npm run clean && tsc", - "build": "npm run compile", - "lint": "eslint . --ext=.ts", - "release": "np --message=\"chore(release): %s\"", - "version": "npm run build", - "format": "prettier --write .", - "sync-labels": "github-label-sync --labels ./node_modules/@adonisjs/mrm-preset/gh-labels.json edge-js/edge", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/poppinss/edge.git" - }, - "author": "virk", - "license": "MIT", - "bugs": { - "url": "https://github.com/poppinss/edge/issues" - }, - "homepage": "https://github.com/poppinss/edge#readme", - "devDependencies": { - "@adonisjs/mrm-preset": "^5.0.3", - "@adonisjs/require-ts": "^2.0.12", - "@japa/assert": "^1.3.4", - "@japa/run-failed-tests": "^1.0.7", - "@japa/runner": "^2.0.9", - "@japa/spec-reporter": "^1.1.12", - "@poppinss/dev-utils": "^2.0.3", - "@types/node": "^18.7.14", - "chai": "^4.3.6", - "commitizen": "^4.2.5", - "cz-conventional-changelog": "^3.3.0", - "dedent-js": "^1.0.1", - "del-cli": "^5.0.0", - "doctoc": "^2.2.0", - "eslint": "^8.23.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-adonis": "^2.1.0", - "eslint-plugin-prettier": "^4.2.1", - "github-label-sync": "^2.2.0", - "husky": "^8.0.1", - "mrm": "^4.1.0", - "np": "^7.6.2", - "prettier": "^2.7.1", - "typescript": "^5.0.2" - }, - "config": { - "commitizen": { - "path": "cz-conventional-changelog" - } - }, - "nyc": { - "exclude": [ - "test" - ], - "extension": [ - ".ts" - ] - }, - "dependencies": { - "@poppinss/inspect": "^1.0.1", - "@poppinss/utils": "^5.0.0", - "edge-error": "^3.0.0", - "edge-lexer": "^5.0.2", - "edge-parser": "^8.2.1", - "js-stringify": "^1.0.2", - "macroable": "^7.0.1", - "stringify-attributes": "^2.0.0" - }, - "husky": { - "hooks": { - "commit-msg": "node ./node_modules/@adonisjs/mrm-preset/validateCommit/conventional/validate.js" - } - }, - "directories": { - "example": "examples", - "test": "test" - }, - "keywords": [ - "template", - "mustache", - "edge" - ], - "publishConfig": { - "access": "public", - "tag": "latest" - }, - "np": { - "contents": ".", - "anyBranch": false - }, - "mrmConfig": { - "core": false, - "license": "MIT", - "services": [ - "github-actions" - ], - "minNodeVersion": "14.15.4", - "probotApps": [ - "stale", - "lock" - ], - "runGhActionsOnWindows": true - }, - "eslintConfig": { - "extends": [ - "plugin:adonis/typescriptPackage", - "prettier" - ], - "plugins": [ - "prettier" - ], - "rules": { - "prettier/prettier": [ - "error", - { - "endOfLine": "auto" - } - ] - } - }, - "eslintIgnore": [ - "build" - ], - "prettier": { - "trailingComma": "es5", - "semi": false, - "singleQuote": true, - "useTabs": false, - "quoteProps": "consistent", - "bracketSpacing": true, - "arrowParens": "always", - "printWidth": 100 - } -} diff --git a/build/node_modules/editorconfig/CHANGELOG.md b/build/node_modules/editorconfig/CHANGELOG.md deleted file mode 100644 index 15898531..00000000 --- a/build/node_modules/editorconfig/CHANGELOG.md +++ /dev/null @@ -1,14 +0,0 @@ -## 0.15.3 -- Move @types dependencies to dev dependencies. -- Upgrade dependencies. - -## 0.15.2 -- Fix publish. - -## 0.15.1 -- Update dependencies. - -## 0.15.0 -- Convert source code into TypeScript. Generated type definitions are now provided. -- Remove dependency on Bluebird. -- **Breaking**: Node v4 no longer supported. diff --git a/build/node_modules/editorconfig/LICENSE b/build/node_modules/editorconfig/LICENSE deleted file mode 100644 index 85329c84..00000000 --- a/build/node_modules/editorconfig/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright © 2012 EditorConfig Team - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the “Software”), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/editorconfig/README.md b/build/node_modules/editorconfig/README.md deleted file mode 100644 index 6ff281a8..00000000 --- a/build/node_modules/editorconfig/README.md +++ /dev/null @@ -1,206 +0,0 @@ -# EditorConfig JavaScript Core - -[![Build Status](https://travis-ci.org/editorconfig/editorconfig-core-js.svg?branch=master)](https://travis-ci.org/editorconfig/editorconfig-core-js) -[![dependencies Status](https://david-dm.org/editorconfig/editorconfig-core-js/status.svg)](https://david-dm.org/editorconfig/editorconfig-core-js) - -The EditorConfig JavaScript core will provide the same functionality as the -[EditorConfig C Core][] and [EditorConfig Python Core][]. - - -## Installation - -You need [node][] to use this package. - -To install the package locally: - -```bash -$ npm install editorconfig -``` - -To install the package system-wide: - -```bash -$ npm install -g editorconfig -``` - -## Usage - -### in Node.js: - -#### parse(filePath[, options]) - -options is an object with the following defaults: - -```js -{ - config: '.editorconfig', - version: pkg.version, - root: '/' -}; -``` - -Search for `.editorconfig` starting from the current directory to the root directory. - -Example: - -```js -var editorconfig = require('editorconfig'); -var path = require('path'); -var filePath = path.join(__dirname, '/sample.js'); -var promise = editorconfig.parse(filePath); -promise.then(function onFulfilled(result) { - console.log(result); -}); - -/* - { - indent_style: 'space', - indent_size: 2, - end_of_line: 'lf', - charset: 'utf-8', - trim_trailing_whitespace: true, - insert_final_newline: true, - tab_width: 2 - }; -*/ -``` - -#### parseSync(filePath[, options]) - -Synchronous version of `editorconfig.parse()`. - -#### parseString(fileContent) - -The `parse()` function above uses `parseString()` under the hood. If you have your file contents -just pass it to `parseString()` and it'll return the same results as `parse()`. - -#### parseFromFiles(filePath, configs[, options]) - -options is an object with the following defaults: - -```js -{ - config: '.editorconfig', - version: pkg.version, - root: '/' -}; -``` - -Specify the `.editorconfig`. - -Example: - -```js -var editorconfig = require('editorconfig'); -var fs = require('fs'); -var path = require('path'); -var configPath = path.join(__dirname, '/.editorconfig'); -var configs = [ - { - name: configPath, - contents: fs.readFileSync(configPath, 'utf8') - } -]; -var filePath = path.join(__dirname, '/sample.js'); -var promise = editorconfig.parseFromFiles(filePath, configs); -promise.then(function onFulfilled(result) { - console.log(result) -}); - -/* - { - indent_style: 'space', - indent_size: 2, - end_of_line: 'lf', - charset: 'utf-8', - trim_trailing_whitespace: true, - insert_final_newline: true, - tab_width: 2 - }; -*/ -``` - -#### parseFromFilesSync(filePath, configs[, options]) - -Synchronous version of `editorconfig.parseFromFiles()`. - -### in Command Line - -```bash -$ ./bin/editorconfig - - Usage: editorconfig [OPTIONS] FILEPATH1 [FILEPATH2 FILEPATH3 ...] - - EditorConfig Node.js Core Version 0.11.4-development - - FILEPATH can be a hyphen (-) if you want path(s) to be read from stdin. - - Options: - - -h, --help output usage information - -V, --version output the version number - -f Specify conf filename other than ".editorconfig" - -b Specify version (used by devs to test compatibility) -``` - -Example: - -```bash -$ ./bin/editorconfig /home/zoidberg/humans/anatomy.md -charset=utf-8 -insert_final_newline=true -end_of_line=lf -tab_width=8 -trim_trailing_whitespace=sometimes -``` - -## Development - -To install dependencies for this package run this in the package directory: - -```bash -$ npm install -``` - -Next, run the following commands: - -```bash -$ npm run build -$ npm run copy -$ npm link ./dist -``` - -The global editorconfig will now point to the files in your development -repository instead of a globally-installed version from npm. You can now use -editorconfig directly to test your changes. - -If you ever update from the central repository and there are errors, it might -be because you are missing some dependencies. If that happens, just run npm -link again to get the latest dependencies. - -To test the command line interface: - -```bash -$ editorconfig -``` - -# Testing - -[CMake][] must be installed to run the tests. - -To run the tests: - -```bash -$ npm test -``` - -To run the tests with increased verbosity (for debugging test failures): - -```bash -$ npm run-script test-verbose -``` - -[EditorConfig C Core]: https://github.com/editorconfig/editorconfig-core -[EditorConfig Python Core]: https://github.com/editorconfig/editorconfig-core-py -[node]: http://nodejs.org/ -[cmake]: http://www.cmake.org diff --git a/build/node_modules/editorconfig/package.json b/build/node_modules/editorconfig/package.json deleted file mode 100644 index ce4685a5..00000000 --- a/build/node_modules/editorconfig/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "editorconfig", - "version": "0.15.3", - "description": "EditorConfig File Locator and Interpreter for Node.js", - "keywords": [ - "editorconfig", - "core" - ], - "main": "src/index.js", - "contributors": [ - "Hong Xu (topbug.net)", - "Jed Mao (https://github.com/jedmao/)", - "Trey Hunner (http://treyhunner.com)" - ], - "directories": { - "bin": "./bin", - "lib": "./lib" - }, - "scripts": { - "clean": "rimraf dist", - "prebuild": "npm run clean", - "build": "tsc", - "pretest": "npm run lint && npm run build && npm run copy && cmake .", - "test": "ctest .", - "pretest:ci": "npm run pretest", - "test:ci": "ctest -VV --output-on-failure .", - "lint": "npm run eclint && npm run tslint", - "eclint": "eclint check --indent_size ignore \"src/**\"", - "tslint": "tslint --project tsconfig.json --exclude package.json", - "copy": "cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib", - "prepub": "npm run lint && npm run build && npm run copy", - "pub": "npm publish ./dist" - }, - "repository": { - "type": "git", - "url": "git://github.com/editorconfig/editorconfig-core-js.git" - }, - "bugs": "https://github.com/editorconfig/editorconfig-core-js/issues", - "author": "EditorConfig Team", - "license": "MIT", - "dependencies": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "devDependencies": { - "@types/mocha": "^5.2.6", - "@types/node": "^10.12.29", - "@types/semver": "^5.5.0", - "cpy-cli": "^2.0.0", - "eclint": "^2.8.1", - "mocha": "^5.2.0", - "rimraf": "^2.6.3", - "should": "^13.2.3", - "tslint": "^5.13.1", - "typescript": "^3.3.3333" - } -} diff --git a/build/node_modules/ee-first/LICENSE b/build/node_modules/ee-first/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/build/node_modules/ee-first/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/ee-first/README.md b/build/node_modules/ee-first/README.md deleted file mode 100644 index cbd2478b..00000000 --- a/build/node_modules/ee-first/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# EE First - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Get the first event in a set of event emitters and event pairs, -then clean up after itself. - -## Install - -```sh -$ npm install ee-first -``` - -## API - -```js -var first = require('ee-first') -``` - -### first(arr, listener) - -Invoke `listener` on the first event from the list specified in `arr`. `arr` is -an array of arrays, with each array in the format `[ee, ...event]`. `listener` -will be called only once, the first time any of the given events are emitted. If -`error` is one of the listened events, then if that fires first, the `listener` -will be given the `err` argument. - -The `listener` is invoked as `listener(err, ee, event, args)`, where `err` is the -first argument emitted from an `error` event, if applicable; `ee` is the event -emitter that fired; `event` is the string event name that fired; and `args` is an -array of the arguments that were emitted on the event. - -```js -var ee1 = new EventEmitter() -var ee2 = new EventEmitter() - -first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) -``` - -#### .cancel() - -The group of listeners can be cancelled before being invoked and have all the event -listeners removed from the underlying event emitters. - -```js -var thunk = first([ - [ee1, 'close', 'end', 'error'], - [ee2, 'error'] -], function (err, ee, event, args) { - // listener invoked -}) - -// cancel and clean up -thunk.cancel() -``` - -[npm-image]: https://img.shields.io/npm/v/ee-first.svg?style=flat-square -[npm-url]: https://npmjs.org/package/ee-first -[github-tag]: http://img.shields.io/github/tag/jonathanong/ee-first.svg?style=flat-square -[github-url]: https://github.com/jonathanong/ee-first/tags -[travis-image]: https://img.shields.io/travis/jonathanong/ee-first.svg?style=flat-square -[travis-url]: https://travis-ci.org/jonathanong/ee-first -[coveralls-image]: https://img.shields.io/coveralls/jonathanong/ee-first.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/jonathanong/ee-first?branch=master -[license-image]: http://img.shields.io/npm/l/ee-first.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/ee-first.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/ee-first -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/build/node_modules/ee-first/index.js b/build/node_modules/ee-first/index.js deleted file mode 100644 index 501287cd..00000000 --- a/build/node_modules/ee-first/index.js +++ /dev/null @@ -1,95 +0,0 @@ -/*! - * ee-first - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = first - -/** - * Get the first event in a set of event emitters and event pairs. - * - * @param {array} stuff - * @param {function} done - * @public - */ - -function first(stuff, done) { - if (!Array.isArray(stuff)) - throw new TypeError('arg must be an array of [ee, events...] arrays') - - var cleanups = [] - - for (var i = 0; i < stuff.length; i++) { - var arr = stuff[i] - - if (!Array.isArray(arr) || arr.length < 2) - throw new TypeError('each array member must be [ee, events...]') - - var ee = arr[0] - - for (var j = 1; j < arr.length; j++) { - var event = arr[j] - var fn = listener(event, callback) - - // listen to the event - ee.on(event, fn) - // push this listener to the list of cleanups - cleanups.push({ - ee: ee, - event: event, - fn: fn, - }) - } - } - - function callback() { - cleanup() - done.apply(null, arguments) - } - - function cleanup() { - var x - for (var i = 0; i < cleanups.length; i++) { - x = cleanups[i] - x.ee.removeListener(x.event, x.fn) - } - } - - function thunk(fn) { - done = fn - } - - thunk.cancel = cleanup - - return thunk -} - -/** - * Create the event listener. - * @private - */ - -function listener(event, done) { - return function onevent(arg1) { - var args = new Array(arguments.length) - var ee = this - var err = event === 'error' - ? arg1 - : null - - // copy args to prevent arguments escaping scope - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - done(err, ee, event, args) - } -} diff --git a/build/node_modules/ee-first/package.json b/build/node_modules/ee-first/package.json deleted file mode 100644 index b6d0b7d6..00000000 --- a/build/node_modules/ee-first/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "ee-first", - "description": "return the first event in a set of ee/event pairs", - "version": "1.1.1", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" - }, - "contributors": [ - "Douglas Christopher Wilson " - ], - "license": "MIT", - "repository": "jonathanong/ee-first", - "devDependencies": { - "istanbul": "0.3.9", - "mocha": "2.2.5" - }, - "files": [ - "index.js", - "LICENSE" - ], - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/build/node_modules/electron-to-chromium/CHANGELOG.md b/build/node_modules/electron-to-chromium/CHANGELOG.md deleted file mode 100644 index 1669c341..00000000 --- a/build/node_modules/electron-to-chromium/CHANGELOG.md +++ /dev/null @@ -1,14 +0,0 @@ -v1.3.0 - * Additionally include chromium to electron mappings - -v1.2.0 - * versions and full-versions are now separately importable. - -v1.1.0 - * Both electronToChromium and electronToBrowserList now can accept strings as well as numbers. - -v1.0.1 - Update documentation - -v1.0.0 - Inititial release diff --git a/build/node_modules/electron-to-chromium/LICENSE b/build/node_modules/electron-to-chromium/LICENSE deleted file mode 100644 index 6c7b614d..00000000 --- a/build/node_modules/electron-to-chromium/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Copyright 2018 Kilian Valkhof - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/electron-to-chromium/README.md b/build/node_modules/electron-to-chromium/README.md deleted file mode 100644 index a96ddf12..00000000 --- a/build/node_modules/electron-to-chromium/README.md +++ /dev/null @@ -1,186 +0,0 @@ -### Made by [@kilianvalkhof](https://twitter.com/kilianvalkhof) - -#### Other projects: - -- 💻 [Polypane](https://polypane.app) - Develop responsive websites and apps twice as fast on multiple screens at once -- 🖌️ [Superposition](https://superposition.design) - Kickstart your design system by extracting design tokens from your website -- 🗒️ [FromScratch](https://fromscratch.rocks) - A smart but simple autosaving scratchpad - ---- - -# Electron-to-Chromium [![npm](https://img.shields.io/npm/v/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![travis](https://img.shields.io/travis/Kilian/electron-to-chromium/master.svg)](https://travis-ci.org/Kilian/electron-to-chromium) [![npm-downloads](https://img.shields.io/npm/dm/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![codecov](https://codecov.io/gh/Kilian/electron-to-chromium/branch/master/graph/badge.svg)](https://codecov.io/gh/Kilian/electron-to-chromium)[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_shield) - -This repository provides a mapping of Electron versions to the Chromium version that it uses. - -This package is used in [Browserslist](https://github.com/ai/browserslist), so you can use e.g. `electron >= 1.4` in [Autoprefixer](https://github.com/postcss/autoprefixer), [Stylelint](https://github.com/stylelint/stylelint), [babel-preset-env](https://github.com/babel/babel-preset-env) and [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat). - -**Supported by:** - - - - - - -## Install -Install using `npm install electron-to-chromium`. - -## Usage -To include Electron-to-Chromium, require it: - -```js -var e2c = require('electron-to-chromium'); -``` - -### Properties -The Electron-to-Chromium object has 4 properties to use: - -#### `versions` -An object of key-value pairs with a _major_ Electron version as the key, and the corresponding major Chromium version as the value. - -```js -var versions = e2c.versions; -console.log(versions['1.4']); -// returns "53" -``` - -#### `fullVersions` -An object of key-value pairs with a Electron version as the key, and the corresponding full Chromium version as the value. - -```js -var versions = e2c.fullVersions; -console.log(versions['1.4.11']); -// returns "53.0.2785.143" -``` - -#### `chromiumVersions` -An object of key-value pairs with a _major_ Chromium version as the key, and the corresponding major Electron version as the value. - -```js -var versions = e2c.chromiumVersions; -console.log(versions['54']); -// returns "1.4" -``` - -#### `fullChromiumVersions` -An object of key-value pairs with a Chromium version as the key, and an array of the corresponding major Electron versions as the value. - -```js -var versions = e2c.fullChromiumVersions; -console.log(versions['54.0.2840.101']); -// returns ["1.5.1", "1.5.0"] -``` -### Functions - -#### `electronToChromium(query)` -Arguments: -* Query: string or number, required. A major or full Electron version. - -A function that returns the corresponding Chromium version for a given Electron function. Returns a string. - -If you provide it with a major Electron version, it will return a major Chromium version: - -```js -var chromeVersion = e2c.electronToChromium('1.4'); -// chromeVersion is "53" -``` - -If you provide it with a full Electron version, it will return the full Chromium version. - -```js -var chromeVersion = e2c.electronToChromium('1.4.11'); -// chromeVersion is "53.0.2785.143" -``` - -If a query does not match a Chromium version, it will return `undefined`. - -```js -var chromeVersion = e2c.electronToChromium('9000'); -// chromeVersion is undefined -``` - -#### `chromiumToElectron(query)` -Arguments: -* Query: string or number, required. A major or full Chromium version. - -Returns a string with the corresponding Electron version for a given Chromium query. - -If you provide it with a major Chromium version, it will return a major Electron version: - -```js -var electronVersion = e2c.chromiumToElectron('54'); -// electronVersion is "1.4" -``` - -If you provide it with a full Chrome version, it will return an array of full Electron versions. - -```js -var electronVersions = e2c.chromiumToElectron('56.0.2924.87'); -// electronVersions is ["1.6.3", "1.6.2", "1.6.1", "1.6.0"] -``` - -If a query does not match an Electron version, it will return `undefined`. - -```js -var electronVersion = e2c.chromiumToElectron('10'); -// electronVersion is undefined -``` - -#### `electronToBrowserList(query)` **DEPRECATED** -Arguments: -* Query: string or number, required. A major Electron version. - -_**Deprecated**: Browserlist already includes electron-to-chromium._ - -A function that returns a [Browserslist](https://github.com/ai/browserslist) query that matches the given major Electron version. Returns a string. - -If you provide it with a major Electron version, it will return a Browserlist query string that matches the Chromium capabilities: - -```js -var query = e2c.electronToBrowserList('1.4'); -// query is "Chrome >= 53" -``` - -If a query does not match a Chromium version, it will return `undefined`. - -```js -var query = e2c.electronToBrowserList('9000'); -// query is undefined -``` - -### Importing just versions, fullVersions, chromiumVersions and fullChromiumVersions -All lists can be imported on their own, if file size is a concern. - -#### `versions` - -```js -var versions = require('electron-to-chromium/versions'); -``` - -#### `fullVersions` - -```js -var fullVersions = require('electron-to-chromium/full-versions'); -``` - -#### `chromiumVersions` - -```js -var chromiumVersions = require('electron-to-chromium/chromium-versions'); -``` - -#### `fullChromiumVersions` - -```js -var fullChromiumVersions = require('electron-to-chromium/full-chromium-versions'); -``` - -## Updating -This package will be updated with each new Electron release. - -To update the list, run `npm run build.js`. Requires internet access as it downloads from the canonical list of Electron versions. - -To verify correct behaviour, run `npm test`. - - -## License -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_large) diff --git a/build/node_modules/electron-to-chromium/chromium-versions.js b/build/node_modules/electron-to-chromium/chromium-versions.js deleted file mode 100644 index 7778e35e..00000000 --- a/build/node_modules/electron-to-chromium/chromium-versions.js +++ /dev/null @@ -1,59 +0,0 @@ -module.exports = { - "39": "0.20", - "40": "0.21", - "41": "0.21", - "42": "0.25", - "43": "0.27", - "44": "0.30", - "45": "0.31", - "47": "0.36", - "49": "0.37", - "50": "1.1", - "51": "1.2", - "52": "1.3", - "53": "1.4", - "54": "1.4", - "56": "1.6", - "58": "1.7", - "59": "1.8", - "61": "2.0", - "66": "3.0", - "69": "4.0", - "72": "5.0", - "73": "5.0", - "76": "6.0", - "78": "7.0", - "79": "8.0", - "80": "8.0", - "82": "9.0", - "83": "9.0", - "84": "10.0", - "85": "10.0", - "86": "11.0", - "87": "11.0", - "89": "12.0", - "90": "13.0", - "91": "13.0", - "92": "14.0", - "93": "14.0", - "94": "15.0", - "95": "16.0", - "96": "16.0", - "98": "17.0", - "99": "18.0", - "100": "18.0", - "102": "19.0", - "103": "20.0", - "104": "20.0", - "105": "21.0", - "106": "21.0", - "107": "22.0", - "108": "22.0", - "110": "23.0", - "111": "24.0", - "112": "24.0", - "114": "25.0", - "116": "26.0", - "118": "27.0", - "119": "28.0" -}; \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/chromium-versions.json b/build/node_modules/electron-to-chromium/chromium-versions.json deleted file mode 100644 index a0143165..00000000 --- a/build/node_modules/electron-to-chromium/chromium-versions.json +++ /dev/null @@ -1 +0,0 @@ -{"39":"0.20","40":"0.21","41":"0.21","42":"0.25","43":"0.27","44":"0.30","45":"0.31","47":"0.36","49":"0.37","50":"1.1","51":"1.2","52":"1.3","53":"1.4","54":"1.4","56":"1.6","58":"1.7","59":"1.8","61":"2.0","66":"3.0","69":"4.0","72":"5.0","73":"5.0","76":"6.0","78":"7.0","79":"8.0","80":"8.0","82":"9.0","83":"9.0","84":"10.0","85":"10.0","86":"11.0","87":"11.0","89":"12.0","90":"13.0","91":"13.0","92":"14.0","93":"14.0","94":"15.0","95":"16.0","96":"16.0","98":"17.0","99":"18.0","100":"18.0","102":"19.0","103":"20.0","104":"20.0","105":"21.0","106":"21.0","107":"22.0","108":"22.0","110":"23.0","111":"24.0","112":"24.0","114":"25.0","116":"26.0","118":"27.0","119":"28.0"} \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/full-chromium-versions.js b/build/node_modules/electron-to-chromium/full-chromium-versions.js deleted file mode 100644 index f1eb4da7..00000000 --- a/build/node_modules/electron-to-chromium/full-chromium-versions.js +++ /dev/null @@ -1,2895 +0,0 @@ -module.exports = { - "39.0.2171.65": [ - "0.20.0", - "0.20.1", - "0.20.2", - "0.20.3", - "0.20.4", - "0.20.5", - "0.20.6", - "0.20.7", - "0.20.8" - ], - "40.0.2214.91": [ - "0.21.0", - "0.21.1", - "0.21.2" - ], - "41.0.2272.76": [ - "0.21.3", - "0.22.1", - "0.22.2", - "0.22.3", - "0.23.0", - "0.24.0" - ], - "42.0.2311.107": [ - "0.25.0", - "0.25.1", - "0.25.2", - "0.25.3", - "0.26.0", - "0.26.1", - "0.27.0", - "0.27.1" - ], - "43.0.2357.65": [ - "0.27.2", - "0.27.3", - "0.28.0", - "0.28.1", - "0.28.2", - "0.28.3", - "0.29.1", - "0.29.2" - ], - "44.0.2403.125": [ - "0.30.4", - "0.31.0" - ], - "45.0.2454.85": [ - "0.31.2", - "0.32.2", - "0.32.3", - "0.33.0", - "0.33.1", - "0.33.2", - "0.33.3", - "0.33.4", - "0.33.6", - "0.33.7", - "0.33.8", - "0.33.9", - "0.34.0", - "0.34.1", - "0.34.2", - "0.34.3", - "0.34.4", - "0.35.1", - "0.35.2", - "0.35.3", - "0.35.4", - "0.35.5" - ], - "47.0.2526.73": [ - "0.36.0", - "0.36.2", - "0.36.3", - "0.36.4" - ], - "47.0.2526.110": [ - "0.36.5", - "0.36.6", - "0.36.7", - "0.36.8", - "0.36.9", - "0.36.10", - "0.36.11", - "0.36.12" - ], - "49.0.2623.75": [ - "0.37.0", - "0.37.1", - "0.37.3", - "0.37.4", - "0.37.5", - "0.37.6", - "0.37.7", - "0.37.8", - "1.0.0", - "1.0.1", - "1.0.2" - ], - "50.0.2661.102": [ - "1.1.0", - "1.1.1", - "1.1.2", - "1.1.3" - ], - "51.0.2704.63": [ - "1.2.0", - "1.2.1" - ], - "51.0.2704.84": [ - "1.2.2", - "1.2.3" - ], - "51.0.2704.103": [ - "1.2.4", - "1.2.5" - ], - "51.0.2704.106": [ - "1.2.6", - "1.2.7", - "1.2.8" - ], - "52.0.2743.82": [ - "1.3.0", - "1.3.1", - "1.3.2", - "1.3.3", - "1.3.4", - "1.3.5", - "1.3.6", - "1.3.7", - "1.3.9", - "1.3.10", - "1.3.13", - "1.3.14", - "1.3.15" - ], - "53.0.2785.113": [ - "1.4.0", - "1.4.1", - "1.4.2", - "1.4.3", - "1.4.4", - "1.4.5" - ], - "53.0.2785.143": [ - "1.4.6", - "1.4.7", - "1.4.8", - "1.4.10", - "1.4.11", - "1.4.13", - "1.4.14", - "1.4.15", - "1.4.16" - ], - "54.0.2840.51": [ - "1.4.12" - ], - "54.0.2840.101": [ - "1.5.0", - "1.5.1" - ], - "56.0.2924.87": [ - "1.6.0", - "1.6.1", - "1.6.2", - "1.6.3", - "1.6.4", - "1.6.5", - "1.6.6", - "1.6.7", - "1.6.8", - "1.6.9", - "1.6.10", - "1.6.11", - "1.6.12", - "1.6.13", - "1.6.14", - "1.6.15", - "1.6.16", - "1.6.17", - "1.6.18" - ], - "58.0.3029.110": [ - "1.7.0", - "1.7.1", - "1.7.2", - "1.7.3", - "1.7.4", - "1.7.5", - "1.7.6", - "1.7.7", - "1.7.8", - "1.7.9", - "1.7.10", - "1.7.11", - "1.7.12", - "1.7.13", - "1.7.14", - "1.7.15", - "1.7.16" - ], - "59.0.3071.115": [ - "1.8.0", - "1.8.1", - "1.8.2-beta.1", - "1.8.2-beta.2", - "1.8.2-beta.3", - "1.8.2-beta.4", - "1.8.2-beta.5", - "1.8.2", - "1.8.3", - "1.8.4", - "1.8.5", - "1.8.6", - "1.8.7", - "1.8.8" - ], - "61.0.3163.100": [ - "2.0.0-beta.1", - "2.0.0-beta.2", - "2.0.0-beta.3", - "2.0.0-beta.4", - "2.0.0-beta.5", - "2.0.0-beta.6", - "2.0.0-beta.7", - "2.0.0-beta.8", - "2.0.0", - "2.0.1", - "2.0.2", - "2.0.3", - "2.0.4", - "2.0.5", - "2.0.6", - "2.0.7", - "2.0.8-nightly.20180819", - "2.0.8-nightly.20180820", - "2.0.8", - "2.0.9", - "2.0.10", - "2.0.11", - "2.0.12", - "2.0.13", - "2.0.14", - "2.0.15", - "2.0.16", - "2.0.17", - "2.0.18", - "2.1.0-unsupported.20180809" - ], - "66.0.3359.181": [ - "3.0.0-beta.1", - "3.0.0-beta.2", - "3.0.0-beta.3", - "3.0.0-beta.4", - "3.0.0-beta.5", - "3.0.0-beta.6", - "3.0.0-beta.7", - "3.0.0-beta.8", - "3.0.0-beta.9", - "3.0.0-beta.10", - "3.0.0-beta.11", - "3.0.0-beta.12", - "3.0.0-beta.13", - "3.0.0-nightly.20180818", - "3.0.0-nightly.20180821", - "3.0.0-nightly.20180823", - "3.0.0-nightly.20180904", - "3.0.0", - "3.0.1", - "3.0.2", - "3.0.3", - "3.0.4", - "3.0.5", - "3.0.6", - "3.0.7", - "3.0.8", - "3.0.9", - "3.0.10", - "3.0.11", - "3.0.12", - "3.0.13", - "3.0.14", - "3.0.15", - "3.0.16", - "3.1.0-beta.1", - "3.1.0-beta.2", - "3.1.0-beta.3", - "3.1.0-beta.4", - "3.1.0-beta.5", - "3.1.0", - "3.1.1", - "3.1.2", - "3.1.3", - "3.1.4", - "3.1.5", - "3.1.6", - "3.1.7", - "3.1.8", - "3.1.9", - "3.1.10", - "3.1.11", - "3.1.12", - "3.1.13", - "4.0.0-nightly.20180817", - "4.0.0-nightly.20180819", - "4.0.0-nightly.20180821" - ], - "69.0.3497.106": [ - "4.0.0-beta.1", - "4.0.0-beta.2", - "4.0.0-beta.3", - "4.0.0-beta.4", - "4.0.0-beta.5", - "4.0.0-beta.6", - "4.0.0-beta.7", - "4.0.0-beta.8", - "4.0.0-beta.9", - "4.0.0-beta.10", - "4.0.0-beta.11", - "4.0.0-nightly.20181010", - "4.0.0", - "4.0.1", - "4.0.2", - "4.0.3", - "4.0.4", - "4.0.5", - "4.0.6" - ], - "67.0.3396.99": [ - "4.0.0-nightly.20180929" - ], - "68.0.3440.128": [ - "4.0.0-nightly.20181006" - ], - "69.0.3497.128": [ - "4.0.7", - "4.0.8", - "4.1.0", - "4.1.1", - "4.1.2", - "4.1.3", - "4.1.4", - "4.1.5", - "4.2.0", - "4.2.1", - "4.2.2", - "4.2.3", - "4.2.4", - "4.2.5", - "4.2.6", - "4.2.7", - "4.2.8", - "4.2.9", - "4.2.10", - "4.2.11", - "4.2.12" - ], - "72.0.3626.52": [ - "5.0.0-beta.1", - "5.0.0-beta.2", - "6.0.0-nightly.20190123" - ], - "73.0.3683.27": [ - "5.0.0-beta.3" - ], - "73.0.3683.54": [ - "5.0.0-beta.4" - ], - "73.0.3683.61": [ - "5.0.0-beta.5" - ], - "73.0.3683.84": [ - "5.0.0-beta.6" - ], - "73.0.3683.94": [ - "5.0.0-beta.7" - ], - "73.0.3683.104": [ - "5.0.0-beta.8" - ], - "73.0.3683.117": [ - "5.0.0-beta.9" - ], - "70.0.3538.110": [ - "5.0.0-nightly.20190107" - ], - "71.0.3578.98": [ - "5.0.0-nightly.20190121", - "5.0.0-nightly.20190122" - ], - "73.0.3683.119": [ - "5.0.0" - ], - "73.0.3683.121": [ - "5.0.1", - "5.0.2", - "5.0.3", - "5.0.4", - "5.0.5", - "5.0.6", - "5.0.7", - "5.0.8", - "5.0.9", - "5.0.10", - "5.0.11", - "5.0.12", - "5.0.13" - ], - "76.0.3774.1": [ - "6.0.0-beta.1" - ], - "76.0.3783.1": [ - "6.0.0-beta.2", - "6.0.0-beta.3", - "6.0.0-beta.4" - ], - "76.0.3805.4": [ - "6.0.0-beta.5" - ], - "76.0.3809.3": [ - "6.0.0-beta.6" - ], - "76.0.3809.22": [ - "6.0.0-beta.7" - ], - "76.0.3809.26": [ - "6.0.0-beta.8", - "6.0.0-beta.9" - ], - "76.0.3809.37": [ - "6.0.0-beta.10" - ], - "76.0.3809.42": [ - "6.0.0-beta.11" - ], - "76.0.3809.54": [ - "6.0.0-beta.12" - ], - "76.0.3809.60": [ - "6.0.0-beta.13" - ], - "76.0.3809.68": [ - "6.0.0-beta.14" - ], - "76.0.3809.74": [ - "6.0.0-beta.15" - ], - "72.0.3626.107": [ - "6.0.0-nightly.20190212" - ], - "72.0.3626.110": [ - "6.0.0-nightly.20190213" - ], - "74.0.3724.8": [ - "6.0.0-nightly.20190311" - ], - "76.0.3809.88": [ - "6.0.0" - ], - "76.0.3809.102": [ - "6.0.1" - ], - "76.0.3809.110": [ - "6.0.2" - ], - "76.0.3809.126": [ - "6.0.3" - ], - "76.0.3809.131": [ - "6.0.4" - ], - "76.0.3809.136": [ - "6.0.5" - ], - "76.0.3809.138": [ - "6.0.6" - ], - "76.0.3809.139": [ - "6.0.7" - ], - "76.0.3809.146": [ - "6.0.8", - "6.0.9", - "6.0.10", - "6.0.11", - "6.0.12", - "6.1.0", - "6.1.1", - "6.1.2", - "6.1.3", - "6.1.4", - "6.1.5", - "6.1.6", - "6.1.7", - "6.1.8", - "6.1.9", - "6.1.10", - "6.1.11", - "6.1.12" - ], - "78.0.3866.0": [ - "7.0.0-beta.1", - "7.0.0-beta.2", - "7.0.0-beta.3", - "7.0.0-nightly.20190727", - "7.0.0-nightly.20190728", - "7.0.0-nightly.20190729", - "7.0.0-nightly.20190730", - "7.0.0-nightly.20190731", - "8.0.0-nightly.20190801", - "8.0.0-nightly.20190802" - ], - "78.0.3896.6": [ - "7.0.0-beta.4" - ], - "78.0.3905.1": [ - "7.0.0-beta.5", - "7.0.0-beta.6", - "7.0.0-beta.7", - "7.0.0" - ], - "76.0.3784.0": [ - "7.0.0-nightly.20190521" - ], - "76.0.3806.0": [ - "7.0.0-nightly.20190529", - "7.0.0-nightly.20190530", - "7.0.0-nightly.20190531", - "7.0.0-nightly.20190602", - "7.0.0-nightly.20190603" - ], - "77.0.3814.0": [ - "7.0.0-nightly.20190604" - ], - "77.0.3815.0": [ - "7.0.0-nightly.20190605", - "7.0.0-nightly.20190606", - "7.0.0-nightly.20190607", - "7.0.0-nightly.20190608", - "7.0.0-nightly.20190609", - "7.0.0-nightly.20190611", - "7.0.0-nightly.20190612", - "7.0.0-nightly.20190613", - "7.0.0-nightly.20190615", - "7.0.0-nightly.20190616", - "7.0.0-nightly.20190618", - "7.0.0-nightly.20190619", - "7.0.0-nightly.20190622", - "7.0.0-nightly.20190623", - "7.0.0-nightly.20190624", - "7.0.0-nightly.20190627", - "7.0.0-nightly.20190629", - "7.0.0-nightly.20190630", - "7.0.0-nightly.20190701", - "7.0.0-nightly.20190702" - ], - "77.0.3843.0": [ - "7.0.0-nightly.20190704", - "7.0.0-nightly.20190705" - ], - "77.0.3848.0": [ - "7.0.0-nightly.20190719", - "7.0.0-nightly.20190720", - "7.0.0-nightly.20190721" - ], - "77.0.3864.0": [ - "7.0.0-nightly.20190726" - ], - "78.0.3904.92": [ - "7.0.1" - ], - "78.0.3904.94": [ - "7.1.0" - ], - "78.0.3904.99": [ - "7.1.1" - ], - "78.0.3904.113": [ - "7.1.2" - ], - "78.0.3904.126": [ - "7.1.3" - ], - "78.0.3904.130": [ - "7.1.4", - "7.1.5", - "7.1.6", - "7.1.7", - "7.1.8", - "7.1.9", - "7.1.10", - "7.1.11", - "7.1.12", - "7.1.13", - "7.1.14", - "7.2.0", - "7.2.1", - "7.2.2", - "7.2.3", - "7.2.4", - "7.3.0", - "7.3.1", - "7.3.2", - "7.3.3" - ], - "79.0.3931.0": [ - "8.0.0-beta.1", - "8.0.0-beta.2", - "8.0.0-nightly.20191019", - "8.0.0-nightly.20191020", - "8.0.0-nightly.20191021", - "8.0.0-nightly.20191023" - ], - "80.0.3955.0": [ - "8.0.0-beta.3", - "8.0.0-beta.4" - ], - "80.0.3987.14": [ - "8.0.0-beta.5" - ], - "80.0.3987.51": [ - "8.0.0-beta.6" - ], - "80.0.3987.59": [ - "8.0.0-beta.7" - ], - "80.0.3987.75": [ - "8.0.0-beta.8", - "8.0.0-beta.9" - ], - "78.0.3871.0": [ - "8.0.0-nightly.20190803", - "8.0.0-nightly.20190806", - "8.0.0-nightly.20190807", - "8.0.0-nightly.20190808", - "8.0.0-nightly.20190809", - "8.0.0-nightly.20190810", - "8.0.0-nightly.20190811", - "8.0.0-nightly.20190812", - "8.0.0-nightly.20190813", - "8.0.0-nightly.20190814", - "8.0.0-nightly.20190815" - ], - "78.0.3881.0": [ - "8.0.0-nightly.20190816", - "8.0.0-nightly.20190817", - "8.0.0-nightly.20190818", - "8.0.0-nightly.20190819", - "8.0.0-nightly.20190820" - ], - "78.0.3892.0": [ - "8.0.0-nightly.20190824", - "8.0.0-nightly.20190825", - "8.0.0-nightly.20190827", - "8.0.0-nightly.20190828", - "8.0.0-nightly.20190830", - "8.0.0-nightly.20190901", - "8.0.0-nightly.20190902", - "8.0.0-nightly.20190907", - "8.0.0-nightly.20190909", - "8.0.0-nightly.20190910", - "8.0.0-nightly.20190911", - "8.0.0-nightly.20190912", - "8.0.0-nightly.20190913", - "8.0.0-nightly.20190914", - "8.0.0-nightly.20190915", - "8.0.0-nightly.20190917" - ], - "79.0.3915.0": [ - "8.0.0-nightly.20190919", - "8.0.0-nightly.20190920" - ], - "79.0.3919.0": [ - "8.0.0-nightly.20190922", - "8.0.0-nightly.20190923", - "8.0.0-nightly.20190924", - "8.0.0-nightly.20190926", - "8.0.0-nightly.20190928", - "8.0.0-nightly.20190929", - "8.0.0-nightly.20190930", - "8.0.0-nightly.20191001", - "8.0.0-nightly.20191004", - "8.0.0-nightly.20191005", - "8.0.0-nightly.20191006", - "8.0.0-nightly.20191009", - "8.0.0-nightly.20191011", - "8.0.0-nightly.20191012", - "8.0.0-nightly.20191017" - ], - "80.0.3952.0": [ - "8.0.0-nightly.20191101", - "8.0.0-nightly.20191103", - "8.0.0-nightly.20191105" - ], - "80.0.3987.86": [ - "8.0.0", - "8.0.1", - "8.0.2" - ], - "80.0.3987.134": [ - "8.0.3" - ], - "80.0.3987.137": [ - "8.1.0" - ], - "80.0.3987.141": [ - "8.1.1" - ], - "80.0.3987.158": [ - "8.2.0" - ], - "80.0.3987.163": [ - "8.2.1", - "8.2.2", - "8.2.3", - "8.5.3", - "8.5.4", - "8.5.5" - ], - "80.0.3987.165": [ - "8.2.4", - "8.2.5", - "8.3.0", - "8.3.1", - "8.3.2", - "8.3.3", - "8.3.4", - "8.4.0", - "8.4.1", - "8.5.0", - "8.5.1", - "8.5.2" - ], - "82.0.4048.0": [ - "9.0.0-beta.1", - "9.0.0-beta.2", - "9.0.0-beta.3", - "9.0.0-beta.4", - "9.0.0-beta.5" - ], - "82.0.4058.2": [ - "9.0.0-beta.6", - "9.0.0-beta.7", - "9.0.0-beta.9" - ], - "82.0.4085.10": [ - "9.0.0-beta.10" - ], - "82.0.4085.14": [ - "9.0.0-beta.11", - "9.0.0-beta.12", - "9.0.0-beta.13" - ], - "82.0.4085.27": [ - "9.0.0-beta.14" - ], - "83.0.4102.3": [ - "9.0.0-beta.15", - "9.0.0-beta.16" - ], - "83.0.4103.14": [ - "9.0.0-beta.17" - ], - "83.0.4103.16": [ - "9.0.0-beta.18" - ], - "83.0.4103.24": [ - "9.0.0-beta.19" - ], - "83.0.4103.26": [ - "9.0.0-beta.20", - "9.0.0-beta.21" - ], - "83.0.4103.34": [ - "9.0.0-beta.22" - ], - "83.0.4103.44": [ - "9.0.0-beta.23" - ], - "83.0.4103.45": [ - "9.0.0-beta.24" - ], - "80.0.3954.0": [ - "9.0.0-nightly.20191121", - "9.0.0-nightly.20191122", - "9.0.0-nightly.20191123", - "9.0.0-nightly.20191124", - "9.0.0-nightly.20191126", - "9.0.0-nightly.20191128", - "9.0.0-nightly.20191129", - "9.0.0-nightly.20191130", - "9.0.0-nightly.20191201", - "9.0.0-nightly.20191202", - "9.0.0-nightly.20191203", - "9.0.0-nightly.20191204", - "9.0.0-nightly.20191205", - "9.0.0-nightly.20191210" - ], - "81.0.3994.0": [ - "9.0.0-nightly.20191220", - "9.0.0-nightly.20191221", - "9.0.0-nightly.20191222", - "9.0.0-nightly.20191223", - "9.0.0-nightly.20191224", - "9.0.0-nightly.20191225", - "9.0.0-nightly.20191226", - "9.0.0-nightly.20191228", - "9.0.0-nightly.20191229", - "9.0.0-nightly.20191230", - "9.0.0-nightly.20191231", - "9.0.0-nightly.20200101", - "9.0.0-nightly.20200103", - "9.0.0-nightly.20200104", - "9.0.0-nightly.20200105", - "9.0.0-nightly.20200106", - "9.0.0-nightly.20200108", - "9.0.0-nightly.20200109", - "9.0.0-nightly.20200110", - "9.0.0-nightly.20200111", - "9.0.0-nightly.20200113", - "9.0.0-nightly.20200115", - "9.0.0-nightly.20200116", - "9.0.0-nightly.20200117" - ], - "81.0.4030.0": [ - "9.0.0-nightly.20200119", - "9.0.0-nightly.20200121" - ], - "83.0.4103.64": [ - "9.0.0" - ], - "83.0.4103.94": [ - "9.0.1", - "9.0.2" - ], - "83.0.4103.100": [ - "9.0.3" - ], - "83.0.4103.104": [ - "9.0.4" - ], - "83.0.4103.119": [ - "9.0.5" - ], - "83.0.4103.122": [ - "9.1.0", - "9.1.1", - "9.1.2", - "9.2.0", - "9.2.1", - "9.3.0", - "9.3.1", - "9.3.2", - "9.3.3", - "9.3.4", - "9.3.5", - "9.4.0", - "9.4.1", - "9.4.2", - "9.4.3", - "9.4.4" - ], - "84.0.4129.0": [ - "10.0.0-beta.1", - "10.0.0-beta.2", - "10.0.0-nightly.20200501", - "10.0.0-nightly.20200504", - "10.0.0-nightly.20200505", - "10.0.0-nightly.20200506", - "10.0.0-nightly.20200507", - "10.0.0-nightly.20200508", - "10.0.0-nightly.20200511", - "10.0.0-nightly.20200512", - "10.0.0-nightly.20200513", - "10.0.0-nightly.20200514", - "10.0.0-nightly.20200515", - "10.0.0-nightly.20200518", - "10.0.0-nightly.20200519", - "10.0.0-nightly.20200520", - "10.0.0-nightly.20200521", - "11.0.0-nightly.20200525", - "11.0.0-nightly.20200526" - ], - "85.0.4161.2": [ - "10.0.0-beta.3", - "10.0.0-beta.4" - ], - "85.0.4181.1": [ - "10.0.0-beta.8", - "10.0.0-beta.9" - ], - "85.0.4183.19": [ - "10.0.0-beta.10" - ], - "85.0.4183.20": [ - "10.0.0-beta.11" - ], - "85.0.4183.26": [ - "10.0.0-beta.12" - ], - "85.0.4183.39": [ - "10.0.0-beta.13", - "10.0.0-beta.14", - "10.0.0-beta.15", - "10.0.0-beta.17", - "10.0.0-beta.19", - "10.0.0-beta.20", - "10.0.0-beta.21" - ], - "85.0.4183.70": [ - "10.0.0-beta.23" - ], - "85.0.4183.78": [ - "10.0.0-beta.24" - ], - "85.0.4183.80": [ - "10.0.0-beta.25" - ], - "82.0.4050.0": [ - "10.0.0-nightly.20200209", - "10.0.0-nightly.20200210", - "10.0.0-nightly.20200211", - "10.0.0-nightly.20200216", - "10.0.0-nightly.20200217", - "10.0.0-nightly.20200218", - "10.0.0-nightly.20200221", - "10.0.0-nightly.20200222", - "10.0.0-nightly.20200223", - "10.0.0-nightly.20200226", - "10.0.0-nightly.20200303" - ], - "82.0.4076.0": [ - "10.0.0-nightly.20200304", - "10.0.0-nightly.20200305", - "10.0.0-nightly.20200306", - "10.0.0-nightly.20200309", - "10.0.0-nightly.20200310" - ], - "82.0.4083.0": [ - "10.0.0-nightly.20200311" - ], - "83.0.4086.0": [ - "10.0.0-nightly.20200316" - ], - "83.0.4087.0": [ - "10.0.0-nightly.20200317", - "10.0.0-nightly.20200318", - "10.0.0-nightly.20200320", - "10.0.0-nightly.20200323", - "10.0.0-nightly.20200324", - "10.0.0-nightly.20200325", - "10.0.0-nightly.20200326", - "10.0.0-nightly.20200327", - "10.0.0-nightly.20200330", - "10.0.0-nightly.20200331", - "10.0.0-nightly.20200401", - "10.0.0-nightly.20200402", - "10.0.0-nightly.20200403", - "10.0.0-nightly.20200406" - ], - "83.0.4095.0": [ - "10.0.0-nightly.20200408", - "10.0.0-nightly.20200410", - "10.0.0-nightly.20200413" - ], - "84.0.4114.0": [ - "10.0.0-nightly.20200414" - ], - "84.0.4115.0": [ - "10.0.0-nightly.20200415", - "10.0.0-nightly.20200416", - "10.0.0-nightly.20200417" - ], - "84.0.4121.0": [ - "10.0.0-nightly.20200422", - "10.0.0-nightly.20200423" - ], - "84.0.4125.0": [ - "10.0.0-nightly.20200427", - "10.0.0-nightly.20200428", - "10.0.0-nightly.20200429", - "10.0.0-nightly.20200430" - ], - "85.0.4183.84": [ - "10.0.0" - ], - "85.0.4183.86": [ - "10.0.1" - ], - "85.0.4183.87": [ - "10.1.0" - ], - "85.0.4183.93": [ - "10.1.1" - ], - "85.0.4183.98": [ - "10.1.2" - ], - "85.0.4183.121": [ - "10.1.3", - "10.1.4", - "10.1.5", - "10.1.6", - "10.1.7", - "10.2.0", - "10.3.0", - "10.3.1", - "10.3.2", - "10.4.0", - "10.4.1", - "10.4.2", - "10.4.3", - "10.4.4", - "10.4.5", - "10.4.6", - "10.4.7" - ], - "86.0.4234.0": [ - "11.0.0-beta.1", - "11.0.0-beta.3", - "11.0.0-beta.4", - "11.0.0-beta.5", - "11.0.0-beta.6", - "11.0.0-beta.7", - "11.0.0-nightly.20200822", - "11.0.0-nightly.20200824", - "11.0.0-nightly.20200825", - "11.0.0-nightly.20200826", - "12.0.0-nightly.20200827", - "12.0.0-nightly.20200831", - "12.0.0-nightly.20200902", - "12.0.0-nightly.20200903", - "12.0.0-nightly.20200907", - "12.0.0-nightly.20200910", - "12.0.0-nightly.20200911", - "12.0.0-nightly.20200914" - ], - "87.0.4251.1": [ - "11.0.0-beta.8", - "11.0.0-beta.9", - "11.0.0-beta.11" - ], - "87.0.4280.11": [ - "11.0.0-beta.12", - "11.0.0-beta.13" - ], - "87.0.4280.27": [ - "11.0.0-beta.16", - "11.0.0-beta.17", - "11.0.0-beta.18", - "11.0.0-beta.19" - ], - "87.0.4280.40": [ - "11.0.0-beta.20" - ], - "87.0.4280.47": [ - "11.0.0-beta.22", - "11.0.0-beta.23" - ], - "85.0.4156.0": [ - "11.0.0-nightly.20200529" - ], - "85.0.4162.0": [ - "11.0.0-nightly.20200602", - "11.0.0-nightly.20200603", - "11.0.0-nightly.20200604", - "11.0.0-nightly.20200609", - "11.0.0-nightly.20200610", - "11.0.0-nightly.20200611", - "11.0.0-nightly.20200615", - "11.0.0-nightly.20200616", - "11.0.0-nightly.20200617", - "11.0.0-nightly.20200618", - "11.0.0-nightly.20200619" - ], - "85.0.4179.0": [ - "11.0.0-nightly.20200701", - "11.0.0-nightly.20200702", - "11.0.0-nightly.20200703", - "11.0.0-nightly.20200706", - "11.0.0-nightly.20200707", - "11.0.0-nightly.20200708", - "11.0.0-nightly.20200709" - ], - "86.0.4203.0": [ - "11.0.0-nightly.20200716", - "11.0.0-nightly.20200717", - "11.0.0-nightly.20200720", - "11.0.0-nightly.20200721" - ], - "86.0.4209.0": [ - "11.0.0-nightly.20200723", - "11.0.0-nightly.20200724", - "11.0.0-nightly.20200729", - "11.0.0-nightly.20200730", - "11.0.0-nightly.20200731", - "11.0.0-nightly.20200803", - "11.0.0-nightly.20200804", - "11.0.0-nightly.20200805", - "11.0.0-nightly.20200811", - "11.0.0-nightly.20200812" - ], - "87.0.4280.60": [ - "11.0.0", - "11.0.1" - ], - "87.0.4280.67": [ - "11.0.2", - "11.0.3", - "11.0.4" - ], - "87.0.4280.88": [ - "11.0.5", - "11.1.0", - "11.1.1" - ], - "87.0.4280.141": [ - "11.2.0", - "11.2.1", - "11.2.2", - "11.2.3", - "11.3.0", - "11.4.0", - "11.4.1", - "11.4.2", - "11.4.3", - "11.4.4", - "11.4.5", - "11.4.6", - "11.4.7", - "11.4.8", - "11.4.9", - "11.4.10", - "11.4.11", - "11.4.12", - "11.5.0" - ], - "89.0.4328.0": [ - "12.0.0-beta.1", - "12.0.0-beta.3", - "12.0.0-beta.4", - "12.0.0-beta.5", - "12.0.0-beta.6", - "12.0.0-beta.7", - "12.0.0-beta.8", - "12.0.0-beta.9", - "12.0.0-beta.10", - "12.0.0-beta.11", - "12.0.0-beta.12", - "12.0.0-beta.14", - "13.0.0-nightly.20201119", - "13.0.0-nightly.20201123", - "13.0.0-nightly.20201124", - "13.0.0-nightly.20201126", - "13.0.0-nightly.20201127", - "13.0.0-nightly.20201130", - "13.0.0-nightly.20201201", - "13.0.0-nightly.20201202", - "13.0.0-nightly.20201203", - "13.0.0-nightly.20201204", - "13.0.0-nightly.20201207", - "13.0.0-nightly.20201208", - "13.0.0-nightly.20201209", - "13.0.0-nightly.20201210", - "13.0.0-nightly.20201211", - "13.0.0-nightly.20201214" - ], - "89.0.4348.1": [ - "12.0.0-beta.16", - "12.0.0-beta.18", - "12.0.0-beta.19", - "12.0.0-beta.20" - ], - "89.0.4388.2": [ - "12.0.0-beta.21", - "12.0.0-beta.22", - "12.0.0-beta.23", - "12.0.0-beta.24", - "12.0.0-beta.25", - "12.0.0-beta.26" - ], - "89.0.4389.23": [ - "12.0.0-beta.27", - "12.0.0-beta.28", - "12.0.0-beta.29" - ], - "89.0.4389.58": [ - "12.0.0-beta.30", - "12.0.0-beta.31" - ], - "87.0.4268.0": [ - "12.0.0-nightly.20201002", - "12.0.0-nightly.20201007", - "12.0.0-nightly.20201009", - "12.0.0-nightly.20201012", - "12.0.0-nightly.20201013", - "12.0.0-nightly.20201014", - "12.0.0-nightly.20201015" - ], - "88.0.4292.0": [ - "12.0.0-nightly.20201023", - "12.0.0-nightly.20201026" - ], - "88.0.4306.0": [ - "12.0.0-nightly.20201030", - "12.0.0-nightly.20201102", - "12.0.0-nightly.20201103", - "12.0.0-nightly.20201104", - "12.0.0-nightly.20201105", - "12.0.0-nightly.20201106", - "12.0.0-nightly.20201111", - "12.0.0-nightly.20201112" - ], - "88.0.4324.0": [ - "12.0.0-nightly.20201116" - ], - "89.0.4389.69": [ - "12.0.0" - ], - "89.0.4389.82": [ - "12.0.1" - ], - "89.0.4389.90": [ - "12.0.2" - ], - "89.0.4389.114": [ - "12.0.3", - "12.0.4" - ], - "89.0.4389.128": [ - "12.0.5", - "12.0.6", - "12.0.7", - "12.0.8", - "12.0.9", - "12.0.10", - "12.0.11", - "12.0.12", - "12.0.13", - "12.0.14", - "12.0.15", - "12.0.16", - "12.0.17", - "12.0.18", - "12.1.0", - "12.1.1", - "12.1.2", - "12.2.0", - "12.2.1", - "12.2.2", - "12.2.3" - ], - "90.0.4402.0": [ - "13.0.0-beta.2", - "13.0.0-beta.3", - "13.0.0-nightly.20210210", - "13.0.0-nightly.20210211", - "13.0.0-nightly.20210212", - "13.0.0-nightly.20210216", - "13.0.0-nightly.20210217", - "13.0.0-nightly.20210218", - "13.0.0-nightly.20210219", - "13.0.0-nightly.20210222", - "13.0.0-nightly.20210225", - "13.0.0-nightly.20210226", - "13.0.0-nightly.20210301", - "13.0.0-nightly.20210302", - "13.0.0-nightly.20210303", - "14.0.0-nightly.20210304" - ], - "90.0.4415.0": [ - "13.0.0-beta.4", - "13.0.0-beta.5", - "13.0.0-beta.6", - "13.0.0-beta.7", - "13.0.0-beta.8", - "13.0.0-beta.9", - "13.0.0-beta.10", - "13.0.0-beta.11", - "13.0.0-beta.12", - "13.0.0-beta.13", - "14.0.0-nightly.20210305", - "14.0.0-nightly.20210308", - "14.0.0-nightly.20210309", - "14.0.0-nightly.20210311", - "14.0.0-nightly.20210315", - "14.0.0-nightly.20210316", - "14.0.0-nightly.20210317", - "14.0.0-nightly.20210318", - "14.0.0-nightly.20210319", - "14.0.0-nightly.20210323", - "14.0.0-nightly.20210324", - "14.0.0-nightly.20210325", - "14.0.0-nightly.20210326", - "14.0.0-nightly.20210329", - "14.0.0-nightly.20210330" - ], - "91.0.4448.0": [ - "13.0.0-beta.14", - "13.0.0-beta.16", - "13.0.0-beta.17", - "13.0.0-beta.18", - "13.0.0-beta.20", - "14.0.0-nightly.20210331", - "14.0.0-nightly.20210401", - "14.0.0-nightly.20210402", - "14.0.0-nightly.20210406", - "14.0.0-nightly.20210407", - "14.0.0-nightly.20210408", - "14.0.0-nightly.20210409", - "14.0.0-nightly.20210413" - ], - "91.0.4472.33": [ - "13.0.0-beta.21", - "13.0.0-beta.22", - "13.0.0-beta.23" - ], - "91.0.4472.38": [ - "13.0.0-beta.24", - "13.0.0-beta.25", - "13.0.0-beta.26", - "13.0.0-beta.27", - "13.0.0-beta.28" - ], - "89.0.4349.0": [ - "13.0.0-nightly.20201215", - "13.0.0-nightly.20201216", - "13.0.0-nightly.20201221", - "13.0.0-nightly.20201222" - ], - "89.0.4359.0": [ - "13.0.0-nightly.20201223", - "13.0.0-nightly.20210104", - "13.0.0-nightly.20210108", - "13.0.0-nightly.20210111" - ], - "89.0.4386.0": [ - "13.0.0-nightly.20210113", - "13.0.0-nightly.20210114", - "13.0.0-nightly.20210118", - "13.0.0-nightly.20210122", - "13.0.0-nightly.20210125" - ], - "89.0.4389.0": [ - "13.0.0-nightly.20210127", - "13.0.0-nightly.20210128", - "13.0.0-nightly.20210129", - "13.0.0-nightly.20210201", - "13.0.0-nightly.20210202", - "13.0.0-nightly.20210203", - "13.0.0-nightly.20210205", - "13.0.0-nightly.20210208", - "13.0.0-nightly.20210209" - ], - "91.0.4472.69": [ - "13.0.0", - "13.0.1" - ], - "91.0.4472.77": [ - "13.1.0", - "13.1.1", - "13.1.2" - ], - "91.0.4472.106": [ - "13.1.3", - "13.1.4" - ], - "91.0.4472.124": [ - "13.1.5", - "13.1.6", - "13.1.7" - ], - "91.0.4472.164": [ - "13.1.8", - "13.1.9", - "13.2.0", - "13.2.1", - "13.2.2", - "13.2.3", - "13.3.0", - "13.4.0", - "13.5.0", - "13.5.1", - "13.5.2", - "13.6.0", - "13.6.1", - "13.6.2", - "13.6.3", - "13.6.6", - "13.6.7", - "13.6.8", - "13.6.9" - ], - "92.0.4511.0": [ - "14.0.0-beta.1", - "14.0.0-beta.2", - "14.0.0-beta.3", - "14.0.0-nightly.20210520", - "14.0.0-nightly.20210523", - "14.0.0-nightly.20210524", - "15.0.0-nightly.20210527", - "15.0.0-nightly.20210528", - "15.0.0-nightly.20210531", - "15.0.0-nightly.20210601", - "15.0.0-nightly.20210602" - ], - "93.0.4536.0": [ - "14.0.0-beta.5", - "14.0.0-beta.6", - "14.0.0-beta.7", - "14.0.0-beta.8", - "15.0.0-nightly.20210609", - "15.0.0-nightly.20210610", - "15.0.0-nightly.20210611", - "15.0.0-nightly.20210614", - "15.0.0-nightly.20210615", - "15.0.0-nightly.20210616" - ], - "93.0.4539.0": [ - "14.0.0-beta.9", - "14.0.0-beta.10", - "15.0.0-nightly.20210617", - "15.0.0-nightly.20210618", - "15.0.0-nightly.20210621", - "15.0.0-nightly.20210622" - ], - "93.0.4557.4": [ - "14.0.0-beta.11", - "14.0.0-beta.12" - ], - "93.0.4566.0": [ - "14.0.0-beta.13", - "14.0.0-beta.14", - "14.0.0-beta.15", - "14.0.0-beta.16", - "14.0.0-beta.17", - "15.0.0-alpha.1", - "15.0.0-alpha.2", - "15.0.0-nightly.20210706", - "15.0.0-nightly.20210707", - "15.0.0-nightly.20210708", - "15.0.0-nightly.20210709", - "15.0.0-nightly.20210712", - "15.0.0-nightly.20210713", - "15.0.0-nightly.20210714", - "15.0.0-nightly.20210715", - "15.0.0-nightly.20210716", - "15.0.0-nightly.20210719", - "15.0.0-nightly.20210720", - "15.0.0-nightly.20210721", - "16.0.0-nightly.20210722", - "16.0.0-nightly.20210723", - "16.0.0-nightly.20210726" - ], - "93.0.4577.15": [ - "14.0.0-beta.18", - "14.0.0-beta.19", - "14.0.0-beta.20", - "14.0.0-beta.21" - ], - "93.0.4577.25": [ - "14.0.0-beta.22", - "14.0.0-beta.23" - ], - "93.0.4577.51": [ - "14.0.0-beta.24", - "14.0.0-beta.25" - ], - "92.0.4475.0": [ - "14.0.0-nightly.20210426", - "14.0.0-nightly.20210427" - ], - "92.0.4488.0": [ - "14.0.0-nightly.20210430", - "14.0.0-nightly.20210503" - ], - "92.0.4496.0": [ - "14.0.0-nightly.20210505" - ], - "92.0.4498.0": [ - "14.0.0-nightly.20210506" - ], - "92.0.4499.0": [ - "14.0.0-nightly.20210507", - "14.0.0-nightly.20210510", - "14.0.0-nightly.20210511", - "14.0.0-nightly.20210512", - "14.0.0-nightly.20210513" - ], - "92.0.4505.0": [ - "14.0.0-nightly.20210514", - "14.0.0-nightly.20210517", - "14.0.0-nightly.20210518", - "14.0.0-nightly.20210519" - ], - "93.0.4577.58": [ - "14.0.0" - ], - "93.0.4577.63": [ - "14.0.1" - ], - "93.0.4577.82": [ - "14.0.2", - "14.1.0", - "14.1.1", - "14.2.0", - "14.2.1", - "14.2.2", - "14.2.3", - "14.2.4", - "14.2.5", - "14.2.6", - "14.2.7", - "14.2.8", - "14.2.9" - ], - "94.0.4584.0": [ - "15.0.0-alpha.3", - "15.0.0-alpha.4", - "15.0.0-alpha.5", - "15.0.0-alpha.6", - "16.0.0-nightly.20210727", - "16.0.0-nightly.20210728", - "16.0.0-nightly.20210729", - "16.0.0-nightly.20210730", - "16.0.0-nightly.20210802", - "16.0.0-nightly.20210803", - "16.0.0-nightly.20210804", - "16.0.0-nightly.20210805", - "16.0.0-nightly.20210806", - "16.0.0-nightly.20210809", - "16.0.0-nightly.20210810", - "16.0.0-nightly.20210811" - ], - "94.0.4590.2": [ - "15.0.0-alpha.7", - "15.0.0-alpha.8", - "15.0.0-alpha.9", - "16.0.0-nightly.20210812", - "16.0.0-nightly.20210813", - "16.0.0-nightly.20210816", - "16.0.0-nightly.20210817", - "16.0.0-nightly.20210818", - "16.0.0-nightly.20210819", - "16.0.0-nightly.20210820", - "16.0.0-nightly.20210823" - ], - "94.0.4606.12": [ - "15.0.0-alpha.10" - ], - "94.0.4606.20": [ - "15.0.0-beta.1", - "15.0.0-beta.2" - ], - "94.0.4606.31": [ - "15.0.0-beta.3", - "15.0.0-beta.4", - "15.0.0-beta.5", - "15.0.0-beta.6", - "15.0.0-beta.7" - ], - "93.0.4530.0": [ - "15.0.0-nightly.20210603", - "15.0.0-nightly.20210604" - ], - "93.0.4535.0": [ - "15.0.0-nightly.20210608" - ], - "93.0.4550.0": [ - "15.0.0-nightly.20210623", - "15.0.0-nightly.20210624" - ], - "93.0.4552.0": [ - "15.0.0-nightly.20210625", - "15.0.0-nightly.20210628", - "15.0.0-nightly.20210629" - ], - "93.0.4558.0": [ - "15.0.0-nightly.20210630", - "15.0.0-nightly.20210701", - "15.0.0-nightly.20210702", - "15.0.0-nightly.20210705" - ], - "94.0.4606.51": [ - "15.0.0" - ], - "94.0.4606.61": [ - "15.1.0", - "15.1.1" - ], - "94.0.4606.71": [ - "15.1.2" - ], - "94.0.4606.81": [ - "15.2.0", - "15.3.0", - "15.3.1", - "15.3.2", - "15.3.3", - "15.3.4", - "15.3.5", - "15.3.6", - "15.3.7", - "15.4.0", - "15.4.1", - "15.4.2", - "15.5.0", - "15.5.1", - "15.5.2", - "15.5.3", - "15.5.4", - "15.5.5", - "15.5.6", - "15.5.7" - ], - "95.0.4629.0": [ - "16.0.0-alpha.1", - "16.0.0-alpha.2", - "16.0.0-alpha.3", - "16.0.0-alpha.4", - "16.0.0-alpha.5", - "16.0.0-alpha.6", - "16.0.0-alpha.7", - "16.0.0-nightly.20210902", - "16.0.0-nightly.20210903", - "16.0.0-nightly.20210906", - "16.0.0-nightly.20210907", - "16.0.0-nightly.20210908", - "16.0.0-nightly.20210909", - "16.0.0-nightly.20210910", - "16.0.0-nightly.20210913", - "16.0.0-nightly.20210914", - "16.0.0-nightly.20210915", - "16.0.0-nightly.20210916", - "16.0.0-nightly.20210917", - "16.0.0-nightly.20210920", - "16.0.0-nightly.20210921", - "16.0.0-nightly.20210922", - "17.0.0-nightly.20210923", - "17.0.0-nightly.20210924", - "17.0.0-nightly.20210927", - "17.0.0-nightly.20210928", - "17.0.0-nightly.20210929", - "17.0.0-nightly.20210930", - "17.0.0-nightly.20211001", - "17.0.0-nightly.20211004", - "17.0.0-nightly.20211005" - ], - "96.0.4647.0": [ - "16.0.0-alpha.8", - "16.0.0-alpha.9", - "16.0.0-beta.1", - "16.0.0-beta.2", - "16.0.0-beta.3", - "17.0.0-nightly.20211006", - "17.0.0-nightly.20211007", - "17.0.0-nightly.20211008", - "17.0.0-nightly.20211011", - "17.0.0-nightly.20211012", - "17.0.0-nightly.20211013", - "17.0.0-nightly.20211014", - "17.0.0-nightly.20211015", - "17.0.0-nightly.20211018", - "17.0.0-nightly.20211019", - "17.0.0-nightly.20211020", - "17.0.0-nightly.20211021" - ], - "96.0.4664.18": [ - "16.0.0-beta.4", - "16.0.0-beta.5" - ], - "96.0.4664.27": [ - "16.0.0-beta.6", - "16.0.0-beta.7" - ], - "96.0.4664.35": [ - "16.0.0-beta.8", - "16.0.0-beta.9" - ], - "95.0.4612.5": [ - "16.0.0-nightly.20210824", - "16.0.0-nightly.20210825", - "16.0.0-nightly.20210826", - "16.0.0-nightly.20210827", - "16.0.0-nightly.20210830", - "16.0.0-nightly.20210831", - "16.0.0-nightly.20210901" - ], - "96.0.4664.45": [ - "16.0.0", - "16.0.1" - ], - "96.0.4664.55": [ - "16.0.2", - "16.0.3", - "16.0.4", - "16.0.5" - ], - "96.0.4664.110": [ - "16.0.6", - "16.0.7", - "16.0.8" - ], - "96.0.4664.174": [ - "16.0.9", - "16.0.10", - "16.1.0", - "16.1.1", - "16.2.0", - "16.2.1", - "16.2.2", - "16.2.3", - "16.2.4", - "16.2.5", - "16.2.6", - "16.2.7", - "16.2.8" - ], - "96.0.4664.4": [ - "17.0.0-alpha.1", - "17.0.0-alpha.2", - "17.0.0-alpha.3", - "17.0.0-nightly.20211022", - "17.0.0-nightly.20211025", - "17.0.0-nightly.20211026", - "17.0.0-nightly.20211027", - "17.0.0-nightly.20211028", - "17.0.0-nightly.20211029", - "17.0.0-nightly.20211101", - "17.0.0-nightly.20211102", - "17.0.0-nightly.20211103", - "17.0.0-nightly.20211104", - "17.0.0-nightly.20211105", - "17.0.0-nightly.20211108", - "17.0.0-nightly.20211109", - "17.0.0-nightly.20211110", - "17.0.0-nightly.20211111", - "17.0.0-nightly.20211112", - "17.0.0-nightly.20211115", - "17.0.0-nightly.20211116", - "17.0.0-nightly.20211117", - "18.0.0-nightly.20211118", - "18.0.0-nightly.20211119", - "18.0.0-nightly.20211122", - "18.0.0-nightly.20211123" - ], - "98.0.4706.0": [ - "17.0.0-alpha.4", - "17.0.0-alpha.5", - "17.0.0-alpha.6", - "17.0.0-beta.1", - "17.0.0-beta.2", - "18.0.0-nightly.20211124", - "18.0.0-nightly.20211125", - "18.0.0-nightly.20211126", - "18.0.0-nightly.20211129", - "18.0.0-nightly.20211130", - "18.0.0-nightly.20211201", - "18.0.0-nightly.20211202", - "18.0.0-nightly.20211203", - "18.0.0-nightly.20211206", - "18.0.0-nightly.20211207", - "18.0.0-nightly.20211208", - "18.0.0-nightly.20211209", - "18.0.0-nightly.20211210", - "18.0.0-nightly.20211213", - "18.0.0-nightly.20211214", - "18.0.0-nightly.20211215", - "18.0.0-nightly.20211216", - "18.0.0-nightly.20211217", - "18.0.0-nightly.20211220", - "18.0.0-nightly.20211221", - "18.0.0-nightly.20211222", - "18.0.0-nightly.20211223", - "18.0.0-nightly.20211228", - "18.0.0-nightly.20211229", - "18.0.0-nightly.20211231", - "18.0.0-nightly.20220103", - "18.0.0-nightly.20220104", - "18.0.0-nightly.20220105", - "18.0.0-nightly.20220106", - "18.0.0-nightly.20220107", - "18.0.0-nightly.20220110" - ], - "98.0.4758.9": [ - "17.0.0-beta.3" - ], - "98.0.4758.11": [ - "17.0.0-beta.4", - "17.0.0-beta.5", - "17.0.0-beta.6", - "17.0.0-beta.7", - "17.0.0-beta.8", - "17.0.0-beta.9" - ], - "98.0.4758.74": [ - "17.0.0" - ], - "98.0.4758.82": [ - "17.0.1" - ], - "98.0.4758.102": [ - "17.1.0" - ], - "98.0.4758.109": [ - "17.1.1", - "17.1.2", - "17.2.0" - ], - "98.0.4758.141": [ - "17.3.0", - "17.3.1", - "17.4.0", - "17.4.1", - "17.4.2", - "17.4.3", - "17.4.4", - "17.4.5", - "17.4.6", - "17.4.7", - "17.4.8", - "17.4.9", - "17.4.10", - "17.4.11" - ], - "99.0.4767.0": [ - "18.0.0-alpha.1", - "18.0.0-alpha.2", - "18.0.0-alpha.3", - "18.0.0-alpha.4", - "18.0.0-alpha.5", - "18.0.0-nightly.20220111", - "18.0.0-nightly.20220112", - "18.0.0-nightly.20220113", - "18.0.0-nightly.20220114", - "18.0.0-nightly.20220117", - "18.0.0-nightly.20220118", - "18.0.0-nightly.20220119", - "18.0.0-nightly.20220121", - "18.0.0-nightly.20220124", - "18.0.0-nightly.20220125", - "18.0.0-nightly.20220127", - "18.0.0-nightly.20220128", - "18.0.0-nightly.20220131", - "18.0.0-nightly.20220201", - "19.0.0-nightly.20220202", - "19.0.0-nightly.20220203", - "19.0.0-nightly.20220204", - "19.0.0-nightly.20220207", - "19.0.0-nightly.20220208", - "19.0.0-nightly.20220209" - ], - "100.0.4894.0": [ - "18.0.0-beta.1", - "18.0.0-beta.2", - "18.0.0-beta.3", - "18.0.0-beta.4", - "18.0.0-beta.5", - "18.0.0-beta.6", - "19.0.0-nightly.20220308", - "19.0.0-nightly.20220309", - "19.0.0-nightly.20220310", - "19.0.0-nightly.20220311", - "19.0.0-nightly.20220314", - "19.0.0-nightly.20220315", - "19.0.0-nightly.20220316", - "19.0.0-nightly.20220317", - "19.0.0-nightly.20220318", - "19.0.0-nightly.20220321", - "19.0.0-nightly.20220322", - "19.0.0-nightly.20220323", - "19.0.0-nightly.20220324" - ], - "100.0.4896.56": [ - "18.0.0" - ], - "100.0.4896.60": [ - "18.0.1", - "18.0.2" - ], - "100.0.4896.75": [ - "18.0.3", - "18.0.4" - ], - "100.0.4896.127": [ - "18.1.0" - ], - "100.0.4896.143": [ - "18.2.0", - "18.2.1", - "18.2.2", - "18.2.3" - ], - "100.0.4896.160": [ - "18.2.4", - "18.3.0", - "18.3.1", - "18.3.2", - "18.3.3", - "18.3.4", - "18.3.5", - "18.3.6", - "18.3.7", - "18.3.8", - "18.3.9", - "18.3.11", - "18.3.12", - "18.3.13", - "18.3.14", - "18.3.15" - ], - "102.0.4962.3": [ - "19.0.0-alpha.1", - "19.0.0-nightly.20220328", - "19.0.0-nightly.20220329", - "20.0.0-nightly.20220330" - ], - "102.0.4971.0": [ - "19.0.0-alpha.2", - "19.0.0-alpha.3", - "20.0.0-nightly.20220411" - ], - "102.0.4989.0": [ - "19.0.0-alpha.4", - "19.0.0-alpha.5", - "20.0.0-nightly.20220414", - "20.0.0-nightly.20220415", - "20.0.0-nightly.20220418", - "20.0.0-nightly.20220419", - "20.0.0-nightly.20220420", - "20.0.0-nightly.20220421" - ], - "102.0.4999.0": [ - "19.0.0-beta.1", - "19.0.0-beta.2", - "19.0.0-beta.3", - "20.0.0-nightly.20220425", - "20.0.0-nightly.20220426", - "20.0.0-nightly.20220427", - "20.0.0-nightly.20220428", - "20.0.0-nightly.20220429", - "20.0.0-nightly.20220502", - "20.0.0-nightly.20220503", - "20.0.0-nightly.20220504", - "20.0.0-nightly.20220505", - "20.0.0-nightly.20220506", - "20.0.0-nightly.20220509", - "20.0.0-nightly.20220511", - "20.0.0-nightly.20220512", - "20.0.0-nightly.20220513", - "20.0.0-nightly.20220516", - "20.0.0-nightly.20220517" - ], - "102.0.5005.27": [ - "19.0.0-beta.4" - ], - "102.0.5005.40": [ - "19.0.0-beta.5", - "19.0.0-beta.6", - "19.0.0-beta.7" - ], - "102.0.5005.49": [ - "19.0.0-beta.8" - ], - "102.0.4961.0": [ - "19.0.0-nightly.20220325" - ], - "102.0.5005.61": [ - "19.0.0", - "19.0.1" - ], - "102.0.5005.63": [ - "19.0.2", - "19.0.3", - "19.0.4" - ], - "102.0.5005.115": [ - "19.0.5", - "19.0.6" - ], - "102.0.5005.134": [ - "19.0.7" - ], - "102.0.5005.148": [ - "19.0.8" - ], - "102.0.5005.167": [ - "19.0.9", - "19.0.10", - "19.0.11", - "19.0.12", - "19.0.13", - "19.0.14", - "19.0.15", - "19.0.16", - "19.0.17", - "19.1.0", - "19.1.1", - "19.1.2", - "19.1.3", - "19.1.4", - "19.1.5", - "19.1.6", - "19.1.7", - "19.1.8", - "19.1.9" - ], - "103.0.5044.0": [ - "20.0.0-alpha.1", - "20.0.0-nightly.20220518", - "20.0.0-nightly.20220519", - "20.0.0-nightly.20220520", - "20.0.0-nightly.20220523", - "20.0.0-nightly.20220524", - "21.0.0-nightly.20220526", - "21.0.0-nightly.20220527", - "21.0.0-nightly.20220530", - "21.0.0-nightly.20220531" - ], - "104.0.5073.0": [ - "20.0.0-alpha.2", - "20.0.0-alpha.3", - "20.0.0-alpha.4", - "20.0.0-alpha.5", - "20.0.0-alpha.6", - "20.0.0-alpha.7", - "20.0.0-beta.1", - "20.0.0-beta.2", - "20.0.0-beta.3", - "20.0.0-beta.4", - "20.0.0-beta.5", - "20.0.0-beta.6", - "20.0.0-beta.7", - "20.0.0-beta.8", - "21.0.0-nightly.20220602", - "21.0.0-nightly.20220603", - "21.0.0-nightly.20220606", - "21.0.0-nightly.20220607", - "21.0.0-nightly.20220608", - "21.0.0-nightly.20220609", - "21.0.0-nightly.20220610", - "21.0.0-nightly.20220613", - "21.0.0-nightly.20220614", - "21.0.0-nightly.20220615", - "21.0.0-nightly.20220616", - "21.0.0-nightly.20220617", - "21.0.0-nightly.20220620", - "21.0.0-nightly.20220621", - "21.0.0-nightly.20220622", - "21.0.0-nightly.20220623", - "21.0.0-nightly.20220624", - "21.0.0-nightly.20220627" - ], - "104.0.5112.39": [ - "20.0.0-beta.9" - ], - "104.0.5112.48": [ - "20.0.0-beta.10", - "20.0.0-beta.11", - "20.0.0-beta.12" - ], - "104.0.5112.57": [ - "20.0.0-beta.13" - ], - "104.0.5112.65": [ - "20.0.0" - ], - "104.0.5112.81": [ - "20.0.1", - "20.0.2", - "20.0.3" - ], - "104.0.5112.102": [ - "20.1.0", - "20.1.1" - ], - "104.0.5112.114": [ - "20.1.2", - "20.1.3", - "20.1.4" - ], - "104.0.5112.124": [ - "20.2.0", - "20.3.0", - "20.3.1", - "20.3.2", - "20.3.3", - "20.3.4", - "20.3.5", - "20.3.6", - "20.3.7", - "20.3.8", - "20.3.9", - "20.3.10", - "20.3.11", - "20.3.12" - ], - "105.0.5187.0": [ - "21.0.0-alpha.1", - "21.0.0-alpha.2", - "21.0.0-alpha.3", - "21.0.0-alpha.4", - "21.0.0-alpha.5", - "21.0.0-nightly.20220720", - "21.0.0-nightly.20220721", - "21.0.0-nightly.20220722", - "21.0.0-nightly.20220725", - "21.0.0-nightly.20220726", - "21.0.0-nightly.20220727", - "21.0.0-nightly.20220728", - "21.0.0-nightly.20220801", - "21.0.0-nightly.20220802", - "22.0.0-nightly.20220808", - "22.0.0-nightly.20220809", - "22.0.0-nightly.20220810", - "22.0.0-nightly.20220811", - "22.0.0-nightly.20220812", - "22.0.0-nightly.20220815", - "22.0.0-nightly.20220816", - "22.0.0-nightly.20220817" - ], - "106.0.5216.0": [ - "21.0.0-alpha.6", - "21.0.0-beta.1", - "21.0.0-beta.2", - "21.0.0-beta.3", - "21.0.0-beta.4", - "21.0.0-beta.5", - "22.0.0-nightly.20220822", - "22.0.0-nightly.20220823", - "22.0.0-nightly.20220824", - "22.0.0-nightly.20220825", - "22.0.0-nightly.20220829", - "22.0.0-nightly.20220830", - "22.0.0-nightly.20220831", - "22.0.0-nightly.20220901", - "22.0.0-nightly.20220902", - "22.0.0-nightly.20220905" - ], - "106.0.5249.40": [ - "21.0.0-beta.6", - "21.0.0-beta.7", - "21.0.0-beta.8" - ], - "105.0.5129.0": [ - "21.0.0-nightly.20220628", - "21.0.0-nightly.20220629", - "21.0.0-nightly.20220630", - "21.0.0-nightly.20220701", - "21.0.0-nightly.20220704", - "21.0.0-nightly.20220705", - "21.0.0-nightly.20220706", - "21.0.0-nightly.20220707", - "21.0.0-nightly.20220708", - "21.0.0-nightly.20220711", - "21.0.0-nightly.20220712", - "21.0.0-nightly.20220713" - ], - "105.0.5173.0": [ - "21.0.0-nightly.20220715", - "21.0.0-nightly.20220718", - "21.0.0-nightly.20220719" - ], - "106.0.5249.51": [ - "21.0.0" - ], - "106.0.5249.61": [ - "21.0.1" - ], - "106.0.5249.91": [ - "21.1.0" - ], - "106.0.5249.103": [ - "21.1.1" - ], - "106.0.5249.119": [ - "21.2.0" - ], - "106.0.5249.165": [ - "21.2.1" - ], - "106.0.5249.168": [ - "21.2.2", - "21.2.3" - ], - "106.0.5249.181": [ - "21.3.0", - "21.3.1" - ], - "106.0.5249.199": [ - "21.3.3", - "21.3.4", - "21.3.5", - "21.4.0", - "21.4.1", - "21.4.2", - "21.4.3", - "21.4.4" - ], - "107.0.5286.0": [ - "22.0.0-alpha.1", - "22.0.0-nightly.20220909", - "22.0.0-nightly.20220912", - "22.0.0-nightly.20220913", - "22.0.0-nightly.20220914", - "22.0.0-nightly.20220915", - "22.0.0-nightly.20220916", - "22.0.0-nightly.20220919", - "22.0.0-nightly.20220920", - "22.0.0-nightly.20220921", - "22.0.0-nightly.20220922", - "22.0.0-nightly.20220923", - "22.0.0-nightly.20220926", - "22.0.0-nightly.20220927", - "22.0.0-nightly.20220928", - "23.0.0-nightly.20220929", - "23.0.0-nightly.20220930", - "23.0.0-nightly.20221003" - ], - "108.0.5329.0": [ - "22.0.0-alpha.3", - "22.0.0-alpha.4", - "22.0.0-alpha.5", - "22.0.0-alpha.6", - "23.0.0-nightly.20221004", - "23.0.0-nightly.20221005", - "23.0.0-nightly.20221006", - "23.0.0-nightly.20221007", - "23.0.0-nightly.20221010", - "23.0.0-nightly.20221011", - "23.0.0-nightly.20221012", - "23.0.0-nightly.20221013", - "23.0.0-nightly.20221014", - "23.0.0-nightly.20221017" - ], - "108.0.5355.0": [ - "22.0.0-alpha.7", - "23.0.0-nightly.20221018", - "23.0.0-nightly.20221019", - "23.0.0-nightly.20221020", - "23.0.0-nightly.20221021", - "23.0.0-nightly.20221024", - "23.0.0-nightly.20221026" - ], - "108.0.5359.10": [ - "22.0.0-alpha.8", - "22.0.0-beta.1", - "22.0.0-beta.2", - "22.0.0-beta.3" - ], - "108.0.5359.29": [ - "22.0.0-beta.4" - ], - "108.0.5359.40": [ - "22.0.0-beta.5", - "22.0.0-beta.6" - ], - "108.0.5359.48": [ - "22.0.0-beta.7", - "22.0.0-beta.8" - ], - "107.0.5274.0": [ - "22.0.0-nightly.20220908" - ], - "108.0.5359.62": [ - "22.0.0" - ], - "108.0.5359.125": [ - "22.0.1" - ], - "108.0.5359.179": [ - "22.0.2", - "22.0.3", - "22.1.0" - ], - "108.0.5359.215": [ - "22.2.0", - "22.2.1", - "22.3.0", - "22.3.1", - "22.3.2", - "22.3.3", - "22.3.4", - "22.3.5", - "22.3.6", - "22.3.7", - "22.3.8", - "22.3.9", - "22.3.10", - "22.3.11", - "22.3.12", - "22.3.13", - "22.3.14", - "22.3.15", - "22.3.16", - "22.3.17", - "22.3.18", - "22.3.20", - "22.3.21", - "22.3.22", - "22.3.23", - "22.3.24", - "22.3.25", - "22.3.26", - "22.3.27" - ], - "110.0.5415.0": [ - "23.0.0-alpha.1", - "23.0.0-nightly.20221118", - "23.0.0-nightly.20221121", - "23.0.0-nightly.20221122", - "23.0.0-nightly.20221123", - "23.0.0-nightly.20221124", - "23.0.0-nightly.20221125", - "23.0.0-nightly.20221128", - "23.0.0-nightly.20221129", - "23.0.0-nightly.20221130", - "24.0.0-nightly.20221201", - "24.0.0-nightly.20221202", - "24.0.0-nightly.20221205" - ], - "110.0.5451.0": [ - "23.0.0-alpha.2", - "23.0.0-alpha.3", - "24.0.0-nightly.20221206", - "24.0.0-nightly.20221207", - "24.0.0-nightly.20221208", - "24.0.0-nightly.20221213", - "24.0.0-nightly.20221214", - "24.0.0-nightly.20221215", - "24.0.0-nightly.20221216" - ], - "110.0.5478.5": [ - "23.0.0-beta.1", - "23.0.0-beta.2", - "23.0.0-beta.3" - ], - "110.0.5481.30": [ - "23.0.0-beta.4" - ], - "110.0.5481.38": [ - "23.0.0-beta.5" - ], - "110.0.5481.52": [ - "23.0.0-beta.6", - "23.0.0-beta.8" - ], - "109.0.5382.0": [ - "23.0.0-nightly.20221027", - "23.0.0-nightly.20221028", - "23.0.0-nightly.20221031", - "23.0.0-nightly.20221101", - "23.0.0-nightly.20221102", - "23.0.0-nightly.20221103", - "23.0.0-nightly.20221104", - "23.0.0-nightly.20221107", - "23.0.0-nightly.20221108", - "23.0.0-nightly.20221109", - "23.0.0-nightly.20221110", - "23.0.0-nightly.20221111", - "23.0.0-nightly.20221114", - "23.0.0-nightly.20221115", - "23.0.0-nightly.20221116", - "23.0.0-nightly.20221117" - ], - "110.0.5481.77": [ - "23.0.0" - ], - "110.0.5481.100": [ - "23.1.0" - ], - "110.0.5481.104": [ - "23.1.1" - ], - "110.0.5481.177": [ - "23.1.2" - ], - "110.0.5481.179": [ - "23.1.3" - ], - "110.0.5481.192": [ - "23.1.4", - "23.2.0" - ], - "110.0.5481.208": [ - "23.2.1", - "23.2.2", - "23.2.3", - "23.2.4", - "23.3.0", - "23.3.1", - "23.3.2", - "23.3.3", - "23.3.4", - "23.3.5", - "23.3.6", - "23.3.7", - "23.3.8", - "23.3.9", - "23.3.10", - "23.3.11", - "23.3.12", - "23.3.13" - ], - "111.0.5560.0": [ - "24.0.0-alpha.1", - "24.0.0-alpha.2", - "24.0.0-alpha.3", - "24.0.0-alpha.4", - "24.0.0-alpha.5", - "24.0.0-alpha.6", - "24.0.0-alpha.7", - "24.0.0-nightly.20230203", - "24.0.0-nightly.20230206", - "24.0.0-nightly.20230207", - "24.0.0-nightly.20230208", - "24.0.0-nightly.20230209", - "25.0.0-nightly.20230210", - "25.0.0-nightly.20230214", - "25.0.0-nightly.20230215", - "25.0.0-nightly.20230216", - "25.0.0-nightly.20230217", - "25.0.0-nightly.20230220", - "25.0.0-nightly.20230221", - "25.0.0-nightly.20230222", - "25.0.0-nightly.20230223", - "25.0.0-nightly.20230224", - "25.0.0-nightly.20230227", - "25.0.0-nightly.20230228", - "25.0.0-nightly.20230301", - "25.0.0-nightly.20230302", - "25.0.0-nightly.20230303", - "25.0.0-nightly.20230306", - "25.0.0-nightly.20230307", - "25.0.0-nightly.20230308", - "25.0.0-nightly.20230309", - "25.0.0-nightly.20230310" - ], - "111.0.5563.50": [ - "24.0.0-beta.1", - "24.0.0-beta.2" - ], - "112.0.5615.20": [ - "24.0.0-beta.3", - "24.0.0-beta.4" - ], - "112.0.5615.29": [ - "24.0.0-beta.5" - ], - "112.0.5615.39": [ - "24.0.0-beta.6", - "24.0.0-beta.7" - ], - "111.0.5518.0": [ - "24.0.0-nightly.20230109", - "24.0.0-nightly.20230110", - "24.0.0-nightly.20230111", - "24.0.0-nightly.20230112", - "24.0.0-nightly.20230113", - "24.0.0-nightly.20230116", - "24.0.0-nightly.20230117", - "24.0.0-nightly.20230118", - "24.0.0-nightly.20230119", - "24.0.0-nightly.20230120", - "24.0.0-nightly.20230123", - "24.0.0-nightly.20230124", - "24.0.0-nightly.20230125", - "24.0.0-nightly.20230126", - "24.0.0-nightly.20230127", - "24.0.0-nightly.20230131", - "24.0.0-nightly.20230201", - "24.0.0-nightly.20230202" - ], - "112.0.5615.49": [ - "24.0.0" - ], - "112.0.5615.50": [ - "24.1.0", - "24.1.1" - ], - "112.0.5615.87": [ - "24.1.2" - ], - "112.0.5615.165": [ - "24.1.3", - "24.2.0", - "24.3.0" - ], - "112.0.5615.183": [ - "24.3.1" - ], - "112.0.5615.204": [ - "24.4.0", - "24.4.1", - "24.5.0", - "24.5.1", - "24.6.0", - "24.6.1", - "24.6.2", - "24.6.3", - "24.6.4", - "24.6.5", - "24.7.0", - "24.7.1", - "24.8.0", - "24.8.1", - "24.8.2", - "24.8.3", - "24.8.4", - "24.8.5", - "24.8.6", - "24.8.7", - "24.8.8" - ], - "114.0.5694.0": [ - "25.0.0-alpha.1", - "25.0.0-alpha.2", - "25.0.0-nightly.20230405", - "26.0.0-nightly.20230406", - "26.0.0-nightly.20230407", - "26.0.0-nightly.20230410", - "26.0.0-nightly.20230411" - ], - "114.0.5710.0": [ - "25.0.0-alpha.3", - "25.0.0-alpha.4", - "26.0.0-nightly.20230413", - "26.0.0-nightly.20230414", - "26.0.0-nightly.20230417" - ], - "114.0.5719.0": [ - "25.0.0-alpha.5", - "25.0.0-alpha.6", - "25.0.0-beta.1", - "25.0.0-beta.2", - "25.0.0-beta.3", - "26.0.0-nightly.20230421", - "26.0.0-nightly.20230424", - "26.0.0-nightly.20230425", - "26.0.0-nightly.20230426", - "26.0.0-nightly.20230427", - "26.0.0-nightly.20230428", - "26.0.0-nightly.20230501", - "26.0.0-nightly.20230502", - "26.0.0-nightly.20230503", - "26.0.0-nightly.20230504", - "26.0.0-nightly.20230505", - "26.0.0-nightly.20230508", - "26.0.0-nightly.20230509", - "26.0.0-nightly.20230510" - ], - "114.0.5735.16": [ - "25.0.0-beta.4", - "25.0.0-beta.5", - "25.0.0-beta.6", - "25.0.0-beta.7" - ], - "114.0.5735.35": [ - "25.0.0-beta.8" - ], - "114.0.5735.45": [ - "25.0.0-beta.9", - "25.0.0", - "25.0.1" - ], - "113.0.5636.0": [ - "25.0.0-nightly.20230314" - ], - "113.0.5651.0": [ - "25.0.0-nightly.20230315" - ], - "113.0.5653.0": [ - "25.0.0-nightly.20230317" - ], - "113.0.5660.0": [ - "25.0.0-nightly.20230320" - ], - "113.0.5664.0": [ - "25.0.0-nightly.20230321" - ], - "113.0.5666.0": [ - "25.0.0-nightly.20230322" - ], - "113.0.5668.0": [ - "25.0.0-nightly.20230323" - ], - "113.0.5670.0": [ - "25.0.0-nightly.20230324", - "25.0.0-nightly.20230327", - "25.0.0-nightly.20230328", - "25.0.0-nightly.20230329", - "25.0.0-nightly.20230330" - ], - "114.0.5684.0": [ - "25.0.0-nightly.20230331", - "25.0.0-nightly.20230403" - ], - "114.0.5692.0": [ - "25.0.0-nightly.20230404" - ], - "114.0.5735.106": [ - "25.1.0", - "25.1.1" - ], - "114.0.5735.134": [ - "25.2.0" - ], - "114.0.5735.199": [ - "25.3.0" - ], - "114.0.5735.243": [ - "25.3.1" - ], - "114.0.5735.248": [ - "25.3.2", - "25.4.0" - ], - "114.0.5735.289": [ - "25.5.0", - "25.6.0", - "25.7.0", - "25.8.0", - "25.8.1", - "25.8.2", - "25.8.3", - "25.8.4", - "25.9.0", - "25.9.1", - "25.9.2", - "25.9.3" - ], - "116.0.5791.0": [ - "26.0.0-alpha.1", - "26.0.0-alpha.2", - "26.0.0-alpha.3", - "26.0.0-alpha.4", - "26.0.0-alpha.5", - "26.0.0-nightly.20230526", - "26.0.0-nightly.20230529", - "26.0.0-nightly.20230530", - "26.0.0-nightly.20230531", - "27.0.0-nightly.20230601", - "27.0.0-nightly.20230602", - "27.0.0-nightly.20230605", - "27.0.0-nightly.20230606", - "27.0.0-nightly.20230607", - "27.0.0-nightly.20230609" - ], - "116.0.5815.0": [ - "26.0.0-alpha.6", - "27.0.0-nightly.20230612", - "27.0.0-nightly.20230613" - ], - "116.0.5831.0": [ - "26.0.0-alpha.7", - "27.0.0-nightly.20230615" - ], - "116.0.5845.0": [ - "26.0.0-alpha.8", - "26.0.0-beta.1", - "27.0.0-nightly.20230622", - "27.0.0-nightly.20230623", - "27.0.0-nightly.20230626", - "27.0.0-nightly.20230627", - "27.0.0-nightly.20230628", - "27.0.0-nightly.20230629", - "27.0.0-nightly.20230630" - ], - "116.0.5845.14": [ - "26.0.0-beta.2", - "26.0.0-beta.3", - "26.0.0-beta.4", - "26.0.0-beta.5", - "26.0.0-beta.6", - "26.0.0-beta.7" - ], - "116.0.5845.42": [ - "26.0.0-beta.8", - "26.0.0-beta.9" - ], - "116.0.5845.49": [ - "26.0.0-beta.10", - "26.0.0-beta.11" - ], - "116.0.5845.62": [ - "26.0.0-beta.12" - ], - "114.0.5708.0": [ - "26.0.0-nightly.20230412" - ], - "114.0.5715.0": [ - "26.0.0-nightly.20230418" - ], - "115.0.5760.0": [ - "26.0.0-nightly.20230511", - "26.0.0-nightly.20230512", - "26.0.0-nightly.20230515", - "26.0.0-nightly.20230516", - "26.0.0-nightly.20230517", - "26.0.0-nightly.20230518", - "26.0.0-nightly.20230519", - "26.0.0-nightly.20230522", - "26.0.0-nightly.20230523" - ], - "115.0.5786.0": [ - "26.0.0-nightly.20230524" - ], - "115.0.5790.0": [ - "26.0.0-nightly.20230525" - ], - "116.0.5845.82": [ - "26.0.0" - ], - "116.0.5845.97": [ - "26.1.0" - ], - "116.0.5845.179": [ - "26.2.0" - ], - "116.0.5845.188": [ - "26.2.1" - ], - "116.0.5845.190": [ - "26.2.2", - "26.2.3", - "26.2.4" - ], - "116.0.5845.228": [ - "26.3.0", - "26.4.0", - "26.4.1", - "26.4.2" - ], - "118.0.5949.0": [ - "27.0.0-alpha.1", - "27.0.0-alpha.2", - "27.0.0-alpha.3", - "27.0.0-alpha.4", - "27.0.0-alpha.5", - "27.0.0-alpha.6", - "27.0.0-nightly.20230816", - "28.0.0-nightly.20230817", - "28.0.0-nightly.20230818", - "28.0.0-nightly.20230821", - "28.0.0-nightly.20230822", - "28.0.0-nightly.20230823", - "28.0.0-nightly.20230824", - "28.0.0-nightly.20230825", - "28.0.0-nightly.20230828", - "28.0.0-nightly.20230829", - "28.0.0-nightly.20230830", - "28.0.0-nightly.20230831" - ], - "118.0.5993.5": [ - "27.0.0-beta.1", - "27.0.0-beta.2", - "27.0.0-beta.3" - ], - "118.0.5993.11": [ - "27.0.0-beta.4" - ], - "118.0.5993.18": [ - "27.0.0-beta.5", - "27.0.0-beta.6", - "27.0.0-beta.7", - "27.0.0-beta.8", - "27.0.0-beta.9" - ], - "116.0.5829.0": [ - "27.0.0-nightly.20230614" - ], - "116.0.5833.0": [ - "27.0.0-nightly.20230616", - "27.0.0-nightly.20230619", - "27.0.0-nightly.20230620", - "27.0.0-nightly.20230621" - ], - "117.0.5852.0": [ - "27.0.0-nightly.20230703", - "27.0.0-nightly.20230704", - "27.0.0-nightly.20230705", - "27.0.0-nightly.20230706", - "27.0.0-nightly.20230707", - "27.0.0-nightly.20230710", - "27.0.0-nightly.20230711", - "27.0.0-nightly.20230712", - "27.0.0-nightly.20230713", - "27.0.0-nightly.20230714" - ], - "117.0.5884.1": [ - "27.0.0-nightly.20230717", - "27.0.0-nightly.20230718" - ], - "117.0.5892.0": [ - "27.0.0-nightly.20230719" - ], - "117.0.5897.0": [ - "27.0.0-nightly.20230720", - "27.0.0-nightly.20230721", - "27.0.0-nightly.20230724", - "27.0.0-nightly.20230725", - "27.0.0-nightly.20230726", - "27.0.0-nightly.20230727", - "27.0.0-nightly.20230728", - "27.0.0-nightly.20230731" - ], - "117.0.5911.0": [ - "27.0.0-nightly.20230801", - "27.0.0-nightly.20230802", - "27.0.0-nightly.20230803" - ], - "117.0.5921.0": [ - "27.0.0-nightly.20230804", - "27.0.0-nightly.20230807", - "27.0.0-nightly.20230808", - "27.0.0-nightly.20230814", - "27.0.0-nightly.20230815" - ], - "118.0.5993.54": [ - "27.0.0" - ], - "118.0.5993.89": [ - "27.0.1", - "27.0.2" - ], - "119.0.6045.0": [ - "28.0.0-alpha.1", - "28.0.0-alpha.2", - "28.0.0-nightly.20231006", - "28.0.0-nightly.20231009", - "28.0.0-nightly.20231010", - "28.0.0-nightly.20231011", - "29.0.0-nightly.20231012", - "29.0.0-nightly.20231013", - "29.0.0-nightly.20231016", - "29.0.0-nightly.20231017", - "29.0.0-nightly.20231018", - "29.0.0-nightly.20231019", - "29.0.0-nightly.20231020", - "29.0.0-nightly.20231023", - "29.0.0-nightly.20231024" - ], - "119.0.6045.21": [ - "28.0.0-alpha.3", - "28.0.0-alpha.4" - ], - "119.0.6045.33": [ - "28.0.0-alpha.5", - "28.0.0-alpha.6" - ], - "118.0.5991.0": [ - "28.0.0-nightly.20230906" - ], - "118.0.5993.0": [ - "28.0.0-nightly.20230907", - "28.0.0-nightly.20230908", - "28.0.0-nightly.20230911", - "28.0.0-nightly.20230912", - "28.0.0-nightly.20230913", - "28.0.0-nightly.20230914", - "28.0.0-nightly.20230915" - ], - "119.0.6006.0": [ - "28.0.0-nightly.20230919" - ], - "119.0.6017.0": [ - "28.0.0-nightly.20230920" - ], - "119.0.6019.2": [ - "28.0.0-nightly.20230921", - "28.0.0-nightly.20230925", - "28.0.0-nightly.20230926", - "28.0.0-nightly.20230927", - "28.0.0-nightly.20230928" - ], - "119.0.6029.0": [ - "28.0.0-nightly.20230929", - "28.0.0-nightly.20231002" - ], - "119.0.6043.0": [ - "28.0.0-nightly.20231003", - "28.0.0-nightly.20231004", - "28.0.0-nightly.20231005" - ], - "120.0.6078.0": [ - "29.0.0-nightly.20231025", - "29.0.0-nightly.20231026", - "29.0.0-nightly.20231027" - ] -}; \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/full-chromium-versions.json b/build/node_modules/electron-to-chromium/full-chromium-versions.json deleted file mode 100644 index 66fb439a..00000000 --- a/build/node_modules/electron-to-chromium/full-chromium-versions.json +++ /dev/null @@ -1 +0,0 @@ -{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25","22.3.26","22.3.27"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5","24.8.6","24.8.7","24.8.8"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4","25.9.0","25.9.1","25.9.2","25.9.3"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"116.0.5845.228":["26.3.0","26.4.0","26.4.1","26.4.2"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8","27.0.0-beta.9"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5993.54":["27.0.0"],"118.0.5993.89":["27.0.1","27.0.2"],"119.0.6045.0":["28.0.0-alpha.1","28.0.0-alpha.2","28.0.0-nightly.20231006","28.0.0-nightly.20231009","28.0.0-nightly.20231010","28.0.0-nightly.20231011","29.0.0-nightly.20231012","29.0.0-nightly.20231013","29.0.0-nightly.20231016","29.0.0-nightly.20231017","29.0.0-nightly.20231018","29.0.0-nightly.20231019","29.0.0-nightly.20231020","29.0.0-nightly.20231023","29.0.0-nightly.20231024"],"119.0.6045.21":["28.0.0-alpha.3","28.0.0-alpha.4"],"119.0.6045.33":["28.0.0-alpha.5","28.0.0-alpha.6"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908","28.0.0-nightly.20230911","28.0.0-nightly.20230912","28.0.0-nightly.20230913","28.0.0-nightly.20230914","28.0.0-nightly.20230915"],"119.0.6006.0":["28.0.0-nightly.20230919"],"119.0.6017.0":["28.0.0-nightly.20230920"],"119.0.6019.2":["28.0.0-nightly.20230921","28.0.0-nightly.20230925","28.0.0-nightly.20230926","28.0.0-nightly.20230927","28.0.0-nightly.20230928"],"119.0.6029.0":["28.0.0-nightly.20230929","28.0.0-nightly.20231002"],"119.0.6043.0":["28.0.0-nightly.20231003","28.0.0-nightly.20231004","28.0.0-nightly.20231005"],"120.0.6078.0":["29.0.0-nightly.20231025","29.0.0-nightly.20231026","29.0.0-nightly.20231027"]} \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/full-versions.js b/build/node_modules/electron-to-chromium/full-versions.js deleted file mode 100644 index b570a5bb..00000000 --- a/build/node_modules/electron-to-chromium/full-versions.js +++ /dev/null @@ -1,2113 +0,0 @@ -module.exports = { - "0.20.0": "39.0.2171.65", - "0.20.1": "39.0.2171.65", - "0.20.2": "39.0.2171.65", - "0.20.3": "39.0.2171.65", - "0.20.4": "39.0.2171.65", - "0.20.5": "39.0.2171.65", - "0.20.6": "39.0.2171.65", - "0.20.7": "39.0.2171.65", - "0.20.8": "39.0.2171.65", - "0.21.0": "40.0.2214.91", - "0.21.1": "40.0.2214.91", - "0.21.2": "40.0.2214.91", - "0.21.3": "41.0.2272.76", - "0.22.1": "41.0.2272.76", - "0.22.2": "41.0.2272.76", - "0.22.3": "41.0.2272.76", - "0.23.0": "41.0.2272.76", - "0.24.0": "41.0.2272.76", - "0.25.0": "42.0.2311.107", - "0.25.1": "42.0.2311.107", - "0.25.2": "42.0.2311.107", - "0.25.3": "42.0.2311.107", - "0.26.0": "42.0.2311.107", - "0.26.1": "42.0.2311.107", - "0.27.0": "42.0.2311.107", - "0.27.1": "42.0.2311.107", - "0.27.2": "43.0.2357.65", - "0.27.3": "43.0.2357.65", - "0.28.0": "43.0.2357.65", - "0.28.1": "43.0.2357.65", - "0.28.2": "43.0.2357.65", - "0.28.3": "43.0.2357.65", - "0.29.1": "43.0.2357.65", - "0.29.2": "43.0.2357.65", - "0.30.4": "44.0.2403.125", - "0.31.0": "44.0.2403.125", - "0.31.2": "45.0.2454.85", - "0.32.2": "45.0.2454.85", - "0.32.3": "45.0.2454.85", - "0.33.0": "45.0.2454.85", - "0.33.1": "45.0.2454.85", - "0.33.2": "45.0.2454.85", - "0.33.3": "45.0.2454.85", - "0.33.4": "45.0.2454.85", - "0.33.6": "45.0.2454.85", - "0.33.7": "45.0.2454.85", - "0.33.8": "45.0.2454.85", - "0.33.9": "45.0.2454.85", - "0.34.0": "45.0.2454.85", - "0.34.1": "45.0.2454.85", - "0.34.2": "45.0.2454.85", - "0.34.3": "45.0.2454.85", - "0.34.4": "45.0.2454.85", - "0.35.1": "45.0.2454.85", - "0.35.2": "45.0.2454.85", - "0.35.3": "45.0.2454.85", - "0.35.4": "45.0.2454.85", - "0.35.5": "45.0.2454.85", - "0.36.0": "47.0.2526.73", - "0.36.2": "47.0.2526.73", - "0.36.3": "47.0.2526.73", - "0.36.4": "47.0.2526.73", - "0.36.5": "47.0.2526.110", - "0.36.6": "47.0.2526.110", - "0.36.7": "47.0.2526.110", - "0.36.8": "47.0.2526.110", - "0.36.9": "47.0.2526.110", - "0.36.10": "47.0.2526.110", - "0.36.11": "47.0.2526.110", - "0.36.12": "47.0.2526.110", - "0.37.0": "49.0.2623.75", - "0.37.1": "49.0.2623.75", - "0.37.3": "49.0.2623.75", - "0.37.4": "49.0.2623.75", - "0.37.5": "49.0.2623.75", - "0.37.6": "49.0.2623.75", - "0.37.7": "49.0.2623.75", - "0.37.8": "49.0.2623.75", - "1.0.0": "49.0.2623.75", - "1.0.1": "49.0.2623.75", - "1.0.2": "49.0.2623.75", - "1.1.0": "50.0.2661.102", - "1.1.1": "50.0.2661.102", - "1.1.2": "50.0.2661.102", - "1.1.3": "50.0.2661.102", - "1.2.0": "51.0.2704.63", - "1.2.1": "51.0.2704.63", - "1.2.2": "51.0.2704.84", - "1.2.3": "51.0.2704.84", - "1.2.4": "51.0.2704.103", - "1.2.5": "51.0.2704.103", - "1.2.6": "51.0.2704.106", - "1.2.7": "51.0.2704.106", - "1.2.8": "51.0.2704.106", - "1.3.0": "52.0.2743.82", - "1.3.1": "52.0.2743.82", - "1.3.2": "52.0.2743.82", - "1.3.3": "52.0.2743.82", - "1.3.4": "52.0.2743.82", - "1.3.5": "52.0.2743.82", - "1.3.6": "52.0.2743.82", - "1.3.7": "52.0.2743.82", - "1.3.9": "52.0.2743.82", - "1.3.10": "52.0.2743.82", - "1.3.13": "52.0.2743.82", - "1.3.14": "52.0.2743.82", - "1.3.15": "52.0.2743.82", - "1.4.0": "53.0.2785.113", - "1.4.1": "53.0.2785.113", - "1.4.2": "53.0.2785.113", - "1.4.3": "53.0.2785.113", - "1.4.4": "53.0.2785.113", - "1.4.5": "53.0.2785.113", - "1.4.6": "53.0.2785.143", - "1.4.7": "53.0.2785.143", - "1.4.8": "53.0.2785.143", - "1.4.10": "53.0.2785.143", - "1.4.11": "53.0.2785.143", - "1.4.12": "54.0.2840.51", - "1.4.13": "53.0.2785.143", - "1.4.14": "53.0.2785.143", - "1.4.15": "53.0.2785.143", - "1.4.16": "53.0.2785.143", - "1.5.0": "54.0.2840.101", - "1.5.1": "54.0.2840.101", - "1.6.0": "56.0.2924.87", - "1.6.1": "56.0.2924.87", - "1.6.2": "56.0.2924.87", - "1.6.3": "56.0.2924.87", - "1.6.4": "56.0.2924.87", - "1.6.5": "56.0.2924.87", - "1.6.6": "56.0.2924.87", - "1.6.7": "56.0.2924.87", - "1.6.8": "56.0.2924.87", - "1.6.9": "56.0.2924.87", - "1.6.10": "56.0.2924.87", - "1.6.11": "56.0.2924.87", - "1.6.12": "56.0.2924.87", - "1.6.13": "56.0.2924.87", - "1.6.14": "56.0.2924.87", - "1.6.15": "56.0.2924.87", - "1.6.16": "56.0.2924.87", - "1.6.17": "56.0.2924.87", - "1.6.18": "56.0.2924.87", - "1.7.0": "58.0.3029.110", - "1.7.1": "58.0.3029.110", - "1.7.2": "58.0.3029.110", - "1.7.3": "58.0.3029.110", - "1.7.4": "58.0.3029.110", - "1.7.5": "58.0.3029.110", - "1.7.6": "58.0.3029.110", - "1.7.7": "58.0.3029.110", - "1.7.8": "58.0.3029.110", - "1.7.9": "58.0.3029.110", - "1.7.10": "58.0.3029.110", - "1.7.11": "58.0.3029.110", - "1.7.12": "58.0.3029.110", - "1.7.13": "58.0.3029.110", - "1.7.14": "58.0.3029.110", - "1.7.15": "58.0.3029.110", - "1.7.16": "58.0.3029.110", - "1.8.0": "59.0.3071.115", - "1.8.1": "59.0.3071.115", - "1.8.2-beta.1": "59.0.3071.115", - "1.8.2-beta.2": "59.0.3071.115", - "1.8.2-beta.3": "59.0.3071.115", - "1.8.2-beta.4": "59.0.3071.115", - "1.8.2-beta.5": "59.0.3071.115", - "1.8.2": "59.0.3071.115", - "1.8.3": "59.0.3071.115", - "1.8.4": "59.0.3071.115", - "1.8.5": "59.0.3071.115", - "1.8.6": "59.0.3071.115", - "1.8.7": "59.0.3071.115", - "1.8.8": "59.0.3071.115", - "2.0.0-beta.1": "61.0.3163.100", - "2.0.0-beta.2": "61.0.3163.100", - "2.0.0-beta.3": "61.0.3163.100", - "2.0.0-beta.4": "61.0.3163.100", - "2.0.0-beta.5": "61.0.3163.100", - "2.0.0-beta.6": "61.0.3163.100", - "2.0.0-beta.7": "61.0.3163.100", - "2.0.0-beta.8": "61.0.3163.100", - "2.0.0": "61.0.3163.100", - "2.0.1": "61.0.3163.100", - "2.0.2": "61.0.3163.100", - "2.0.3": "61.0.3163.100", - "2.0.4": "61.0.3163.100", - "2.0.5": "61.0.3163.100", - "2.0.6": "61.0.3163.100", - "2.0.7": "61.0.3163.100", - "2.0.8-nightly.20180819": "61.0.3163.100", - "2.0.8-nightly.20180820": "61.0.3163.100", - "2.0.8": "61.0.3163.100", - "2.0.9": "61.0.3163.100", - "2.0.10": "61.0.3163.100", - "2.0.11": "61.0.3163.100", - "2.0.12": "61.0.3163.100", - "2.0.13": "61.0.3163.100", - "2.0.14": "61.0.3163.100", - "2.0.15": "61.0.3163.100", - "2.0.16": "61.0.3163.100", - "2.0.17": "61.0.3163.100", - "2.0.18": "61.0.3163.100", - "2.1.0-unsupported.20180809": "61.0.3163.100", - "3.0.0-beta.1": "66.0.3359.181", - "3.0.0-beta.2": "66.0.3359.181", - "3.0.0-beta.3": "66.0.3359.181", - "3.0.0-beta.4": "66.0.3359.181", - "3.0.0-beta.5": "66.0.3359.181", - "3.0.0-beta.6": "66.0.3359.181", - "3.0.0-beta.7": "66.0.3359.181", - "3.0.0-beta.8": "66.0.3359.181", - "3.0.0-beta.9": "66.0.3359.181", - "3.0.0-beta.10": "66.0.3359.181", - "3.0.0-beta.11": "66.0.3359.181", - "3.0.0-beta.12": "66.0.3359.181", - "3.0.0-beta.13": "66.0.3359.181", - "3.0.0-nightly.20180818": "66.0.3359.181", - "3.0.0-nightly.20180821": "66.0.3359.181", - "3.0.0-nightly.20180823": "66.0.3359.181", - "3.0.0-nightly.20180904": "66.0.3359.181", - "3.0.0": "66.0.3359.181", - "3.0.1": "66.0.3359.181", - "3.0.2": "66.0.3359.181", - "3.0.3": "66.0.3359.181", - "3.0.4": "66.0.3359.181", - "3.0.5": "66.0.3359.181", - "3.0.6": "66.0.3359.181", - "3.0.7": "66.0.3359.181", - "3.0.8": "66.0.3359.181", - "3.0.9": "66.0.3359.181", - "3.0.10": "66.0.3359.181", - "3.0.11": "66.0.3359.181", - "3.0.12": "66.0.3359.181", - "3.0.13": "66.0.3359.181", - "3.0.14": "66.0.3359.181", - "3.0.15": "66.0.3359.181", - "3.0.16": "66.0.3359.181", - "3.1.0-beta.1": "66.0.3359.181", - "3.1.0-beta.2": "66.0.3359.181", - "3.1.0-beta.3": "66.0.3359.181", - "3.1.0-beta.4": "66.0.3359.181", - "3.1.0-beta.5": "66.0.3359.181", - "3.1.0": "66.0.3359.181", - "3.1.1": "66.0.3359.181", - "3.1.2": "66.0.3359.181", - "3.1.3": "66.0.3359.181", - "3.1.4": "66.0.3359.181", - "3.1.5": "66.0.3359.181", - "3.1.6": "66.0.3359.181", - "3.1.7": "66.0.3359.181", - "3.1.8": "66.0.3359.181", - "3.1.9": "66.0.3359.181", - "3.1.10": "66.0.3359.181", - "3.1.11": "66.0.3359.181", - "3.1.12": "66.0.3359.181", - "3.1.13": "66.0.3359.181", - "4.0.0-beta.1": "69.0.3497.106", - "4.0.0-beta.2": "69.0.3497.106", - "4.0.0-beta.3": "69.0.3497.106", - "4.0.0-beta.4": "69.0.3497.106", - "4.0.0-beta.5": "69.0.3497.106", - "4.0.0-beta.6": "69.0.3497.106", - "4.0.0-beta.7": "69.0.3497.106", - "4.0.0-beta.8": "69.0.3497.106", - "4.0.0-beta.9": "69.0.3497.106", - "4.0.0-beta.10": "69.0.3497.106", - "4.0.0-beta.11": "69.0.3497.106", - "4.0.0-nightly.20180817": "66.0.3359.181", - "4.0.0-nightly.20180819": "66.0.3359.181", - "4.0.0-nightly.20180821": "66.0.3359.181", - "4.0.0-nightly.20180929": "67.0.3396.99", - "4.0.0-nightly.20181006": "68.0.3440.128", - "4.0.0-nightly.20181010": "69.0.3497.106", - "4.0.0": "69.0.3497.106", - "4.0.1": "69.0.3497.106", - "4.0.2": "69.0.3497.106", - "4.0.3": "69.0.3497.106", - "4.0.4": "69.0.3497.106", - "4.0.5": "69.0.3497.106", - "4.0.6": "69.0.3497.106", - "4.0.7": "69.0.3497.128", - "4.0.8": "69.0.3497.128", - "4.1.0": "69.0.3497.128", - "4.1.1": "69.0.3497.128", - "4.1.2": "69.0.3497.128", - "4.1.3": "69.0.3497.128", - "4.1.4": "69.0.3497.128", - "4.1.5": "69.0.3497.128", - "4.2.0": "69.0.3497.128", - "4.2.1": "69.0.3497.128", - "4.2.2": "69.0.3497.128", - "4.2.3": "69.0.3497.128", - "4.2.4": "69.0.3497.128", - "4.2.5": "69.0.3497.128", - "4.2.6": "69.0.3497.128", - "4.2.7": "69.0.3497.128", - "4.2.8": "69.0.3497.128", - "4.2.9": "69.0.3497.128", - "4.2.10": "69.0.3497.128", - "4.2.11": "69.0.3497.128", - "4.2.12": "69.0.3497.128", - "5.0.0-beta.1": "72.0.3626.52", - "5.0.0-beta.2": "72.0.3626.52", - "5.0.0-beta.3": "73.0.3683.27", - "5.0.0-beta.4": "73.0.3683.54", - "5.0.0-beta.5": "73.0.3683.61", - "5.0.0-beta.6": "73.0.3683.84", - "5.0.0-beta.7": "73.0.3683.94", - "5.0.0-beta.8": "73.0.3683.104", - "5.0.0-beta.9": "73.0.3683.117", - "5.0.0-nightly.20190107": "70.0.3538.110", - "5.0.0-nightly.20190121": "71.0.3578.98", - "5.0.0-nightly.20190122": "71.0.3578.98", - "5.0.0": "73.0.3683.119", - "5.0.1": "73.0.3683.121", - "5.0.2": "73.0.3683.121", - "5.0.3": "73.0.3683.121", - "5.0.4": "73.0.3683.121", - "5.0.5": "73.0.3683.121", - "5.0.6": "73.0.3683.121", - "5.0.7": "73.0.3683.121", - "5.0.8": "73.0.3683.121", - "5.0.9": "73.0.3683.121", - "5.0.10": "73.0.3683.121", - "5.0.11": "73.0.3683.121", - "5.0.12": "73.0.3683.121", - "5.0.13": "73.0.3683.121", - "6.0.0-beta.1": "76.0.3774.1", - "6.0.0-beta.2": "76.0.3783.1", - "6.0.0-beta.3": "76.0.3783.1", - "6.0.0-beta.4": "76.0.3783.1", - "6.0.0-beta.5": "76.0.3805.4", - "6.0.0-beta.6": "76.0.3809.3", - "6.0.0-beta.7": "76.0.3809.22", - "6.0.0-beta.8": "76.0.3809.26", - "6.0.0-beta.9": "76.0.3809.26", - "6.0.0-beta.10": "76.0.3809.37", - "6.0.0-beta.11": "76.0.3809.42", - "6.0.0-beta.12": "76.0.3809.54", - "6.0.0-beta.13": "76.0.3809.60", - "6.0.0-beta.14": "76.0.3809.68", - "6.0.0-beta.15": "76.0.3809.74", - "6.0.0-nightly.20190123": "72.0.3626.52", - "6.0.0-nightly.20190212": "72.0.3626.107", - "6.0.0-nightly.20190213": "72.0.3626.110", - "6.0.0-nightly.20190311": "74.0.3724.8", - "6.0.0": "76.0.3809.88", - "6.0.1": "76.0.3809.102", - "6.0.2": "76.0.3809.110", - "6.0.3": "76.0.3809.126", - "6.0.4": "76.0.3809.131", - "6.0.5": "76.0.3809.136", - "6.0.6": "76.0.3809.138", - "6.0.7": "76.0.3809.139", - "6.0.8": "76.0.3809.146", - "6.0.9": "76.0.3809.146", - "6.0.10": "76.0.3809.146", - "6.0.11": "76.0.3809.146", - "6.0.12": "76.0.3809.146", - "6.1.0": "76.0.3809.146", - "6.1.1": "76.0.3809.146", - "6.1.2": "76.0.3809.146", - "6.1.3": "76.0.3809.146", - "6.1.4": "76.0.3809.146", - "6.1.5": "76.0.3809.146", - "6.1.6": "76.0.3809.146", - "6.1.7": "76.0.3809.146", - "6.1.8": "76.0.3809.146", - "6.1.9": "76.0.3809.146", - "6.1.10": "76.0.3809.146", - "6.1.11": "76.0.3809.146", - "6.1.12": "76.0.3809.146", - "7.0.0-beta.1": "78.0.3866.0", - "7.0.0-beta.2": "78.0.3866.0", - "7.0.0-beta.3": "78.0.3866.0", - "7.0.0-beta.4": "78.0.3896.6", - "7.0.0-beta.5": "78.0.3905.1", - "7.0.0-beta.6": "78.0.3905.1", - "7.0.0-beta.7": "78.0.3905.1", - "7.0.0-nightly.20190521": "76.0.3784.0", - "7.0.0-nightly.20190529": "76.0.3806.0", - "7.0.0-nightly.20190530": "76.0.3806.0", - "7.0.0-nightly.20190531": "76.0.3806.0", - "7.0.0-nightly.20190602": "76.0.3806.0", - "7.0.0-nightly.20190603": "76.0.3806.0", - "7.0.0-nightly.20190604": "77.0.3814.0", - "7.0.0-nightly.20190605": "77.0.3815.0", - "7.0.0-nightly.20190606": "77.0.3815.0", - "7.0.0-nightly.20190607": "77.0.3815.0", - "7.0.0-nightly.20190608": "77.0.3815.0", - "7.0.0-nightly.20190609": "77.0.3815.0", - "7.0.0-nightly.20190611": "77.0.3815.0", - "7.0.0-nightly.20190612": "77.0.3815.0", - "7.0.0-nightly.20190613": "77.0.3815.0", - "7.0.0-nightly.20190615": "77.0.3815.0", - "7.0.0-nightly.20190616": "77.0.3815.0", - "7.0.0-nightly.20190618": "77.0.3815.0", - "7.0.0-nightly.20190619": "77.0.3815.0", - "7.0.0-nightly.20190622": "77.0.3815.0", - "7.0.0-nightly.20190623": "77.0.3815.0", - "7.0.0-nightly.20190624": "77.0.3815.0", - "7.0.0-nightly.20190627": "77.0.3815.0", - "7.0.0-nightly.20190629": "77.0.3815.0", - "7.0.0-nightly.20190630": "77.0.3815.0", - "7.0.0-nightly.20190701": "77.0.3815.0", - "7.0.0-nightly.20190702": "77.0.3815.0", - "7.0.0-nightly.20190704": "77.0.3843.0", - "7.0.0-nightly.20190705": "77.0.3843.0", - "7.0.0-nightly.20190719": "77.0.3848.0", - "7.0.0-nightly.20190720": "77.0.3848.0", - "7.0.0-nightly.20190721": "77.0.3848.0", - "7.0.0-nightly.20190726": "77.0.3864.0", - "7.0.0-nightly.20190727": "78.0.3866.0", - "7.0.0-nightly.20190728": "78.0.3866.0", - "7.0.0-nightly.20190729": "78.0.3866.0", - "7.0.0-nightly.20190730": "78.0.3866.0", - "7.0.0-nightly.20190731": "78.0.3866.0", - "7.0.0": "78.0.3905.1", - "7.0.1": "78.0.3904.92", - "7.1.0": "78.0.3904.94", - "7.1.1": "78.0.3904.99", - "7.1.2": "78.0.3904.113", - "7.1.3": "78.0.3904.126", - "7.1.4": "78.0.3904.130", - "7.1.5": "78.0.3904.130", - "7.1.6": "78.0.3904.130", - "7.1.7": "78.0.3904.130", - "7.1.8": "78.0.3904.130", - "7.1.9": "78.0.3904.130", - "7.1.10": "78.0.3904.130", - "7.1.11": "78.0.3904.130", - "7.1.12": "78.0.3904.130", - "7.1.13": "78.0.3904.130", - "7.1.14": "78.0.3904.130", - "7.2.0": "78.0.3904.130", - "7.2.1": "78.0.3904.130", - "7.2.2": "78.0.3904.130", - "7.2.3": "78.0.3904.130", - "7.2.4": "78.0.3904.130", - "7.3.0": "78.0.3904.130", - "7.3.1": "78.0.3904.130", - "7.3.2": "78.0.3904.130", - "7.3.3": "78.0.3904.130", - "8.0.0-beta.1": "79.0.3931.0", - "8.0.0-beta.2": "79.0.3931.0", - "8.0.0-beta.3": "80.0.3955.0", - "8.0.0-beta.4": "80.0.3955.0", - "8.0.0-beta.5": "80.0.3987.14", - "8.0.0-beta.6": "80.0.3987.51", - "8.0.0-beta.7": "80.0.3987.59", - "8.0.0-beta.8": "80.0.3987.75", - "8.0.0-beta.9": "80.0.3987.75", - "8.0.0-nightly.20190801": "78.0.3866.0", - "8.0.0-nightly.20190802": "78.0.3866.0", - "8.0.0-nightly.20190803": "78.0.3871.0", - "8.0.0-nightly.20190806": "78.0.3871.0", - "8.0.0-nightly.20190807": "78.0.3871.0", - "8.0.0-nightly.20190808": "78.0.3871.0", - "8.0.0-nightly.20190809": "78.0.3871.0", - "8.0.0-nightly.20190810": "78.0.3871.0", - "8.0.0-nightly.20190811": "78.0.3871.0", - "8.0.0-nightly.20190812": "78.0.3871.0", - "8.0.0-nightly.20190813": "78.0.3871.0", - "8.0.0-nightly.20190814": "78.0.3871.0", - "8.0.0-nightly.20190815": "78.0.3871.0", - "8.0.0-nightly.20190816": "78.0.3881.0", - "8.0.0-nightly.20190817": "78.0.3881.0", - "8.0.0-nightly.20190818": "78.0.3881.0", - "8.0.0-nightly.20190819": "78.0.3881.0", - "8.0.0-nightly.20190820": "78.0.3881.0", - "8.0.0-nightly.20190824": "78.0.3892.0", - "8.0.0-nightly.20190825": "78.0.3892.0", - "8.0.0-nightly.20190827": "78.0.3892.0", - "8.0.0-nightly.20190828": "78.0.3892.0", - "8.0.0-nightly.20190830": "78.0.3892.0", - "8.0.0-nightly.20190901": "78.0.3892.0", - "8.0.0-nightly.20190902": "78.0.3892.0", - "8.0.0-nightly.20190907": "78.0.3892.0", - "8.0.0-nightly.20190909": "78.0.3892.0", - "8.0.0-nightly.20190910": "78.0.3892.0", - "8.0.0-nightly.20190911": "78.0.3892.0", - "8.0.0-nightly.20190912": "78.0.3892.0", - "8.0.0-nightly.20190913": "78.0.3892.0", - "8.0.0-nightly.20190914": "78.0.3892.0", - "8.0.0-nightly.20190915": "78.0.3892.0", - "8.0.0-nightly.20190917": "78.0.3892.0", - "8.0.0-nightly.20190919": "79.0.3915.0", - "8.0.0-nightly.20190920": "79.0.3915.0", - "8.0.0-nightly.20190922": "79.0.3919.0", - "8.0.0-nightly.20190923": "79.0.3919.0", - "8.0.0-nightly.20190924": "79.0.3919.0", - "8.0.0-nightly.20190926": "79.0.3919.0", - "8.0.0-nightly.20190928": "79.0.3919.0", - "8.0.0-nightly.20190929": "79.0.3919.0", - "8.0.0-nightly.20190930": "79.0.3919.0", - "8.0.0-nightly.20191001": "79.0.3919.0", - "8.0.0-nightly.20191004": "79.0.3919.0", - "8.0.0-nightly.20191005": "79.0.3919.0", - "8.0.0-nightly.20191006": "79.0.3919.0", - "8.0.0-nightly.20191009": "79.0.3919.0", - "8.0.0-nightly.20191011": "79.0.3919.0", - "8.0.0-nightly.20191012": "79.0.3919.0", - "8.0.0-nightly.20191017": "79.0.3919.0", - "8.0.0-nightly.20191019": "79.0.3931.0", - "8.0.0-nightly.20191020": "79.0.3931.0", - "8.0.0-nightly.20191021": "79.0.3931.0", - "8.0.0-nightly.20191023": "79.0.3931.0", - "8.0.0-nightly.20191101": "80.0.3952.0", - "8.0.0-nightly.20191103": "80.0.3952.0", - "8.0.0-nightly.20191105": "80.0.3952.0", - "8.0.0": "80.0.3987.86", - "8.0.1": "80.0.3987.86", - "8.0.2": "80.0.3987.86", - "8.0.3": "80.0.3987.134", - "8.1.0": "80.0.3987.137", - "8.1.1": "80.0.3987.141", - "8.2.0": "80.0.3987.158", - "8.2.1": "80.0.3987.163", - "8.2.2": "80.0.3987.163", - "8.2.3": "80.0.3987.163", - "8.2.4": "80.0.3987.165", - "8.2.5": "80.0.3987.165", - "8.3.0": "80.0.3987.165", - "8.3.1": "80.0.3987.165", - "8.3.2": "80.0.3987.165", - "8.3.3": "80.0.3987.165", - "8.3.4": "80.0.3987.165", - "8.4.0": "80.0.3987.165", - "8.4.1": "80.0.3987.165", - "8.5.0": "80.0.3987.165", - "8.5.1": "80.0.3987.165", - "8.5.2": "80.0.3987.165", - "8.5.3": "80.0.3987.163", - "8.5.4": "80.0.3987.163", - "8.5.5": "80.0.3987.163", - "9.0.0-beta.1": "82.0.4048.0", - "9.0.0-beta.2": "82.0.4048.0", - "9.0.0-beta.3": "82.0.4048.0", - "9.0.0-beta.4": "82.0.4048.0", - "9.0.0-beta.5": "82.0.4048.0", - "9.0.0-beta.6": "82.0.4058.2", - "9.0.0-beta.7": "82.0.4058.2", - "9.0.0-beta.9": "82.0.4058.2", - "9.0.0-beta.10": "82.0.4085.10", - "9.0.0-beta.11": "82.0.4085.14", - "9.0.0-beta.12": "82.0.4085.14", - "9.0.0-beta.13": "82.0.4085.14", - "9.0.0-beta.14": "82.0.4085.27", - "9.0.0-beta.15": "83.0.4102.3", - "9.0.0-beta.16": "83.0.4102.3", - "9.0.0-beta.17": "83.0.4103.14", - "9.0.0-beta.18": "83.0.4103.16", - "9.0.0-beta.19": "83.0.4103.24", - "9.0.0-beta.20": "83.0.4103.26", - "9.0.0-beta.21": "83.0.4103.26", - "9.0.0-beta.22": "83.0.4103.34", - "9.0.0-beta.23": "83.0.4103.44", - "9.0.0-beta.24": "83.0.4103.45", - "9.0.0-nightly.20191121": "80.0.3954.0", - "9.0.0-nightly.20191122": "80.0.3954.0", - "9.0.0-nightly.20191123": "80.0.3954.0", - "9.0.0-nightly.20191124": "80.0.3954.0", - "9.0.0-nightly.20191126": "80.0.3954.0", - "9.0.0-nightly.20191128": "80.0.3954.0", - "9.0.0-nightly.20191129": "80.0.3954.0", - "9.0.0-nightly.20191130": "80.0.3954.0", - "9.0.0-nightly.20191201": "80.0.3954.0", - "9.0.0-nightly.20191202": "80.0.3954.0", - "9.0.0-nightly.20191203": "80.0.3954.0", - "9.0.0-nightly.20191204": "80.0.3954.0", - "9.0.0-nightly.20191205": "80.0.3954.0", - "9.0.0-nightly.20191210": "80.0.3954.0", - "9.0.0-nightly.20191220": "81.0.3994.0", - "9.0.0-nightly.20191221": "81.0.3994.0", - "9.0.0-nightly.20191222": "81.0.3994.0", - "9.0.0-nightly.20191223": "81.0.3994.0", - "9.0.0-nightly.20191224": "81.0.3994.0", - "9.0.0-nightly.20191225": "81.0.3994.0", - "9.0.0-nightly.20191226": "81.0.3994.0", - "9.0.0-nightly.20191228": "81.0.3994.0", - "9.0.0-nightly.20191229": "81.0.3994.0", - "9.0.0-nightly.20191230": "81.0.3994.0", - "9.0.0-nightly.20191231": "81.0.3994.0", - "9.0.0-nightly.20200101": "81.0.3994.0", - "9.0.0-nightly.20200103": "81.0.3994.0", - "9.0.0-nightly.20200104": "81.0.3994.0", - "9.0.0-nightly.20200105": "81.0.3994.0", - "9.0.0-nightly.20200106": "81.0.3994.0", - "9.0.0-nightly.20200108": "81.0.3994.0", - "9.0.0-nightly.20200109": "81.0.3994.0", - "9.0.0-nightly.20200110": "81.0.3994.0", - "9.0.0-nightly.20200111": "81.0.3994.0", - "9.0.0-nightly.20200113": "81.0.3994.0", - "9.0.0-nightly.20200115": "81.0.3994.0", - "9.0.0-nightly.20200116": "81.0.3994.0", - "9.0.0-nightly.20200117": "81.0.3994.0", - "9.0.0-nightly.20200119": "81.0.4030.0", - "9.0.0-nightly.20200121": "81.0.4030.0", - "9.0.0": "83.0.4103.64", - "9.0.1": "83.0.4103.94", - "9.0.2": "83.0.4103.94", - "9.0.3": "83.0.4103.100", - "9.0.4": "83.0.4103.104", - "9.0.5": "83.0.4103.119", - "9.1.0": "83.0.4103.122", - "9.1.1": "83.0.4103.122", - "9.1.2": "83.0.4103.122", - "9.2.0": "83.0.4103.122", - "9.2.1": "83.0.4103.122", - "9.3.0": "83.0.4103.122", - "9.3.1": "83.0.4103.122", - "9.3.2": "83.0.4103.122", - "9.3.3": "83.0.4103.122", - "9.3.4": "83.0.4103.122", - "9.3.5": "83.0.4103.122", - "9.4.0": "83.0.4103.122", - "9.4.1": "83.0.4103.122", - "9.4.2": "83.0.4103.122", - "9.4.3": "83.0.4103.122", - "9.4.4": "83.0.4103.122", - "10.0.0-beta.1": "84.0.4129.0", - "10.0.0-beta.2": "84.0.4129.0", - "10.0.0-beta.3": "85.0.4161.2", - "10.0.0-beta.4": "85.0.4161.2", - "10.0.0-beta.8": "85.0.4181.1", - "10.0.0-beta.9": "85.0.4181.1", - "10.0.0-beta.10": "85.0.4183.19", - "10.0.0-beta.11": "85.0.4183.20", - "10.0.0-beta.12": "85.0.4183.26", - "10.0.0-beta.13": "85.0.4183.39", - "10.0.0-beta.14": "85.0.4183.39", - "10.0.0-beta.15": "85.0.4183.39", - "10.0.0-beta.17": "85.0.4183.39", - "10.0.0-beta.19": "85.0.4183.39", - "10.0.0-beta.20": "85.0.4183.39", - "10.0.0-beta.21": "85.0.4183.39", - "10.0.0-beta.23": "85.0.4183.70", - "10.0.0-beta.24": "85.0.4183.78", - "10.0.0-beta.25": "85.0.4183.80", - "10.0.0-nightly.20200209": "82.0.4050.0", - "10.0.0-nightly.20200210": "82.0.4050.0", - "10.0.0-nightly.20200211": "82.0.4050.0", - "10.0.0-nightly.20200216": "82.0.4050.0", - "10.0.0-nightly.20200217": "82.0.4050.0", - "10.0.0-nightly.20200218": "82.0.4050.0", - "10.0.0-nightly.20200221": "82.0.4050.0", - "10.0.0-nightly.20200222": "82.0.4050.0", - "10.0.0-nightly.20200223": "82.0.4050.0", - "10.0.0-nightly.20200226": "82.0.4050.0", - "10.0.0-nightly.20200303": "82.0.4050.0", - "10.0.0-nightly.20200304": "82.0.4076.0", - "10.0.0-nightly.20200305": "82.0.4076.0", - "10.0.0-nightly.20200306": "82.0.4076.0", - "10.0.0-nightly.20200309": "82.0.4076.0", - "10.0.0-nightly.20200310": "82.0.4076.0", - "10.0.0-nightly.20200311": "82.0.4083.0", - "10.0.0-nightly.20200316": "83.0.4086.0", - "10.0.0-nightly.20200317": "83.0.4087.0", - "10.0.0-nightly.20200318": "83.0.4087.0", - "10.0.0-nightly.20200320": "83.0.4087.0", - "10.0.0-nightly.20200323": "83.0.4087.0", - "10.0.0-nightly.20200324": "83.0.4087.0", - "10.0.0-nightly.20200325": "83.0.4087.0", - "10.0.0-nightly.20200326": "83.0.4087.0", - "10.0.0-nightly.20200327": "83.0.4087.0", - "10.0.0-nightly.20200330": "83.0.4087.0", - "10.0.0-nightly.20200331": "83.0.4087.0", - "10.0.0-nightly.20200401": "83.0.4087.0", - "10.0.0-nightly.20200402": "83.0.4087.0", - "10.0.0-nightly.20200403": "83.0.4087.0", - "10.0.0-nightly.20200406": "83.0.4087.0", - "10.0.0-nightly.20200408": "83.0.4095.0", - "10.0.0-nightly.20200410": "83.0.4095.0", - "10.0.0-nightly.20200413": "83.0.4095.0", - "10.0.0-nightly.20200414": "84.0.4114.0", - "10.0.0-nightly.20200415": "84.0.4115.0", - "10.0.0-nightly.20200416": "84.0.4115.0", - "10.0.0-nightly.20200417": "84.0.4115.0", - "10.0.0-nightly.20200422": "84.0.4121.0", - "10.0.0-nightly.20200423": "84.0.4121.0", - "10.0.0-nightly.20200427": "84.0.4125.0", - "10.0.0-nightly.20200428": "84.0.4125.0", - "10.0.0-nightly.20200429": "84.0.4125.0", - "10.0.0-nightly.20200430": "84.0.4125.0", - "10.0.0-nightly.20200501": "84.0.4129.0", - "10.0.0-nightly.20200504": "84.0.4129.0", - "10.0.0-nightly.20200505": "84.0.4129.0", - "10.0.0-nightly.20200506": "84.0.4129.0", - "10.0.0-nightly.20200507": "84.0.4129.0", - "10.0.0-nightly.20200508": "84.0.4129.0", - "10.0.0-nightly.20200511": "84.0.4129.0", - "10.0.0-nightly.20200512": "84.0.4129.0", - "10.0.0-nightly.20200513": "84.0.4129.0", - "10.0.0-nightly.20200514": "84.0.4129.0", - "10.0.0-nightly.20200515": "84.0.4129.0", - "10.0.0-nightly.20200518": "84.0.4129.0", - "10.0.0-nightly.20200519": "84.0.4129.0", - "10.0.0-nightly.20200520": "84.0.4129.0", - "10.0.0-nightly.20200521": "84.0.4129.0", - "10.0.0": "85.0.4183.84", - "10.0.1": "85.0.4183.86", - "10.1.0": "85.0.4183.87", - "10.1.1": "85.0.4183.93", - "10.1.2": "85.0.4183.98", - "10.1.3": "85.0.4183.121", - "10.1.4": "85.0.4183.121", - "10.1.5": "85.0.4183.121", - "10.1.6": "85.0.4183.121", - "10.1.7": "85.0.4183.121", - "10.2.0": "85.0.4183.121", - "10.3.0": "85.0.4183.121", - "10.3.1": "85.0.4183.121", - "10.3.2": "85.0.4183.121", - "10.4.0": "85.0.4183.121", - "10.4.1": "85.0.4183.121", - "10.4.2": "85.0.4183.121", - "10.4.3": "85.0.4183.121", - "10.4.4": "85.0.4183.121", - "10.4.5": "85.0.4183.121", - "10.4.6": "85.0.4183.121", - "10.4.7": "85.0.4183.121", - "11.0.0-beta.1": "86.0.4234.0", - "11.0.0-beta.3": "86.0.4234.0", - "11.0.0-beta.4": "86.0.4234.0", - "11.0.0-beta.5": "86.0.4234.0", - "11.0.0-beta.6": "86.0.4234.0", - "11.0.0-beta.7": "86.0.4234.0", - "11.0.0-beta.8": "87.0.4251.1", - "11.0.0-beta.9": "87.0.4251.1", - "11.0.0-beta.11": "87.0.4251.1", - "11.0.0-beta.12": "87.0.4280.11", - "11.0.0-beta.13": "87.0.4280.11", - "11.0.0-beta.16": "87.0.4280.27", - "11.0.0-beta.17": "87.0.4280.27", - "11.0.0-beta.18": "87.0.4280.27", - "11.0.0-beta.19": "87.0.4280.27", - "11.0.0-beta.20": "87.0.4280.40", - "11.0.0-beta.22": "87.0.4280.47", - "11.0.0-beta.23": "87.0.4280.47", - "11.0.0-nightly.20200525": "84.0.4129.0", - "11.0.0-nightly.20200526": "84.0.4129.0", - "11.0.0-nightly.20200529": "85.0.4156.0", - "11.0.0-nightly.20200602": "85.0.4162.0", - "11.0.0-nightly.20200603": "85.0.4162.0", - "11.0.0-nightly.20200604": "85.0.4162.0", - "11.0.0-nightly.20200609": "85.0.4162.0", - "11.0.0-nightly.20200610": "85.0.4162.0", - "11.0.0-nightly.20200611": "85.0.4162.0", - "11.0.0-nightly.20200615": "85.0.4162.0", - "11.0.0-nightly.20200616": "85.0.4162.0", - "11.0.0-nightly.20200617": "85.0.4162.0", - "11.0.0-nightly.20200618": "85.0.4162.0", - "11.0.0-nightly.20200619": "85.0.4162.0", - "11.0.0-nightly.20200701": "85.0.4179.0", - "11.0.0-nightly.20200702": "85.0.4179.0", - "11.0.0-nightly.20200703": "85.0.4179.0", - "11.0.0-nightly.20200706": "85.0.4179.0", - "11.0.0-nightly.20200707": "85.0.4179.0", - "11.0.0-nightly.20200708": "85.0.4179.0", - "11.0.0-nightly.20200709": "85.0.4179.0", - "11.0.0-nightly.20200716": "86.0.4203.0", - "11.0.0-nightly.20200717": "86.0.4203.0", - "11.0.0-nightly.20200720": "86.0.4203.0", - "11.0.0-nightly.20200721": "86.0.4203.0", - "11.0.0-nightly.20200723": "86.0.4209.0", - "11.0.0-nightly.20200724": "86.0.4209.0", - "11.0.0-nightly.20200729": "86.0.4209.0", - "11.0.0-nightly.20200730": "86.0.4209.0", - "11.0.0-nightly.20200731": "86.0.4209.0", - "11.0.0-nightly.20200803": "86.0.4209.0", - "11.0.0-nightly.20200804": "86.0.4209.0", - "11.0.0-nightly.20200805": "86.0.4209.0", - "11.0.0-nightly.20200811": "86.0.4209.0", - "11.0.0-nightly.20200812": "86.0.4209.0", - "11.0.0-nightly.20200822": "86.0.4234.0", - "11.0.0-nightly.20200824": "86.0.4234.0", - "11.0.0-nightly.20200825": "86.0.4234.0", - "11.0.0-nightly.20200826": "86.0.4234.0", - "11.0.0": "87.0.4280.60", - "11.0.1": "87.0.4280.60", - "11.0.2": "87.0.4280.67", - "11.0.3": "87.0.4280.67", - "11.0.4": "87.0.4280.67", - "11.0.5": "87.0.4280.88", - "11.1.0": "87.0.4280.88", - "11.1.1": "87.0.4280.88", - "11.2.0": "87.0.4280.141", - "11.2.1": "87.0.4280.141", - "11.2.2": "87.0.4280.141", - "11.2.3": "87.0.4280.141", - "11.3.0": "87.0.4280.141", - "11.4.0": "87.0.4280.141", - "11.4.1": "87.0.4280.141", - "11.4.2": "87.0.4280.141", - "11.4.3": "87.0.4280.141", - "11.4.4": "87.0.4280.141", - "11.4.5": "87.0.4280.141", - "11.4.6": "87.0.4280.141", - "11.4.7": "87.0.4280.141", - "11.4.8": "87.0.4280.141", - "11.4.9": "87.0.4280.141", - "11.4.10": "87.0.4280.141", - "11.4.11": "87.0.4280.141", - "11.4.12": "87.0.4280.141", - "11.5.0": "87.0.4280.141", - "12.0.0-beta.1": "89.0.4328.0", - "12.0.0-beta.3": "89.0.4328.0", - "12.0.0-beta.4": "89.0.4328.0", - "12.0.0-beta.5": "89.0.4328.0", - "12.0.0-beta.6": "89.0.4328.0", - "12.0.0-beta.7": "89.0.4328.0", - "12.0.0-beta.8": "89.0.4328.0", - "12.0.0-beta.9": "89.0.4328.0", - "12.0.0-beta.10": "89.0.4328.0", - "12.0.0-beta.11": "89.0.4328.0", - "12.0.0-beta.12": "89.0.4328.0", - "12.0.0-beta.14": "89.0.4328.0", - "12.0.0-beta.16": "89.0.4348.1", - "12.0.0-beta.18": "89.0.4348.1", - "12.0.0-beta.19": "89.0.4348.1", - "12.0.0-beta.20": "89.0.4348.1", - "12.0.0-beta.21": "89.0.4388.2", - "12.0.0-beta.22": "89.0.4388.2", - "12.0.0-beta.23": "89.0.4388.2", - "12.0.0-beta.24": "89.0.4388.2", - "12.0.0-beta.25": "89.0.4388.2", - "12.0.0-beta.26": "89.0.4388.2", - "12.0.0-beta.27": "89.0.4389.23", - "12.0.0-beta.28": "89.0.4389.23", - "12.0.0-beta.29": "89.0.4389.23", - "12.0.0-beta.30": "89.0.4389.58", - "12.0.0-beta.31": "89.0.4389.58", - "12.0.0-nightly.20200827": "86.0.4234.0", - "12.0.0-nightly.20200831": "86.0.4234.0", - "12.0.0-nightly.20200902": "86.0.4234.0", - "12.0.0-nightly.20200903": "86.0.4234.0", - "12.0.0-nightly.20200907": "86.0.4234.0", - "12.0.0-nightly.20200910": "86.0.4234.0", - "12.0.0-nightly.20200911": "86.0.4234.0", - "12.0.0-nightly.20200914": "86.0.4234.0", - "12.0.0-nightly.20201002": "87.0.4268.0", - "12.0.0-nightly.20201007": "87.0.4268.0", - "12.0.0-nightly.20201009": "87.0.4268.0", - "12.0.0-nightly.20201012": "87.0.4268.0", - "12.0.0-nightly.20201013": "87.0.4268.0", - "12.0.0-nightly.20201014": "87.0.4268.0", - "12.0.0-nightly.20201015": "87.0.4268.0", - "12.0.0-nightly.20201023": "88.0.4292.0", - "12.0.0-nightly.20201026": "88.0.4292.0", - "12.0.0-nightly.20201030": "88.0.4306.0", - "12.0.0-nightly.20201102": "88.0.4306.0", - "12.0.0-nightly.20201103": "88.0.4306.0", - "12.0.0-nightly.20201104": "88.0.4306.0", - "12.0.0-nightly.20201105": "88.0.4306.0", - "12.0.0-nightly.20201106": "88.0.4306.0", - "12.0.0-nightly.20201111": "88.0.4306.0", - "12.0.0-nightly.20201112": "88.0.4306.0", - "12.0.0-nightly.20201116": "88.0.4324.0", - "12.0.0": "89.0.4389.69", - "12.0.1": "89.0.4389.82", - "12.0.2": "89.0.4389.90", - "12.0.3": "89.0.4389.114", - "12.0.4": "89.0.4389.114", - "12.0.5": "89.0.4389.128", - "12.0.6": "89.0.4389.128", - "12.0.7": "89.0.4389.128", - "12.0.8": "89.0.4389.128", - "12.0.9": "89.0.4389.128", - "12.0.10": "89.0.4389.128", - "12.0.11": "89.0.4389.128", - "12.0.12": "89.0.4389.128", - "12.0.13": "89.0.4389.128", - "12.0.14": "89.0.4389.128", - "12.0.15": "89.0.4389.128", - "12.0.16": "89.0.4389.128", - "12.0.17": "89.0.4389.128", - "12.0.18": "89.0.4389.128", - "12.1.0": "89.0.4389.128", - "12.1.1": "89.0.4389.128", - "12.1.2": "89.0.4389.128", - "12.2.0": "89.0.4389.128", - "12.2.1": "89.0.4389.128", - "12.2.2": "89.0.4389.128", - "12.2.3": "89.0.4389.128", - "13.0.0-beta.2": "90.0.4402.0", - "13.0.0-beta.3": "90.0.4402.0", - "13.0.0-beta.4": "90.0.4415.0", - "13.0.0-beta.5": "90.0.4415.0", - "13.0.0-beta.6": "90.0.4415.0", - "13.0.0-beta.7": "90.0.4415.0", - "13.0.0-beta.8": "90.0.4415.0", - "13.0.0-beta.9": "90.0.4415.0", - "13.0.0-beta.10": "90.0.4415.0", - "13.0.0-beta.11": "90.0.4415.0", - "13.0.0-beta.12": "90.0.4415.0", - "13.0.0-beta.13": "90.0.4415.0", - "13.0.0-beta.14": "91.0.4448.0", - "13.0.0-beta.16": "91.0.4448.0", - "13.0.0-beta.17": "91.0.4448.0", - "13.0.0-beta.18": "91.0.4448.0", - "13.0.0-beta.20": "91.0.4448.0", - "13.0.0-beta.21": "91.0.4472.33", - "13.0.0-beta.22": "91.0.4472.33", - "13.0.0-beta.23": "91.0.4472.33", - "13.0.0-beta.24": "91.0.4472.38", - "13.0.0-beta.25": "91.0.4472.38", - "13.0.0-beta.26": "91.0.4472.38", - "13.0.0-beta.27": "91.0.4472.38", - "13.0.0-beta.28": "91.0.4472.38", - "13.0.0-nightly.20201119": "89.0.4328.0", - "13.0.0-nightly.20201123": "89.0.4328.0", - "13.0.0-nightly.20201124": "89.0.4328.0", - "13.0.0-nightly.20201126": "89.0.4328.0", - "13.0.0-nightly.20201127": "89.0.4328.0", - "13.0.0-nightly.20201130": "89.0.4328.0", - "13.0.0-nightly.20201201": "89.0.4328.0", - "13.0.0-nightly.20201202": "89.0.4328.0", - "13.0.0-nightly.20201203": "89.0.4328.0", - "13.0.0-nightly.20201204": "89.0.4328.0", - "13.0.0-nightly.20201207": "89.0.4328.0", - "13.0.0-nightly.20201208": "89.0.4328.0", - "13.0.0-nightly.20201209": "89.0.4328.0", - "13.0.0-nightly.20201210": "89.0.4328.0", - "13.0.0-nightly.20201211": "89.0.4328.0", - "13.0.0-nightly.20201214": "89.0.4328.0", - "13.0.0-nightly.20201215": "89.0.4349.0", - "13.0.0-nightly.20201216": "89.0.4349.0", - "13.0.0-nightly.20201221": "89.0.4349.0", - "13.0.0-nightly.20201222": "89.0.4349.0", - "13.0.0-nightly.20201223": "89.0.4359.0", - "13.0.0-nightly.20210104": "89.0.4359.0", - "13.0.0-nightly.20210108": "89.0.4359.0", - "13.0.0-nightly.20210111": "89.0.4359.0", - "13.0.0-nightly.20210113": "89.0.4386.0", - "13.0.0-nightly.20210114": "89.0.4386.0", - "13.0.0-nightly.20210118": "89.0.4386.0", - "13.0.0-nightly.20210122": "89.0.4386.0", - "13.0.0-nightly.20210125": "89.0.4386.0", - "13.0.0-nightly.20210127": "89.0.4389.0", - "13.0.0-nightly.20210128": "89.0.4389.0", - "13.0.0-nightly.20210129": "89.0.4389.0", - "13.0.0-nightly.20210201": "89.0.4389.0", - "13.0.0-nightly.20210202": "89.0.4389.0", - "13.0.0-nightly.20210203": "89.0.4389.0", - "13.0.0-nightly.20210205": "89.0.4389.0", - "13.0.0-nightly.20210208": "89.0.4389.0", - "13.0.0-nightly.20210209": "89.0.4389.0", - "13.0.0-nightly.20210210": "90.0.4402.0", - "13.0.0-nightly.20210211": "90.0.4402.0", - "13.0.0-nightly.20210212": "90.0.4402.0", - "13.0.0-nightly.20210216": "90.0.4402.0", - "13.0.0-nightly.20210217": "90.0.4402.0", - "13.0.0-nightly.20210218": "90.0.4402.0", - "13.0.0-nightly.20210219": "90.0.4402.0", - "13.0.0-nightly.20210222": "90.0.4402.0", - "13.0.0-nightly.20210225": "90.0.4402.0", - "13.0.0-nightly.20210226": "90.0.4402.0", - "13.0.0-nightly.20210301": "90.0.4402.0", - "13.0.0-nightly.20210302": "90.0.4402.0", - "13.0.0-nightly.20210303": "90.0.4402.0", - "13.0.0": "91.0.4472.69", - "13.0.1": "91.0.4472.69", - "13.1.0": "91.0.4472.77", - "13.1.1": "91.0.4472.77", - "13.1.2": "91.0.4472.77", - "13.1.3": "91.0.4472.106", - "13.1.4": "91.0.4472.106", - "13.1.5": "91.0.4472.124", - "13.1.6": "91.0.4472.124", - "13.1.7": "91.0.4472.124", - "13.1.8": "91.0.4472.164", - "13.1.9": "91.0.4472.164", - "13.2.0": "91.0.4472.164", - "13.2.1": "91.0.4472.164", - "13.2.2": "91.0.4472.164", - "13.2.3": "91.0.4472.164", - "13.3.0": "91.0.4472.164", - "13.4.0": "91.0.4472.164", - "13.5.0": "91.0.4472.164", - "13.5.1": "91.0.4472.164", - "13.5.2": "91.0.4472.164", - "13.6.0": "91.0.4472.164", - "13.6.1": "91.0.4472.164", - "13.6.2": "91.0.4472.164", - "13.6.3": "91.0.4472.164", - "13.6.6": "91.0.4472.164", - "13.6.7": "91.0.4472.164", - "13.6.8": "91.0.4472.164", - "13.6.9": "91.0.4472.164", - "14.0.0-beta.1": "92.0.4511.0", - "14.0.0-beta.2": "92.0.4511.0", - "14.0.0-beta.3": "92.0.4511.0", - "14.0.0-beta.5": "93.0.4536.0", - "14.0.0-beta.6": "93.0.4536.0", - "14.0.0-beta.7": "93.0.4536.0", - "14.0.0-beta.8": "93.0.4536.0", - "14.0.0-beta.9": "93.0.4539.0", - "14.0.0-beta.10": "93.0.4539.0", - "14.0.0-beta.11": "93.0.4557.4", - "14.0.0-beta.12": "93.0.4557.4", - "14.0.0-beta.13": "93.0.4566.0", - "14.0.0-beta.14": "93.0.4566.0", - "14.0.0-beta.15": "93.0.4566.0", - "14.0.0-beta.16": "93.0.4566.0", - "14.0.0-beta.17": "93.0.4566.0", - "14.0.0-beta.18": "93.0.4577.15", - "14.0.0-beta.19": "93.0.4577.15", - "14.0.0-beta.20": "93.0.4577.15", - "14.0.0-beta.21": "93.0.4577.15", - "14.0.0-beta.22": "93.0.4577.25", - "14.0.0-beta.23": "93.0.4577.25", - "14.0.0-beta.24": "93.0.4577.51", - "14.0.0-beta.25": "93.0.4577.51", - "14.0.0-nightly.20210304": "90.0.4402.0", - "14.0.0-nightly.20210305": "90.0.4415.0", - "14.0.0-nightly.20210308": "90.0.4415.0", - "14.0.0-nightly.20210309": "90.0.4415.0", - "14.0.0-nightly.20210311": "90.0.4415.0", - "14.0.0-nightly.20210315": "90.0.4415.0", - "14.0.0-nightly.20210316": "90.0.4415.0", - "14.0.0-nightly.20210317": "90.0.4415.0", - "14.0.0-nightly.20210318": "90.0.4415.0", - "14.0.0-nightly.20210319": "90.0.4415.0", - "14.0.0-nightly.20210323": "90.0.4415.0", - "14.0.0-nightly.20210324": "90.0.4415.0", - "14.0.0-nightly.20210325": "90.0.4415.0", - "14.0.0-nightly.20210326": "90.0.4415.0", - "14.0.0-nightly.20210329": "90.0.4415.0", - "14.0.0-nightly.20210330": "90.0.4415.0", - "14.0.0-nightly.20210331": "91.0.4448.0", - "14.0.0-nightly.20210401": "91.0.4448.0", - "14.0.0-nightly.20210402": "91.0.4448.0", - "14.0.0-nightly.20210406": "91.0.4448.0", - "14.0.0-nightly.20210407": "91.0.4448.0", - "14.0.0-nightly.20210408": "91.0.4448.0", - "14.0.0-nightly.20210409": "91.0.4448.0", - "14.0.0-nightly.20210413": "91.0.4448.0", - "14.0.0-nightly.20210426": "92.0.4475.0", - "14.0.0-nightly.20210427": "92.0.4475.0", - "14.0.0-nightly.20210430": "92.0.4488.0", - "14.0.0-nightly.20210503": "92.0.4488.0", - "14.0.0-nightly.20210505": "92.0.4496.0", - "14.0.0-nightly.20210506": "92.0.4498.0", - "14.0.0-nightly.20210507": "92.0.4499.0", - "14.0.0-nightly.20210510": "92.0.4499.0", - "14.0.0-nightly.20210511": "92.0.4499.0", - "14.0.0-nightly.20210512": "92.0.4499.0", - "14.0.0-nightly.20210513": "92.0.4499.0", - "14.0.0-nightly.20210514": "92.0.4505.0", - "14.0.0-nightly.20210517": "92.0.4505.0", - "14.0.0-nightly.20210518": "92.0.4505.0", - "14.0.0-nightly.20210519": "92.0.4505.0", - "14.0.0-nightly.20210520": "92.0.4511.0", - "14.0.0-nightly.20210523": "92.0.4511.0", - "14.0.0-nightly.20210524": "92.0.4511.0", - "14.0.0": "93.0.4577.58", - "14.0.1": "93.0.4577.63", - "14.0.2": "93.0.4577.82", - "14.1.0": "93.0.4577.82", - "14.1.1": "93.0.4577.82", - "14.2.0": "93.0.4577.82", - "14.2.1": "93.0.4577.82", - "14.2.2": "93.0.4577.82", - "14.2.3": "93.0.4577.82", - "14.2.4": "93.0.4577.82", - "14.2.5": "93.0.4577.82", - "14.2.6": "93.0.4577.82", - "14.2.7": "93.0.4577.82", - "14.2.8": "93.0.4577.82", - "14.2.9": "93.0.4577.82", - "15.0.0-alpha.1": "93.0.4566.0", - "15.0.0-alpha.2": "93.0.4566.0", - "15.0.0-alpha.3": "94.0.4584.0", - "15.0.0-alpha.4": "94.0.4584.0", - "15.0.0-alpha.5": "94.0.4584.0", - "15.0.0-alpha.6": "94.0.4584.0", - "15.0.0-alpha.7": "94.0.4590.2", - "15.0.0-alpha.8": "94.0.4590.2", - "15.0.0-alpha.9": "94.0.4590.2", - "15.0.0-alpha.10": "94.0.4606.12", - "15.0.0-beta.1": "94.0.4606.20", - "15.0.0-beta.2": "94.0.4606.20", - "15.0.0-beta.3": "94.0.4606.31", - "15.0.0-beta.4": "94.0.4606.31", - "15.0.0-beta.5": "94.0.4606.31", - "15.0.0-beta.6": "94.0.4606.31", - "15.0.0-beta.7": "94.0.4606.31", - "15.0.0-nightly.20210527": "92.0.4511.0", - "15.0.0-nightly.20210528": "92.0.4511.0", - "15.0.0-nightly.20210531": "92.0.4511.0", - "15.0.0-nightly.20210601": "92.0.4511.0", - "15.0.0-nightly.20210602": "92.0.4511.0", - "15.0.0-nightly.20210603": "93.0.4530.0", - "15.0.0-nightly.20210604": "93.0.4530.0", - "15.0.0-nightly.20210608": "93.0.4535.0", - "15.0.0-nightly.20210609": "93.0.4536.0", - "15.0.0-nightly.20210610": "93.0.4536.0", - "15.0.0-nightly.20210611": "93.0.4536.0", - "15.0.0-nightly.20210614": "93.0.4536.0", - "15.0.0-nightly.20210615": "93.0.4536.0", - "15.0.0-nightly.20210616": "93.0.4536.0", - "15.0.0-nightly.20210617": "93.0.4539.0", - "15.0.0-nightly.20210618": "93.0.4539.0", - "15.0.0-nightly.20210621": "93.0.4539.0", - "15.0.0-nightly.20210622": "93.0.4539.0", - "15.0.0-nightly.20210623": "93.0.4550.0", - "15.0.0-nightly.20210624": "93.0.4550.0", - "15.0.0-nightly.20210625": "93.0.4552.0", - "15.0.0-nightly.20210628": "93.0.4552.0", - "15.0.0-nightly.20210629": "93.0.4552.0", - "15.0.0-nightly.20210630": "93.0.4558.0", - "15.0.0-nightly.20210701": "93.0.4558.0", - "15.0.0-nightly.20210702": "93.0.4558.0", - "15.0.0-nightly.20210705": "93.0.4558.0", - "15.0.0-nightly.20210706": "93.0.4566.0", - "15.0.0-nightly.20210707": "93.0.4566.0", - "15.0.0-nightly.20210708": "93.0.4566.0", - "15.0.0-nightly.20210709": "93.0.4566.0", - "15.0.0-nightly.20210712": "93.0.4566.0", - "15.0.0-nightly.20210713": "93.0.4566.0", - "15.0.0-nightly.20210714": "93.0.4566.0", - "15.0.0-nightly.20210715": "93.0.4566.0", - "15.0.0-nightly.20210716": "93.0.4566.0", - "15.0.0-nightly.20210719": "93.0.4566.0", - "15.0.0-nightly.20210720": "93.0.4566.0", - "15.0.0-nightly.20210721": "93.0.4566.0", - "15.0.0": "94.0.4606.51", - "15.1.0": "94.0.4606.61", - "15.1.1": "94.0.4606.61", - "15.1.2": "94.0.4606.71", - "15.2.0": "94.0.4606.81", - "15.3.0": "94.0.4606.81", - "15.3.1": "94.0.4606.81", - "15.3.2": "94.0.4606.81", - "15.3.3": "94.0.4606.81", - "15.3.4": "94.0.4606.81", - "15.3.5": "94.0.4606.81", - "15.3.6": "94.0.4606.81", - "15.3.7": "94.0.4606.81", - "15.4.0": "94.0.4606.81", - "15.4.1": "94.0.4606.81", - "15.4.2": "94.0.4606.81", - "15.5.0": "94.0.4606.81", - "15.5.1": "94.0.4606.81", - "15.5.2": "94.0.4606.81", - "15.5.3": "94.0.4606.81", - "15.5.4": "94.0.4606.81", - "15.5.5": "94.0.4606.81", - "15.5.6": "94.0.4606.81", - "15.5.7": "94.0.4606.81", - "16.0.0-alpha.1": "95.0.4629.0", - "16.0.0-alpha.2": "95.0.4629.0", - "16.0.0-alpha.3": "95.0.4629.0", - "16.0.0-alpha.4": "95.0.4629.0", - "16.0.0-alpha.5": "95.0.4629.0", - "16.0.0-alpha.6": "95.0.4629.0", - "16.0.0-alpha.7": "95.0.4629.0", - "16.0.0-alpha.8": "96.0.4647.0", - "16.0.0-alpha.9": "96.0.4647.0", - "16.0.0-beta.1": "96.0.4647.0", - "16.0.0-beta.2": "96.0.4647.0", - "16.0.0-beta.3": "96.0.4647.0", - "16.0.0-beta.4": "96.0.4664.18", - "16.0.0-beta.5": "96.0.4664.18", - "16.0.0-beta.6": "96.0.4664.27", - "16.0.0-beta.7": "96.0.4664.27", - "16.0.0-beta.8": "96.0.4664.35", - "16.0.0-beta.9": "96.0.4664.35", - "16.0.0-nightly.20210722": "93.0.4566.0", - "16.0.0-nightly.20210723": "93.0.4566.0", - "16.0.0-nightly.20210726": "93.0.4566.0", - "16.0.0-nightly.20210727": "94.0.4584.0", - "16.0.0-nightly.20210728": "94.0.4584.0", - "16.0.0-nightly.20210729": "94.0.4584.0", - "16.0.0-nightly.20210730": "94.0.4584.0", - "16.0.0-nightly.20210802": "94.0.4584.0", - "16.0.0-nightly.20210803": "94.0.4584.0", - "16.0.0-nightly.20210804": "94.0.4584.0", - "16.0.0-nightly.20210805": "94.0.4584.0", - "16.0.0-nightly.20210806": "94.0.4584.0", - "16.0.0-nightly.20210809": "94.0.4584.0", - "16.0.0-nightly.20210810": "94.0.4584.0", - "16.0.0-nightly.20210811": "94.0.4584.0", - "16.0.0-nightly.20210812": "94.0.4590.2", - "16.0.0-nightly.20210813": "94.0.4590.2", - "16.0.0-nightly.20210816": "94.0.4590.2", - "16.0.0-nightly.20210817": "94.0.4590.2", - "16.0.0-nightly.20210818": "94.0.4590.2", - "16.0.0-nightly.20210819": "94.0.4590.2", - "16.0.0-nightly.20210820": "94.0.4590.2", - "16.0.0-nightly.20210823": "94.0.4590.2", - "16.0.0-nightly.20210824": "95.0.4612.5", - "16.0.0-nightly.20210825": "95.0.4612.5", - "16.0.0-nightly.20210826": "95.0.4612.5", - "16.0.0-nightly.20210827": "95.0.4612.5", - "16.0.0-nightly.20210830": "95.0.4612.5", - "16.0.0-nightly.20210831": "95.0.4612.5", - "16.0.0-nightly.20210901": "95.0.4612.5", - "16.0.0-nightly.20210902": "95.0.4629.0", - "16.0.0-nightly.20210903": "95.0.4629.0", - "16.0.0-nightly.20210906": "95.0.4629.0", - "16.0.0-nightly.20210907": "95.0.4629.0", - "16.0.0-nightly.20210908": "95.0.4629.0", - "16.0.0-nightly.20210909": "95.0.4629.0", - "16.0.0-nightly.20210910": "95.0.4629.0", - "16.0.0-nightly.20210913": "95.0.4629.0", - "16.0.0-nightly.20210914": "95.0.4629.0", - "16.0.0-nightly.20210915": "95.0.4629.0", - "16.0.0-nightly.20210916": "95.0.4629.0", - "16.0.0-nightly.20210917": "95.0.4629.0", - "16.0.0-nightly.20210920": "95.0.4629.0", - "16.0.0-nightly.20210921": "95.0.4629.0", - "16.0.0-nightly.20210922": "95.0.4629.0", - "16.0.0": "96.0.4664.45", - "16.0.1": "96.0.4664.45", - "16.0.2": "96.0.4664.55", - "16.0.3": "96.0.4664.55", - "16.0.4": "96.0.4664.55", - "16.0.5": "96.0.4664.55", - "16.0.6": "96.0.4664.110", - "16.0.7": "96.0.4664.110", - "16.0.8": "96.0.4664.110", - "16.0.9": "96.0.4664.174", - "16.0.10": "96.0.4664.174", - "16.1.0": "96.0.4664.174", - "16.1.1": "96.0.4664.174", - "16.2.0": "96.0.4664.174", - "16.2.1": "96.0.4664.174", - "16.2.2": "96.0.4664.174", - "16.2.3": "96.0.4664.174", - "16.2.4": "96.0.4664.174", - "16.2.5": "96.0.4664.174", - "16.2.6": "96.0.4664.174", - "16.2.7": "96.0.4664.174", - "16.2.8": "96.0.4664.174", - "17.0.0-alpha.1": "96.0.4664.4", - "17.0.0-alpha.2": "96.0.4664.4", - "17.0.0-alpha.3": "96.0.4664.4", - "17.0.0-alpha.4": "98.0.4706.0", - "17.0.0-alpha.5": "98.0.4706.0", - "17.0.0-alpha.6": "98.0.4706.0", - "17.0.0-beta.1": "98.0.4706.0", - "17.0.0-beta.2": "98.0.4706.0", - "17.0.0-beta.3": "98.0.4758.9", - "17.0.0-beta.4": "98.0.4758.11", - "17.0.0-beta.5": "98.0.4758.11", - "17.0.0-beta.6": "98.0.4758.11", - "17.0.0-beta.7": "98.0.4758.11", - "17.0.0-beta.8": "98.0.4758.11", - "17.0.0-beta.9": "98.0.4758.11", - "17.0.0-nightly.20210923": "95.0.4629.0", - "17.0.0-nightly.20210924": "95.0.4629.0", - "17.0.0-nightly.20210927": "95.0.4629.0", - "17.0.0-nightly.20210928": "95.0.4629.0", - "17.0.0-nightly.20210929": "95.0.4629.0", - "17.0.0-nightly.20210930": "95.0.4629.0", - "17.0.0-nightly.20211001": "95.0.4629.0", - "17.0.0-nightly.20211004": "95.0.4629.0", - "17.0.0-nightly.20211005": "95.0.4629.0", - "17.0.0-nightly.20211006": "96.0.4647.0", - "17.0.0-nightly.20211007": "96.0.4647.0", - "17.0.0-nightly.20211008": "96.0.4647.0", - "17.0.0-nightly.20211011": "96.0.4647.0", - "17.0.0-nightly.20211012": "96.0.4647.0", - "17.0.0-nightly.20211013": "96.0.4647.0", - "17.0.0-nightly.20211014": "96.0.4647.0", - "17.0.0-nightly.20211015": "96.0.4647.0", - "17.0.0-nightly.20211018": "96.0.4647.0", - "17.0.0-nightly.20211019": "96.0.4647.0", - "17.0.0-nightly.20211020": "96.0.4647.0", - "17.0.0-nightly.20211021": "96.0.4647.0", - "17.0.0-nightly.20211022": "96.0.4664.4", - "17.0.0-nightly.20211025": "96.0.4664.4", - "17.0.0-nightly.20211026": "96.0.4664.4", - "17.0.0-nightly.20211027": "96.0.4664.4", - "17.0.0-nightly.20211028": "96.0.4664.4", - "17.0.0-nightly.20211029": "96.0.4664.4", - "17.0.0-nightly.20211101": "96.0.4664.4", - "17.0.0-nightly.20211102": "96.0.4664.4", - "17.0.0-nightly.20211103": "96.0.4664.4", - "17.0.0-nightly.20211104": "96.0.4664.4", - "17.0.0-nightly.20211105": "96.0.4664.4", - "17.0.0-nightly.20211108": "96.0.4664.4", - "17.0.0-nightly.20211109": "96.0.4664.4", - "17.0.0-nightly.20211110": "96.0.4664.4", - "17.0.0-nightly.20211111": "96.0.4664.4", - "17.0.0-nightly.20211112": "96.0.4664.4", - "17.0.0-nightly.20211115": "96.0.4664.4", - "17.0.0-nightly.20211116": "96.0.4664.4", - "17.0.0-nightly.20211117": "96.0.4664.4", - "17.0.0": "98.0.4758.74", - "17.0.1": "98.0.4758.82", - "17.1.0": "98.0.4758.102", - "17.1.1": "98.0.4758.109", - "17.1.2": "98.0.4758.109", - "17.2.0": "98.0.4758.109", - "17.3.0": "98.0.4758.141", - "17.3.1": "98.0.4758.141", - "17.4.0": "98.0.4758.141", - "17.4.1": "98.0.4758.141", - "17.4.2": "98.0.4758.141", - "17.4.3": "98.0.4758.141", - "17.4.4": "98.0.4758.141", - "17.4.5": "98.0.4758.141", - "17.4.6": "98.0.4758.141", - "17.4.7": "98.0.4758.141", - "17.4.8": "98.0.4758.141", - "17.4.9": "98.0.4758.141", - "17.4.10": "98.0.4758.141", - "17.4.11": "98.0.4758.141", - "18.0.0-alpha.1": "99.0.4767.0", - "18.0.0-alpha.2": "99.0.4767.0", - "18.0.0-alpha.3": "99.0.4767.0", - "18.0.0-alpha.4": "99.0.4767.0", - "18.0.0-alpha.5": "99.0.4767.0", - "18.0.0-beta.1": "100.0.4894.0", - "18.0.0-beta.2": "100.0.4894.0", - "18.0.0-beta.3": "100.0.4894.0", - "18.0.0-beta.4": "100.0.4894.0", - "18.0.0-beta.5": "100.0.4894.0", - "18.0.0-beta.6": "100.0.4894.0", - "18.0.0-nightly.20211118": "96.0.4664.4", - "18.0.0-nightly.20211119": "96.0.4664.4", - "18.0.0-nightly.20211122": "96.0.4664.4", - "18.0.0-nightly.20211123": "96.0.4664.4", - "18.0.0-nightly.20211124": "98.0.4706.0", - "18.0.0-nightly.20211125": "98.0.4706.0", - "18.0.0-nightly.20211126": "98.0.4706.0", - "18.0.0-nightly.20211129": "98.0.4706.0", - "18.0.0-nightly.20211130": "98.0.4706.0", - "18.0.0-nightly.20211201": "98.0.4706.0", - "18.0.0-nightly.20211202": "98.0.4706.0", - "18.0.0-nightly.20211203": "98.0.4706.0", - "18.0.0-nightly.20211206": "98.0.4706.0", - "18.0.0-nightly.20211207": "98.0.4706.0", - "18.0.0-nightly.20211208": "98.0.4706.0", - "18.0.0-nightly.20211209": "98.0.4706.0", - "18.0.0-nightly.20211210": "98.0.4706.0", - "18.0.0-nightly.20211213": "98.0.4706.0", - "18.0.0-nightly.20211214": "98.0.4706.0", - "18.0.0-nightly.20211215": "98.0.4706.0", - "18.0.0-nightly.20211216": "98.0.4706.0", - "18.0.0-nightly.20211217": "98.0.4706.0", - "18.0.0-nightly.20211220": "98.0.4706.0", - "18.0.0-nightly.20211221": "98.0.4706.0", - "18.0.0-nightly.20211222": "98.0.4706.0", - "18.0.0-nightly.20211223": "98.0.4706.0", - "18.0.0-nightly.20211228": "98.0.4706.0", - "18.0.0-nightly.20211229": "98.0.4706.0", - "18.0.0-nightly.20211231": "98.0.4706.0", - "18.0.0-nightly.20220103": "98.0.4706.0", - "18.0.0-nightly.20220104": "98.0.4706.0", - "18.0.0-nightly.20220105": "98.0.4706.0", - "18.0.0-nightly.20220106": "98.0.4706.0", - "18.0.0-nightly.20220107": "98.0.4706.0", - "18.0.0-nightly.20220110": "98.0.4706.0", - "18.0.0-nightly.20220111": "99.0.4767.0", - "18.0.0-nightly.20220112": "99.0.4767.0", - "18.0.0-nightly.20220113": "99.0.4767.0", - "18.0.0-nightly.20220114": "99.0.4767.0", - "18.0.0-nightly.20220117": "99.0.4767.0", - "18.0.0-nightly.20220118": "99.0.4767.0", - "18.0.0-nightly.20220119": "99.0.4767.0", - "18.0.0-nightly.20220121": "99.0.4767.0", - "18.0.0-nightly.20220124": "99.0.4767.0", - "18.0.0-nightly.20220125": "99.0.4767.0", - "18.0.0-nightly.20220127": "99.0.4767.0", - "18.0.0-nightly.20220128": "99.0.4767.0", - "18.0.0-nightly.20220131": "99.0.4767.0", - "18.0.0-nightly.20220201": "99.0.4767.0", - "18.0.0": "100.0.4896.56", - "18.0.1": "100.0.4896.60", - "18.0.2": "100.0.4896.60", - "18.0.3": "100.0.4896.75", - "18.0.4": "100.0.4896.75", - "18.1.0": "100.0.4896.127", - "18.2.0": "100.0.4896.143", - "18.2.1": "100.0.4896.143", - "18.2.2": "100.0.4896.143", - "18.2.3": "100.0.4896.143", - "18.2.4": "100.0.4896.160", - "18.3.0": "100.0.4896.160", - "18.3.1": "100.0.4896.160", - "18.3.2": "100.0.4896.160", - "18.3.3": "100.0.4896.160", - "18.3.4": "100.0.4896.160", - "18.3.5": "100.0.4896.160", - "18.3.6": "100.0.4896.160", - "18.3.7": "100.0.4896.160", - "18.3.8": "100.0.4896.160", - "18.3.9": "100.0.4896.160", - "18.3.11": "100.0.4896.160", - "18.3.12": "100.0.4896.160", - "18.3.13": "100.0.4896.160", - "18.3.14": "100.0.4896.160", - "18.3.15": "100.0.4896.160", - "19.0.0-alpha.1": "102.0.4962.3", - "19.0.0-alpha.2": "102.0.4971.0", - "19.0.0-alpha.3": "102.0.4971.0", - "19.0.0-alpha.4": "102.0.4989.0", - "19.0.0-alpha.5": "102.0.4989.0", - "19.0.0-beta.1": "102.0.4999.0", - "19.0.0-beta.2": "102.0.4999.0", - "19.0.0-beta.3": "102.0.4999.0", - "19.0.0-beta.4": "102.0.5005.27", - "19.0.0-beta.5": "102.0.5005.40", - "19.0.0-beta.6": "102.0.5005.40", - "19.0.0-beta.7": "102.0.5005.40", - "19.0.0-beta.8": "102.0.5005.49", - "19.0.0-nightly.20220202": "99.0.4767.0", - "19.0.0-nightly.20220203": "99.0.4767.0", - "19.0.0-nightly.20220204": "99.0.4767.0", - "19.0.0-nightly.20220207": "99.0.4767.0", - "19.0.0-nightly.20220208": "99.0.4767.0", - "19.0.0-nightly.20220209": "99.0.4767.0", - "19.0.0-nightly.20220308": "100.0.4894.0", - "19.0.0-nightly.20220309": "100.0.4894.0", - "19.0.0-nightly.20220310": "100.0.4894.0", - "19.0.0-nightly.20220311": "100.0.4894.0", - "19.0.0-nightly.20220314": "100.0.4894.0", - "19.0.0-nightly.20220315": "100.0.4894.0", - "19.0.0-nightly.20220316": "100.0.4894.0", - "19.0.0-nightly.20220317": "100.0.4894.0", - "19.0.0-nightly.20220318": "100.0.4894.0", - "19.0.0-nightly.20220321": "100.0.4894.0", - "19.0.0-nightly.20220322": "100.0.4894.0", - "19.0.0-nightly.20220323": "100.0.4894.0", - "19.0.0-nightly.20220324": "100.0.4894.0", - "19.0.0-nightly.20220325": "102.0.4961.0", - "19.0.0-nightly.20220328": "102.0.4962.3", - "19.0.0-nightly.20220329": "102.0.4962.3", - "19.0.0": "102.0.5005.61", - "19.0.1": "102.0.5005.61", - "19.0.2": "102.0.5005.63", - "19.0.3": "102.0.5005.63", - "19.0.4": "102.0.5005.63", - "19.0.5": "102.0.5005.115", - "19.0.6": "102.0.5005.115", - "19.0.7": "102.0.5005.134", - "19.0.8": "102.0.5005.148", - "19.0.9": "102.0.5005.167", - "19.0.10": "102.0.5005.167", - "19.0.11": "102.0.5005.167", - "19.0.12": "102.0.5005.167", - "19.0.13": "102.0.5005.167", - "19.0.14": "102.0.5005.167", - "19.0.15": "102.0.5005.167", - "19.0.16": "102.0.5005.167", - "19.0.17": "102.0.5005.167", - "19.1.0": "102.0.5005.167", - "19.1.1": "102.0.5005.167", - "19.1.2": "102.0.5005.167", - "19.1.3": "102.0.5005.167", - "19.1.4": "102.0.5005.167", - "19.1.5": "102.0.5005.167", - "19.1.6": "102.0.5005.167", - "19.1.7": "102.0.5005.167", - "19.1.8": "102.0.5005.167", - "19.1.9": "102.0.5005.167", - "20.0.0-alpha.1": "103.0.5044.0", - "20.0.0-alpha.2": "104.0.5073.0", - "20.0.0-alpha.3": "104.0.5073.0", - "20.0.0-alpha.4": "104.0.5073.0", - "20.0.0-alpha.5": "104.0.5073.0", - "20.0.0-alpha.6": "104.0.5073.0", - "20.0.0-alpha.7": "104.0.5073.0", - "20.0.0-beta.1": "104.0.5073.0", - "20.0.0-beta.2": "104.0.5073.0", - "20.0.0-beta.3": "104.0.5073.0", - "20.0.0-beta.4": "104.0.5073.0", - "20.0.0-beta.5": "104.0.5073.0", - "20.0.0-beta.6": "104.0.5073.0", - "20.0.0-beta.7": "104.0.5073.0", - "20.0.0-beta.8": "104.0.5073.0", - "20.0.0-beta.9": "104.0.5112.39", - "20.0.0-beta.10": "104.0.5112.48", - "20.0.0-beta.11": "104.0.5112.48", - "20.0.0-beta.12": "104.0.5112.48", - "20.0.0-beta.13": "104.0.5112.57", - "20.0.0-nightly.20220330": "102.0.4962.3", - "20.0.0-nightly.20220411": "102.0.4971.0", - "20.0.0-nightly.20220414": "102.0.4989.0", - "20.0.0-nightly.20220415": "102.0.4989.0", - "20.0.0-nightly.20220418": "102.0.4989.0", - "20.0.0-nightly.20220419": "102.0.4989.0", - "20.0.0-nightly.20220420": "102.0.4989.0", - "20.0.0-nightly.20220421": "102.0.4989.0", - "20.0.0-nightly.20220425": "102.0.4999.0", - "20.0.0-nightly.20220426": "102.0.4999.0", - "20.0.0-nightly.20220427": "102.0.4999.0", - "20.0.0-nightly.20220428": "102.0.4999.0", - "20.0.0-nightly.20220429": "102.0.4999.0", - "20.0.0-nightly.20220502": "102.0.4999.0", - "20.0.0-nightly.20220503": "102.0.4999.0", - "20.0.0-nightly.20220504": "102.0.4999.0", - "20.0.0-nightly.20220505": "102.0.4999.0", - "20.0.0-nightly.20220506": "102.0.4999.0", - "20.0.0-nightly.20220509": "102.0.4999.0", - "20.0.0-nightly.20220511": "102.0.4999.0", - "20.0.0-nightly.20220512": "102.0.4999.0", - "20.0.0-nightly.20220513": "102.0.4999.0", - "20.0.0-nightly.20220516": "102.0.4999.0", - "20.0.0-nightly.20220517": "102.0.4999.0", - "20.0.0-nightly.20220518": "103.0.5044.0", - "20.0.0-nightly.20220519": "103.0.5044.0", - "20.0.0-nightly.20220520": "103.0.5044.0", - "20.0.0-nightly.20220523": "103.0.5044.0", - "20.0.0-nightly.20220524": "103.0.5044.0", - "20.0.0": "104.0.5112.65", - "20.0.1": "104.0.5112.81", - "20.0.2": "104.0.5112.81", - "20.0.3": "104.0.5112.81", - "20.1.0": "104.0.5112.102", - "20.1.1": "104.0.5112.102", - "20.1.2": "104.0.5112.114", - "20.1.3": "104.0.5112.114", - "20.1.4": "104.0.5112.114", - "20.2.0": "104.0.5112.124", - "20.3.0": "104.0.5112.124", - "20.3.1": "104.0.5112.124", - "20.3.2": "104.0.5112.124", - "20.3.3": "104.0.5112.124", - "20.3.4": "104.0.5112.124", - "20.3.5": "104.0.5112.124", - "20.3.6": "104.0.5112.124", - "20.3.7": "104.0.5112.124", - "20.3.8": "104.0.5112.124", - "20.3.9": "104.0.5112.124", - "20.3.10": "104.0.5112.124", - "20.3.11": "104.0.5112.124", - "20.3.12": "104.0.5112.124", - "21.0.0-alpha.1": "105.0.5187.0", - "21.0.0-alpha.2": "105.0.5187.0", - "21.0.0-alpha.3": "105.0.5187.0", - "21.0.0-alpha.4": "105.0.5187.0", - "21.0.0-alpha.5": "105.0.5187.0", - "21.0.0-alpha.6": "106.0.5216.0", - "21.0.0-beta.1": "106.0.5216.0", - "21.0.0-beta.2": "106.0.5216.0", - "21.0.0-beta.3": "106.0.5216.0", - "21.0.0-beta.4": "106.0.5216.0", - "21.0.0-beta.5": "106.0.5216.0", - "21.0.0-beta.6": "106.0.5249.40", - "21.0.0-beta.7": "106.0.5249.40", - "21.0.0-beta.8": "106.0.5249.40", - "21.0.0-nightly.20220526": "103.0.5044.0", - "21.0.0-nightly.20220527": "103.0.5044.0", - "21.0.0-nightly.20220530": "103.0.5044.0", - "21.0.0-nightly.20220531": "103.0.5044.0", - "21.0.0-nightly.20220602": "104.0.5073.0", - "21.0.0-nightly.20220603": "104.0.5073.0", - "21.0.0-nightly.20220606": "104.0.5073.0", - "21.0.0-nightly.20220607": "104.0.5073.0", - "21.0.0-nightly.20220608": "104.0.5073.0", - "21.0.0-nightly.20220609": "104.0.5073.0", - "21.0.0-nightly.20220610": "104.0.5073.0", - "21.0.0-nightly.20220613": "104.0.5073.0", - "21.0.0-nightly.20220614": "104.0.5073.0", - "21.0.0-nightly.20220615": "104.0.5073.0", - "21.0.0-nightly.20220616": "104.0.5073.0", - "21.0.0-nightly.20220617": "104.0.5073.0", - "21.0.0-nightly.20220620": "104.0.5073.0", - "21.0.0-nightly.20220621": "104.0.5073.0", - "21.0.0-nightly.20220622": "104.0.5073.0", - "21.0.0-nightly.20220623": "104.0.5073.0", - "21.0.0-nightly.20220624": "104.0.5073.0", - "21.0.0-nightly.20220627": "104.0.5073.0", - "21.0.0-nightly.20220628": "105.0.5129.0", - "21.0.0-nightly.20220629": "105.0.5129.0", - "21.0.0-nightly.20220630": "105.0.5129.0", - "21.0.0-nightly.20220701": "105.0.5129.0", - "21.0.0-nightly.20220704": "105.0.5129.0", - "21.0.0-nightly.20220705": "105.0.5129.0", - "21.0.0-nightly.20220706": "105.0.5129.0", - "21.0.0-nightly.20220707": "105.0.5129.0", - "21.0.0-nightly.20220708": "105.0.5129.0", - "21.0.0-nightly.20220711": "105.0.5129.0", - "21.0.0-nightly.20220712": "105.0.5129.0", - "21.0.0-nightly.20220713": "105.0.5129.0", - "21.0.0-nightly.20220715": "105.0.5173.0", - "21.0.0-nightly.20220718": "105.0.5173.0", - "21.0.0-nightly.20220719": "105.0.5173.0", - "21.0.0-nightly.20220720": "105.0.5187.0", - "21.0.0-nightly.20220721": "105.0.5187.0", - "21.0.0-nightly.20220722": "105.0.5187.0", - "21.0.0-nightly.20220725": "105.0.5187.0", - "21.0.0-nightly.20220726": "105.0.5187.0", - "21.0.0-nightly.20220727": "105.0.5187.0", - "21.0.0-nightly.20220728": "105.0.5187.0", - "21.0.0-nightly.20220801": "105.0.5187.0", - "21.0.0-nightly.20220802": "105.0.5187.0", - "21.0.0": "106.0.5249.51", - "21.0.1": "106.0.5249.61", - "21.1.0": "106.0.5249.91", - "21.1.1": "106.0.5249.103", - "21.2.0": "106.0.5249.119", - "21.2.1": "106.0.5249.165", - "21.2.2": "106.0.5249.168", - "21.2.3": "106.0.5249.168", - "21.3.0": "106.0.5249.181", - "21.3.1": "106.0.5249.181", - "21.3.3": "106.0.5249.199", - "21.3.4": "106.0.5249.199", - "21.3.5": "106.0.5249.199", - "21.4.0": "106.0.5249.199", - "21.4.1": "106.0.5249.199", - "21.4.2": "106.0.5249.199", - "21.4.3": "106.0.5249.199", - "21.4.4": "106.0.5249.199", - "22.0.0-alpha.1": "107.0.5286.0", - "22.0.0-alpha.3": "108.0.5329.0", - "22.0.0-alpha.4": "108.0.5329.0", - "22.0.0-alpha.5": "108.0.5329.0", - "22.0.0-alpha.6": "108.0.5329.0", - "22.0.0-alpha.7": "108.0.5355.0", - "22.0.0-alpha.8": "108.0.5359.10", - "22.0.0-beta.1": "108.0.5359.10", - "22.0.0-beta.2": "108.0.5359.10", - "22.0.0-beta.3": "108.0.5359.10", - "22.0.0-beta.4": "108.0.5359.29", - "22.0.0-beta.5": "108.0.5359.40", - "22.0.0-beta.6": "108.0.5359.40", - "22.0.0-beta.7": "108.0.5359.48", - "22.0.0-beta.8": "108.0.5359.48", - "22.0.0-nightly.20220808": "105.0.5187.0", - "22.0.0-nightly.20220809": "105.0.5187.0", - "22.0.0-nightly.20220810": "105.0.5187.0", - "22.0.0-nightly.20220811": "105.0.5187.0", - "22.0.0-nightly.20220812": "105.0.5187.0", - "22.0.0-nightly.20220815": "105.0.5187.0", - "22.0.0-nightly.20220816": "105.0.5187.0", - "22.0.0-nightly.20220817": "105.0.5187.0", - "22.0.0-nightly.20220822": "106.0.5216.0", - "22.0.0-nightly.20220823": "106.0.5216.0", - "22.0.0-nightly.20220824": "106.0.5216.0", - "22.0.0-nightly.20220825": "106.0.5216.0", - "22.0.0-nightly.20220829": "106.0.5216.0", - "22.0.0-nightly.20220830": "106.0.5216.0", - "22.0.0-nightly.20220831": "106.0.5216.0", - "22.0.0-nightly.20220901": "106.0.5216.0", - "22.0.0-nightly.20220902": "106.0.5216.0", - "22.0.0-nightly.20220905": "106.0.5216.0", - "22.0.0-nightly.20220908": "107.0.5274.0", - "22.0.0-nightly.20220909": "107.0.5286.0", - "22.0.0-nightly.20220912": "107.0.5286.0", - "22.0.0-nightly.20220913": "107.0.5286.0", - "22.0.0-nightly.20220914": "107.0.5286.0", - "22.0.0-nightly.20220915": "107.0.5286.0", - "22.0.0-nightly.20220916": "107.0.5286.0", - "22.0.0-nightly.20220919": "107.0.5286.0", - "22.0.0-nightly.20220920": "107.0.5286.0", - "22.0.0-nightly.20220921": "107.0.5286.0", - "22.0.0-nightly.20220922": "107.0.5286.0", - "22.0.0-nightly.20220923": "107.0.5286.0", - "22.0.0-nightly.20220926": "107.0.5286.0", - "22.0.0-nightly.20220927": "107.0.5286.0", - "22.0.0-nightly.20220928": "107.0.5286.0", - "22.0.0": "108.0.5359.62", - "22.0.1": "108.0.5359.125", - "22.0.2": "108.0.5359.179", - "22.0.3": "108.0.5359.179", - "22.1.0": "108.0.5359.179", - "22.2.0": "108.0.5359.215", - "22.2.1": "108.0.5359.215", - "22.3.0": "108.0.5359.215", - "22.3.1": "108.0.5359.215", - "22.3.2": "108.0.5359.215", - "22.3.3": "108.0.5359.215", - "22.3.4": "108.0.5359.215", - "22.3.5": "108.0.5359.215", - "22.3.6": "108.0.5359.215", - "22.3.7": "108.0.5359.215", - "22.3.8": "108.0.5359.215", - "22.3.9": "108.0.5359.215", - "22.3.10": "108.0.5359.215", - "22.3.11": "108.0.5359.215", - "22.3.12": "108.0.5359.215", - "22.3.13": "108.0.5359.215", - "22.3.14": "108.0.5359.215", - "22.3.15": "108.0.5359.215", - "22.3.16": "108.0.5359.215", - "22.3.17": "108.0.5359.215", - "22.3.18": "108.0.5359.215", - "22.3.20": "108.0.5359.215", - "22.3.21": "108.0.5359.215", - "22.3.22": "108.0.5359.215", - "22.3.23": "108.0.5359.215", - "22.3.24": "108.0.5359.215", - "22.3.25": "108.0.5359.215", - "22.3.26": "108.0.5359.215", - "22.3.27": "108.0.5359.215", - "23.0.0-alpha.1": "110.0.5415.0", - "23.0.0-alpha.2": "110.0.5451.0", - "23.0.0-alpha.3": "110.0.5451.0", - "23.0.0-beta.1": "110.0.5478.5", - "23.0.0-beta.2": "110.0.5478.5", - "23.0.0-beta.3": "110.0.5478.5", - "23.0.0-beta.4": "110.0.5481.30", - "23.0.0-beta.5": "110.0.5481.38", - "23.0.0-beta.6": "110.0.5481.52", - "23.0.0-beta.8": "110.0.5481.52", - "23.0.0-nightly.20220929": "107.0.5286.0", - "23.0.0-nightly.20220930": "107.0.5286.0", - "23.0.0-nightly.20221003": "107.0.5286.0", - "23.0.0-nightly.20221004": "108.0.5329.0", - "23.0.0-nightly.20221005": "108.0.5329.0", - "23.0.0-nightly.20221006": "108.0.5329.0", - "23.0.0-nightly.20221007": "108.0.5329.0", - "23.0.0-nightly.20221010": "108.0.5329.0", - "23.0.0-nightly.20221011": "108.0.5329.0", - "23.0.0-nightly.20221012": "108.0.5329.0", - "23.0.0-nightly.20221013": "108.0.5329.0", - "23.0.0-nightly.20221014": "108.0.5329.0", - "23.0.0-nightly.20221017": "108.0.5329.0", - "23.0.0-nightly.20221018": "108.0.5355.0", - "23.0.0-nightly.20221019": "108.0.5355.0", - "23.0.0-nightly.20221020": "108.0.5355.0", - "23.0.0-nightly.20221021": "108.0.5355.0", - "23.0.0-nightly.20221024": "108.0.5355.0", - "23.0.0-nightly.20221026": "108.0.5355.0", - "23.0.0-nightly.20221027": "109.0.5382.0", - "23.0.0-nightly.20221028": "109.0.5382.0", - "23.0.0-nightly.20221031": "109.0.5382.0", - "23.0.0-nightly.20221101": "109.0.5382.0", - "23.0.0-nightly.20221102": "109.0.5382.0", - "23.0.0-nightly.20221103": "109.0.5382.0", - "23.0.0-nightly.20221104": "109.0.5382.0", - "23.0.0-nightly.20221107": "109.0.5382.0", - "23.0.0-nightly.20221108": "109.0.5382.0", - "23.0.0-nightly.20221109": "109.0.5382.0", - "23.0.0-nightly.20221110": "109.0.5382.0", - "23.0.0-nightly.20221111": "109.0.5382.0", - "23.0.0-nightly.20221114": "109.0.5382.0", - "23.0.0-nightly.20221115": "109.0.5382.0", - "23.0.0-nightly.20221116": "109.0.5382.0", - "23.0.0-nightly.20221117": "109.0.5382.0", - "23.0.0-nightly.20221118": "110.0.5415.0", - "23.0.0-nightly.20221121": "110.0.5415.0", - "23.0.0-nightly.20221122": "110.0.5415.0", - "23.0.0-nightly.20221123": "110.0.5415.0", - "23.0.0-nightly.20221124": "110.0.5415.0", - "23.0.0-nightly.20221125": "110.0.5415.0", - "23.0.0-nightly.20221128": "110.0.5415.0", - "23.0.0-nightly.20221129": "110.0.5415.0", - "23.0.0-nightly.20221130": "110.0.5415.0", - "23.0.0": "110.0.5481.77", - "23.1.0": "110.0.5481.100", - "23.1.1": "110.0.5481.104", - "23.1.2": "110.0.5481.177", - "23.1.3": "110.0.5481.179", - "23.1.4": "110.0.5481.192", - "23.2.0": "110.0.5481.192", - "23.2.1": "110.0.5481.208", - "23.2.2": "110.0.5481.208", - "23.2.3": "110.0.5481.208", - "23.2.4": "110.0.5481.208", - "23.3.0": "110.0.5481.208", - "23.3.1": "110.0.5481.208", - "23.3.2": "110.0.5481.208", - "23.3.3": "110.0.5481.208", - "23.3.4": "110.0.5481.208", - "23.3.5": "110.0.5481.208", - "23.3.6": "110.0.5481.208", - "23.3.7": "110.0.5481.208", - "23.3.8": "110.0.5481.208", - "23.3.9": "110.0.5481.208", - "23.3.10": "110.0.5481.208", - "23.3.11": "110.0.5481.208", - "23.3.12": "110.0.5481.208", - "23.3.13": "110.0.5481.208", - "24.0.0-alpha.1": "111.0.5560.0", - "24.0.0-alpha.2": "111.0.5560.0", - "24.0.0-alpha.3": "111.0.5560.0", - "24.0.0-alpha.4": "111.0.5560.0", - "24.0.0-alpha.5": "111.0.5560.0", - "24.0.0-alpha.6": "111.0.5560.0", - "24.0.0-alpha.7": "111.0.5560.0", - "24.0.0-beta.1": "111.0.5563.50", - "24.0.0-beta.2": "111.0.5563.50", - "24.0.0-beta.3": "112.0.5615.20", - "24.0.0-beta.4": "112.0.5615.20", - "24.0.0-beta.5": "112.0.5615.29", - "24.0.0-beta.6": "112.0.5615.39", - "24.0.0-beta.7": "112.0.5615.39", - "24.0.0-nightly.20221201": "110.0.5415.0", - "24.0.0-nightly.20221202": "110.0.5415.0", - "24.0.0-nightly.20221205": "110.0.5415.0", - "24.0.0-nightly.20221206": "110.0.5451.0", - "24.0.0-nightly.20221207": "110.0.5451.0", - "24.0.0-nightly.20221208": "110.0.5451.0", - "24.0.0-nightly.20221213": "110.0.5451.0", - "24.0.0-nightly.20221214": "110.0.5451.0", - "24.0.0-nightly.20221215": "110.0.5451.0", - "24.0.0-nightly.20221216": "110.0.5451.0", - "24.0.0-nightly.20230109": "111.0.5518.0", - "24.0.0-nightly.20230110": "111.0.5518.0", - "24.0.0-nightly.20230111": "111.0.5518.0", - "24.0.0-nightly.20230112": "111.0.5518.0", - "24.0.0-nightly.20230113": "111.0.5518.0", - "24.0.0-nightly.20230116": "111.0.5518.0", - "24.0.0-nightly.20230117": "111.0.5518.0", - "24.0.0-nightly.20230118": "111.0.5518.0", - "24.0.0-nightly.20230119": "111.0.5518.0", - "24.0.0-nightly.20230120": "111.0.5518.0", - "24.0.0-nightly.20230123": "111.0.5518.0", - "24.0.0-nightly.20230124": "111.0.5518.0", - "24.0.0-nightly.20230125": "111.0.5518.0", - "24.0.0-nightly.20230126": "111.0.5518.0", - "24.0.0-nightly.20230127": "111.0.5518.0", - "24.0.0-nightly.20230131": "111.0.5518.0", - "24.0.0-nightly.20230201": "111.0.5518.0", - "24.0.0-nightly.20230202": "111.0.5518.0", - "24.0.0-nightly.20230203": "111.0.5560.0", - "24.0.0-nightly.20230206": "111.0.5560.0", - "24.0.0-nightly.20230207": "111.0.5560.0", - "24.0.0-nightly.20230208": "111.0.5560.0", - "24.0.0-nightly.20230209": "111.0.5560.0", - "24.0.0": "112.0.5615.49", - "24.1.0": "112.0.5615.50", - "24.1.1": "112.0.5615.50", - "24.1.2": "112.0.5615.87", - "24.1.3": "112.0.5615.165", - "24.2.0": "112.0.5615.165", - "24.3.0": "112.0.5615.165", - "24.3.1": "112.0.5615.183", - "24.4.0": "112.0.5615.204", - "24.4.1": "112.0.5615.204", - "24.5.0": "112.0.5615.204", - "24.5.1": "112.0.5615.204", - "24.6.0": "112.0.5615.204", - "24.6.1": "112.0.5615.204", - "24.6.2": "112.0.5615.204", - "24.6.3": "112.0.5615.204", - "24.6.4": "112.0.5615.204", - "24.6.5": "112.0.5615.204", - "24.7.0": "112.0.5615.204", - "24.7.1": "112.0.5615.204", - "24.8.0": "112.0.5615.204", - "24.8.1": "112.0.5615.204", - "24.8.2": "112.0.5615.204", - "24.8.3": "112.0.5615.204", - "24.8.4": "112.0.5615.204", - "24.8.5": "112.0.5615.204", - "24.8.6": "112.0.5615.204", - "24.8.7": "112.0.5615.204", - "24.8.8": "112.0.5615.204", - "25.0.0-alpha.1": "114.0.5694.0", - "25.0.0-alpha.2": "114.0.5694.0", - "25.0.0-alpha.3": "114.0.5710.0", - "25.0.0-alpha.4": "114.0.5710.0", - "25.0.0-alpha.5": "114.0.5719.0", - "25.0.0-alpha.6": "114.0.5719.0", - "25.0.0-beta.1": "114.0.5719.0", - "25.0.0-beta.2": "114.0.5719.0", - "25.0.0-beta.3": "114.0.5719.0", - "25.0.0-beta.4": "114.0.5735.16", - "25.0.0-beta.5": "114.0.5735.16", - "25.0.0-beta.6": "114.0.5735.16", - "25.0.0-beta.7": "114.0.5735.16", - "25.0.0-beta.8": "114.0.5735.35", - "25.0.0-beta.9": "114.0.5735.45", - "25.0.0-nightly.20230210": "111.0.5560.0", - "25.0.0-nightly.20230214": "111.0.5560.0", - "25.0.0-nightly.20230215": "111.0.5560.0", - "25.0.0-nightly.20230216": "111.0.5560.0", - "25.0.0-nightly.20230217": "111.0.5560.0", - "25.0.0-nightly.20230220": "111.0.5560.0", - "25.0.0-nightly.20230221": "111.0.5560.0", - "25.0.0-nightly.20230222": "111.0.5560.0", - "25.0.0-nightly.20230223": "111.0.5560.0", - "25.0.0-nightly.20230224": "111.0.5560.0", - "25.0.0-nightly.20230227": "111.0.5560.0", - "25.0.0-nightly.20230228": "111.0.5560.0", - "25.0.0-nightly.20230301": "111.0.5560.0", - "25.0.0-nightly.20230302": "111.0.5560.0", - "25.0.0-nightly.20230303": "111.0.5560.0", - "25.0.0-nightly.20230306": "111.0.5560.0", - "25.0.0-nightly.20230307": "111.0.5560.0", - "25.0.0-nightly.20230308": "111.0.5560.0", - "25.0.0-nightly.20230309": "111.0.5560.0", - "25.0.0-nightly.20230310": "111.0.5560.0", - "25.0.0-nightly.20230314": "113.0.5636.0", - "25.0.0-nightly.20230315": "113.0.5651.0", - "25.0.0-nightly.20230317": "113.0.5653.0", - "25.0.0-nightly.20230320": "113.0.5660.0", - "25.0.0-nightly.20230321": "113.0.5664.0", - "25.0.0-nightly.20230322": "113.0.5666.0", - "25.0.0-nightly.20230323": "113.0.5668.0", - "25.0.0-nightly.20230324": "113.0.5670.0", - "25.0.0-nightly.20230327": "113.0.5670.0", - "25.0.0-nightly.20230328": "113.0.5670.0", - "25.0.0-nightly.20230329": "113.0.5670.0", - "25.0.0-nightly.20230330": "113.0.5670.0", - "25.0.0-nightly.20230331": "114.0.5684.0", - "25.0.0-nightly.20230403": "114.0.5684.0", - "25.0.0-nightly.20230404": "114.0.5692.0", - "25.0.0-nightly.20230405": "114.0.5694.0", - "25.0.0": "114.0.5735.45", - "25.0.1": "114.0.5735.45", - "25.1.0": "114.0.5735.106", - "25.1.1": "114.0.5735.106", - "25.2.0": "114.0.5735.134", - "25.3.0": "114.0.5735.199", - "25.3.1": "114.0.5735.243", - "25.3.2": "114.0.5735.248", - "25.4.0": "114.0.5735.248", - "25.5.0": "114.0.5735.289", - "25.6.0": "114.0.5735.289", - "25.7.0": "114.0.5735.289", - "25.8.0": "114.0.5735.289", - "25.8.1": "114.0.5735.289", - "25.8.2": "114.0.5735.289", - "25.8.3": "114.0.5735.289", - "25.8.4": "114.0.5735.289", - "25.9.0": "114.0.5735.289", - "25.9.1": "114.0.5735.289", - "25.9.2": "114.0.5735.289", - "25.9.3": "114.0.5735.289", - "26.0.0-alpha.1": "116.0.5791.0", - "26.0.0-alpha.2": "116.0.5791.0", - "26.0.0-alpha.3": "116.0.5791.0", - "26.0.0-alpha.4": "116.0.5791.0", - "26.0.0-alpha.5": "116.0.5791.0", - "26.0.0-alpha.6": "116.0.5815.0", - "26.0.0-alpha.7": "116.0.5831.0", - "26.0.0-alpha.8": "116.0.5845.0", - "26.0.0-beta.1": "116.0.5845.0", - "26.0.0-beta.2": "116.0.5845.14", - "26.0.0-beta.3": "116.0.5845.14", - "26.0.0-beta.4": "116.0.5845.14", - "26.0.0-beta.5": "116.0.5845.14", - "26.0.0-beta.6": "116.0.5845.14", - "26.0.0-beta.7": "116.0.5845.14", - "26.0.0-beta.8": "116.0.5845.42", - "26.0.0-beta.9": "116.0.5845.42", - "26.0.0-beta.10": "116.0.5845.49", - "26.0.0-beta.11": "116.0.5845.49", - "26.0.0-beta.12": "116.0.5845.62", - "26.0.0-nightly.20230406": "114.0.5694.0", - "26.0.0-nightly.20230407": "114.0.5694.0", - "26.0.0-nightly.20230410": "114.0.5694.0", - "26.0.0-nightly.20230411": "114.0.5694.0", - "26.0.0-nightly.20230412": "114.0.5708.0", - "26.0.0-nightly.20230413": "114.0.5710.0", - "26.0.0-nightly.20230414": "114.0.5710.0", - "26.0.0-nightly.20230417": "114.0.5710.0", - "26.0.0-nightly.20230418": "114.0.5715.0", - "26.0.0-nightly.20230421": "114.0.5719.0", - "26.0.0-nightly.20230424": "114.0.5719.0", - "26.0.0-nightly.20230425": "114.0.5719.0", - "26.0.0-nightly.20230426": "114.0.5719.0", - "26.0.0-nightly.20230427": "114.0.5719.0", - "26.0.0-nightly.20230428": "114.0.5719.0", - "26.0.0-nightly.20230501": "114.0.5719.0", - "26.0.0-nightly.20230502": "114.0.5719.0", - "26.0.0-nightly.20230503": "114.0.5719.0", - "26.0.0-nightly.20230504": "114.0.5719.0", - "26.0.0-nightly.20230505": "114.0.5719.0", - "26.0.0-nightly.20230508": "114.0.5719.0", - "26.0.0-nightly.20230509": "114.0.5719.0", - "26.0.0-nightly.20230510": "114.0.5719.0", - "26.0.0-nightly.20230511": "115.0.5760.0", - "26.0.0-nightly.20230512": "115.0.5760.0", - "26.0.0-nightly.20230515": "115.0.5760.0", - "26.0.0-nightly.20230516": "115.0.5760.0", - "26.0.0-nightly.20230517": "115.0.5760.0", - "26.0.0-nightly.20230518": "115.0.5760.0", - "26.0.0-nightly.20230519": "115.0.5760.0", - "26.0.0-nightly.20230522": "115.0.5760.0", - "26.0.0-nightly.20230523": "115.0.5760.0", - "26.0.0-nightly.20230524": "115.0.5786.0", - "26.0.0-nightly.20230525": "115.0.5790.0", - "26.0.0-nightly.20230526": "116.0.5791.0", - "26.0.0-nightly.20230529": "116.0.5791.0", - "26.0.0-nightly.20230530": "116.0.5791.0", - "26.0.0-nightly.20230531": "116.0.5791.0", - "26.0.0": "116.0.5845.82", - "26.1.0": "116.0.5845.97", - "26.2.0": "116.0.5845.179", - "26.2.1": "116.0.5845.188", - "26.2.2": "116.0.5845.190", - "26.2.3": "116.0.5845.190", - "26.2.4": "116.0.5845.190", - "26.3.0": "116.0.5845.228", - "26.4.0": "116.0.5845.228", - "26.4.1": "116.0.5845.228", - "26.4.2": "116.0.5845.228", - "27.0.0-alpha.1": "118.0.5949.0", - "27.0.0-alpha.2": "118.0.5949.0", - "27.0.0-alpha.3": "118.0.5949.0", - "27.0.0-alpha.4": "118.0.5949.0", - "27.0.0-alpha.5": "118.0.5949.0", - "27.0.0-alpha.6": "118.0.5949.0", - "27.0.0-beta.1": "118.0.5993.5", - "27.0.0-beta.2": "118.0.5993.5", - "27.0.0-beta.3": "118.0.5993.5", - "27.0.0-beta.4": "118.0.5993.11", - "27.0.0-beta.5": "118.0.5993.18", - "27.0.0-beta.6": "118.0.5993.18", - "27.0.0-beta.7": "118.0.5993.18", - "27.0.0-beta.8": "118.0.5993.18", - "27.0.0-beta.9": "118.0.5993.18", - "27.0.0-nightly.20230601": "116.0.5791.0", - "27.0.0-nightly.20230602": "116.0.5791.0", - "27.0.0-nightly.20230605": "116.0.5791.0", - "27.0.0-nightly.20230606": "116.0.5791.0", - "27.0.0-nightly.20230607": "116.0.5791.0", - "27.0.0-nightly.20230609": "116.0.5791.0", - "27.0.0-nightly.20230612": "116.0.5815.0", - "27.0.0-nightly.20230613": "116.0.5815.0", - "27.0.0-nightly.20230614": "116.0.5829.0", - "27.0.0-nightly.20230615": "116.0.5831.0", - "27.0.0-nightly.20230616": "116.0.5833.0", - "27.0.0-nightly.20230619": "116.0.5833.0", - "27.0.0-nightly.20230620": "116.0.5833.0", - "27.0.0-nightly.20230621": "116.0.5833.0", - "27.0.0-nightly.20230622": "116.0.5845.0", - "27.0.0-nightly.20230623": "116.0.5845.0", - "27.0.0-nightly.20230626": "116.0.5845.0", - "27.0.0-nightly.20230627": "116.0.5845.0", - "27.0.0-nightly.20230628": "116.0.5845.0", - "27.0.0-nightly.20230629": "116.0.5845.0", - "27.0.0-nightly.20230630": "116.0.5845.0", - "27.0.0-nightly.20230703": "117.0.5852.0", - "27.0.0-nightly.20230704": "117.0.5852.0", - "27.0.0-nightly.20230705": "117.0.5852.0", - "27.0.0-nightly.20230706": "117.0.5852.0", - "27.0.0-nightly.20230707": "117.0.5852.0", - "27.0.0-nightly.20230710": "117.0.5852.0", - "27.0.0-nightly.20230711": "117.0.5852.0", - "27.0.0-nightly.20230712": "117.0.5852.0", - "27.0.0-nightly.20230713": "117.0.5852.0", - "27.0.0-nightly.20230714": "117.0.5852.0", - "27.0.0-nightly.20230717": "117.0.5884.1", - "27.0.0-nightly.20230718": "117.0.5884.1", - "27.0.0-nightly.20230719": "117.0.5892.0", - "27.0.0-nightly.20230720": "117.0.5897.0", - "27.0.0-nightly.20230721": "117.0.5897.0", - "27.0.0-nightly.20230724": "117.0.5897.0", - "27.0.0-nightly.20230725": "117.0.5897.0", - "27.0.0-nightly.20230726": "117.0.5897.0", - "27.0.0-nightly.20230727": "117.0.5897.0", - "27.0.0-nightly.20230728": "117.0.5897.0", - "27.0.0-nightly.20230731": "117.0.5897.0", - "27.0.0-nightly.20230801": "117.0.5911.0", - "27.0.0-nightly.20230802": "117.0.5911.0", - "27.0.0-nightly.20230803": "117.0.5911.0", - "27.0.0-nightly.20230804": "117.0.5921.0", - "27.0.0-nightly.20230807": "117.0.5921.0", - "27.0.0-nightly.20230808": "117.0.5921.0", - "27.0.0-nightly.20230814": "117.0.5921.0", - "27.0.0-nightly.20230815": "117.0.5921.0", - "27.0.0-nightly.20230816": "118.0.5949.0", - "27.0.0": "118.0.5993.54", - "27.0.1": "118.0.5993.89", - "27.0.2": "118.0.5993.89", - "28.0.0-alpha.1": "119.0.6045.0", - "28.0.0-alpha.2": "119.0.6045.0", - "28.0.0-alpha.3": "119.0.6045.21", - "28.0.0-alpha.4": "119.0.6045.21", - "28.0.0-alpha.5": "119.0.6045.33", - "28.0.0-alpha.6": "119.0.6045.33", - "28.0.0-nightly.20230817": "118.0.5949.0", - "28.0.0-nightly.20230818": "118.0.5949.0", - "28.0.0-nightly.20230821": "118.0.5949.0", - "28.0.0-nightly.20230822": "118.0.5949.0", - "28.0.0-nightly.20230823": "118.0.5949.0", - "28.0.0-nightly.20230824": "118.0.5949.0", - "28.0.0-nightly.20230825": "118.0.5949.0", - "28.0.0-nightly.20230828": "118.0.5949.0", - "28.0.0-nightly.20230829": "118.0.5949.0", - "28.0.0-nightly.20230830": "118.0.5949.0", - "28.0.0-nightly.20230831": "118.0.5949.0", - "28.0.0-nightly.20230906": "118.0.5991.0", - "28.0.0-nightly.20230907": "118.0.5993.0", - "28.0.0-nightly.20230908": "118.0.5993.0", - "28.0.0-nightly.20230911": "118.0.5993.0", - "28.0.0-nightly.20230912": "118.0.5993.0", - "28.0.0-nightly.20230913": "118.0.5993.0", - "28.0.0-nightly.20230914": "118.0.5993.0", - "28.0.0-nightly.20230915": "118.0.5993.0", - "28.0.0-nightly.20230919": "119.0.6006.0", - "28.0.0-nightly.20230920": "119.0.6017.0", - "28.0.0-nightly.20230921": "119.0.6019.2", - "28.0.0-nightly.20230925": "119.0.6019.2", - "28.0.0-nightly.20230926": "119.0.6019.2", - "28.0.0-nightly.20230927": "119.0.6019.2", - "28.0.0-nightly.20230928": "119.0.6019.2", - "28.0.0-nightly.20230929": "119.0.6029.0", - "28.0.0-nightly.20231002": "119.0.6029.0", - "28.0.0-nightly.20231003": "119.0.6043.0", - "28.0.0-nightly.20231004": "119.0.6043.0", - "28.0.0-nightly.20231005": "119.0.6043.0", - "28.0.0-nightly.20231006": "119.0.6045.0", - "28.0.0-nightly.20231009": "119.0.6045.0", - "28.0.0-nightly.20231010": "119.0.6045.0", - "28.0.0-nightly.20231011": "119.0.6045.0", - "29.0.0-nightly.20231012": "119.0.6045.0", - "29.0.0-nightly.20231013": "119.0.6045.0", - "29.0.0-nightly.20231016": "119.0.6045.0", - "29.0.0-nightly.20231017": "119.0.6045.0", - "29.0.0-nightly.20231018": "119.0.6045.0", - "29.0.0-nightly.20231019": "119.0.6045.0", - "29.0.0-nightly.20231020": "119.0.6045.0", - "29.0.0-nightly.20231023": "119.0.6045.0", - "29.0.0-nightly.20231024": "119.0.6045.0", - "29.0.0-nightly.20231025": "120.0.6078.0", - "29.0.0-nightly.20231026": "120.0.6078.0", - "29.0.0-nightly.20231027": "120.0.6078.0" -}; \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/full-versions.json b/build/node_modules/electron-to-chromium/full-versions.json deleted file mode 100644 index 20f737a6..00000000 --- a/build/node_modules/electron-to-chromium/full-versions.json +++ /dev/null @@ -1 +0,0 @@ -{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","22.3.26":"108.0.5359.215","22.3.27":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","24.8.6":"112.0.5615.204","24.8.7":"112.0.5615.204","24.8.8":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","25.9.0":"114.0.5735.289","25.9.1":"114.0.5735.289","25.9.2":"114.0.5735.289","25.9.3":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","26.3.0":"116.0.5845.228","26.4.0":"116.0.5845.228","26.4.1":"116.0.5845.228","26.4.2":"116.0.5845.228","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-beta.9":"118.0.5993.18","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","27.0.0":"118.0.5993.54","27.0.1":"118.0.5993.89","27.0.2":"118.0.5993.89","28.0.0-alpha.1":"119.0.6045.0","28.0.0-alpha.2":"119.0.6045.0","28.0.0-alpha.3":"119.0.6045.21","28.0.0-alpha.4":"119.0.6045.21","28.0.0-alpha.5":"119.0.6045.33","28.0.0-alpha.6":"119.0.6045.33","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0","28.0.0-nightly.20230911":"118.0.5993.0","28.0.0-nightly.20230912":"118.0.5993.0","28.0.0-nightly.20230913":"118.0.5993.0","28.0.0-nightly.20230914":"118.0.5993.0","28.0.0-nightly.20230915":"118.0.5993.0","28.0.0-nightly.20230919":"119.0.6006.0","28.0.0-nightly.20230920":"119.0.6017.0","28.0.0-nightly.20230921":"119.0.6019.2","28.0.0-nightly.20230925":"119.0.6019.2","28.0.0-nightly.20230926":"119.0.6019.2","28.0.0-nightly.20230927":"119.0.6019.2","28.0.0-nightly.20230928":"119.0.6019.2","28.0.0-nightly.20230929":"119.0.6029.0","28.0.0-nightly.20231002":"119.0.6029.0","28.0.0-nightly.20231003":"119.0.6043.0","28.0.0-nightly.20231004":"119.0.6043.0","28.0.0-nightly.20231005":"119.0.6043.0","28.0.0-nightly.20231006":"119.0.6045.0","28.0.0-nightly.20231009":"119.0.6045.0","28.0.0-nightly.20231010":"119.0.6045.0","28.0.0-nightly.20231011":"119.0.6045.0","29.0.0-nightly.20231012":"119.0.6045.0","29.0.0-nightly.20231013":"119.0.6045.0","29.0.0-nightly.20231016":"119.0.6045.0","29.0.0-nightly.20231017":"119.0.6045.0","29.0.0-nightly.20231018":"119.0.6045.0","29.0.0-nightly.20231019":"119.0.6045.0","29.0.0-nightly.20231020":"119.0.6045.0","29.0.0-nightly.20231023":"119.0.6045.0","29.0.0-nightly.20231024":"119.0.6045.0","29.0.0-nightly.20231025":"120.0.6078.0","29.0.0-nightly.20231026":"120.0.6078.0","29.0.0-nightly.20231027":"120.0.6078.0"} \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/index.js b/build/node_modules/electron-to-chromium/index.js deleted file mode 100644 index 1818281f..00000000 --- a/build/node_modules/electron-to-chromium/index.js +++ /dev/null @@ -1,36 +0,0 @@ -var versions = require('./versions'); -var fullVersions = require('./full-versions'); -var chromiumVersions = require('./chromium-versions'); -var fullChromiumVersions = require('./full-chromium-versions'); - -var electronToChromium = function (query) { - var number = getQueryString(query); - return number.split('.').length > 2 ? fullVersions[number] : versions[number] || undefined; -}; - -var chromiumToElectron = function (query) { - var number = getQueryString(query); - return number.split('.').length > 2 ? fullChromiumVersions[number] : chromiumVersions[number] || undefined; -}; - -var electronToBrowserList = function (query) { - var number = getQueryString(query); - return versions[number] ? "Chrome >= " + versions[number] : undefined; -}; - -var getQueryString = function (query) { - var number = query; - if (query === 1) { number = "1.0" } - if (typeof query === 'number') { number += ''; } - return number; -}; - -module.exports = { - versions: versions, - fullVersions: fullVersions, - chromiumVersions: chromiumVersions, - fullChromiumVersions: fullChromiumVersions, - electronToChromium: electronToChromium, - electronToBrowserList: electronToBrowserList, - chromiumToElectron: chromiumToElectron -}; diff --git a/build/node_modules/electron-to-chromium/package.json b/build/node_modules/electron-to-chromium/package.json deleted file mode 100644 index e29a4421..00000000 --- a/build/node_modules/electron-to-chromium/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "electron-to-chromium", - "version": "1.4.569", - "description": "Provides a list of electron-to-chromium version mappings", - "main": "index.js", - "files": [ - "versions.js", - "full-versions.js", - "chromium-versions.js", - "full-chromium-versions.js", - "versions.json", - "full-versions.json", - "chromium-versions.json", - "full-chromium-versions.json", - "LICENSE" - ], - "scripts": { - "build": "node build.mjs", - "update": "node automated-update.js", - "test": "nyc ava --verbose", - "report": "nyc report --reporter=text-lcov > coverage.lcov && codecov" - }, - "repository": { - "type": "git", - "url": "https://github.com/kilian/electron-to-chromium/" - }, - "keywords": [ - "electron", - "chrome", - "chromium", - "browserslist", - "browserlist" - ], - "author": "Kilian Valkhof", - "license": "ISC", - "devDependencies": { - "ava": "^5.1.1", - "codecov": "^3.8.2", - "compare-versions": "^6.0.0-rc.1", - "node-fetch": "^3.3.0", - "nyc": "^15.1.0", - "shelljs": "^0.8.5" - } -} diff --git a/build/node_modules/electron-to-chromium/versions.js b/build/node_modules/electron-to-chromium/versions.js deleted file mode 100644 index 310a1bcc..00000000 --- a/build/node_modules/electron-to-chromium/versions.js +++ /dev/null @@ -1,141 +0,0 @@ -module.exports = { - "0.20": "39", - "0.21": "41", - "0.22": "41", - "0.23": "41", - "0.24": "41", - "0.25": "42", - "0.26": "42", - "0.27": "43", - "0.28": "43", - "0.29": "43", - "0.30": "44", - "0.31": "45", - "0.32": "45", - "0.33": "45", - "0.34": "45", - "0.35": "45", - "0.36": "47", - "0.37": "49", - "1.0": "49", - "1.1": "50", - "1.2": "51", - "1.3": "52", - "1.4": "53", - "1.5": "54", - "1.6": "56", - "1.7": "58", - "1.8": "59", - "2.0": "61", - "2.1": "61", - "3.0": "66", - "3.1": "66", - "4.0": "69", - "4.1": "69", - "4.2": "69", - "5.0": "73", - "6.0": "76", - "6.1": "76", - "7.0": "78", - "7.1": "78", - "7.2": "78", - "7.3": "78", - "8.0": "80", - "8.1": "80", - "8.2": "80", - "8.3": "80", - "8.4": "80", - "8.5": "80", - "9.0": "83", - "9.1": "83", - "9.2": "83", - "9.3": "83", - "9.4": "83", - "10.0": "85", - "10.1": "85", - "10.2": "85", - "10.3": "85", - "10.4": "85", - "11.0": "87", - "11.1": "87", - "11.2": "87", - "11.3": "87", - "11.4": "87", - "11.5": "87", - "12.0": "89", - "12.1": "89", - "12.2": "89", - "13.0": "91", - "13.1": "91", - "13.2": "91", - "13.3": "91", - "13.4": "91", - "13.5": "91", - "13.6": "91", - "14.0": "93", - "14.1": "93", - "14.2": "93", - "15.0": "94", - "15.1": "94", - "15.2": "94", - "15.3": "94", - "15.4": "94", - "15.5": "94", - "16.0": "96", - "16.1": "96", - "16.2": "96", - "17.0": "98", - "17.1": "98", - "17.2": "98", - "17.3": "98", - "17.4": "98", - "18.0": "100", - "18.1": "100", - "18.2": "100", - "18.3": "100", - "19.0": "102", - "19.1": "102", - "20.0": "104", - "20.1": "104", - "20.2": "104", - "20.3": "104", - "21.0": "106", - "21.1": "106", - "21.2": "106", - "21.3": "106", - "21.4": "106", - "22.0": "108", - "22.1": "108", - "22.2": "108", - "22.3": "108", - "23.0": "110", - "23.1": "110", - "23.2": "110", - "23.3": "110", - "24.0": "112", - "24.1": "112", - "24.2": "112", - "24.3": "112", - "24.4": "112", - "24.5": "112", - "24.6": "112", - "24.7": "112", - "24.8": "112", - "25.0": "114", - "25.1": "114", - "25.2": "114", - "25.3": "114", - "25.4": "114", - "25.5": "114", - "25.6": "114", - "25.7": "114", - "25.8": "114", - "25.9": "114", - "26.0": "116", - "26.1": "116", - "26.2": "116", - "26.3": "116", - "26.4": "116", - "27.0": "118", - "28.0": "119" -}; \ No newline at end of file diff --git a/build/node_modules/electron-to-chromium/versions.json b/build/node_modules/electron-to-chromium/versions.json deleted file mode 100644 index fa8d3e66..00000000 --- a/build/node_modules/electron-to-chromium/versions.json +++ /dev/null @@ -1 +0,0 @@ -{"0.20":"39","0.21":"41","0.22":"41","0.23":"41","0.24":"41","0.25":"42","0.26":"42","0.27":"43","0.28":"43","0.29":"43","0.30":"44","0.31":"45","0.32":"45","0.33":"45","0.34":"45","0.35":"45","0.36":"47","0.37":"49","1.0":"49","1.1":"50","1.2":"51","1.3":"52","1.4":"53","1.5":"54","1.6":"56","1.7":"58","1.8":"59","2.0":"61","2.1":"61","3.0":"66","3.1":"66","4.0":"69","4.1":"69","4.2":"69","5.0":"73","6.0":"76","6.1":"76","7.0":"78","7.1":"78","7.2":"78","7.3":"78","8.0":"80","8.1":"80","8.2":"80","8.3":"80","8.4":"80","8.5":"80","9.0":"83","9.1":"83","9.2":"83","9.3":"83","9.4":"83","10.0":"85","10.1":"85","10.2":"85","10.3":"85","10.4":"85","11.0":"87","11.1":"87","11.2":"87","11.3":"87","11.4":"87","11.5":"87","12.0":"89","12.1":"89","12.2":"89","13.0":"91","13.1":"91","13.2":"91","13.3":"91","13.4":"91","13.5":"91","13.6":"91","14.0":"93","14.1":"93","14.2":"93","15.0":"94","15.1":"94","15.2":"94","15.3":"94","15.4":"94","15.5":"94","16.0":"96","16.1":"96","16.2":"96","17.0":"98","17.1":"98","17.2":"98","17.3":"98","17.4":"98","18.0":"100","18.1":"100","18.2":"100","18.3":"100","19.0":"102","19.1":"102","20.0":"104","20.1":"104","20.2":"104","20.3":"104","21.0":"106","21.1":"106","21.2":"106","21.3":"106","21.4":"106","22.0":"108","22.1":"108","22.2":"108","22.3":"108","23.0":"110","23.1":"110","23.2":"110","23.3":"110","24.0":"112","24.1":"112","24.2":"112","24.3":"112","24.4":"112","24.5":"112","24.6":"112","24.7":"112","24.8":"112","25.0":"114","25.1":"114","25.2":"114","25.3":"114","25.4":"114","25.5":"114","25.6":"114","25.7":"114","25.8":"114","25.9":"114","26.0":"116","26.1":"116","26.2":"116","26.3":"116","26.4":"116","27.0":"118","28.0":"119"} \ No newline at end of file diff --git a/build/node_modules/emittery/index.d.ts b/build/node_modules/emittery/index.d.ts deleted file mode 100644 index 4204a511..00000000 --- a/build/node_modules/emittery/index.d.ts +++ /dev/null @@ -1,606 +0,0 @@ -/* eslint-disable no-redeclare */ - -/** -Emittery accepts strings, symbols, and numbers as event names. - -Symbol event names are preferred given that they can be used to avoid name collisions when your classes are extended, especially for internal events. -*/ -type EventName = PropertyKey; - -// Helper type for turning the passed `EventData` type map into a list of string keys that don't require data alongside the event name when emitting. Uses the same trick that `Omit` does internally to filter keys by building a map of keys to keys we want to keep, and then accessing all the keys to return just the list of keys we want to keep. -type DatalessEventNames = { - [Key in keyof EventData]: EventData[Key] extends undefined ? Key : never; -}[keyof EventData]; - -declare const listenerAdded: unique symbol; -declare const listenerRemoved: unique symbol; -type _OmnipresentEventData = {[listenerAdded]: Emittery.ListenerChangedData; [listenerRemoved]: Emittery.ListenerChangedData}; - -/** -Emittery can collect and log debug information. - -To enable this feature set the `DEBUG` environment variable to `emittery` or `*`. Additionally, you can set the static `isDebugEnabled` variable to true on the Emittery class, or `myEmitter.debug.enabled` on an instance of it for debugging a single instance. - -See API for more information on how debugging works. -*/ -type DebugLogger = (type: string, debugName: string, eventName?: Name, eventData?: EventData[Name]) => void; - -/** -Configure debug options of an instance. -*/ -interface DebugOptions { - /** - Define a name for the instance of Emittery to use when outputting debug data. - - @default undefined - - @example - ``` - import Emittery = require('emittery'); - - Emittery.isDebugEnabled = true; - - const emitter = new Emittery({debug: {name: 'myEmitter'}}); - - emitter.on('test', data => { - // … - }); - - emitter.emit('test'); - //=> [16:43:20.417][emittery:subscribe][myEmitter] Event Name: test - // data: undefined - ``` - */ - readonly name: string; - - /** - Toggle debug logging just for this instance. - - @default false - - @example - ``` - import Emittery = require('emittery'); - - const emitter1 = new Emittery({debug: {name: 'emitter1', enabled: true}}); - const emitter2 = new Emittery({debug: {name: 'emitter2'}}); - - emitter1.on('test', data => { - // … - }); - - emitter2.on('test', data => { - // … - }); - - emitter1.emit('test'); - //=> [16:43:20.417][emittery:subscribe][emitter1] Event Name: test - // data: undefined - - emitter2.emit('test'); - ``` - */ - enabled?: boolean; - - /** - Function that handles debug data. - - @default - ``` - (type, debugName, eventName, eventData) => { - eventData = JSON.stringify(eventData); - - if (typeof eventName === 'symbol' || typeof eventName === 'number') { - eventName = eventName.toString(); - } - - const currentTime = new Date(); - const logTime = `${currentTime.getHours()}:${currentTime.getMinutes()}:${currentTime.getSeconds()}.${currentTime.getMilliseconds()}`; - console.log(`[${logTime}][emittery:${type}][${debugName}] Event Name: ${eventName}\n\tdata: ${eventData}`); - } - ``` - - @example - ``` - import Emittery = require('emittery'); - - const myLogger = (type, debugName, eventName, eventData) => console.log(`[${type}]: ${eventName}`); - - const emitter = new Emittery({ - debug: { - name: 'myEmitter', - enabled: true, - logger: myLogger - } - }); - - emitter.on('test', data => { - // … - }); - - emitter.emit('test'); - //=> [subscribe]: test - ``` - */ - logger?: DebugLogger; -} - -/** -Configuration options for Emittery. -*/ -interface Options { - debug?: DebugOptions; -} - -/** -A promise returned from `emittery.once` with an extra `off` method to cancel your subscription. -*/ -interface EmitteryOncePromise extends Promise { - off(): void; -} - -/** -Emittery is a strictly typed, fully async EventEmitter implementation. Event listeners can be registered with `on` or `once`, and events can be emitted with `emit`. - -`Emittery` has a generic `EventData` type that can be provided by users to strongly type the list of events and the data passed to the listeners for those events. Pass an interface of {[eventName]: undefined | }, with all the event names as the keys and the values as the type of the argument passed to listeners if there is one, or `undefined` if there isn't. - -@example -``` -import Emittery = require('emittery'); - -const emitter = new Emittery< - // Pass `{[eventName: ]: undefined | }` as the first type argument for events that pass data to their listeners. - // A value of `undefined` in this map means the event listeners should expect no data, and a type other than `undefined` means the listeners will receive one argument of that type. - { - open: string, - close: undefined - } ->(); - -// Typechecks just fine because the data type for the `open` event is `string`. -emitter.emit('open', 'foo\n'); - -// Typechecks just fine because `close` is present but points to undefined in the event data type map. -emitter.emit('close'); - -// TS compilation error because `1` isn't assignable to `string`. -emitter.emit('open', 1); - -// TS compilation error because `other` isn't defined in the event data type map. -emitter.emit('other'); -``` -*/ -declare class Emittery< - EventData = Record, - AllEventData = EventData & _OmnipresentEventData, - DatalessEvents = DatalessEventNames -> { - /** - Toggle debug mode for all instances. - - Default: `true` if the `DEBUG` environment variable is set to `emittery` or `*`, otherwise `false`. - - @example - ``` - import Emittery = require('emittery'); - - Emittery.isDebugEnabled = true; - - const emitter1 = new Emittery({debug: {name: 'myEmitter1'}}); - const emitter2 = new Emittery({debug: {name: 'myEmitter2'}}); - - emitter1.on('test', data => { - // … - }); - - emitter2.on('otherTest', data => { - // … - }); - - emitter1.emit('test'); - //=> [16:43:20.417][emittery:subscribe][myEmitter1] Event Name: test - // data: undefined - - emitter2.emit('otherTest'); - //=> [16:43:20.417][emittery:subscribe][myEmitter2] Event Name: otherTest - // data: undefined - ``` - */ - static isDebugEnabled: boolean; - - /** - Fires when an event listener was added. - - An object with `listener` and `eventName` (if `on` or `off` was used) is provided as event data. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - - emitter.on(Emittery.listenerAdded, ({listener, eventName}) => { - console.log(listener); - //=> data => {} - - console.log(eventName); - //=> '🦄' - }); - - emitter.on('🦄', data => { - // Handle data - }); - ``` - */ - static readonly listenerAdded: typeof listenerAdded; - - /** - Fires when an event listener was removed. - - An object with `listener` and `eventName` (if `on` or `off` was used) is provided as event data. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - - const off = emitter.on('🦄', data => { - // Handle data - }); - - emitter.on(Emittery.listenerRemoved, ({listener, eventName}) => { - console.log(listener); - //=> data => {} - - console.log(eventName); - //=> '🦄' - }); - - off(); - ``` - */ - static readonly listenerRemoved: typeof listenerRemoved; - - /** - Debugging options for the current instance. - */ - debug: DebugOptions; - - /** - Create a new Emittery instance with the specified options. - - @returns An instance of Emittery that you can use to listen for and emit events. - */ - constructor(options?: Options); - - /** - In TypeScript, it returns a decorator which mixins `Emittery` as property `emitteryPropertyName` and `methodNames`, or all `Emittery` methods if `methodNames` is not defined, into the target class. - - @example - ``` - import Emittery = require('emittery'); - - @Emittery.mixin('emittery') - class MyClass {} - - const instance = new MyClass(); - - instance.emit('event'); - ``` - */ - static mixin( - emitteryPropertyName: string | symbol, - methodNames?: readonly string[] - ): (klass: T) => T; // eslint-disable-line @typescript-eslint/prefer-function-type - - /** - Subscribe to one or more events. - - Using the same listener multiple times for the same event will result in only one method call per emitted event. - - @returns An unsubscribe method. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - - emitter.on('🦄', data => { - console.log(data); - }); - - emitter.on(['🦄', '🐶'], data => { - console.log(data); - }); - - emitter.emit('🦄', '🌈'); // log => '🌈' x2 - emitter.emit('🐶', '🍖'); // log => '🍖' - ``` - */ - on( - eventName: Name | Name[], - listener: (eventData: AllEventData[Name]) => void | Promise - ): Emittery.UnsubscribeFn; - - /** - Get an async iterator which buffers data each time an event is emitted. - - Call `return()` on the iterator to remove the subscription. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - const iterator = emitter.events('🦄'); - - emitter.emit('🦄', '🌈1'); // Buffered - emitter.emit('🦄', '🌈2'); // Buffered - - iterator - .next() - .then(({value, done}) => { - // done === false - // value === '🌈1' - return iterator.next(); - }) - .then(({value, done}) => { - // done === false - // value === '🌈2' - // Revoke subscription - return iterator.return(); - }) - .then(({done}) => { - // done === true - }); - ``` - - In practice you would usually consume the events using the [for await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) statement. In that case, to revoke the subscription simply break the loop. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - const iterator = emitter.events('🦄'); - - emitter.emit('🦄', '🌈1'); // Buffered - emitter.emit('🦄', '🌈2'); // Buffered - - // In an async context. - for await (const data of iterator) { - if (data === '🌈2') { - break; // Revoke the subscription when we see the value `🌈2`. - } - } - ``` - - It accepts multiple event names. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - const iterator = emitter.events(['🦄', '🦊']); - - emitter.emit('🦄', '🌈1'); // Buffered - emitter.emit('🦊', '🌈2'); // Buffered - - iterator - .next() - .then(({value, done}) => { - // done === false - // value === '🌈1' - return iterator.next(); - }) - .then(({value, done}) => { - // done === false - // value === '🌈2' - // Revoke subscription - return iterator.return(); - }) - .then(({done}) => { - // done === true - }); - ``` - */ - events( - eventName: Name | Name[] - ): AsyncIterableIterator; - - /** - Remove one or more event subscriptions. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - - const listener = data => console.log(data); - (async () => { - emitter.on(['🦄', '🐶', '🦊'], listener); - await emitter.emit('🦄', 'a'); - await emitter.emit('🐶', 'b'); - await emitter.emit('🦊', 'c'); - emitter.off('🦄', listener); - emitter.off(['🐶', '🦊'], listener); - await emitter.emit('🦄', 'a'); // nothing happens - await emitter.emit('🐶', 'b'); // nothing happens - await emitter.emit('🦊', 'c'); // nothing happens - })(); - ``` - */ - off( - eventName: Name | Name[], - listener: (eventData: AllEventData[Name]) => void | Promise - ): void; - - /** - Subscribe to one or more events only once. It will be unsubscribed after the first - event. - - @returns The promise of event data when `eventName` is emitted. This promise is extended with an `off` method. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - - emitter.once('🦄').then(data => { - console.log(data); - //=> '🌈' - }); - - emitter.once(['🦄', '🐶']).then(data => { - console.log(data); - }); - - emitter.emit('🦄', '🌈'); // Logs `🌈` twice - emitter.emit('🐶', '🍖'); // Nothing happens - ``` - */ - once(eventName: Name | Name[]): EmitteryOncePromise; - - /** - Trigger an event asynchronously, optionally with some data. Listeners are called in the order they were added, but executed concurrently. - - @returns A promise that resolves when all the event listeners are done. *Done* meaning executed if synchronous or resolved when an async/promise-returning function. You usually wouldn't want to wait for this, but you could for example catch possible errors. If any of the listeners throw/reject, the returned promise will be rejected with the error, but the other listeners will not be affected. - */ - emit(eventName: Name): Promise; - emit( - eventName: Name, - eventData: EventData[Name] - ): Promise; - - /** - Same as `emit()`, but it waits for each listener to resolve before triggering the next one. This can be useful if your events depend on each other. Although ideally they should not. Prefer `emit()` whenever possible. - - If any of the listeners throw/reject, the returned promise will be rejected with the error and the remaining listeners will *not* be called. - - @returns A promise that resolves when all the event listeners are done. - */ - emitSerial(eventName: Name): Promise; - emitSerial( - eventName: Name, - eventData: EventData[Name] - ): Promise; - - /** - Subscribe to be notified about any event. - - @returns A method to unsubscribe. - */ - onAny( - listener: ( - eventName: keyof EventData, - eventData: EventData[keyof EventData] - ) => void | Promise - ): Emittery.UnsubscribeFn; - - /** - Get an async iterator which buffers a tuple of an event name and data each time an event is emitted. - - Call `return()` on the iterator to remove the subscription. - - In the same way as for `events`, you can subscribe by using the `for await` statement. - - @example - ``` - import Emittery = require('emittery'); - - const emitter = new Emittery(); - const iterator = emitter.anyEvent(); - - emitter.emit('🦄', '🌈1'); // Buffered - emitter.emit('🌟', '🌈2'); // Buffered - - iterator.next() - .then(({value, done}) => { - // done is false - // value is ['🦄', '🌈1'] - return iterator.next(); - }) - .then(({value, done}) => { - // done is false - // value is ['🌟', '🌈2'] - // revoke subscription - return iterator.return(); - }) - .then(({done}) => { - // done is true - }); - ``` - */ - anyEvent(): AsyncIterableIterator< - [keyof EventData, EventData[keyof EventData]] - >; - - /** - Remove an `onAny` subscription. - */ - offAny( - listener: ( - eventName: keyof EventData, - eventData: EventData[keyof EventData] - ) => void | Promise - ): void; - - /** - Clear all event listeners on the instance. - - If `eventName` is given, only the listeners for that event are cleared. - */ - clearListeners(eventName?: Name | Name[]): void; - - /** - The number of listeners for the `eventName` or all events if not specified. - */ - listenerCount(eventName?: Name | Name[]): number; - - /** - Bind the given `methodNames`, or all `Emittery` methods if `methodNames` is not defined, into the `target` object. - - @example - ``` - import Emittery = require('emittery'); - - const object = {}; - - new Emittery().bindMethods(object); - - object.emit('event'); - ``` - */ - bindMethods(target: Record, methodNames?: readonly string[]): void; -} - -declare namespace Emittery { - /** - Removes an event subscription. - */ - type UnsubscribeFn = () => void; - - /** - The data provided as `eventData` when listening for `Emittery.listenerAdded` or `Emittery.listenerRemoved`. - */ - interface ListenerChangedData { - /** - The listener that was added or removed. - */ - listener: (eventData?: unknown) => void | Promise; - - /** - The name of the event that was added or removed if `.on()` or `.off()` was used, or `undefined` if `.onAny()` or `.offAny()` was used. - */ - eventName?: EventName; - } - - type OmnipresentEventData = _OmnipresentEventData; -} - -export = Emittery; diff --git a/build/node_modules/emittery/index.js b/build/node_modules/emittery/index.js deleted file mode 100644 index b7ed7b69..00000000 --- a/build/node_modules/emittery/index.js +++ /dev/null @@ -1,531 +0,0 @@ -'use strict'; - -const {anyMap, producersMap, eventsMap} = require('./maps.js'); - -const anyProducer = Symbol('anyProducer'); -const resolvedPromise = Promise.resolve(); - -// Define symbols for "meta" events. -const listenerAdded = Symbol('listenerAdded'); -const listenerRemoved = Symbol('listenerRemoved'); - -let canEmitMetaEvents = false; -let isGlobalDebugEnabled = false; - -function assertEventName(eventName) { - if (typeof eventName !== 'string' && typeof eventName !== 'symbol' && typeof eventName !== 'number') { - throw new TypeError('`eventName` must be a string, symbol, or number'); - } -} - -function assertListener(listener) { - if (typeof listener !== 'function') { - throw new TypeError('listener must be a function'); - } -} - -function getListeners(instance, eventName) { - const events = eventsMap.get(instance); - if (!events.has(eventName)) { - return; - } - - return events.get(eventName); -} - -function getEventProducers(instance, eventName) { - const key = typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number' ? eventName : anyProducer; - const producers = producersMap.get(instance); - if (!producers.has(key)) { - return; - } - - return producers.get(key); -} - -function enqueueProducers(instance, eventName, eventData) { - const producers = producersMap.get(instance); - if (producers.has(eventName)) { - for (const producer of producers.get(eventName)) { - producer.enqueue(eventData); - } - } - - if (producers.has(anyProducer)) { - const item = Promise.all([eventName, eventData]); - for (const producer of producers.get(anyProducer)) { - producer.enqueue(item); - } - } -} - -function iterator(instance, eventNames) { - eventNames = Array.isArray(eventNames) ? eventNames : [eventNames]; - - let isFinished = false; - let flush = () => {}; - let queue = []; - - const producer = { - enqueue(item) { - queue.push(item); - flush(); - }, - finish() { - isFinished = true; - flush(); - } - }; - - for (const eventName of eventNames) { - let set = getEventProducers(instance, eventName); - if (!set) { - set = new Set(); - const producers = producersMap.get(instance); - producers.set(eventName, set); - } - - set.add(producer); - } - - return { - async next() { - if (!queue) { - return {done: true}; - } - - if (queue.length === 0) { - if (isFinished) { - queue = undefined; - return this.next(); - } - - await new Promise(resolve => { - flush = resolve; - }); - - return this.next(); - } - - return { - done: false, - value: await queue.shift() - }; - }, - - async return(value) { - queue = undefined; - - for (const eventName of eventNames) { - const set = getEventProducers(instance, eventName); - if (set) { - set.delete(producer); - if (set.size === 0) { - const producers = producersMap.get(instance); - producers.delete(eventName); - } - } - } - - flush(); - - return arguments.length > 0 ? - {done: true, value: await value} : - {done: true}; - }, - - [Symbol.asyncIterator]() { - return this; - } - }; -} - -function defaultMethodNamesOrAssert(methodNames) { - if (methodNames === undefined) { - return allEmitteryMethods; - } - - if (!Array.isArray(methodNames)) { - throw new TypeError('`methodNames` must be an array of strings'); - } - - for (const methodName of methodNames) { - if (!allEmitteryMethods.includes(methodName)) { - if (typeof methodName !== 'string') { - throw new TypeError('`methodNames` element must be a string'); - } - - throw new Error(`${methodName} is not Emittery method`); - } - } - - return methodNames; -} - -const isMetaEvent = eventName => eventName === listenerAdded || eventName === listenerRemoved; - -function emitMetaEvent(emitter, eventName, eventData) { - if (isMetaEvent(eventName)) { - try { - canEmitMetaEvents = true; - emitter.emit(eventName, eventData); - } finally { - canEmitMetaEvents = false; - } - } -} - -class Emittery { - static mixin(emitteryPropertyName, methodNames) { - methodNames = defaultMethodNamesOrAssert(methodNames); - return target => { - if (typeof target !== 'function') { - throw new TypeError('`target` must be function'); - } - - for (const methodName of methodNames) { - if (target.prototype[methodName] !== undefined) { - throw new Error(`The property \`${methodName}\` already exists on \`target\``); - } - } - - function getEmitteryProperty() { - Object.defineProperty(this, emitteryPropertyName, { - enumerable: false, - value: new Emittery() - }); - return this[emitteryPropertyName]; - } - - Object.defineProperty(target.prototype, emitteryPropertyName, { - enumerable: false, - get: getEmitteryProperty - }); - - const emitteryMethodCaller = methodName => function (...args) { - return this[emitteryPropertyName][methodName](...args); - }; - - for (const methodName of methodNames) { - Object.defineProperty(target.prototype, methodName, { - enumerable: false, - value: emitteryMethodCaller(methodName) - }); - } - - return target; - }; - } - - static get isDebugEnabled() { - if (typeof process !== 'object') { - return isGlobalDebugEnabled; - } - - const {env} = process || {env: {}}; - return env.DEBUG === 'emittery' || env.DEBUG === '*' || isGlobalDebugEnabled; - } - - static set isDebugEnabled(newValue) { - isGlobalDebugEnabled = newValue; - } - - constructor(options = {}) { - anyMap.set(this, new Set()); - eventsMap.set(this, new Map()); - producersMap.set(this, new Map()); - - producersMap.get(this).set(anyProducer, new Set()); - - this.debug = options.debug || {}; - - if (this.debug.enabled === undefined) { - this.debug.enabled = false; - } - - if (!this.debug.logger) { - this.debug.logger = (type, debugName, eventName, eventData) => { - try { - // TODO: Use https://github.com/sindresorhus/safe-stringify when the package is more mature. Just copy-paste the code. - eventData = JSON.stringify(eventData); - } catch { - eventData = `Object with the following keys failed to stringify: ${Object.keys(eventData).join(',')}`; - } - - if (typeof eventName === 'symbol' || typeof eventName === 'number') { - eventName = eventName.toString(); - } - - const currentTime = new Date(); - const logTime = `${currentTime.getHours()}:${currentTime.getMinutes()}:${currentTime.getSeconds()}.${currentTime.getMilliseconds()}`; - console.log(`[${logTime}][emittery:${type}][${debugName}] Event Name: ${eventName}\n\tdata: ${eventData}`); - }; - } - } - - logIfDebugEnabled(type, eventName, eventData) { - if (Emittery.isDebugEnabled || this.debug.enabled) { - this.debug.logger(type, this.debug.name, eventName, eventData); - } - } - - on(eventNames, listener) { - assertListener(listener); - - eventNames = Array.isArray(eventNames) ? eventNames : [eventNames]; - for (const eventName of eventNames) { - assertEventName(eventName); - let set = getListeners(this, eventName); - if (!set) { - set = new Set(); - const events = eventsMap.get(this); - events.set(eventName, set); - } - - set.add(listener); - - this.logIfDebugEnabled('subscribe', eventName, undefined); - - if (!isMetaEvent(eventName)) { - emitMetaEvent(this, listenerAdded, {eventName, listener}); - } - } - - return this.off.bind(this, eventNames, listener); - } - - off(eventNames, listener) { - assertListener(listener); - - eventNames = Array.isArray(eventNames) ? eventNames : [eventNames]; - for (const eventName of eventNames) { - assertEventName(eventName); - const set = getListeners(this, eventName); - if (set) { - set.delete(listener); - if (set.size === 0) { - const events = eventsMap.get(this); - events.delete(eventName); - } - } - - this.logIfDebugEnabled('unsubscribe', eventName, undefined); - - if (!isMetaEvent(eventName)) { - emitMetaEvent(this, listenerRemoved, {eventName, listener}); - } - } - } - - once(eventNames) { - let off_; - - const promise = new Promise(resolve => { - off_ = this.on(eventNames, data => { - off_(); - resolve(data); - }); - }); - - promise.off = off_; - return promise; - } - - events(eventNames) { - eventNames = Array.isArray(eventNames) ? eventNames : [eventNames]; - for (const eventName of eventNames) { - assertEventName(eventName); - } - - return iterator(this, eventNames); - } - - async emit(eventName, eventData) { - assertEventName(eventName); - - if (isMetaEvent(eventName) && !canEmitMetaEvents) { - throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`'); - } - - this.logIfDebugEnabled('emit', eventName, eventData); - - enqueueProducers(this, eventName, eventData); - - const listeners = getListeners(this, eventName) || new Set(); - const anyListeners = anyMap.get(this); - const staticListeners = [...listeners]; - const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners]; - - await resolvedPromise; - await Promise.all([ - ...staticListeners.map(async listener => { - if (listeners.has(listener)) { - return listener(eventData); - } - }), - ...staticAnyListeners.map(async listener => { - if (anyListeners.has(listener)) { - return listener(eventName, eventData); - } - }) - ]); - } - - async emitSerial(eventName, eventData) { - assertEventName(eventName); - - if (isMetaEvent(eventName) && !canEmitMetaEvents) { - throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`'); - } - - this.logIfDebugEnabled('emitSerial', eventName, eventData); - - const listeners = getListeners(this, eventName) || new Set(); - const anyListeners = anyMap.get(this); - const staticListeners = [...listeners]; - const staticAnyListeners = [...anyListeners]; - - await resolvedPromise; - /* eslint-disable no-await-in-loop */ - for (const listener of staticListeners) { - if (listeners.has(listener)) { - await listener(eventData); - } - } - - for (const listener of staticAnyListeners) { - if (anyListeners.has(listener)) { - await listener(eventName, eventData); - } - } - /* eslint-enable no-await-in-loop */ - } - - onAny(listener) { - assertListener(listener); - - this.logIfDebugEnabled('subscribeAny', undefined, undefined); - - anyMap.get(this).add(listener); - emitMetaEvent(this, listenerAdded, {listener}); - return this.offAny.bind(this, listener); - } - - anyEvent() { - return iterator(this); - } - - offAny(listener) { - assertListener(listener); - - this.logIfDebugEnabled('unsubscribeAny', undefined, undefined); - - emitMetaEvent(this, listenerRemoved, {listener}); - anyMap.get(this).delete(listener); - } - - clearListeners(eventNames) { - eventNames = Array.isArray(eventNames) ? eventNames : [eventNames]; - - for (const eventName of eventNames) { - this.logIfDebugEnabled('clear', eventName, undefined); - - if (typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number') { - const set = getListeners(this, eventName); - if (set) { - set.clear(); - } - - const producers = getEventProducers(this, eventName); - if (producers) { - for (const producer of producers) { - producer.finish(); - } - - producers.clear(); - } - } else { - anyMap.get(this).clear(); - - for (const [eventName, listeners] of eventsMap.get(this).entries()) { - listeners.clear(); - eventsMap.get(this).delete(eventName); - } - - for (const [eventName, producers] of producersMap.get(this).entries()) { - for (const producer of producers) { - producer.finish(); - } - - producers.clear(); - producersMap.get(this).delete(eventName); - } - } - } - } - - listenerCount(eventNames) { - eventNames = Array.isArray(eventNames) ? eventNames : [eventNames]; - let count = 0; - - for (const eventName of eventNames) { - if (typeof eventName === 'string') { - count += anyMap.get(this).size + (getListeners(this, eventName) || new Set()).size + - (getEventProducers(this, eventName) || new Set()).size + (getEventProducers(this) || new Set()).size; - continue; - } - - if (typeof eventName !== 'undefined') { - assertEventName(eventName); - } - - count += anyMap.get(this).size; - - for (const value of eventsMap.get(this).values()) { - count += value.size; - } - - for (const value of producersMap.get(this).values()) { - count += value.size; - } - } - - return count; - } - - bindMethods(target, methodNames) { - if (typeof target !== 'object' || target === null) { - throw new TypeError('`target` must be an object'); - } - - methodNames = defaultMethodNamesOrAssert(methodNames); - - for (const methodName of methodNames) { - if (target[methodName] !== undefined) { - throw new Error(`The property \`${methodName}\` already exists on \`target\``); - } - - Object.defineProperty(target, methodName, { - enumerable: false, - value: this[methodName].bind(this) - }); - } - } -} - -const allEmitteryMethods = Object.getOwnPropertyNames(Emittery.prototype).filter(v => v !== 'constructor'); - -Object.defineProperty(Emittery, 'listenerAdded', { - value: listenerAdded, - writable: false, - enumerable: true, - configurable: false -}); -Object.defineProperty(Emittery, 'listenerRemoved', { - value: listenerRemoved, - writable: false, - enumerable: true, - configurable: false -}); - -module.exports = Emittery; diff --git a/build/node_modules/emittery/license b/build/node_modules/emittery/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/emittery/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/emittery/maps.js b/build/node_modules/emittery/maps.js deleted file mode 100644 index 7bf34217..00000000 --- a/build/node_modules/emittery/maps.js +++ /dev/null @@ -1,9 +0,0 @@ -const anyMap = new WeakMap(); -const eventsMap = new WeakMap(); -const producersMap = new WeakMap(); - -module.exports = { - anyMap, - eventsMap, - producersMap -}; diff --git a/build/node_modules/emittery/package.json b/build/node_modules/emittery/package.json deleted file mode 100644 index 3398f227..00000000 --- a/build/node_modules/emittery/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "emittery", - "version": "0.13.1", - "description": "Simple and modern async event emitter", - "license": "MIT", - "repository": "sindresorhus/emittery", - "funding": "https://github.com/sindresorhus/emittery?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=12" - }, - "scripts": { - "test": "xo && nyc ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "maps.js" - ], - "keywords": [ - "event", - "emitter", - "eventemitter", - "events", - "async", - "emit", - "on", - "once", - "off", - "listener", - "subscribe", - "unsubscribe", - "pubsub", - "tiny", - "addlistener", - "addeventlistener", - "dispatch", - "dispatcher", - "observer", - "trigger", - "await", - "promise", - "typescript", - "ts", - "typed" - ], - "devDependencies": { - "@types/node": "^15.6.1", - "ava": "^2.4.0", - "delay": "^4.3.0", - "nyc": "^15.0.0", - "p-event": "^4.1.0", - "tsd": "^0.19.1", - "xo": "^0.39.0" - }, - "nyc": { - "reporter": [ - "html", - "lcov", - "text" - ] - } -} diff --git a/build/node_modules/emittery/readme.md b/build/node_modules/emittery/readme.md deleted file mode 100644 index e93700bc..00000000 --- a/build/node_modules/emittery/readme.md +++ /dev/null @@ -1,569 +0,0 @@ -# - -> Simple and modern async event emitter - -[![Coverage Status](https://codecov.io/gh/sindresorhus/emittery/branch/main/graph/badge.svg)](https://codecov.io/gh/sindresorhus/emittery) -[![](https://badgen.net/bundlephobia/minzip/emittery)](https://bundlephobia.com/result?p=emittery) - -It works in Node.js and the browser (using a bundler). - -Emitting events asynchronously is important for production code where you want the least amount of synchronous operations. Since JavaScript is single-threaded, no other code can run while doing synchronous operations. For Node.js, that means it will block other requests, defeating the strength of the platform, which is scalability through async. In the browser, a synchronous operation could potentially cause lags and block user interaction. - -## Install - -``` -$ npm install emittery -``` - -## Usage - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); - -emitter.on('🦄', data => { - console.log(data); -}); - -const myUnicorn = Symbol('🦄'); - -emitter.on(myUnicorn, data => { - console.log(`Unicorns love ${data}`); -}); - -emitter.emit('🦄', '🌈'); // Will trigger printing '🌈' -emitter.emit(myUnicorn, '🦋'); // Will trigger printing 'Unicorns love 🦋' -``` - -## API - -### eventName - -Emittery accepts strings, symbols, and numbers as event names. - -Symbol event names are preferred given that they can be used to avoid name collisions when your classes are extended, especially for internal events. - -### isDebugEnabled - -Toggle debug mode for all instances. - -Default: `true` if the `DEBUG` environment variable is set to `emittery` or `*`, otherwise `false`. - -Example: - -```js -const Emittery = require('emittery'); - -Emittery.isDebugEnabled = true; - -const emitter1 = new Emittery({debug: {name: 'myEmitter1'}}); -const emitter2 = new Emittery({debug: {name: 'myEmitter2'}}); - -emitter1.on('test', data => { - // … -}); - -emitter2.on('otherTest', data => { - // … -}); - -emitter1.emit('test'); -//=> [16:43:20.417][emittery:subscribe][myEmitter1] Event Name: test -// data: undefined - -emitter2.emit('otherTest'); -//=> [16:43:20.417][emittery:subscribe][myEmitter2] Event Name: otherTest -// data: undefined -``` - -### emitter = new Emittery(options?) - -Create a new instance of Emittery. - -#### options? - -Type: `object` - -Configure the new instance of Emittery. - -##### debug? - -Type: `object` - -Configure the debugging options for this instance. - -###### name - -Type: `string`\ -Default: `undefined` - -Define a name for the instance of Emittery to use when outputting debug data. - -Example: - -```js -const Emittery = require('emittery'); - -Emittery.isDebugEnabled = true; - -const emitter = new Emittery({debug: {name: 'myEmitter'}}); - -emitter.on('test', data => { - // … -}); - -emitter.emit('test'); -//=> [16:43:20.417][emittery:subscribe][myEmitter] Event Name: test -// data: undefined -``` - -###### enabled? - -Type: `boolean`\ -Default: `false` - -Toggle debug logging just for this instance. - -Example: - -```js -const Emittery = require('emittery'); - -const emitter1 = new Emittery({debug: {name: 'emitter1', enabled: true}}); -const emitter2 = new Emittery({debug: {name: 'emitter2'}}); - -emitter1.on('test', data => { - // … -}); - -emitter2.on('test', data => { - // … -}); - -emitter1.emit('test'); -//=> [16:43:20.417][emittery:subscribe][emitter1] Event Name: test -// data: undefined - -emitter2.emit('test'); -``` - -###### logger? - -Type: `Function(string, string, EventName?, Record?) => void` - -Default: - -```js -(type, debugName, eventName, eventData) => { - if (typeof eventData === 'object') { - eventData = JSON.stringify(eventData); - } - - if (typeof eventName === 'symbol' || typeof eventName === 'number') { - eventName = eventName.toString(); - } - - const currentTime = new Date(); - const logTime = `${currentTime.getHours()}:${currentTime.getMinutes()}:${currentTime.getSeconds()}.${currentTime.getMilliseconds()}`; - console.log(`[${logTime}][emittery:${type}][${debugName}] Event Name: ${eventName}\n\tdata: ${eventData}`); -} -``` - -Function that handles debug data. - -Example: - -```js -const Emittery = require('emittery'); - -const myLogger = (type, debugName, eventName, eventData) => console.log(`[${type}]: ${eventName}`); - -const emitter = new Emittery({ - debug: { - name: 'myEmitter', - enabled: true, - logger: myLogger - } -}); - -emitter.on('test', data => { - // … -}); - -emitter.emit('test'); -//=> [subscribe]: test -``` - -#### on(eventName | eventName[], listener) - -Subscribe to one or more events. - -Returns an unsubscribe method. - -Using the same listener multiple times for the same event will result in only one method call per emitted event. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); - -emitter.on('🦄', data => { - console.log(data); -}); - -emitter.on(['🦄', '🐶'], data => { - console.log(data); -}); - -emitter.emit('🦄', '🌈'); // log => '🌈' x2 -emitter.emit('🐶', '🍖'); // log => '🍖' -``` - -##### Custom subscribable events - -Emittery exports some symbols which represent "meta" events that can be passed to `Emitter.on` and similar methods. - -- `Emittery.listenerAdded` - Fires when an event listener was added. -- `Emittery.listenerRemoved` - Fires when an event listener was removed. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); - -emitter.on(Emittery.listenerAdded, ({listener, eventName}) => { - console.log(listener); - //=> data => {} - - console.log(eventName); - //=> '🦄' -}); - -emitter.on('🦄', data => { - // Handle data -}); -``` - -###### Listener data - -- `listener` - The listener that was added. -- `eventName` - The name of the event that was added or removed if `.on()` or `.off()` was used, or `undefined` if `.onAny()` or `.offAny()` was used. - -Only events that are not of this type are able to trigger these events. - -##### listener(data) - -#### off(eventName | eventName[], listener) - -Remove one or more event subscriptions. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); - -const listener = data => console.log(data); - -(async () => { - emitter.on(['🦄', '🐶', '🦊'], listener); - await emitter.emit('🦄', 'a'); - await emitter.emit('🐶', 'b'); - await emitter.emit('🦊', 'c'); - emitter.off('🦄', listener); - emitter.off(['🐶', '🦊'], listener); - await emitter.emit('🦄', 'a'); // Nothing happens - await emitter.emit('🐶', 'b'); // Nothing happens - await emitter.emit('🦊', 'c'); // Nothing happens -})(); -``` - -##### listener(data) - -#### once(eventName | eventName[]) - -Subscribe to one or more events only once. It will be unsubscribed after the first event. - -Returns a promise for the event data when `eventName` is emitted. This promise is extended with an `off` method. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); - -emitter.once('🦄').then(data => { - console.log(data); - //=> '🌈' -}); - -emitter.once(['🦄', '🐶']).then(data => { - console.log(data); -}); - -emitter.emit('🦄', '🌈'); // Log => '🌈' x2 -emitter.emit('🐶', '🍖'); // Nothing happens -``` - -#### events(eventName) - -Get an async iterator which buffers data each time an event is emitted. - -Call `return()` on the iterator to remove the subscription. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); -const iterator = emitter.events('🦄'); - -emitter.emit('🦄', '🌈1'); // Buffered -emitter.emit('🦄', '🌈2'); // Buffered - -iterator - .next() - .then(({value, done}) => { - // done === false - // value === '🌈1' - return iterator.next(); - }) - .then(({value, done}) => { - // done === false - // value === '🌈2' - // Revoke subscription - return iterator.return(); - }) - .then(({done}) => { - // done === true - }); -``` - -In practice, you would usually consume the events using the [for await](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) statement. In that case, to revoke the subscription simply break the loop. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); -const iterator = emitter.events('🦄'); - -emitter.emit('🦄', '🌈1'); // Buffered -emitter.emit('🦄', '🌈2'); // Buffered - -// In an async context. -for await (const data of iterator) { - if (data === '🌈2') { - break; // Revoke the subscription when we see the value '🌈2'. - } -} -``` - -It accepts multiple event names. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); -const iterator = emitter.events(['🦄', '🦊']); - -emitter.emit('🦄', '🌈1'); // Buffered -emitter.emit('🦊', '🌈2'); // Buffered - -iterator - .next() - .then(({value, done}) => { - // done === false - // value === '🌈1' - return iterator.next(); - }) - .then(({value, done}) => { - // done === false - // value === '🌈2' - // Revoke subscription - return iterator.return(); - }) - .then(({done}) => { - // done === true - }); -``` - -#### emit(eventName, data?) - -Trigger an event asynchronously, optionally with some data. Listeners are called in the order they were added, but executed concurrently. - -Returns a promise that resolves when all the event listeners are done. *Done* meaning executed if synchronous or resolved when an async/promise-returning function. You usually wouldn't want to wait for this, but you could for example catch possible errors. If any of the listeners throw/reject, the returned promise will be rejected with the error, but the other listeners will not be affected. - -#### emitSerial(eventName, data?) - -Same as above, but it waits for each listener to resolve before triggering the next one. This can be useful if your events depend on each other. Although ideally they should not. Prefer `emit()` whenever possible. - -If any of the listeners throw/reject, the returned promise will be rejected with the error and the remaining listeners will *not* be called. - -#### onAny(listener) - -Subscribe to be notified about any event. - -Returns a method to unsubscribe. - -##### listener(eventName, data) - -#### offAny(listener) - -Remove an `onAny` subscription. - -#### anyEvent() - -Get an async iterator which buffers a tuple of an event name and data each time an event is emitted. - -Call `return()` on the iterator to remove the subscription. - -```js -const Emittery = require('emittery'); - -const emitter = new Emittery(); -const iterator = emitter.anyEvent(); - -emitter.emit('🦄', '🌈1'); // Buffered -emitter.emit('🌟', '🌈2'); // Buffered - -iterator.next() - .then(({value, done}) => { - // done === false - // value is ['🦄', '🌈1'] - return iterator.next(); - }) - .then(({value, done}) => { - // done === false - // value is ['🌟', '🌈2'] - // Revoke subscription - return iterator.return(); - }) - .then(({done}) => { - // done === true - }); -``` - -In the same way as for `events`, you can subscribe by using the `for await` statement - -#### clearListeners(eventNames?) - -Clear all event listeners on the instance. - -If `eventNames` is given, only the listeners for that events are cleared. - -#### listenerCount(eventNames?) - -The number of listeners for the `eventNames` or all events if not specified. - -#### bindMethods(target, methodNames?) - -Bind the given `methodNames`, or all `Emittery` methods if `methodNames` is not defined, into the `target` object. - -```js -import Emittery = require('emittery'); - -const object = {}; - -new Emittery().bindMethods(object); - -object.emit('event'); -``` - -## TypeScript - -The default `Emittery` class has generic types that can be provided by TypeScript users to strongly type the list of events and the data passed to their event listeners. - -```ts -import Emittery = require('emittery'); - -const emitter = new Emittery< - // Pass `{[eventName]: undefined | }` as the first type argument for events that pass data to their listeners. - // A value of `undefined` in this map means the event listeners should expect no data, and a type other than `undefined` means the listeners will receive one argument of that type. - { - open: string, - close: undefined - } ->(); - -// Typechecks just fine because the data type for the `open` event is `string`. -emitter.emit('open', 'foo\n'); - -// Typechecks just fine because `close` is present but points to undefined in the event data type map. -emitter.emit('close'); - -// TS compilation error because `1` isn't assignable to `string`. -emitter.emit('open', 1); - -// TS compilation error because `other` isn't defined in the event data type map. -emitter.emit('other'); -``` - -### Emittery.mixin(emitteryPropertyName, methodNames?) - -A decorator which mixins `Emittery` as property `emitteryPropertyName` and `methodNames`, or all `Emittery` methods if `methodNames` is not defined, into the target class. - -```ts -import Emittery = require('emittery'); - -@Emittery.mixin('emittery') -class MyClass {} - -const instance = new MyClass(); - -instance.emit('event'); -``` - -## Scheduling details - -Listeners are not invoked for events emitted *before* the listener was added. Removing a listener will prevent that listener from being invoked, even if events are in the process of being (asynchronously!) emitted. This also applies to `.clearListeners()`, which removes all listeners. Listeners will be called in the order they were added. So-called *any* listeners are called *after* event-specific listeners. - -Note that when using `.emitSerial()`, a slow listener will delay invocation of subsequent listeners. It's possible for newer events to overtake older ones. - -## Debugging - -Emittery can collect and log debug information. - -To enable this feature set the DEBUG environment variable to 'emittery' or '*'. Additionally you can set the static `isDebugEnabled` variable to true on the Emittery class, or `myEmitter.debug.enabled` on an instance of it for debugging a single instance. - -See [API](#api) for more details on how debugging works. - -## FAQ - -### How is this different than the built-in `EventEmitter` in Node.js? - -There are many things to not like about `EventEmitter`: its huge API surface, synchronous event emitting, magic error event, flawed memory leak detection. Emittery has none of that. - -### Isn't `EventEmitter` synchronous for a reason? - -Mostly backwards compatibility reasons. The Node.js team can't break the whole ecosystem. - -It also allows silly code like this: - -```js -let unicorn = false; - -emitter.on('🦄', () => { - unicorn = true; -}); - -emitter.emit('🦄'); - -console.log(unicorn); -//=> true -``` - -But I would argue doing that shows a deeper lack of Node.js and async comprehension and is not something we should optimize for. The benefit of async emitting is much greater. - -### Can you support multiple arguments for `emit()`? - -No, just use [destructuring](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment): - -```js -emitter.on('🦄', ([foo, bar]) => { - console.log(foo, bar); -}); - -emitter.emit('🦄', [foo, bar]); -``` - -## Related - -- [p-event](https://github.com/sindresorhus/p-event) - Promisify an event by waiting for it to be emitted diff --git a/build/node_modules/emoji-regex/LICENSE-MIT.txt b/build/node_modules/emoji-regex/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7e..00000000 --- a/build/node_modules/emoji-regex/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/emoji-regex/README.md b/build/node_modules/emoji-regex/README.md deleted file mode 100644 index f10e1733..00000000 --- a/build/node_modules/emoji-regex/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex) - -_emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard. - -This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard. - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install emoji-regex -``` - -In [Node.js](https://nodejs.org/): - -```js -const emojiRegex = require('emoji-regex'); -// Note: because the regular expression has the global flag set, this module -// exports a function that returns the regex rather than exporting the regular -// expression itself, to make it impossible to (accidentally) mutate the -// original regular expression. - -const text = ` -\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation) -\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji -\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base) -\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier -`; - -const regex = emojiRegex(); -let match; -while (match = regex.exec(text)) { - const emoji = match[0]; - console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`); -} -``` - -Console output: - -``` -Matched sequence ⌚ — code points: 1 -Matched sequence ⌚ — code points: 1 -Matched sequence ↔️ — code points: 2 -Matched sequence ↔️ — code points: 2 -Matched sequence 👩 — code points: 1 -Matched sequence 👩 — code points: 1 -Matched sequence 👩🏿 — code points: 2 -Matched sequence 👩🏿 — code points: 2 -``` - -To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex: - -```js -const emojiRegex = require('emoji-regex/text.js'); -``` - -Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes: - -```js -const emojiRegex = require('emoji-regex/es2015/index.js'); -const emojiRegexText = require('emoji-regex/es2015/text.js'); -``` - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## License - -_emoji-regex_ is available under the [MIT](https://mths.be/mit) license. diff --git a/build/node_modules/emoji-regex/index.d.ts b/build/node_modules/emoji-regex/index.d.ts deleted file mode 100644 index 1955b470..00000000 --- a/build/node_modules/emoji-regex/index.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -declare module 'emoji-regex' { - function emojiRegex(): RegExp; - - export default emojiRegex; -} - -declare module 'emoji-regex/text' { - function emojiRegex(): RegExp; - - export default emojiRegex; -} - -declare module 'emoji-regex/es2015' { - function emojiRegex(): RegExp; - - export default emojiRegex; -} - -declare module 'emoji-regex/es2015/text' { - function emojiRegex(): RegExp; - - export default emojiRegex; -} diff --git a/build/node_modules/emoji-regex/index.js b/build/node_modules/emoji-regex/index.js deleted file mode 100644 index d993a3a9..00000000 --- a/build/node_modules/emoji-regex/index.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; - -module.exports = function () { - // https://mths.be/emoji - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; -}; diff --git a/build/node_modules/emoji-regex/package.json b/build/node_modules/emoji-regex/package.json deleted file mode 100644 index 6d323528..00000000 --- a/build/node_modules/emoji-regex/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "emoji-regex", - "version": "8.0.0", - "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", - "homepage": "https://mths.be/emoji-regex", - "main": "index.js", - "types": "index.d.ts", - "keywords": [ - "unicode", - "regex", - "regexp", - "regular expressions", - "code points", - "symbols", - "characters", - "emoji" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/emoji-regex.git" - }, - "bugs": "https://github.com/mathiasbynens/emoji-regex/issues", - "files": [ - "LICENSE-MIT.txt", - "index.js", - "index.d.ts", - "text.js", - "es2015/index.js", - "es2015/text.js" - ], - "scripts": { - "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js", - "test": "mocha", - "test:watch": "npm run test -- --watch" - }, - "devDependencies": { - "@babel/cli": "^7.2.3", - "@babel/core": "^7.3.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/preset-env": "^7.3.4", - "mocha": "^6.0.2", - "regexgen": "^1.3.0", - "unicode-12.0.0": "^0.7.9" - } -} diff --git a/build/node_modules/emoji-regex/text.js b/build/node_modules/emoji-regex/text.js deleted file mode 100644 index 0a55ce2f..00000000 --- a/build/node_modules/emoji-regex/text.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; - -module.exports = function () { - // https://mths.be/emoji - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; -}; diff --git a/build/node_modules/emojis-list/CHANGELOG.md b/build/node_modules/emojis-list/CHANGELOG.md deleted file mode 100644 index acaede6d..00000000 --- a/build/node_modules/emojis-list/CHANGELOG.md +++ /dev/null @@ -1,85 +0,0 @@ - -# 3.0.0 (2019-05-12) - -* build: bye bower ([4acc7c0](https://github.com/kikobeats/emojis-list/commit/4acc7c0)) -* build: remove gulp and bower ([12c83f3](https://github.com/kikobeats/emojis-list/commit/12c83f3)) -* build: update meta ([de14b12](https://github.com/kikobeats/emojis-list/commit/de14b12)) -* moar emojis ([b4a153f](https://github.com/kikobeats/emojis-list/commit/b4a153f)) -* chore: drop support for Node.js 0.10 ([20ed4f1](https://github.com/kikobeats/emojis-list/commit/20ed4f1)) - - -### BREAKING CHANGE - -* This module no longer supports Node.js 0.10 - - - -# 2.1.0 (2016-10-03) - -* Fetch new emoji ([7dbe84d](https://github.com/kikobeats/emojis-list/commit/7dbe84d)) - - - - -## 2.0.1 (2016-05-12) - -* Fix typo ([3808909](https://github.com/kikobeats/emojis-list/commit/3808909)) - - - - -# 2.0.0 (2016-05-12) - -* Add update script ([f846dd6](https://github.com/kikobeats/emojis-list/commit/f846dd6)) -* Block dependencies in last version ([1d9e0a5](https://github.com/kikobeats/emojis-list/commit/1d9e0a5)) -* Extract main file name ([9ffe7bb](https://github.com/kikobeats/emojis-list/commit/9ffe7bb)) -* Remove unnecessary files ([4c34729](https://github.com/kikobeats/emojis-list/commit/4c34729)) -* Update docs, special webpack setup is not necessary ([c4aefe9](https://github.com/kikobeats/emojis-list/commit/c4aefe9)) -* Update example ([1e2ae03](https://github.com/kikobeats/emojis-list/commit/1e2ae03)) -* Update how to generate emojis array ([b56bad9](https://github.com/kikobeats/emojis-list/commit/b56bad9)) -* Update main file based in the new interface ([996fccb](https://github.com/kikobeats/emojis-list/commit/996fccb)) - - - - -## 1.0.3 (2016-05-12) - -* Add standard as linter ([5e939d6](https://github.com/kikobeats/emojis-list/commit/5e939d6)) -* Change interface ([16bc0c0](https://github.com/kikobeats/emojis-list/commit/16bc0c0)) -* Generate emoji file ([fbcf8e9](https://github.com/kikobeats/emojis-list/commit/fbcf8e9)) -* Remove unnecessary special doc ([2b12bec](https://github.com/kikobeats/emojis-list/commit/2b12bec)) -* chore(package): update browserify to version 13.0.1 ([e2c98bf](https://github.com/kikobeats/emojis-list/commit/e2c98bf)) -* chore(package): update gulp-header to version 1.8.1 ([28de793](https://github.com/kikobeats/emojis-list/commit/28de793)) - - - - -## 1.0.2 (2016-05-05) - -* fixed #2 ([9a6abe7](https://github.com/kikobeats/emojis-list/commit/9a6abe7)), closes [#2](https://github.com/kikobeats/emojis-list/issues/2) -* Fomar using standard ([5202f9f](https://github.com/kikobeats/emojis-list/commit/5202f9f)) -* Update badge ([53fad9b](https://github.com/kikobeats/emojis-list/commit/53fad9b)) - - - - -## 1.0.1 (2016-04-13) - -* lock versions ([4a5d82e](https://github.com/kikobeats/emojis-list/commit/4a5d82e)) -* setup devDependencies ([d1de0fc](https://github.com/kikobeats/emojis-list/commit/d1de0fc)) -* update bumped ([9941038](https://github.com/kikobeats/emojis-list/commit/9941038)) -* Update package.json ([6c14b74](https://github.com/kikobeats/emojis-list/commit/6c14b74)) -* Update README.md ([1d9beeb](https://github.com/kikobeats/emojis-list/commit/1d9beeb)) -* Update README.md ([73f215e](https://github.com/kikobeats/emojis-list/commit/73f215e)) -* Update tests ([a94f7dc](https://github.com/kikobeats/emojis-list/commit/a94f7dc)) - - - - -# 1.0.0 (2015-05-12) - -* first commit ([a65b79d](https://github.com/kikobeats/emojis-list/commit/a65b79d)) -* updated ([9f0564c](https://github.com/kikobeats/emojis-list/commit/9f0564c)) - - - diff --git a/build/node_modules/emojis-list/LICENSE.md b/build/node_modules/emojis-list/LICENSE.md deleted file mode 100644 index c0928aeb..00000000 --- a/build/node_modules/emojis-list/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright © 2015 Kiko Beats - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/emojis-list/README.md b/build/node_modules/emojis-list/README.md deleted file mode 100644 index a103fbbe..00000000 --- a/build/node_modules/emojis-list/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# emojis-list - -[![Dependency status](http://img.shields.io/david/Kikobeats/emojis-list.svg?style=flat-square)](https://david-dm.org/Kikobeats/emojis-list) -[![Dev Dependencies Status](http://img.shields.io/david/dev/Kikobeats/emojis-list.svg?style=flat-square)](https://david-dm.org/Kikobeats/emojis-list#info=devDependencies) -[![NPM Status](http://img.shields.io/npm/dm/emojis-list.svg?style=flat-square)](https://www.npmjs.org/package/emojis-list) -[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/kikobeats) - -> Complete list of standard Unicode Hex Character Code that represent emojis. - -**NOTE**: The lists is related with the Unicode Hex Character Code. The representation of the emoji depend of the system. Will be possible that the system don't have all the representations. - -## Install - -```bash -npm install emojis-list --save -``` - -## Usage - -```js -const emojis = require('emojis-list') -console.log(emojis[0]) -// => 🀄 -``` - -## Related - -* [emojis-unicode](https://github.com/Kikobeats/emojis-unicode) – Complete list of standard Unicode codes that represent emojis. -* [emojis-keywords](https://github.com/Kikobeats/emojis-keywords) – Complete list of am emoji shortcuts. -* [is-emoji-keyword](https://github.com/Kikobeats/is-emoji-keyword) – Check if a word is a emoji shortcut. -* [is-standard-emoji](https://github.com/kikobeats/is-standard-emoji) – Simply way to check if a emoji is a standard emoji. -* [trim-emoji](https://github.com/Kikobeats/trim-emoji) – Deletes ':' from the begin and the end of an emoji shortcut. - -## License - -MIT © [Kiko Beats](http://www.kikobeats.com) diff --git a/build/node_modules/emojis-list/index.js b/build/node_modules/emojis-list/index.js deleted file mode 100644 index 2c2f75ae..00000000 --- a/build/node_modules/emojis-list/index.js +++ /dev/null @@ -1,3077 +0,0 @@ -module.exports = [ - "🀄️", - "🃏", - "🅰️", - "🅱️", - "🅾️", - "🅿️", - "🆎", - "🆑", - "🆒", - "🆓", - "🆔", - "🆕", - "🆖", - "🆗", - "🆘", - "🆙", - "🆚", - "🇦🇨", - "🇦🇩", - "🇦🇪", - "🇦🇫", - "🇦🇬", - "🇦🇮", - "🇦🇱", - "🇦🇲", - "🇦🇴", - "🇦🇶", - "🇦🇷", - "🇦🇸", - "🇦🇹", - "🇦🇺", - "🇦🇼", - "🇦🇽", - "🇦🇿", - "🇦", - "🇧🇦", - "🇧🇧", - "🇧🇩", - "🇧🇪", - "🇧🇫", - "🇧🇬", - "🇧🇭", - "🇧🇮", - "🇧🇯", - "🇧🇱", - "🇧🇲", - "🇧🇳", - "🇧🇴", - "🇧🇶", - "🇧🇷", - "🇧🇸", - "🇧🇹", - "🇧🇻", - "🇧🇼", - "🇧🇾", - "🇧🇿", - "🇧", - "🇨🇦", - "🇨🇨", - "🇨🇩", - "🇨🇫", - "🇨🇬", - "🇨🇭", - "🇨🇮", - "🇨🇰", - "🇨🇱", - "🇨🇲", - "🇨🇳", - "🇨🇴", - "🇨🇵", - "🇨🇷", - "🇨🇺", - "🇨🇻", - "🇨🇼", - "🇨🇽", - "🇨🇾", - "🇨🇿", - "🇨", - "🇩🇪", - "🇩🇬", - "🇩🇯", - "🇩🇰", - "🇩🇲", - "🇩🇴", - "🇩🇿", - "🇩", - "🇪🇦", - "🇪🇨", - "🇪🇪", - "🇪🇬", - "🇪🇭", - "🇪🇷", - "🇪🇸", - "🇪🇹", - "🇪🇺", - "🇪", - "🇫🇮", - "🇫🇯", - "🇫🇰", - "🇫🇲", - "🇫🇴", - "🇫🇷", - "🇫", - "🇬🇦", - "🇬🇧", - "🇬🇩", - "🇬🇪", - "🇬🇫", - "🇬🇬", - "🇬🇭", - "🇬🇮", - "🇬🇱", - "🇬🇲", - "🇬🇳", - "🇬🇵", - "🇬🇶", - "🇬🇷", - "🇬🇸", - "🇬🇹", - "🇬🇺", - "🇬🇼", - "🇬🇾", - "🇬", - "🇭🇰", - "🇭🇲", - "🇭🇳", - "🇭🇷", - "🇭🇹", - "🇭🇺", - "🇭", - "🇮🇨", - "🇮🇩", - "🇮🇪", - "🇮🇱", - "🇮🇲", - "🇮🇳", - "🇮🇴", - "🇮🇶", - "🇮🇷", - "🇮🇸", - "🇮🇹", - "🇮", - "🇯🇪", - "🇯🇲", - "🇯🇴", - "🇯🇵", - "🇯", - "🇰🇪", - "🇰🇬", - "🇰🇭", - "🇰🇮", - "🇰🇲", - "🇰🇳", - "🇰🇵", - "🇰🇷", - "🇰🇼", - "🇰🇾", - "🇰🇿", - "🇰", - "🇱🇦", - "🇱🇧", - "🇱🇨", - "🇱🇮", - "🇱🇰", - "🇱🇷", - "🇱🇸", - "🇱🇹", - "🇱🇺", - "🇱🇻", - "🇱🇾", - "🇱", - "🇲🇦", - "🇲🇨", - "🇲🇩", - "🇲🇪", - "🇲🇫", - "🇲🇬", - "🇲🇭", - "🇲🇰", - "🇲🇱", - "🇲🇲", - "🇲🇳", - "🇲🇴", - "🇲🇵", - "🇲🇶", - "🇲🇷", - "🇲🇸", - "🇲🇹", - "🇲🇺", - "🇲🇻", - "🇲🇼", - "🇲🇽", - "🇲🇾", - "🇲🇿", - "🇲", - "🇳🇦", - "🇳🇨", - "🇳🇪", - "🇳🇫", - "🇳🇬", - "🇳🇮", - "🇳🇱", - "🇳🇴", - "🇳🇵", - "🇳🇷", - "🇳🇺", - "🇳🇿", - "🇳", - "🇴🇲", - "🇴", - "🇵🇦", - "🇵🇪", - "🇵🇫", - "🇵🇬", - "🇵🇭", - "🇵🇰", - "🇵🇱", - "🇵🇲", - "🇵🇳", - "🇵🇷", - "🇵🇸", - "🇵🇹", - "🇵🇼", - "🇵🇾", - "🇵", - "🇶🇦", - "🇶", - "🇷🇪", - "🇷🇴", - "🇷🇸", - "🇷🇺", - "🇷🇼", - "🇷", - "🇸🇦", - "🇸🇧", - "🇸🇨", - "🇸🇩", - "🇸🇪", - "🇸🇬", - "🇸🇭", - "🇸🇮", - "🇸🇯", - "🇸🇰", - "🇸🇱", - "🇸🇲", - "🇸🇳", - "🇸🇴", - "🇸🇷", - "🇸🇸", - "🇸🇹", - "🇸🇻", - "🇸🇽", - "🇸🇾", - "🇸🇿", - "🇸", - "🇹🇦", - "🇹🇨", - "🇹🇩", - "🇹🇫", - "🇹🇬", - "🇹🇭", - "🇹🇯", - "🇹🇰", - "🇹🇱", - "🇹🇲", - "🇹🇳", - "🇹🇴", - "🇹🇷", - "🇹🇹", - "🇹🇻", - "🇹🇼", - "🇹🇿", - "🇹", - "🇺🇦", - "🇺🇬", - "🇺🇲", - "🇺🇳", - "🇺🇸", - "🇺🇾", - "🇺🇿", - "🇺", - "🇻🇦", - "🇻🇨", - "🇻🇪", - "🇻🇬", - "🇻🇮", - "🇻🇳", - "🇻🇺", - "🇻", - "🇼🇫", - "🇼🇸", - "🇼", - "🇽🇰", - "🇽", - "🇾🇪", - "🇾🇹", - "🇾", - "🇿🇦", - "🇿🇲", - "🇿🇼", - "🇿", - "🈁", - "🈂️", - "🈚️", - "🈯️", - "🈲", - "🈳", - "🈴", - "🈵", - "🈶", - "🈷️", - "🈸", - "🈹", - "🈺", - "🉐", - "🉑", - "🌀", - "🌁", - "🌂", - "🌃", - "🌄", - "🌅", - "🌆", - "🌇", - "🌈", - "🌉", - "🌊", - "🌋", - "🌌", - "🌍", - "🌎", - "🌏", - "🌐", - "🌑", - "🌒", - "🌓", - "🌔", - "🌕", - "🌖", - "🌗", - "🌘", - "🌙", - "🌚", - "🌛", - "🌜", - "🌝", - "🌞", - "🌟", - "🌠", - "🌡️", - "🌤️", - "🌥️", - "🌦️", - "🌧️", - "🌨️", - "🌩️", - "🌪️", - "🌫️", - "🌬️", - "🌭", - "🌮", - "🌯", - "🌰", - "🌱", - "🌲", - "🌳", - "🌴", - "🌵", - "🌶️", - "🌷", - "🌸", - "🌹", - "🌺", - "🌻", - "🌼", - "🌽", - "🌾", - "🌿", - "🍀", - "🍁", - "🍂", - "🍃", - "🍄", - "🍅", - "🍆", - "🍇", - "🍈", - "🍉", - "🍊", - "🍋", - "🍌", - "🍍", - "🍎", - "🍏", - "🍐", - "🍑", - "🍒", - "🍓", - "🍔", - "🍕", - "🍖", - "🍗", - "🍘", - "🍙", - "🍚", - "🍛", - "🍜", - "🍝", - "🍞", - "🍟", - "🍠", - "🍡", - "🍢", - "🍣", - "🍤", - "🍥", - "🍦", - "🍧", - "🍨", - "🍩", - "🍪", - "🍫", - "🍬", - "🍭", - "🍮", - "🍯", - "🍰", - "🍱", - "🍲", - "🍳", - "🍴", - "🍵", - "🍶", - "🍷", - "🍸", - "🍹", - "🍺", - "🍻", - "🍼", - "🍽️", - "🍾", - "🍿", - "🎀", - "🎁", - "🎂", - "🎃", - "🎄", - "🎅🏻", - "🎅🏼", - "🎅🏽", - "🎅🏾", - "🎅🏿", - "🎅", - "🎆", - "🎇", - "🎈", - "🎉", - "🎊", - "🎋", - "🎌", - "🎍", - "🎎", - "🎏", - "🎐", - "🎑", - "🎒", - "🎓", - "🎖️", - "🎗️", - "🎙️", - "🎚️", - "🎛️", - "🎞️", - "🎟️", - "🎠", - "🎡", - "🎢", - "🎣", - "🎤", - "🎥", - "🎦", - "🎧", - "🎨", - "🎩", - "🎪", - "🎫", - "🎬", - "🎭", - "🎮", - "🎯", - "🎰", - "🎱", - "🎲", - "🎳", - "🎴", - "🎵", - "🎶", - "🎷", - "🎸", - "🎹", - "🎺", - "🎻", - "🎼", - "🎽", - "🎾", - "🎿", - "🏀", - "🏁", - "🏂🏻", - "🏂🏼", - "🏂🏽", - "🏂🏾", - "🏂🏿", - "🏂", - "🏃🏻‍♀️", - "🏃🏻‍♂️", - "🏃🏻", - "🏃🏼‍♀️", - "🏃🏼‍♂️", - "🏃🏼", - "🏃🏽‍♀️", - "🏃🏽‍♂️", - "🏃🏽", - "🏃🏾‍♀️", - "🏃🏾‍♂️", - "🏃🏾", - "🏃🏿‍♀️", - "🏃🏿‍♂️", - "🏃🏿", - "🏃‍♀️", - "🏃‍♂️", - "🏃", - "🏄🏻‍♀️", - "🏄🏻‍♂️", - "🏄🏻", - "🏄🏼‍♀️", - "🏄🏼‍♂️", - "🏄🏼", - "🏄🏽‍♀️", - "🏄🏽‍♂️", - "🏄🏽", - "🏄🏾‍♀️", - "🏄🏾‍♂️", - "🏄🏾", - "🏄🏿‍♀️", - "🏄🏿‍♂️", - "🏄🏿", - "🏄‍♀️", - "🏄‍♂️", - "🏄", - "🏅", - "🏆", - "🏇🏻", - "🏇🏼", - "🏇🏽", - "🏇🏾", - "🏇🏿", - "🏇", - "🏈", - "🏉", - "🏊🏻‍♀️", - "🏊🏻‍♂️", - "🏊🏻", - "🏊🏼‍♀️", - "🏊🏼‍♂️", - "🏊🏼", - "🏊🏽‍♀️", - "🏊🏽‍♂️", - "🏊🏽", - "🏊🏾‍♀️", - "🏊🏾‍♂️", - "🏊🏾", - "🏊🏿‍♀️", - "🏊🏿‍♂️", - "🏊🏿", - "🏊‍♀️", - "🏊‍♂️", - "🏊", - "🏋🏻‍♀️", - "🏋🏻‍♂️", - "🏋🏻", - "🏋🏼‍♀️", - "🏋🏼‍♂️", - "🏋🏼", - "🏋🏽‍♀️", - "🏋🏽‍♂️", - "🏋🏽", - "🏋🏾‍♀️", - "🏋🏾‍♂️", - "🏋🏾", - "🏋🏿‍♀️", - "🏋🏿‍♂️", - "🏋🏿", - "🏋️‍♀️", - "🏋️‍♂️", - "🏋️", - "🏌🏻‍♀️", - "🏌🏻‍♂️", - "🏌🏻", - "🏌🏼‍♀️", - "🏌🏼‍♂️", - "🏌🏼", - "🏌🏽‍♀️", - "🏌🏽‍♂️", - "🏌🏽", - "🏌🏾‍♀️", - "🏌🏾‍♂️", - "🏌🏾", - "🏌🏿‍♀️", - "🏌🏿‍♂️", - "🏌🏿", - "🏌️‍♀️", - "🏌️‍♂️", - "🏌️", - "🏍️", - "🏎️", - "🏏", - "🏐", - "🏑", - "🏒", - "🏓", - "🏔️", - "🏕️", - "🏖️", - "🏗️", - "🏘️", - "🏙️", - "🏚️", - "🏛️", - "🏜️", - "🏝️", - "🏞️", - "🏟️", - "🏠", - "🏡", - "🏢", - "🏣", - "🏤", - "🏥", - "🏦", - "🏧", - "🏨", - "🏩", - "🏪", - "🏫", - "🏬", - "🏭", - "🏮", - "🏯", - "🏰", - "🏳️‍🌈", - "🏳️", - "🏴‍☠️", - "🏴󠁧󠁢󠁥󠁮󠁧󠁿", - "🏴󠁧󠁢󠁳󠁣󠁴󠁿", - "🏴󠁧󠁢󠁷󠁬󠁳󠁿", - "🏴", - "🏵️", - "🏷️", - "🏸", - "🏹", - "🏺", - "🏻", - "🏼", - "🏽", - "🏾", - "🏿", - "🐀", - "🐁", - "🐂", - "🐃", - "🐄", - "🐅", - "🐆", - "🐇", - "🐈", - "🐉", - "🐊", - "🐋", - "🐌", - "🐍", - "🐎", - "🐏", - "🐐", - "🐑", - "🐒", - "🐓", - "🐔", - "🐕‍🦺", - "🐕", - "🐖", - "🐗", - "🐘", - "🐙", - "🐚", - "🐛", - "🐜", - "🐝", - "🐞", - "🐟", - "🐠", - "🐡", - "🐢", - "🐣", - "🐤", - "🐥", - "🐦", - "🐧", - "🐨", - "🐩", - "🐪", - "🐫", - "🐬", - "🐭", - "🐮", - "🐯", - "🐰", - "🐱", - "🐲", - "🐳", - "🐴", - "🐵", - "🐶", - "🐷", - "🐸", - "🐹", - "🐺", - "🐻", - "🐼", - "🐽", - "🐾", - "🐿️", - "👀", - "👁‍🗨", - "👁️", - "👂🏻", - "👂🏼", - "👂🏽", - "👂🏾", - "👂🏿", - "👂", - "👃🏻", - "👃🏼", - "👃🏽", - "👃🏾", - "👃🏿", - "👃", - "👄", - "👅", - "👆🏻", - "👆🏼", - "👆🏽", - "👆🏾", - "👆🏿", - "👆", - "👇🏻", - "👇🏼", - "👇🏽", - "👇🏾", - "👇🏿", - "👇", - "👈🏻", - "👈🏼", - "👈🏽", - "👈🏾", - "👈🏿", - "👈", - "👉🏻", - "👉🏼", - "👉🏽", - "👉🏾", - "👉🏿", - "👉", - "👊🏻", - "👊🏼", - "👊🏽", - "👊🏾", - "👊🏿", - "👊", - "👋🏻", - "👋🏼", - "👋🏽", - "👋🏾", - "👋🏿", - "👋", - "👌🏻", - "👌🏼", - "👌🏽", - "👌🏾", - "👌🏿", - "👌", - "👍🏻", - "👍🏼", - "👍🏽", - "👍🏾", - "👍🏿", - "👍", - "👎🏻", - "👎🏼", - "👎🏽", - "👎🏾", - "👎🏿", - "👎", - "👏🏻", - "👏🏼", - "👏🏽", - "👏🏾", - "👏🏿", - "👏", - "👐🏻", - "👐🏼", - "👐🏽", - "👐🏾", - "👐🏿", - "👐", - "👑", - "👒", - "👓", - "👔", - "👕", - "👖", - "👗", - "👘", - "👙", - "👚", - "👛", - "👜", - "👝", - "👞", - "👟", - "👠", - "👡", - "👢", - "👣", - "👤", - "👥", - "👦🏻", - "👦🏼", - "👦🏽", - "👦🏾", - "👦🏿", - "👦", - "👧🏻", - "👧🏼", - "👧🏽", - "👧🏾", - "👧🏿", - "👧", - "👨🏻‍🌾", - "👨🏻‍🍳", - "👨🏻‍🎓", - "👨🏻‍🎤", - "👨🏻‍🎨", - "👨🏻‍🏫", - "👨🏻‍🏭", - "👨🏻‍💻", - "👨🏻‍💼", - "👨🏻‍🔧", - "👨🏻‍🔬", - "👨🏻‍🚀", - "👨🏻‍🚒", - "👨🏻‍🦯", - "👨🏻‍🦰", - "👨🏻‍🦱", - "👨🏻‍🦲", - "👨🏻‍🦳", - "👨🏻‍🦼", - "👨🏻‍🦽", - "👨🏻‍⚕️", - "👨🏻‍⚖️", - "👨🏻‍✈️", - "👨🏻", - "👨🏼‍🌾", - "👨🏼‍🍳", - "👨🏼‍🎓", - "👨🏼‍🎤", - "👨🏼‍🎨", - "👨🏼‍🏫", - "👨🏼‍🏭", - "👨🏼‍💻", - "👨🏼‍💼", - "👨🏼‍🔧", - "👨🏼‍🔬", - "👨🏼‍🚀", - "👨🏼‍🚒", - "👨🏼‍🤝‍👨🏻", - "👨🏼‍🦯", - "👨🏼‍🦰", - "👨🏼‍🦱", - "👨🏼‍🦲", - "👨🏼‍🦳", - "👨🏼‍🦼", - "👨🏼‍🦽", - "👨🏼‍⚕️", - "👨🏼‍⚖️", - "👨🏼‍✈️", - "👨🏼", - "👨🏽‍🌾", - "👨🏽‍🍳", - "👨🏽‍🎓", - "👨🏽‍🎤", - "👨🏽‍🎨", - "👨🏽‍🏫", - "👨🏽‍🏭", - "👨🏽‍💻", - "👨🏽‍💼", - "👨🏽‍🔧", - "👨🏽‍🔬", - "👨🏽‍🚀", - "👨🏽‍🚒", - "👨🏽‍🤝‍👨🏻", - "👨🏽‍🤝‍👨🏼", - "👨🏽‍🦯", - "👨🏽‍🦰", - "👨🏽‍🦱", - "👨🏽‍🦲", - "👨🏽‍🦳", - "👨🏽‍🦼", - "👨🏽‍🦽", - "👨🏽‍⚕️", - "👨🏽‍⚖️", - "👨🏽‍✈️", - "👨🏽", - "👨🏾‍🌾", - "👨🏾‍🍳", - "👨🏾‍🎓", - "👨🏾‍🎤", - "👨🏾‍🎨", - "👨🏾‍🏫", - "👨🏾‍🏭", - "👨🏾‍💻", - "👨🏾‍💼", - "👨🏾‍🔧", - "👨🏾‍🔬", - "👨🏾‍🚀", - "👨🏾‍🚒", - "👨🏾‍🤝‍👨🏻", - "👨🏾‍🤝‍👨🏼", - "👨🏾‍🤝‍👨🏽", - "👨🏾‍🦯", - "👨🏾‍🦰", - "👨🏾‍🦱", - "👨🏾‍🦲", - "👨🏾‍🦳", - "👨🏾‍🦼", - "👨🏾‍🦽", - "👨🏾‍⚕️", - "👨🏾‍⚖️", - "👨🏾‍✈️", - "👨🏾", - "👨🏿‍🌾", - "👨🏿‍🍳", - "👨🏿‍🎓", - "👨🏿‍🎤", - "👨🏿‍🎨", - "👨🏿‍🏫", - "👨🏿‍🏭", - "👨🏿‍💻", - "👨🏿‍💼", - "👨🏿‍🔧", - "👨🏿‍🔬", - "👨🏿‍🚀", - "👨🏿‍🚒", - "👨🏿‍🤝‍👨🏻", - "👨🏿‍🤝‍👨🏼", - "👨🏿‍🤝‍👨🏽", - "👨🏿‍🤝‍👨🏾", - "👨🏿‍🦯", - "👨🏿‍🦰", - "👨🏿‍🦱", - "👨🏿‍🦲", - "👨🏿‍🦳", - "👨🏿‍🦼", - "👨🏿‍🦽", - "👨🏿‍⚕️", - "👨🏿‍⚖️", - "👨🏿‍✈️", - "👨🏿", - "👨‍🌾", - "👨‍🍳", - "👨‍🎓", - "👨‍🎤", - "👨‍🎨", - "👨‍🏫", - "👨‍🏭", - "👨‍👦‍👦", - "👨‍👦", - "👨‍👧‍👦", - "👨‍👧‍👧", - "👨‍👧", - "👨‍👨‍👦‍👦", - "👨‍👨‍👦", - "👨‍👨‍👧‍👦", - "👨‍👨‍👧‍👧", - "👨‍👨‍👧", - "👨‍👩‍👦‍👦", - "👨‍👩‍👦", - "👨‍👩‍👧‍👦", - "👨‍👩‍👧‍👧", - "👨‍👩‍👧", - "👨‍💻", - "👨‍💼", - "👨‍🔧", - "👨‍🔬", - "👨‍🚀", - "👨‍🚒", - "👨‍🦯", - "👨‍🦰", - "👨‍🦱", - "👨‍🦲", - "👨‍🦳", - "👨‍🦼", - "👨‍🦽", - "👨‍⚕️", - "👨‍⚖️", - "👨‍✈️", - "👨‍❤️‍👨", - "👨‍❤️‍💋‍👨", - "👨", - "👩🏻‍🌾", - "👩🏻‍🍳", - "👩🏻‍🎓", - "👩🏻‍🎤", - "👩🏻‍🎨", - "👩🏻‍🏫", - "👩🏻‍🏭", - "👩🏻‍💻", - "👩🏻‍💼", - "👩🏻‍🔧", - "👩🏻‍🔬", - "👩🏻‍🚀", - "👩🏻‍🚒", - "👩🏻‍🤝‍👨🏼", - "👩🏻‍🤝‍👨🏽", - "👩🏻‍🤝‍👨🏾", - "👩🏻‍🤝‍👨🏿", - "👩🏻‍🦯", - "👩🏻‍🦰", - "👩🏻‍🦱", - "👩🏻‍🦲", - "👩🏻‍🦳", - "👩🏻‍🦼", - "👩🏻‍🦽", - "👩🏻‍⚕️", - "👩🏻‍⚖️", - "👩🏻‍✈️", - "👩🏻", - "👩🏼‍🌾", - "👩🏼‍🍳", - "👩🏼‍🎓", - "👩🏼‍🎤", - "👩🏼‍🎨", - "👩🏼‍🏫", - "👩🏼‍🏭", - "👩🏼‍💻", - "👩🏼‍💼", - "👩🏼‍🔧", - "👩🏼‍🔬", - "👩🏼‍🚀", - "👩🏼‍🚒", - "👩🏼‍🤝‍👨🏻", - "👩🏼‍🤝‍👨🏽", - "👩🏼‍🤝‍👨🏾", - "👩🏼‍🤝‍👨🏿", - "👩🏼‍🤝‍👩🏻", - "👩🏼‍🦯", - "👩🏼‍🦰", - "👩🏼‍🦱", - "👩🏼‍🦲", - "👩🏼‍🦳", - "👩🏼‍🦼", - "👩🏼‍🦽", - "👩🏼‍⚕️", - "👩🏼‍⚖️", - "👩🏼‍✈️", - "👩🏼", - "👩🏽‍🌾", - "👩🏽‍🍳", - "👩🏽‍🎓", - "👩🏽‍🎤", - "👩🏽‍🎨", - "👩🏽‍🏫", - "👩🏽‍🏭", - "👩🏽‍💻", - "👩🏽‍💼", - "👩🏽‍🔧", - "👩🏽‍🔬", - "👩🏽‍🚀", - "👩🏽‍🚒", - "👩🏽‍🤝‍👨🏻", - "👩🏽‍🤝‍👨🏼", - "👩🏽‍🤝‍👨🏾", - "👩🏽‍🤝‍👨🏿", - "👩🏽‍🤝‍👩🏻", - "👩🏽‍🤝‍👩🏼", - "👩🏽‍🦯", - "👩🏽‍🦰", - "👩🏽‍🦱", - "👩🏽‍🦲", - "👩🏽‍🦳", - "👩🏽‍🦼", - "👩🏽‍🦽", - "👩🏽‍⚕️", - "👩🏽‍⚖️", - "👩🏽‍✈️", - "👩🏽", - "👩🏾‍🌾", - "👩🏾‍🍳", - "👩🏾‍🎓", - "👩🏾‍🎤", - "👩🏾‍🎨", - "👩🏾‍🏫", - "👩🏾‍🏭", - "👩🏾‍💻", - "👩🏾‍💼", - "👩🏾‍🔧", - "👩🏾‍🔬", - "👩🏾‍🚀", - "👩🏾‍🚒", - "👩🏾‍🤝‍👨🏻", - "👩🏾‍🤝‍👨🏼", - "👩🏾‍🤝‍👨🏽", - "👩🏾‍🤝‍👨🏿", - "👩🏾‍🤝‍👩🏻", - "👩🏾‍🤝‍👩🏼", - "👩🏾‍🤝‍👩🏽", - "👩🏾‍🦯", - "👩🏾‍🦰", - "👩🏾‍🦱", - "👩🏾‍🦲", - "👩🏾‍🦳", - "👩🏾‍🦼", - "👩🏾‍🦽", - "👩🏾‍⚕️", - "👩🏾‍⚖️", - "👩🏾‍✈️", - "👩🏾", - "👩🏿‍🌾", - "👩🏿‍🍳", - "👩🏿‍🎓", - "👩🏿‍🎤", - "👩🏿‍🎨", - "👩🏿‍🏫", - "👩🏿‍🏭", - "👩🏿‍💻", - "👩🏿‍💼", - "👩🏿‍🔧", - "👩🏿‍🔬", - "👩🏿‍🚀", - "👩🏿‍🚒", - "👩🏿‍🤝‍👨🏻", - "👩🏿‍🤝‍👨🏼", - "👩🏿‍🤝‍👨🏽", - "👩🏿‍🤝‍👨🏾", - "👩🏿‍🤝‍👩🏻", - "👩🏿‍🤝‍👩🏼", - "👩🏿‍🤝‍👩🏽", - "👩🏿‍🤝‍👩🏾", - "👩🏿‍🦯", - "👩🏿‍🦰", - "👩🏿‍🦱", - "👩🏿‍🦲", - "👩🏿‍🦳", - "👩🏿‍🦼", - "👩🏿‍🦽", - "👩🏿‍⚕️", - "👩🏿‍⚖️", - "👩🏿‍✈️", - "👩🏿", - "👩‍🌾", - "👩‍🍳", - "👩‍🎓", - "👩‍🎤", - "👩‍🎨", - "👩‍🏫", - "👩‍🏭", - "👩‍👦‍👦", - "👩‍👦", - "👩‍👧‍👦", - "👩‍👧‍👧", - "👩‍👧", - "👩‍👩‍👦‍👦", - "👩‍👩‍👦", - "👩‍👩‍👧‍👦", - "👩‍👩‍👧‍👧", - "👩‍👩‍👧", - "👩‍💻", - "👩‍💼", - "👩‍🔧", - "👩‍🔬", - "👩‍🚀", - "👩‍🚒", - "👩‍🦯", - "👩‍🦰", - "👩‍🦱", - "👩‍🦲", - "👩‍🦳", - "👩‍🦼", - "👩‍🦽", - "👩‍⚕️", - "👩‍⚖️", - "👩‍✈️", - "👩‍❤️‍👨", - "👩‍❤️‍👩", - "👩‍❤️‍💋‍👨", - "👩‍❤️‍💋‍👩", - "👩", - "👪", - "👫🏻", - "👫🏼", - "👫🏽", - "👫🏾", - "👫🏿", - "👫", - "👬🏻", - "👬🏼", - "👬🏽", - "👬🏾", - "👬🏿", - "👬", - "👭🏻", - "👭🏼", - "👭🏽", - "👭🏾", - "👭🏿", - "👭", - "👮🏻‍♀️", - "👮🏻‍♂️", - "👮🏻", - "👮🏼‍♀️", - "👮🏼‍♂️", - "👮🏼", - "👮🏽‍♀️", - "👮🏽‍♂️", - "👮🏽", - "👮🏾‍♀️", - "👮🏾‍♂️", - "👮🏾", - "👮🏿‍♀️", - "👮🏿‍♂️", - "👮🏿", - "👮‍♀️", - "👮‍♂️", - "👮", - "👯‍♀️", - "👯‍♂️", - "👯", - "👰🏻", - "👰🏼", - "👰🏽", - "👰🏾", - "👰🏿", - "👰", - "👱🏻‍♀️", - "👱🏻‍♂️", - "👱🏻", - "👱🏼‍♀️", - "👱🏼‍♂️", - "👱🏼", - "👱🏽‍♀️", - "👱🏽‍♂️", - "👱🏽", - "👱🏾‍♀️", - "👱🏾‍♂️", - "👱🏾", - "👱🏿‍♀️", - "👱🏿‍♂️", - "👱🏿", - "👱‍♀️", - "👱‍♂️", - "👱", - "👲🏻", - "👲🏼", - "👲🏽", - "👲🏾", - "👲🏿", - "👲", - "👳🏻‍♀️", - "👳🏻‍♂️", - "👳🏻", - "👳🏼‍♀️", - "👳🏼‍♂️", - "👳🏼", - "👳🏽‍♀️", - "👳🏽‍♂️", - "👳🏽", - "👳🏾‍♀️", - "👳🏾‍♂️", - "👳🏾", - "👳🏿‍♀️", - "👳🏿‍♂️", - "👳🏿", - "👳‍♀️", - "👳‍♂️", - "👳", - "👴🏻", - "👴🏼", - "👴🏽", - "👴🏾", - "👴🏿", - "👴", - "👵🏻", - "👵🏼", - "👵🏽", - "👵🏾", - "👵🏿", - "👵", - "👶🏻", - "👶🏼", - "👶🏽", - "👶🏾", - "👶🏿", - "👶", - "👷🏻‍♀️", - "👷🏻‍♂️", - "👷🏻", - "👷🏼‍♀️", - "👷🏼‍♂️", - "👷🏼", - "👷🏽‍♀️", - "👷🏽‍♂️", - "👷🏽", - "👷🏾‍♀️", - "👷🏾‍♂️", - "👷🏾", - "👷🏿‍♀️", - "👷🏿‍♂️", - "👷🏿", - "👷‍♀️", - "👷‍♂️", - "👷", - "👸🏻", - "👸🏼", - "👸🏽", - "👸🏾", - "👸🏿", - "👸", - "👹", - "👺", - "👻", - "👼🏻", - "👼🏼", - "👼🏽", - "👼🏾", - "👼🏿", - "👼", - "👽", - "👾", - "👿", - "💀", - "💁🏻‍♀️", - "💁🏻‍♂️", - "💁🏻", - "💁🏼‍♀️", - "💁🏼‍♂️", - "💁🏼", - "💁🏽‍♀️", - "💁🏽‍♂️", - "💁🏽", - "💁🏾‍♀️", - "💁🏾‍♂️", - "💁🏾", - "💁🏿‍♀️", - "💁🏿‍♂️", - "💁🏿", - "💁‍♀️", - "💁‍♂️", - "💁", - "💂🏻‍♀️", - "💂🏻‍♂️", - "💂🏻", - "💂🏼‍♀️", - "💂🏼‍♂️", - "💂🏼", - "💂🏽‍♀️", - "💂🏽‍♂️", - "💂🏽", - "💂🏾‍♀️", - "💂🏾‍♂️", - "💂🏾", - "💂🏿‍♀️", - "💂🏿‍♂️", - "💂🏿", - "💂‍♀️", - "💂‍♂️", - "💂", - "💃🏻", - "💃🏼", - "💃🏽", - "💃🏾", - "💃🏿", - "💃", - "💄", - "💅🏻", - "💅🏼", - "💅🏽", - "💅🏾", - "💅🏿", - "💅", - "💆🏻‍♀️", - "💆🏻‍♂️", - "💆🏻", - "💆🏼‍♀️", - "💆🏼‍♂️", - "💆🏼", - "💆🏽‍♀️", - "💆🏽‍♂️", - "💆🏽", - "💆🏾‍♀️", - "💆🏾‍♂️", - "💆🏾", - "💆🏿‍♀️", - "💆🏿‍♂️", - "💆🏿", - "💆‍♀️", - "💆‍♂️", - "💆", - "💇🏻‍♀️", - "💇🏻‍♂️", - "💇🏻", - "💇🏼‍♀️", - "💇🏼‍♂️", - "💇🏼", - "💇🏽‍♀️", - "💇🏽‍♂️", - "💇🏽", - "💇🏾‍♀️", - "💇🏾‍♂️", - "💇🏾", - "💇🏿‍♀️", - "💇🏿‍♂️", - "💇🏿", - "💇‍♀️", - "💇‍♂️", - "💇", - "💈", - "💉", - "💊", - "💋", - "💌", - "💍", - "💎", - "💏", - "💐", - "💑", - "💒", - "💓", - "💔", - "💕", - "💖", - "💗", - "💘", - "💙", - "💚", - "💛", - "💜", - "💝", - "💞", - "💟", - "💠", - "💡", - "💢", - "💣", - "💤", - "💥", - "💦", - "💧", - "💨", - "💩", - "💪🏻", - "💪🏼", - "💪🏽", - "💪🏾", - "💪🏿", - "💪", - "💫", - "💬", - "💭", - "💮", - "💯", - "💰", - "💱", - "💲", - "💳", - "💴", - "💵", - "💶", - "💷", - "💸", - "💹", - "💺", - "💻", - "💼", - "💽", - "💾", - "💿", - "📀", - "📁", - "📂", - "📃", - "📄", - "📅", - "📆", - "📇", - "📈", - "📉", - "📊", - "📋", - "📌", - "📍", - "📎", - "📏", - "📐", - "📑", - "📒", - "📓", - "📔", - "📕", - "📖", - "📗", - "📘", - "📙", - "📚", - "📛", - "📜", - "📝", - "📞", - "📟", - "📠", - "📡", - "📢", - "📣", - "📤", - "📥", - "📦", - "📧", - "📨", - "📩", - "📪", - "📫", - "📬", - "📭", - "📮", - "📯", - "📰", - "📱", - "📲", - "📳", - "📴", - "📵", - "📶", - "📷", - "📸", - "📹", - "📺", - "📻", - "📼", - "📽️", - "📿", - "🔀", - "🔁", - "🔂", - "🔃", - "🔄", - "🔅", - "🔆", - "🔇", - "🔈", - "🔉", - "🔊", - "🔋", - "🔌", - "🔍", - "🔎", - "🔏", - "🔐", - "🔑", - "🔒", - "🔓", - "🔔", - "🔕", - "🔖", - "🔗", - "🔘", - "🔙", - "🔚", - "🔛", - "🔜", - "🔝", - "🔞", - "🔟", - "🔠", - "🔡", - "🔢", - "🔣", - "🔤", - "🔥", - "🔦", - "🔧", - "🔨", - "🔩", - "🔪", - "🔫", - "🔬", - "🔭", - "🔮", - "🔯", - "🔰", - "🔱", - "🔲", - "🔳", - "🔴", - "🔵", - "🔶", - "🔷", - "🔸", - "🔹", - "🔺", - "🔻", - "🔼", - "🔽", - "🕉️", - "🕊️", - "🕋", - "🕌", - "🕍", - "🕎", - "🕐", - "🕑", - "🕒", - "🕓", - "🕔", - "🕕", - "🕖", - "🕗", - "🕘", - "🕙", - "🕚", - "🕛", - "🕜", - "🕝", - "🕞", - "🕟", - "🕠", - "🕡", - "🕢", - "🕣", - "🕤", - "🕥", - "🕦", - "🕧", - "🕯️", - "🕰️", - "🕳️", - "🕴🏻‍♀️", - "🕴🏻‍♂️", - "🕴🏻", - "🕴🏼‍♀️", - "🕴🏼‍♂️", - "🕴🏼", - "🕴🏽‍♀️", - "🕴🏽‍♂️", - "🕴🏽", - "🕴🏾‍♀️", - "🕴🏾‍♂️", - "🕴🏾", - "🕴🏿‍♀️", - "🕴🏿‍♂️", - "🕴🏿", - "🕴️‍♀️", - "🕴️‍♂️", - "🕴️", - "🕵🏻‍♀️", - "🕵🏻‍♂️", - "🕵🏻", - "🕵🏼‍♀️", - "🕵🏼‍♂️", - "🕵🏼", - "🕵🏽‍♀️", - "🕵🏽‍♂️", - "🕵🏽", - "🕵🏾‍♀️", - "🕵🏾‍♂️", - "🕵🏾", - "🕵🏿‍♀️", - "🕵🏿‍♂️", - "🕵🏿", - "🕵️‍♀️", - "🕵️‍♂️", - "🕵️", - "🕶️", - "🕷️", - "🕸️", - "🕹️", - "🕺🏻", - "🕺🏼", - "🕺🏽", - "🕺🏾", - "🕺🏿", - "🕺", - "🖇️", - "🖊️", - "🖋️", - "🖌️", - "🖍️", - "🖐🏻", - "🖐🏼", - "🖐🏽", - "🖐🏾", - "🖐🏿", - "🖐️", - "🖕🏻", - "🖕🏼", - "🖕🏽", - "🖕🏾", - "🖕🏿", - "🖕", - "🖖🏻", - "🖖🏼", - "🖖🏽", - "🖖🏾", - "🖖🏿", - "🖖", - "🖤", - "🖥️", - "🖨️", - "🖱️", - "🖲️", - "🖼️", - "🗂️", - "🗃️", - "🗄️", - "🗑️", - "🗒️", - "🗓️", - "🗜️", - "🗝️", - "🗞️", - "🗡️", - "🗣️", - "🗨️", - "🗯️", - "🗳️", - "🗺️", - "🗻", - "🗼", - "🗽", - "🗾", - "🗿", - "😀", - "😁", - "😂", - "😃", - "😄", - "😅", - "😆", - "😇", - "😈", - "😉", - "😊", - "😋", - "😌", - "😍", - "😎", - "😏", - "😐", - "😑", - "😒", - "😓", - "😔", - "😕", - "😖", - "😗", - "😘", - "😙", - "😚", - "😛", - "😜", - "😝", - "😞", - "😟", - "😠", - "😡", - "😢", - "😣", - "😤", - "😥", - "😦", - "😧", - "😨", - "😩", - "😪", - "😫", - "😬", - "😭", - "😮", - "😯", - "😰", - "😱", - "😲", - "😳", - "😴", - "😵", - "😶", - "😷", - "😸", - "😹", - "😺", - "😻", - "😼", - "😽", - "😾", - "😿", - "🙀", - "🙁", - "🙂", - "🙃", - "🙄", - "🙅🏻‍♀️", - "🙅🏻‍♂️", - "🙅🏻", - "🙅🏼‍♀️", - "🙅🏼‍♂️", - "🙅🏼", - "🙅🏽‍♀️", - "🙅🏽‍♂️", - "🙅🏽", - "🙅🏾‍♀️", - "🙅🏾‍♂️", - "🙅🏾", - "🙅🏿‍♀️", - "🙅🏿‍♂️", - "🙅🏿", - "🙅‍♀️", - "🙅‍♂️", - "🙅", - "🙆🏻‍♀️", - "🙆🏻‍♂️", - "🙆🏻", - "🙆🏼‍♀️", - "🙆🏼‍♂️", - "🙆🏼", - "🙆🏽‍♀️", - "🙆🏽‍♂️", - "🙆🏽", - "🙆🏾‍♀️", - "🙆🏾‍♂️", - "🙆🏾", - "🙆🏿‍♀️", - "🙆🏿‍♂️", - "🙆🏿", - "🙆‍♀️", - "🙆‍♂️", - "🙆", - "🙇🏻‍♀️", - "🙇🏻‍♂️", - "🙇🏻", - "🙇🏼‍♀️", - "🙇🏼‍♂️", - "🙇🏼", - "🙇🏽‍♀️", - "🙇🏽‍♂️", - "🙇🏽", - "🙇🏾‍♀️", - "🙇🏾‍♂️", - "🙇🏾", - "🙇🏿‍♀️", - "🙇🏿‍♂️", - "🙇🏿", - "🙇‍♀️", - "🙇‍♂️", - "🙇", - "🙈", - "🙉", - "🙊", - "🙋🏻‍♀️", - "🙋🏻‍♂️", - "🙋🏻", - "🙋🏼‍♀️", - "🙋🏼‍♂️", - "🙋🏼", - "🙋🏽‍♀️", - "🙋🏽‍♂️", - "🙋🏽", - "🙋🏾‍♀️", - "🙋🏾‍♂️", - "🙋🏾", - "🙋🏿‍♀️", - "🙋🏿‍♂️", - "🙋🏿", - "🙋‍♀️", - "🙋‍♂️", - "🙋", - "🙌🏻", - "🙌🏼", - "🙌🏽", - "🙌🏾", - "🙌🏿", - "🙌", - "🙍🏻‍♀️", - "🙍🏻‍♂️", - "🙍🏻", - "🙍🏼‍♀️", - "🙍🏼‍♂️", - "🙍🏼", - "🙍🏽‍♀️", - "🙍🏽‍♂️", - "🙍🏽", - "🙍🏾‍♀️", - "🙍🏾‍♂️", - "🙍🏾", - "🙍🏿‍♀️", - "🙍🏿‍♂️", - "🙍🏿", - "🙍‍♀️", - "🙍‍♂️", - "🙍", - "🙎🏻‍♀️", - "🙎🏻‍♂️", - "🙎🏻", - "🙎🏼‍♀️", - "🙎🏼‍♂️", - "🙎🏼", - "🙎🏽‍♀️", - "🙎🏽‍♂️", - "🙎🏽", - "🙎🏾‍♀️", - "🙎🏾‍♂️", - "🙎🏾", - "🙎🏿‍♀️", - "🙎🏿‍♂️", - "🙎🏿", - "🙎‍♀️", - "🙎‍♂️", - "🙎", - "🙏🏻", - "🙏🏼", - "🙏🏽", - "🙏🏾", - "🙏🏿", - "🙏", - "🚀", - "🚁", - "🚂", - "🚃", - "🚄", - "🚅", - "🚆", - "🚇", - "🚈", - "🚉", - "🚊", - "🚋", - "🚌", - "🚍", - "🚎", - "🚏", - "🚐", - "🚑", - "🚒", - "🚓", - "🚔", - "🚕", - "🚖", - "🚗", - "🚘", - "🚙", - "🚚", - "🚛", - "🚜", - "🚝", - "🚞", - "🚟", - "🚠", - "🚡", - "🚢", - "🚣🏻‍♀️", - "🚣🏻‍♂️", - "🚣🏻", - "🚣🏼‍♀️", - "🚣🏼‍♂️", - "🚣🏼", - "🚣🏽‍♀️", - "🚣🏽‍♂️", - "🚣🏽", - "🚣🏾‍♀️", - "🚣🏾‍♂️", - "🚣🏾", - "🚣🏿‍♀️", - "🚣🏿‍♂️", - "🚣🏿", - "🚣‍♀️", - "🚣‍♂️", - "🚣", - "🚤", - "🚥", - "🚦", - "🚧", - "🚨", - "🚩", - "🚪", - "🚫", - "🚬", - "🚭", - "🚮", - "🚯", - "🚰", - "🚱", - "🚲", - "🚳", - "🚴🏻‍♀️", - "🚴🏻‍♂️", - "🚴🏻", - "🚴🏼‍♀️", - "🚴🏼‍♂️", - "🚴🏼", - "🚴🏽‍♀️", - "🚴🏽‍♂️", - "🚴🏽", - "🚴🏾‍♀️", - "🚴🏾‍♂️", - "🚴🏾", - "🚴🏿‍♀️", - "🚴🏿‍♂️", - "🚴🏿", - "🚴‍♀️", - "🚴‍♂️", - "🚴", - "🚵🏻‍♀️", - "🚵🏻‍♂️", - "🚵🏻", - "🚵🏼‍♀️", - "🚵🏼‍♂️", - "🚵🏼", - "🚵🏽‍♀️", - "🚵🏽‍♂️", - "🚵🏽", - "🚵🏾‍♀️", - "🚵🏾‍♂️", - "🚵🏾", - "🚵🏿‍♀️", - "🚵🏿‍♂️", - "🚵🏿", - "🚵‍♀️", - "🚵‍♂️", - "🚵", - "🚶🏻‍♀️", - "🚶🏻‍♂️", - "🚶🏻", - "🚶🏼‍♀️", - "🚶🏼‍♂️", - "🚶🏼", - "🚶🏽‍♀️", - "🚶🏽‍♂️", - "🚶🏽", - "🚶🏾‍♀️", - "🚶🏾‍♂️", - "🚶🏾", - "🚶🏿‍♀️", - "🚶🏿‍♂️", - "🚶🏿", - "🚶‍♀️", - "🚶‍♂️", - "🚶", - "🚷", - "🚸", - "🚹", - "🚺", - "🚻", - "🚼", - "🚽", - "🚾", - "🚿", - "🛀🏻", - "🛀🏼", - "🛀🏽", - "🛀🏾", - "🛀🏿", - "🛀", - "🛁", - "🛂", - "🛃", - "🛄", - "🛅", - "🛋️", - "🛌🏻", - "🛌🏼", - "🛌🏽", - "🛌🏾", - "🛌🏿", - "🛌", - "🛍️", - "🛎️", - "🛏️", - "🛐", - "🛑", - "🛒", - "🛕", - "🛠️", - "🛡️", - "🛢️", - "🛣️", - "🛤️", - "🛥️", - "🛩️", - "🛫", - "🛬", - "🛰️", - "🛳️", - "🛴", - "🛵", - "🛶", - "🛷", - "🛸", - "🛹", - "🛺", - "🟠", - "🟡", - "🟢", - "🟣", - "🟤", - "🟥", - "🟦", - "🟧", - "🟨", - "🟩", - "🟪", - "🟫", - "🤍", - "🤎", - "🤏🏻", - "🤏🏼", - "🤏🏽", - "🤏🏾", - "🤏🏿", - "🤏", - "🤐", - "🤑", - "🤒", - "🤓", - "🤔", - "🤕", - "🤖", - "🤗", - "🤘🏻", - "🤘🏼", - "🤘🏽", - "🤘🏾", - "🤘🏿", - "🤘", - "🤙🏻", - "🤙🏼", - "🤙🏽", - "🤙🏾", - "🤙🏿", - "🤙", - "🤚🏻", - "🤚🏼", - "🤚🏽", - "🤚🏾", - "🤚🏿", - "🤚", - "🤛🏻", - "🤛🏼", - "🤛🏽", - "🤛🏾", - "🤛🏿", - "🤛", - "🤜🏻", - "🤜🏼", - "🤜🏽", - "🤜🏾", - "🤜🏿", - "🤜", - "🤝", - "🤞🏻", - "🤞🏼", - "🤞🏽", - "🤞🏾", - "🤞🏿", - "🤞", - "🤟🏻", - "🤟🏼", - "🤟🏽", - "🤟🏾", - "🤟🏿", - "🤟", - "🤠", - "🤡", - "🤢", - "🤣", - "🤤", - "🤥", - "🤦🏻‍♀️", - "🤦🏻‍♂️", - "🤦🏻", - "🤦🏼‍♀️", - "🤦🏼‍♂️", - "🤦🏼", - "🤦🏽‍♀️", - "🤦🏽‍♂️", - "🤦🏽", - "🤦🏾‍♀️", - "🤦🏾‍♂️", - "🤦🏾", - "🤦🏿‍♀️", - "🤦🏿‍♂️", - "🤦🏿", - "🤦‍♀️", - "🤦‍♂️", - "🤦", - "🤧", - "🤨", - "🤩", - "🤪", - "🤫", - "🤬", - "🤭", - "🤮", - "🤯", - "🤰🏻", - "🤰🏼", - "🤰🏽", - "🤰🏾", - "🤰🏿", - "🤰", - "🤱🏻", - "🤱🏼", - "🤱🏽", - "🤱🏾", - "🤱🏿", - "🤱", - "🤲🏻", - "🤲🏼", - "🤲🏽", - "🤲🏾", - "🤲🏿", - "🤲", - "🤳🏻", - "🤳🏼", - "🤳🏽", - "🤳🏾", - "🤳🏿", - "🤳", - "🤴🏻", - "🤴🏼", - "🤴🏽", - "🤴🏾", - "🤴🏿", - "🤴", - "🤵🏻‍♀️", - "🤵🏻‍♂️", - "🤵🏻", - "🤵🏼‍♀️", - "🤵🏼‍♂️", - "🤵🏼", - "🤵🏽‍♀️", - "🤵🏽‍♂️", - "🤵🏽", - "🤵🏾‍♀️", - "🤵🏾‍♂️", - "🤵🏾", - "🤵🏿‍♀️", - "🤵🏿‍♂️", - "🤵🏿", - "🤵‍♀️", - "🤵‍♂️", - "🤵", - "🤶🏻", - "🤶🏼", - "🤶🏽", - "🤶🏾", - "🤶🏿", - "🤶", - "🤷🏻‍♀️", - "🤷🏻‍♂️", - "🤷🏻", - "🤷🏼‍♀️", - "🤷🏼‍♂️", - "🤷🏼", - "🤷🏽‍♀️", - "🤷🏽‍♂️", - "🤷🏽", - "🤷🏾‍♀️", - "🤷🏾‍♂️", - "🤷🏾", - "🤷🏿‍♀️", - "🤷🏿‍♂️", - "🤷🏿", - "🤷‍♀️", - "🤷‍♂️", - "🤷", - "🤸🏻‍♀️", - "🤸🏻‍♂️", - "🤸🏻", - "🤸🏼‍♀️", - "🤸🏼‍♂️", - "🤸🏼", - "🤸🏽‍♀️", - "🤸🏽‍♂️", - "🤸🏽", - "🤸🏾‍♀️", - "🤸🏾‍♂️", - "🤸🏾", - "🤸🏿‍♀️", - "🤸🏿‍♂️", - "🤸🏿", - "🤸‍♀️", - "🤸‍♂️", - "🤸", - "🤹🏻‍♀️", - "🤹🏻‍♂️", - "🤹🏻", - "🤹🏼‍♀️", - "🤹🏼‍♂️", - "🤹🏼", - "🤹🏽‍♀️", - "🤹🏽‍♂️", - "🤹🏽", - "🤹🏾‍♀️", - "🤹🏾‍♂️", - "🤹🏾", - "🤹🏿‍♀️", - "🤹🏿‍♂️", - "🤹🏿", - "🤹‍♀️", - "🤹‍♂️", - "🤹", - "🤺", - "🤼‍♀️", - "🤼‍♂️", - "🤼", - "🤽🏻‍♀️", - "🤽🏻‍♂️", - "🤽🏻", - "🤽🏼‍♀️", - "🤽🏼‍♂️", - "🤽🏼", - "🤽🏽‍♀️", - "🤽🏽‍♂️", - "🤽🏽", - "🤽🏾‍♀️", - "🤽🏾‍♂️", - "🤽🏾", - "🤽🏿‍♀️", - "🤽🏿‍♂️", - "🤽🏿", - "🤽‍♀️", - "🤽‍♂️", - "🤽", - "🤾🏻‍♀️", - "🤾🏻‍♂️", - "🤾🏻", - "🤾🏼‍♀️", - "🤾🏼‍♂️", - "🤾🏼", - "🤾🏽‍♀️", - "🤾🏽‍♂️", - "🤾🏽", - "🤾🏾‍♀️", - "🤾🏾‍♂️", - "🤾🏾", - "🤾🏿‍♀️", - "🤾🏿‍♂️", - "🤾🏿", - "🤾‍♀️", - "🤾‍♂️", - "🤾", - "🤿", - "🥀", - "🥁", - "🥂", - "🥃", - "🥄", - "🥅", - "🥇", - "🥈", - "🥉", - "🥊", - "🥋", - "🥌", - "🥍", - "🥎", - "🥏", - "🥐", - "🥑", - "🥒", - "🥓", - "🥔", - "🥕", - "🥖", - "🥗", - "🥘", - "🥙", - "🥚", - "🥛", - "🥜", - "🥝", - "🥞", - "🥟", - "🥠", - "🥡", - "🥢", - "🥣", - "🥤", - "🥥", - "🥦", - "🥧", - "🥨", - "🥩", - "🥪", - "🥫", - "🥬", - "🥭", - "🥮", - "🥯", - "🥰", - "🥱", - "🥳", - "🥴", - "🥵", - "🥶", - "🥺", - "🥻", - "🥼", - "🥽", - "🥾", - "🥿", - "🦀", - "🦁", - "🦂", - "🦃", - "🦄", - "🦅", - "🦆", - "🦇", - "🦈", - "🦉", - "🦊", - "🦋", - "🦌", - "🦍", - "🦎", - "🦏", - "🦐", - "🦑", - "🦒", - "🦓", - "🦔", - "🦕", - "🦖", - "🦗", - "🦘", - "🦙", - "🦚", - "🦛", - "🦜", - "🦝", - "🦞", - "🦟", - "🦠", - "🦡", - "🦢", - "🦥", - "🦦", - "🦧", - "🦨", - "🦩", - "🦪", - "🦮", - "🦯", - "🦰", - "🦱", - "🦲", - "🦳", - "🦴", - "🦵🏻", - "🦵🏼", - "🦵🏽", - "🦵🏾", - "🦵🏿", - "🦵", - "🦶🏻", - "🦶🏼", - "🦶🏽", - "🦶🏾", - "🦶🏿", - "🦶", - "🦷", - "🦸🏻‍♀️", - "🦸🏻‍♂️", - "🦸🏻", - "🦸🏼‍♀️", - "🦸🏼‍♂️", - "🦸🏼", - "🦸🏽‍♀️", - "🦸🏽‍♂️", - "🦸🏽", - "🦸🏾‍♀️", - "🦸🏾‍♂️", - "🦸🏾", - "🦸🏿‍♀️", - "🦸🏿‍♂️", - "🦸🏿", - "🦸‍♀️", - "🦸‍♂️", - "🦸", - "🦹🏻‍♀️", - "🦹🏻‍♂️", - "🦹🏻", - "🦹🏼‍♀️", - "🦹🏼‍♂️", - "🦹🏼", - "🦹🏽‍♀️", - "🦹🏽‍♂️", - "🦹🏽", - "🦹🏾‍♀️", - "🦹🏾‍♂️", - "🦹🏾", - "🦹🏿‍♀️", - "🦹🏿‍♂️", - "🦹🏿", - "🦹‍♀️", - "🦹‍♂️", - "🦹", - "🦺", - "🦻🏻", - "🦻🏼", - "🦻🏽", - "🦻🏾", - "🦻🏿", - "🦻", - "🦼", - "🦽", - "🦾", - "🦿", - "🧀", - "🧁", - "🧂", - "🧃", - "🧄", - "🧅", - "🧆", - "🧇", - "🧈", - "🧉", - "🧊", - "🧍🏻‍♀️", - "🧍🏻‍♂️", - "🧍🏻", - "🧍🏼‍♀️", - "🧍🏼‍♂️", - "🧍🏼", - "🧍🏽‍♀️", - "🧍🏽‍♂️", - "🧍🏽", - "🧍🏾‍♀️", - "🧍🏾‍♂️", - "🧍🏾", - "🧍🏿‍♀️", - "🧍🏿‍♂️", - "🧍🏿", - "🧍‍♀️", - "🧍‍♂️", - "🧍", - "🧎🏻‍♀️", - "🧎🏻‍♂️", - "🧎🏻", - "🧎🏼‍♀️", - "🧎🏼‍♂️", - "🧎🏼", - "🧎🏽‍♀️", - "🧎🏽‍♂️", - "🧎🏽", - "🧎🏾‍♀️", - "🧎🏾‍♂️", - "🧎🏾", - "🧎🏿‍♀️", - "🧎🏿‍♂️", - "🧎🏿", - "🧎‍♀️", - "🧎‍♂️", - "🧎", - "🧏🏻‍♀️", - "🧏🏻‍♂️", - "🧏🏻", - "🧏🏼‍♀️", - "🧏🏼‍♂️", - "🧏🏼", - "🧏🏽‍♀️", - "🧏🏽‍♂️", - "🧏🏽", - "🧏🏾‍♀️", - "🧏🏾‍♂️", - "🧏🏾", - "🧏🏿‍♀️", - "🧏🏿‍♂️", - "🧏🏿", - "🧏‍♀️", - "🧏‍♂️", - "🧏", - "🧐", - "🧑🏻‍🤝‍🧑🏻", - "🧑🏻", - "🧑🏼‍🤝‍🧑🏻", - "🧑🏼‍🤝‍🧑🏼", - "🧑🏼", - "🧑🏽‍🤝‍🧑🏻", - "🧑🏽‍🤝‍🧑🏼", - "🧑🏽‍🤝‍🧑🏽", - "🧑🏽", - "🧑🏾‍🤝‍🧑🏻", - "🧑🏾‍🤝‍🧑🏼", - "🧑🏾‍🤝‍🧑🏽", - "🧑🏾‍🤝‍🧑🏾", - "🧑🏾", - "🧑🏿‍🤝‍🧑🏻", - "🧑🏿‍🤝‍🧑🏼", - "🧑🏿‍🤝‍🧑🏽", - "🧑🏿‍🤝‍🧑🏾", - "🧑🏿‍🤝‍🧑🏿", - "🧑🏿", - "🧑‍🤝‍🧑", - "🧑", - "🧒🏻", - "🧒🏼", - "🧒🏽", - "🧒🏾", - "🧒🏿", - "🧒", - "🧓🏻", - "🧓🏼", - "🧓🏽", - "🧓🏾", - "🧓🏿", - "🧓", - "🧔🏻", - "🧔🏼", - "🧔🏽", - "🧔🏾", - "🧔🏿", - "🧔", - "🧕🏻", - "🧕🏼", - "🧕🏽", - "🧕🏾", - "🧕🏿", - "🧕", - "🧖🏻‍♀️", - "🧖🏻‍♂️", - "🧖🏻", - "🧖🏼‍♀️", - "🧖🏼‍♂️", - "🧖🏼", - "🧖🏽‍♀️", - "🧖🏽‍♂️", - "🧖🏽", - "🧖🏾‍♀️", - "🧖🏾‍♂️", - "🧖🏾", - "🧖🏿‍♀️", - "🧖🏿‍♂️", - "🧖🏿", - "🧖‍♀️", - "🧖‍♂️", - "🧖", - "🧗🏻‍♀️", - "🧗🏻‍♂️", - "🧗🏻", - "🧗🏼‍♀️", - "🧗🏼‍♂️", - "🧗🏼", - "🧗🏽‍♀️", - "🧗🏽‍♂️", - "🧗🏽", - "🧗🏾‍♀️", - "🧗🏾‍♂️", - "🧗🏾", - "🧗🏿‍♀️", - "🧗🏿‍♂️", - "🧗🏿", - "🧗‍♀️", - "🧗‍♂️", - "🧗", - "🧘🏻‍♀️", - "🧘🏻‍♂️", - "🧘🏻", - "🧘🏼‍♀️", - "🧘🏼‍♂️", - "🧘🏼", - "🧘🏽‍♀️", - "🧘🏽‍♂️", - "🧘🏽", - "🧘🏾‍♀️", - "🧘🏾‍♂️", - "🧘🏾", - "🧘🏿‍♀️", - "🧘🏿‍♂️", - "🧘🏿", - "🧘‍♀️", - "🧘‍♂️", - "🧘", - "🧙🏻‍♀️", - "🧙🏻‍♂️", - "🧙🏻", - "🧙🏼‍♀️", - "🧙🏼‍♂️", - "🧙🏼", - "🧙🏽‍♀️", - "🧙🏽‍♂️", - "🧙🏽", - "🧙🏾‍♀️", - "🧙🏾‍♂️", - "🧙🏾", - "🧙🏿‍♀️", - "🧙🏿‍♂️", - "🧙🏿", - "🧙‍♀️", - "🧙‍♂️", - "🧙", - "🧚🏻‍♀️", - "🧚🏻‍♂️", - "🧚🏻", - "🧚🏼‍♀️", - "🧚🏼‍♂️", - "🧚🏼", - "🧚🏽‍♀️", - "🧚🏽‍♂️", - "🧚🏽", - "🧚🏾‍♀️", - "🧚🏾‍♂️", - "🧚🏾", - "🧚🏿‍♀️", - "🧚🏿‍♂️", - "🧚🏿", - "🧚‍♀️", - "🧚‍♂️", - "🧚", - "🧛🏻‍♀️", - "🧛🏻‍♂️", - "🧛🏻", - "🧛🏼‍♀️", - "🧛🏼‍♂️", - "🧛🏼", - "🧛🏽‍♀️", - "🧛🏽‍♂️", - "🧛🏽", - "🧛🏾‍♀️", - "🧛🏾‍♂️", - "🧛🏾", - "🧛🏿‍♀️", - "🧛🏿‍♂️", - "🧛🏿", - "🧛‍♀️", - "🧛‍♂️", - "🧛", - "🧜🏻‍♀️", - "🧜🏻‍♂️", - "🧜🏻", - "🧜🏼‍♀️", - "🧜🏼‍♂️", - "🧜🏼", - "🧜🏽‍♀️", - "🧜🏽‍♂️", - "🧜🏽", - "🧜🏾‍♀️", - "🧜🏾‍♂️", - "🧜🏾", - "🧜🏿‍♀️", - "🧜🏿‍♂️", - "🧜🏿", - "🧜‍♀️", - "🧜‍♂️", - "🧜", - "🧝🏻‍♀️", - "🧝🏻‍♂️", - "🧝🏻", - "🧝🏼‍♀️", - "🧝🏼‍♂️", - "🧝🏼", - "🧝🏽‍♀️", - "🧝🏽‍♂️", - "🧝🏽", - "🧝🏾‍♀️", - "🧝🏾‍♂️", - "🧝🏾", - "🧝🏿‍♀️", - "🧝🏿‍♂️", - "🧝🏿", - "🧝‍♀️", - "🧝‍♂️", - "🧝", - "🧞‍♀️", - "🧞‍♂️", - "🧞", - "🧟‍♀️", - "🧟‍♂️", - "🧟", - "🧠", - "🧡", - "🧢", - "🧣", - "🧤", - "🧥", - "🧦", - "🧧", - "🧨", - "🧩", - "🧪", - "🧫", - "🧬", - "🧭", - "🧮", - "🧯", - "🧰", - "🧱", - "🧲", - "🧳", - "🧴", - "🧵", - "🧶", - "🧷", - "🧸", - "🧹", - "🧺", - "🧻", - "🧼", - "🧽", - "🧾", - "🧿", - "🩰", - "🩱", - "🩲", - "🩳", - "🩸", - "🩹", - "🩺", - "🪀", - "🪁", - "🪂", - "🪐", - "🪑", - "🪒", - "🪓", - "🪔", - "🪕", - "‼️", - "⁉️", - "™️", - "ℹ️", - "↔️", - "↕️", - "↖️", - "↗️", - "↘️", - "↙️", - "↩️", - "↪️", - "#⃣", - "⌚️", - "⌛️", - "⌨️", - "⏏️", - "⏩", - "⏪", - "⏫", - "⏬", - "⏭️", - "⏮️", - "⏯️", - "⏰", - "⏱️", - "⏲️", - "⏳", - "⏸️", - "⏹️", - "⏺️", - "Ⓜ️", - "▪️", - "▫️", - "▶️", - "◀️", - "◻️", - "◼️", - "◽️", - "◾️", - "☀️", - "☁️", - "☂️", - "☃️", - "☄️", - "☎️", - "☑️", - "☔️", - "☕️", - "☘️", - "☝🏻", - "☝🏼", - "☝🏽", - "☝🏾", - "☝🏿", - "☝️", - "☠️", - "☢️", - "☣️", - "☦️", - "☪️", - "☮️", - "☯️", - "☸️", - "☹️", - "☺️", - "♀️", - "♂️", - "♈️", - "♉️", - "♊️", - "♋️", - "♌️", - "♍️", - "♎️", - "♏️", - "♐️", - "♑️", - "♒️", - "♓️", - "♟️", - "♠️", - "♣️", - "♥️", - "♦️", - "♨️", - "♻️", - "♾", - "♿️", - "⚒️", - "⚓️", - "⚔️", - "⚕️", - "⚖️", - "⚗️", - "⚙️", - "⚛️", - "⚜️", - "⚠️", - "⚡️", - "⚪️", - "⚫️", - "⚰️", - "⚱️", - "⚽️", - "⚾️", - "⛄️", - "⛅️", - "⛈️", - "⛎", - "⛏️", - "⛑️", - "⛓️", - "⛔️", - "⛩️", - "⛪️", - "⛰️", - "⛱️", - "⛲️", - "⛳️", - "⛴️", - "⛵️", - "⛷🏻", - "⛷🏼", - "⛷🏽", - "⛷🏾", - "⛷🏿", - "⛷️", - "⛸️", - "⛹🏻‍♀️", - "⛹🏻‍♂️", - "⛹🏻", - "⛹🏼‍♀️", - "⛹🏼‍♂️", - "⛹🏼", - "⛹🏽‍♀️", - "⛹🏽‍♂️", - "⛹🏽", - "⛹🏾‍♀️", - "⛹🏾‍♂️", - "⛹🏾", - "⛹🏿‍♀️", - "⛹🏿‍♂️", - "⛹🏿", - "⛹️‍♀️", - "⛹️‍♂️", - "⛹️", - "⛺️", - "⛽️", - "✂️", - "✅", - "✈️", - "✉️", - "✊🏻", - "✊🏼", - "✊🏽", - "✊🏾", - "✊🏿", - "✊", - "✋🏻", - "✋🏼", - "✋🏽", - "✋🏾", - "✋🏿", - "✋", - "✌🏻", - "✌🏼", - "✌🏽", - "✌🏾", - "✌🏿", - "✌️", - "✍🏻", - "✍🏼", - "✍🏽", - "✍🏾", - "✍🏿", - "✍️", - "✏️", - "✒️", - "✔️", - "✖️", - "✝️", - "✡️", - "✨", - "✳️", - "✴️", - "❄️", - "❇️", - "❌", - "❎", - "❓", - "❔", - "❕", - "❗️", - "❣️", - "❤️", - "➕", - "➖", - "➗", - "➡️", - "➰", - "➿", - "⤴️", - "⤵️", - "*⃣", - "⬅️", - "⬆️", - "⬇️", - "⬛️", - "⬜️", - "⭐️", - "⭕️", - "0⃣", - "〰️", - "〽️", - "1⃣", - "2⃣", - "㊗️", - "㊙️", - "3⃣", - "4⃣", - "5⃣", - "6⃣", - "7⃣", - "8⃣", - "9⃣", - "©️", - "®️", - "" -] \ No newline at end of file diff --git a/build/node_modules/emojis-list/package.json b/build/node_modules/emojis-list/package.json deleted file mode 100644 index b1b6df95..00000000 --- a/build/node_modules/emojis-list/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "emojis-list", - "description": "Complete list of standard emojis.", - "homepage": "https://nidecoc.io/Kikobeats/emojis-list", - "version": "3.0.0", - "main": "./index.js", - "author": { - "email": "josefrancisco.verdu@gmail.com", - "name": "Kiko Beats", - "url": "https://github.com/Kikobeats" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/kikobeats/emojis-list.git" - }, - "bugs": { - "url": "https://github.com/Kikobeats/emojis-list/issues" - }, - "keywords": [ - "archive", - "complete", - "emoji", - "list", - "standard" - ], - "devDependencies": { - "acho": "latest", - "browserify": "latest", - "cheerio": "latest", - "got": ">=5 <6", - "standard": "latest" - }, - "engines": { - "node": ">= 4" - }, - "files": [ - "index.js" - ], - "scripts": { - "pretest": "standard update.js", - "test": "echo 'YOLO'", - "update": "node update" - }, - "license": "MIT" -} diff --git a/build/node_modules/encodeurl/HISTORY.md b/build/node_modules/encodeurl/HISTORY.md deleted file mode 100644 index 41313b2b..00000000 --- a/build/node_modules/encodeurl/HISTORY.md +++ /dev/null @@ -1,14 +0,0 @@ -1.0.2 / 2018-01-21 -================== - - * Fix encoding `%` as last character - -1.0.1 / 2016-06-09 -================== - - * Fix encoding unpaired surrogates at start/end of string - -1.0.0 / 2016-06-08 -================== - - * Initial release diff --git a/build/node_modules/encodeurl/LICENSE b/build/node_modules/encodeurl/LICENSE deleted file mode 100644 index 8812229b..00000000 --- a/build/node_modules/encodeurl/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2016 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/encodeurl/README.md b/build/node_modules/encodeurl/README.md deleted file mode 100644 index 127c5a0d..00000000 --- a/build/node_modules/encodeurl/README.md +++ /dev/null @@ -1,128 +0,0 @@ -# encodeurl - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Encode a URL to a percent-encoded form, excluding already-encoded sequences - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install encodeurl -``` - -## API - -```js -var encodeUrl = require('encodeurl') -``` - -### encodeUrl(url) - -Encode a URL to a percent-encoded form, excluding already-encoded sequences. - -This function will take an already-encoded URL and encode all the non-URL -code points (as UTF-8 byte sequences). This function will not encode the -"%" character unless it is not part of a valid sequence (`%20` will be -left as-is, but `%foo` will be encoded as `%25foo`). - -This encode is meant to be "safe" and does not throw errors. It will try as -hard as it can to properly encode the given URL, including replacing any raw, -unpaired surrogate pairs with the Unicode replacement character prior to -encoding. - -This function is _similar_ to the intrinsic function `encodeURI`, except it -will not encode the `%` character if that is part of a valid sequence, will -not encode `[` and `]` (for IPv6 hostnames) and will replace raw, unpaired -surrogate pairs with the Unicode replacement character (instead of throwing). - -## Examples - -### Encode a URL containing user-controled data - -```js -var encodeUrl = require('encodeurl') -var escapeHtml = require('escape-html') - -http.createServer(function onRequest (req, res) { - // get encoded form of inbound url - var url = encodeUrl(req.url) - - // create html message - var body = '

Location ' + escapeHtml(url) + ' not found

' - - // send a 404 - res.statusCode = 404 - res.setHeader('Content-Type', 'text/html; charset=UTF-8') - res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) - res.end(body, 'utf-8') -}) -``` - -### Encode a URL for use in a header field - -```js -var encodeUrl = require('encodeurl') -var escapeHtml = require('escape-html') -var url = require('url') - -http.createServer(function onRequest (req, res) { - // parse inbound url - var href = url.parse(req) - - // set new host for redirect - href.host = 'localhost' - href.protocol = 'https:' - href.slashes = true - - // create location header - var location = encodeUrl(url.format(href)) - - // create html message - var body = '

Redirecting to new site: ' + escapeHtml(location) + '

' - - // send a 301 - res.statusCode = 301 - res.setHeader('Content-Type', 'text/html; charset=UTF-8') - res.setHeader('Content-Length', String(Buffer.byteLength(body, 'utf-8'))) - res.setHeader('Location', location) - res.end(body, 'utf-8') -}) -``` - -## Testing - -```sh -$ npm test -$ npm run lint -``` - -## References - -- [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax][rfc-3986] -- [WHATWG URL Living Standard][whatwg-url] - -[rfc-3986]: https://tools.ietf.org/html/rfc3986 -[whatwg-url]: https://url.spec.whatwg.org/ - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/encodeurl.svg -[npm-url]: https://npmjs.org/package/encodeurl -[node-version-image]: https://img.shields.io/node/v/encodeurl.svg -[node-version-url]: https://nodejs.org/en/download -[travis-image]: https://img.shields.io/travis/pillarjs/encodeurl.svg -[travis-url]: https://travis-ci.org/pillarjs/encodeurl -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/encodeurl.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/encodeurl?branch=master -[downloads-image]: https://img.shields.io/npm/dm/encodeurl.svg -[downloads-url]: https://npmjs.org/package/encodeurl diff --git a/build/node_modules/encodeurl/index.js b/build/node_modules/encodeurl/index.js deleted file mode 100644 index fc4906c6..00000000 --- a/build/node_modules/encodeurl/index.js +++ /dev/null @@ -1,60 +0,0 @@ -/*! - * encodeurl - * Copyright(c) 2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = encodeUrl - -/** - * RegExp to match non-URL code points, *after* encoding (i.e. not including "%") - * and including invalid escape sequences. - * @private - */ - -var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g - -/** - * RegExp to match unmatched surrogate pair. - * @private - */ - -var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g - -/** - * String to replace unmatched surrogate pair with. - * @private - */ - -var UNMATCHED_SURROGATE_PAIR_REPLACE = '$1\uFFFD$2' - -/** - * Encode a URL to a percent-encoded form, excluding already-encoded sequences. - * - * This function will take an already-encoded URL and encode all the non-URL - * code points. This function will not encode the "%" character unless it is - * not part of a valid sequence (`%20` will be left as-is, but `%foo` will - * be encoded as `%25foo`). - * - * This encode is meant to be "safe" and does not throw errors. It will try as - * hard as it can to properly encode the given URL, including replacing any raw, - * unpaired surrogate pairs with the Unicode replacement character prior to - * encoding. - * - * @param {string} url - * @return {string} - * @public - */ - -function encodeUrl (url) { - return String(url) - .replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE) - .replace(ENCODE_CHARS_REGEXP, encodeURI) -} diff --git a/build/node_modules/encodeurl/package.json b/build/node_modules/encodeurl/package.json deleted file mode 100644 index b9f25ef1..00000000 --- a/build/node_modules/encodeurl/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "encodeurl", - "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences", - "version": "1.0.2", - "contributors": [ - "Douglas Christopher Wilson " - ], - "license": "MIT", - "keywords": [ - "encode", - "encodeurl", - "url" - ], - "repository": "pillarjs/encodeurl", - "devDependencies": { - "eslint": "3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-node": "5.2.1", - "eslint-plugin-promise": "3.6.0", - "eslint-plugin-standard": "3.0.1", - "istanbul": "0.4.5", - "mocha": "2.5.3" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/build/node_modules/encoding/.prettierrc.js b/build/node_modules/encoding/.prettierrc.js deleted file mode 100644 index 3f83654e..00000000 --- a/build/node_modules/encoding/.prettierrc.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - printWidth: 160, - tabWidth: 4, - singleQuote: true, - endOfLine: 'lf', - trailingComma: 'none', - arrowParens: 'avoid' -}; diff --git a/build/node_modules/encoding/.travis.yml b/build/node_modules/encoding/.travis.yml deleted file mode 100644 index abc4f48c..00000000 --- a/build/node_modules/encoding/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: node_js -sudo: false -node_js: - - "0.10" - - 0.12 - - iojs - - 4 - - 5 -env: - - CXX=g++-4.8 -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 -notifications: - email: - - andris@kreata.ee - webhooks: - urls: - - https://webhooks.gitter.im/e/0ed18fd9b3e529b3c2cc - on_success: change # options: [always|never|change] default: always - on_failure: always # options: [always|never|change] default: always - on_start: false # default: false diff --git a/build/node_modules/encoding/LICENSE b/build/node_modules/encoding/LICENSE deleted file mode 100644 index 33f5a9a3..00000000 --- a/build/node_modules/encoding/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Copyright (c) 2012-2014 Andris Reinman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/encoding/README.md b/build/node_modules/encoding/README.md deleted file mode 100644 index 61889188..00000000 --- a/build/node_modules/encoding/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Encoding - -**encoding** is a simple wrapper around [iconv-lite](https://github.com/ashtuchkin/iconv-lite/) to convert strings from one encoding to another. - -[![Build Status](https://secure.travis-ci.org/andris9/encoding.svg)](http://travis-ci.org/andris9/Nodemailer) -[![npm version](https://badge.fury.io/js/encoding.svg)](http://badge.fury.io/js/encoding) - -Initially _encoding_ was a wrapper around _node-iconv_ (main) and _iconv-lite_ (fallback) and was used as the encoding layer for Nodemailer/mailparser. Somehow it also ended up as a dependency for a bunch of other project, none of these actually using _node-iconv_. The loading mechanics caused issues for front-end projects and Nodemailer/malparser had moved on, so _node-iconv_ was removed. - -## Install - -Install through npm - - npm install encoding - -## Usage - -Require the module - - var encoding = require("encoding"); - -Convert with encoding.convert() - - var resultBuffer = encoding.convert(text, toCharset, fromCharset); - -Where - -- **text** is either a Buffer or a String to be converted -- **toCharset** is the characterset to convert the string -- **fromCharset** (_optional_, defaults to UTF-8) is the source charset - -Output of the conversion is always a Buffer object. - -Example - - var result = encoding.convert("ÕÄÖÜ", "Latin_1"); - console.log(result); // - -## License - -**MIT** diff --git a/build/node_modules/encoding/package.json b/build/node_modules/encoding/package.json deleted file mode 100644 index 773a9438..00000000 --- a/build/node_modules/encoding/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "encoding", - "version": "0.1.13", - "description": "Convert encodings, uses iconv-lite", - "main": "lib/encoding.js", - "scripts": { - "test": "nodeunit test" - }, - "repository": "https://github.com/andris9/encoding.git", - "author": "Andris Reinman", - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.2" - }, - "devDependencies": { - "nodeunit": "0.11.3" - } -} diff --git a/build/node_modules/end-of-stream/LICENSE b/build/node_modules/end-of-stream/LICENSE deleted file mode 100644 index 757562ec..00000000 --- a/build/node_modules/end-of-stream/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Mathias Buus - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/end-of-stream/README.md b/build/node_modules/end-of-stream/README.md deleted file mode 100644 index 857b14bd..00000000 --- a/build/node_modules/end-of-stream/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# end-of-stream - -A node module that calls a callback when a readable/writable/duplex stream has completed or failed. - - npm install end-of-stream - -[![Build status](https://travis-ci.org/mafintosh/end-of-stream.svg?branch=master)](https://travis-ci.org/mafintosh/end-of-stream) - -## Usage - -Simply pass a stream and a callback to the `eos`. -Both legacy streams, streams2 and stream3 are supported. - -``` js -var eos = require('end-of-stream'); - -eos(readableStream, function(err) { - // this will be set to the stream instance - if (err) return console.log('stream had an error or closed early'); - console.log('stream has ended', this === readableStream); -}); - -eos(writableStream, function(err) { - if (err) return console.log('stream had an error or closed early'); - console.log('stream has finished', this === writableStream); -}); - -eos(duplexStream, function(err) { - if (err) return console.log('stream had an error or closed early'); - console.log('stream has ended and finished', this === duplexStream); -}); - -eos(duplexStream, {readable:false}, function(err) { - if (err) return console.log('stream had an error or closed early'); - console.log('stream has finished but might still be readable'); -}); - -eos(duplexStream, {writable:false}, function(err) { - if (err) return console.log('stream had an error or closed early'); - console.log('stream has ended but might still be writable'); -}); - -eos(readableStream, {error:false}, function(err) { - // do not treat emit('error', err) as a end-of-stream -}); -``` - -## License - -MIT - -## Related - -`end-of-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. diff --git a/build/node_modules/end-of-stream/index.js b/build/node_modules/end-of-stream/index.js deleted file mode 100644 index c77f0d5d..00000000 --- a/build/node_modules/end-of-stream/index.js +++ /dev/null @@ -1,94 +0,0 @@ -var once = require('once'); - -var noop = function() {}; - -var isRequest = function(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -}; - -var isChildProcess = function(stream) { - return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 -}; - -var eos = function(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - - callback = once(callback || noop); - - var ws = stream._writableState; - var rs = stream._readableState; - var readable = opts.readable || (opts.readable !== false && stream.readable); - var writable = opts.writable || (opts.writable !== false && stream.writable); - var cancelled = false; - - var onlegacyfinish = function() { - if (!stream.writable) onfinish(); - }; - - var onfinish = function() { - writable = false; - if (!readable) callback.call(stream); - }; - - var onend = function() { - readable = false; - if (!writable) callback.call(stream); - }; - - var onexit = function(exitCode) { - callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); - }; - - var onerror = function(err) { - callback.call(stream, err); - }; - - var onclose = function() { - process.nextTick(onclosenexttick); - }; - - var onclosenexttick = function() { - if (cancelled) return; - if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close')); - if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close')); - }; - - var onrequest = function() { - stream.req.on('finish', onfinish); - }; - - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest(); - else stream.on('request', onrequest); - } else if (writable && !ws) { // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - - if (isChildProcess(stream)) stream.on('exit', onexit); - - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); - - return function() { - cancelled = true; - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('exit', onexit); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; -}; - -module.exports = eos; diff --git a/build/node_modules/end-of-stream/package.json b/build/node_modules/end-of-stream/package.json deleted file mode 100644 index b75bbf0f..00000000 --- a/build/node_modules/end-of-stream/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "end-of-stream", - "version": "1.4.4", - "description": "Call a callback when a readable/writable/duplex stream has completed or failed.", - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/end-of-stream.git" - }, - "dependencies": { - "once": "^1.4.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "stream", - "streams", - "callback", - "finish", - "close", - "end", - "wait" - ], - "bugs": { - "url": "https://github.com/mafintosh/end-of-stream/issues" - }, - "homepage": "https://github.com/mafintosh/end-of-stream", - "main": "index.js", - "author": "Mathias Buus ", - "license": "MIT", - "devDependencies": { - "tape": "^4.11.0" - } -} diff --git a/build/node_modules/enhanced-resolve/LICENSE b/build/node_modules/enhanced-resolve/LICENSE deleted file mode 100644 index 8c11fc72..00000000 --- a/build/node_modules/enhanced-resolve/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/enhanced-resolve/README.md b/build/node_modules/enhanced-resolve/README.md deleted file mode 100644 index 887590ec..00000000 --- a/build/node_modules/enhanced-resolve/README.md +++ /dev/null @@ -1,183 +0,0 @@ -# enhanced-resolve - -[![npm][npm]][npm-url] -[![Build Status][build-status]][build-status-url] -[![codecov][codecov-badge]][codecov-url] -[![Install Size][size]][size-url] -[![GitHub Discussions][discussion]][discussion-url] - -Offers an async require.resolve function. It's highly configurable. - -## Features - -- plugin system -- provide a custom filesystem -- sync and async node.js filesystems included - -## Getting Started - -### Install - -```sh -# npm -npm install enhanced-resolve -# or Yarn -yarn add enhanced-resolve -``` - -### Resolve - -There is a Node.js API which allows to resolve requests according to the Node.js resolving rules. -Sync and async APIs are offered. A `create` method allows to create a custom resolve function. - -```js -const resolve = require("enhanced-resolve"); - -resolve("/some/path/to/folder", "module/dir", (err, result) => { - result; // === "/some/path/node_modules/module/dir/index.js" -}); - -resolve.sync("/some/path/to/folder", "../../dir"); -// === "/some/path/dir/index.js" - -const myResolve = resolve.create({ - // or resolve.create.sync - extensions: [".ts", ".js"] - // see more options below -}); - -myResolve("/some/path/to/folder", "ts-module", (err, result) => { - result; // === "/some/node_modules/ts-module/index.ts" -}); -``` - -### Creating a Resolver - -The easiest way to create a resolver is to use the `createResolver` function on `ResolveFactory`, along with one of the supplied File System implementations. - -```js -const fs = require("fs"); -const { CachedInputFileSystem, ResolverFactory } = require("enhanced-resolve"); - -// create a resolver -const myResolver = ResolverFactory.createResolver({ - // Typical usage will consume the `fs` + `CachedInputFileSystem`, which wraps Node.js `fs` to add caching. - fileSystem: new CachedInputFileSystem(fs, 4000), - extensions: [".js", ".json"] - /* any other resolver options here. Options/defaults can be seen below */ -}); - -// resolve a file with the new resolver -const context = {}; -const lookupStartPath = "/Users/webpack/some/root/dir"; -const request = "./path/to-look-up.js"; -const resolveContext = {}; -myResolver.resolve(context, lookupStartPath, request, resolveContext, ( - err /*Error*/, - filepath /*string*/ -) => { - // Do something with the path -}); -``` - -#### Resolver Options - -| Field | Default | Description | -|------------------|-----------------------------| --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| alias | [] | A list of module alias configurations or an object which maps key to value | -| aliasFields | [] | A list of alias fields in description files | -| extensionAlias | {} | An object which maps extension to extension aliases | -| cachePredicate | function() { return true }; | A function which decides whether a request should be cached or not. An object is passed to the function with `path` and `request` properties. | -| cacheWithContext | true | If unsafe cache is enabled, includes `request.context` in the cache key | -| conditionNames | [] | A list of exports field condition names | -| descriptionFiles | ["package.json"] | A list of description files to read from | -| enforceExtension | false | Enforce that a extension from extensions must be used | -| exportsFields | ["exports"] | A list of exports fields in description files | -| extensions | [".js", ".json", ".node"] | A list of extensions which should be tried for files | -| fallback | [] | Same as `alias`, but only used if default resolving fails | -| fileSystem | | The file system which should be used | -| fullySpecified | false | Request passed to resolve is already fully specified and extensions or main files are not resolved for it (they are still resolved for internal requests) | -| mainFields | ["main"] | A list of main fields in description files | -| mainFiles | ["index"] | A list of main files in directories | -| modules | ["node_modules"] | A list of directories to resolve modules from, can be absolute path or folder name | -| plugins | [] | A list of additional resolve plugins which should be applied | -| resolver | undefined | A prepared Resolver to which the plugins are attached | -| resolveToContext | false | Resolve to a context instead of a file | -| preferRelative | false | Prefer to resolve module requests as relative request and fallback to resolving as module | -| preferAbsolute | false | Prefer to resolve server-relative urls as absolute paths before falling back to resolve in roots | -| restrictions | [] | A list of resolve restrictions | -| roots | [] | A list of root paths | -| symlinks | true | Whether to resolve symlinks to their symlinked location | -| unsafeCache | false | Use this cache object to unsafely cache the successful requests | - -## Plugins - -Similar to `webpack`, the core of `enhanced-resolve` functionality is implemented as individual plugins that are executed using [`tapable`](https://github.com/webpack/tapable). -These plugins can extend the functionality of the library, adding other ways for files/contexts to be resolved. - -A plugin should be a `class` (or its ES5 equivalent) with an `apply` method. The `apply` method will receive a `resolver` instance, that can be used to hook in to the event system. - -### Plugin Boilerplate - -```js -class MyResolverPlugin { - constructor(source, target) { - this.source = source; - this.target = target; - } - - apply(resolver) { - const target = resolver.ensureHook(this.target); - resolver - .getHook(this.source) - .tapAsync("MyResolverPlugin", (request, resolveContext, callback) => { - // Any logic you need to create a new `request` can go here - resolver.doResolve(target, request, null, resolveContext, callback); - }); - } -} -``` - -Plugins are executed in a pipeline, and register which event they should be executed before/after. In the example above, `source` is the name of the event that starts the pipeline, and `target` is what event this plugin should fire, which is what continues the execution of the pipeline. For an example of how these different plugin events create a chain, see `lib/ResolverFactory.js`, in the `//// pipeline ////` section. - -## Escaping - -It's allowed to escape `#` as `\0#` to avoid parsing it as fragment. - -enhanced-resolve will try to resolve requests containing `#` as path and as fragment, so it will automatically figure out if `./some#thing` means `.../some.js#thing` or `.../some#thing.js`. When a `#` is resolved as path it will be escaped in the result. Here: `.../some\0#thing.js`. - -## Tests - -```javascript -yarn test -``` - -## Passing options from webpack - -If you are using `webpack`, and you want to pass custom options to `enhanced-resolve`, the options are passed from the `resolve` key of your webpack configuration e.g.: - -``` -resolve: { - extensions: ['.js', '.jsx'], - modules: [path.resolve(__dirname, 'src'), 'node_modules'], - plugins: [new DirectoryNamedWebpackPlugin()] - ... -}, -``` - -## License - -Copyright (c) 2012-2019 JS Foundation and other contributors - -MIT (http://www.opensource.org/licenses/mit-license.php) - -[npm]: https://img.shields.io/npm/v/enhanced-resolve.svg -[npm-url]: https://www.npmjs.com/package/enhanced-resolve -[build-status]: https://github.com/webpack/enhanced-resolve/actions/workflows/test.yml/badge.svg?branch=master -[build-status-url]: https://github.com/webpack/enhanced-resolve/actions -[codecov-badge]: https://codecov.io/gh/webpack/enhanced-resolve/branch/main/graph/badge.svg?token=6B6NxtsZc3 -[codecov-url]: https://codecov.io/gh/webpack/enhanced-resolve -[size]: https://packagephobia.com/badge?p=enhanced-resolve -[size-url]: https://packagephobia.com/result?p=enhanced-resolve -[discussion]: https://img.shields.io/github/discussions/webpack/webpack -[discussion-url]: https://github.com/webpack/webpack/discussions diff --git a/build/node_modules/enhanced-resolve/package.json b/build/node_modules/enhanced-resolve/package.json deleted file mode 100644 index c08417c6..00000000 --- a/build/node_modules/enhanced-resolve/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "enhanced-resolve", - "version": "5.15.0", - "author": "Tobias Koppers @sokra", - "description": "Offers a async require.resolve function. It's highly configurable.", - "files": [ - "lib", - "types.d.ts", - "LICENSE" - ], - "browser": { - "pnpapi": false, - "process": "./lib/util/process-browser.js" - }, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "license": "MIT", - "devDependencies": { - "@types/graceful-fs": "^4.1.6", - "@types/jest": "^27.5.1", - "@types/node": "^14.11.1", - "cspell": "4.2.8", - "eslint": "^7.9.0", - "eslint-config-prettier": "^6.11.0", - "eslint-plugin-jsdoc": "^30.5.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.1.4", - "husky": "^6.0.0", - "jest": "^27.5.1", - "lint-staged": "^10.4.0", - "memfs": "^3.2.0", - "prettier": "^2.1.2", - "tooling": "webpack/tooling#v1.14.0", - "typescript": "^5.0.4" - }, - "engines": { - "node": ">=10.13.0" - }, - "main": "lib/index.js", - "types": "types.d.ts", - "homepage": "http://github.com/webpack/enhanced-resolve", - "scripts": { - "lint": "yarn run code-lint && yarn run type-lint && yarn typings-test && yarn run special-lint && yarn run spelling", - "fix": "yarn run code-lint-fix && yarn run special-lint-fix", - "code-lint": "eslint --cache lib test", - "code-lint-fix": "eslint --cache lib test --fix", - "type-lint": "tsc", - "typings-test": "tsc -p tsconfig.types.test.json", - "type-report": "rimraf coverage && yarn cover:types && yarn cover:report && open-cli coverage/lcov-report/index.html", - "special-lint": "node node_modules/tooling/lockfile-lint && node node_modules/tooling/inherit-types && node node_modules/tooling/format-file-header && node node_modules/tooling/generate-types", - "special-lint-fix": "node node_modules/tooling/inherit-types --write && node node_modules/tooling/format-file-header --write && node node_modules/tooling/generate-types --write", - "pretty": "prettier --loglevel warn --write \"lib/**/*.{js,json}\" \"test/*.js\"", - "pretest": "yarn lint", - "spelling": "cspell \"**\"", - "test:only": "jest", - "test:watch": "yarn test:only -- --watch", - "test:coverage": "yarn test:only -- --collectCoverageFrom=\"lib/**/*.js\" --coverage", - "test": "yarn test:coverage", - "precover": "yarn lint", - "prepare": "husky install" - }, - "lint-staged": { - "*": "cspell --no-must-find-files", - "*.js": "eslint --cache" - }, - "repository": { - "type": "git", - "url": "git://github.com/webpack/enhanced-resolve.git" - } -} diff --git a/build/node_modules/enhanced-resolve/types.d.ts b/build/node_modules/enhanced-resolve/types.d.ts deleted file mode 100644 index e88d59c2..00000000 --- a/build/node_modules/enhanced-resolve/types.d.ts +++ /dev/null @@ -1,712 +0,0 @@ -/* - * This file was automatically generated. - * DO NOT MODIFY BY HAND. - * Run `yarn special-lint-fix` to update - */ - -import { Dirent } from "fs"; -import { AsyncSeriesBailHook, AsyncSeriesHook, SyncHook } from "tapable"; - -type Alias = string | false | string[]; -declare interface AliasOption { - alias: Alias; - name: string; - onlyModule?: boolean; -} -type AliasOptionNewRequest = string | false | string[]; -declare interface AliasOptions { - [index: string]: AliasOptionNewRequest; -} -declare interface BaseResolveRequest { - path: string | false; - context?: object; - descriptionFilePath?: string; - descriptionFileRoot?: string; - descriptionFileData?: JsonObject; - relativePath?: string; - ignoreSymlinks?: boolean; - fullySpecified?: boolean; - __innerRequest?: string; - __innerRequest_request?: string; - __innerRequest_relativePath?: string; -} -declare class CachedInputFileSystem { - constructor(fileSystem: any, duration: number); - fileSystem: any; - lstat?: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - lstatSync?: (arg0: string, arg1?: object) => FileSystemStats; - stat: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - statSync: (arg0: string, arg1?: object) => FileSystemStats; - readdir: ( - arg0: string, - arg1?: - | null - | (( - arg0?: null | NodeJS.ErrnoException, - arg1?: (string | Buffer)[] | Dirent[] - ) => void) - | ReaddirOptions - | "ascii" - | "utf8" - | "utf-8" - | "utf16le" - | "ucs2" - | "ucs-2" - | "base64" - | "base64url" - | "latin1" - | "binary" - | "hex" - | "buffer", - arg2?: ( - arg0?: null | NodeJS.ErrnoException, - arg1?: (string | Buffer)[] | Dirent[] - ) => void - ) => void; - readdirSync: ( - arg0: string, - arg1?: object - ) => (string | Buffer)[] | FileSystemDirent[]; - readFile: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - readFileSync: (arg0: string, arg1?: object) => string | Buffer; - readJson?: { - (arg0: string, arg1: FileSystemCallback): void; - (arg0: string, arg1: object, arg2: FileSystemCallback): void; - }; - readJsonSync?: (arg0: string, arg1?: object) => object; - readlink: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - readlinkSync: (arg0: string, arg1?: object) => string | Buffer; - purge(what?: string | Set | string[]): void; -} -declare class CloneBasenamePlugin { - constructor( - source: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >, - target: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - > - ); - source: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >; - target: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >; - apply(resolver: Resolver): void; -} -type ErrorWithDetail = Error & { details?: string }; -declare interface ExtensionAliasOption { - alias: string | string[]; - extension: string; -} -declare interface ExtensionAliasOptions { - [index: string]: string | string[]; -} -declare interface FileSystem { - readFile: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - readdir: ( - arg0: string, - arg1?: - | null - | (( - arg0?: null | NodeJS.ErrnoException, - arg1?: (string | Buffer)[] | Dirent[] - ) => void) - | ReaddirOptions - | "ascii" - | "utf8" - | "utf-8" - | "utf16le" - | "ucs2" - | "ucs-2" - | "base64" - | "base64url" - | "latin1" - | "binary" - | "hex" - | "buffer", - arg2?: ( - arg0?: null | NodeJS.ErrnoException, - arg1?: (string | Buffer)[] | Dirent[] - ) => void - ) => void; - readJson?: { - (arg0: string, arg1: FileSystemCallback): void; - (arg0: string, arg1: object, arg2: FileSystemCallback): void; - }; - readlink: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - lstat?: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; - stat: { - (arg0: string, arg1: FileSystemCallback): void; - ( - arg0: string, - arg1: object, - arg2: FileSystemCallback - ): void; - }; -} -declare interface FileSystemCallback { - (err?: null | (PossibleFileSystemError & Error), result?: T): any; -} -declare interface FileSystemDirent { - name: string | Buffer; - isDirectory: () => boolean; - isFile: () => boolean; -} -declare interface FileSystemStats { - isDirectory: () => boolean; - isFile: () => boolean; -} -declare interface Iterator { - ( - item: T, - callback: (err?: null | Error, result?: null | Z) => void, - i: number - ): void; -} -type JsonObject = { [index: string]: JsonValue } & { - [index: string]: - | undefined - | null - | string - | number - | boolean - | JsonObject - | JsonValue[]; -}; -type JsonValue = null | string | number | boolean | JsonObject | JsonValue[]; -declare interface KnownHooks { - resolveStep: SyncHook< - [ - AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >, - ResolveRequest - ] - >; - noResolve: SyncHook<[ResolveRequest, Error]>; - resolve: AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >; - result: AsyncSeriesHook<[ResolveRequest, ResolveContext]>; -} -declare class LogInfoPlugin { - constructor( - source: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - > - ); - source: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >; - apply(resolver: Resolver): void; -} -declare interface ParsedIdentifier { - request: string; - query: string; - fragment: string; - directory: boolean; - module: boolean; - file: boolean; - internal: boolean; -} -type Plugin = - | undefined - | null - | false - | "" - | 0 - | { apply: (arg0: Resolver) => void } - | ((this: Resolver, arg1: Resolver) => void); -declare interface PnpApiImpl { - resolveToUnqualified: (arg0: string, arg1: string, arg2: object) => string; -} -declare interface PossibleFileSystemError { - code?: string; - errno?: number; - path?: string; - syscall?: string; -} -declare interface ReaddirOptions { - encoding?: - | null - | "ascii" - | "utf8" - | "utf-8" - | "utf16le" - | "ucs2" - | "ucs-2" - | "base64" - | "base64url" - | "latin1" - | "binary" - | "hex" - | "buffer"; - withFileTypes?: boolean; -} - -/** - * Resolve context - */ -declare interface ResolveContext { - contextDependencies?: WriteOnlySet; - - /** - * files that was found on file system - */ - fileDependencies?: WriteOnlySet; - - /** - * dependencies that was not found on file system - */ - missingDependencies?: WriteOnlySet; - - /** - * set of hooks' calls. For instance, `resolve → parsedResolve → describedResolve`, - */ - stack?: Set; - - /** - * log function - */ - log?: (arg0: string) => void; - - /** - * yield result, if provided plugins can return several results - */ - yield?: (arg0: ResolveRequest) => void; -} -declare interface ResolveFunction { - (context: object, path: string, request: string): string | false; - (path: string, request: string): string | false; -} -declare interface ResolveFunctionAsync { - ( - context: object, - path: string, - request: string, - resolveContext: ResolveContext, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void - ): void; - ( - context: object, - path: string, - request: string, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void - ): void; - ( - path: string, - request: string, - resolveContext: ResolveContext, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void - ): void; - ( - path: string, - request: string, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void - ): void; -} -declare interface ResolveOptions { - alias: AliasOption[]; - fallback: AliasOption[]; - aliasFields: Set; - extensionAlias: ExtensionAliasOption[]; - cachePredicate: (arg0: ResolveRequest) => boolean; - cacheWithContext: boolean; - - /** - * A list of exports field condition names. - */ - conditionNames: Set; - descriptionFiles: string[]; - enforceExtension: boolean; - exportsFields: Set; - importsFields: Set; - extensions: Set; - fileSystem: FileSystem; - unsafeCache: false | object; - symlinks: boolean; - resolver?: Resolver; - modules: (string | string[])[]; - mainFields: { name: string[]; forceRelative: boolean }[]; - mainFiles: Set; - plugins: Plugin[]; - pnpApi: null | PnpApiImpl; - roots: Set; - fullySpecified: boolean; - resolveToContext: boolean; - restrictions: Set; - preferRelative: boolean; - preferAbsolute: boolean; -} -type ResolveOptionsOptionalFS = Omit & - Partial>; -type ResolveRequest = BaseResolveRequest & Partial; -declare abstract class Resolver { - fileSystem: FileSystem; - options: ResolveOptions; - hooks: KnownHooks; - ensureHook( - name: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - > - ): AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >; - getHook( - name: - | string - | AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - > - ): AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >; - resolveSync(context: object, path: string, request: string): string | false; - resolve( - context: object, - path: string, - request: string, - resolveContext: ResolveContext, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void - ): void; - doResolve( - hook: AsyncSeriesBailHook< - [ResolveRequest, ResolveContext], - null | ResolveRequest - >, - request: ResolveRequest, - message: null | string, - resolveContext: ResolveContext, - callback: (err?: null | Error, result?: ResolveRequest) => void - ): void; - parse(identifier: string): ParsedIdentifier; - isModule(path: string): boolean; - isPrivate(path: string): boolean; - isDirectory(path: string): boolean; - join(path: string, request: string): string; - normalize(path: string): string; -} -declare interface UserResolveOptions { - /** - * A list of module alias configurations or an object which maps key to value - */ - alias?: AliasOptions | AliasOption[]; - - /** - * A list of module alias configurations or an object which maps key to value, applied only after modules option - */ - fallback?: AliasOptions | AliasOption[]; - - /** - * An object which maps extension to extension aliases - */ - extensionAlias?: ExtensionAliasOptions; - - /** - * A list of alias fields in description files - */ - aliasFields?: (string | string[])[]; - - /** - * A function which decides whether a request should be cached or not. An object is passed with at least `path` and `request` properties. - */ - cachePredicate?: (arg0: ResolveRequest) => boolean; - - /** - * Whether or not the unsafeCache should include request context as part of the cache key. - */ - cacheWithContext?: boolean; - - /** - * A list of description files to read from - */ - descriptionFiles?: string[]; - - /** - * A list of exports field condition names. - */ - conditionNames?: string[]; - - /** - * Enforce that a extension from extensions must be used - */ - enforceExtension?: boolean; - - /** - * A list of exports fields in description files - */ - exportsFields?: (string | string[])[]; - - /** - * A list of imports fields in description files - */ - importsFields?: (string | string[])[]; - - /** - * A list of extensions which should be tried for files - */ - extensions?: string[]; - - /** - * The file system which should be used - */ - fileSystem: FileSystem; - - /** - * Use this cache object to unsafely cache the successful requests - */ - unsafeCache?: boolean | object; - - /** - * Resolve symlinks to their symlinked location - */ - symlinks?: boolean; - - /** - * A prepared Resolver to which the plugins are attached - */ - resolver?: Resolver; - - /** - * A list of directories to resolve modules from, can be absolute path or folder name - */ - modules?: string | string[]; - - /** - * A list of main fields in description files - */ - mainFields?: ( - | string - | string[] - | { name: string | string[]; forceRelative: boolean } - )[]; - - /** - * A list of main files in directories - */ - mainFiles?: string[]; - - /** - * A list of additional resolve plugins which should be applied - */ - plugins?: Plugin[]; - - /** - * A PnP API that should be used - null is "never", undefined is "auto" - */ - pnpApi?: null | PnpApiImpl; - - /** - * A list of root paths - */ - roots?: string[]; - - /** - * The request is already fully specified and no extensions or directories are resolved for it - */ - fullySpecified?: boolean; - - /** - * Resolve to a context instead of a file - */ - resolveToContext?: boolean; - - /** - * A list of resolve restrictions - */ - restrictions?: (string | RegExp)[]; - - /** - * Use only the sync constraints of the file system calls - */ - useSyncFileSystemCalls?: boolean; - - /** - * Prefer to resolve module requests as relative requests before falling back to modules - */ - preferRelative?: boolean; - - /** - * Prefer to resolve server-relative urls as absolute paths before falling back to resolve in roots - */ - preferAbsolute?: boolean; -} -declare interface WriteOnlySet { - add: (item: T) => void; -} -declare function exports( - context: object, - path: string, - request: string, - resolveContext: ResolveContext, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void -): void; -declare function exports( - context: object, - path: string, - request: string, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void -): void; -declare function exports( - path: string, - request: string, - resolveContext: ResolveContext, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void -): void; -declare function exports( - path: string, - request: string, - callback: ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void -): void; -declare namespace exports { - export const sync: ResolveFunction; - export function create( - options: ResolveOptionsOptionalFS - ): ResolveFunctionAsync; - export namespace create { - export const sync: (options: ResolveOptionsOptionalFS) => ResolveFunction; - } - export namespace ResolverFactory { - export let createResolver: (options: UserResolveOptions) => Resolver; - } - export const forEachBail: ( - array: T[], - iterator: Iterator, - callback: (err?: null | Error, result?: null | Z) => void - ) => void; - export type ResolveCallback = ( - err: null | ErrorWithDetail, - res?: string | false, - req?: ResolveRequest - ) => void; - export { - CachedInputFileSystem, - CloneBasenamePlugin, - LogInfoPlugin, - ResolveOptionsOptionalFS, - PnpApiImpl as PnpApi, - Resolver, - FileSystem, - ResolveContext, - ResolveRequest, - Plugin, - UserResolveOptions as ResolveOptions, - ResolveFunctionAsync, - ResolveFunction - }; -} - -export = exports; diff --git a/build/node_modules/enquirer/LICENSE b/build/node_modules/enquirer/LICENSE deleted file mode 100644 index 681d1bf7..00000000 --- a/build/node_modules/enquirer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/enquirer/README.md b/build/node_modules/enquirer/README.md deleted file mode 100644 index c95153fa..00000000 --- a/build/node_modules/enquirer/README.md +++ /dev/null @@ -1,1839 +0,0 @@ -

Enquirer

- -

- - version - - - downloads - -

- -
-
- -

- Stylish CLI prompts that are user-friendly, intuitive and easy to create.
- >_ Prompts should be more like conversations than inquisitions▌ -

- -
- -

- (Example shows Enquirer's Survey Prompt) - Enquirer Survey Prompt
- The terminal in all examples is Hyper, theme is hyper-monokai-extended.

- See more prompt examples -

- -
-
- -Created by [jonschlinkert][jon] and [doowb][brian], Enquirer is fast, easy to use, and lightweight enough for small projects, while also being powerful and customizable enough for the most advanced use cases. - -- **Fast** - [Loads in ~4ms](#-performance) (that's about _3-4 times faster than a [single frame of a HD movie](http://www.endmemo.com/sconvert/framespersecondframespermillisecond.php) at 60fps_) -- **Lightweight** - Only one dependency, the excellent [ansi-colors](https://github.com/doowb/ansi-colors) by [Brian Woodward](https://github.com/doowb). -- **Easy to implement** - Uses promises and async/await and sensible defaults to make prompts easy to create and implement. -- **Easy to use** - Thrill your users with a better experience! Navigating around input and choices is a breeze. You can even create [quizzes](examples/fun/countdown.js), or [record](examples/fun/record.js) and [playback](examples/fun/play.js) key bindings to aid with tutorials and videos. -- **Intuitive** - Keypress combos are available to simplify usage. -- **Flexible** - All prompts can be used standalone or chained together. -- **Stylish** - Easily override semantic styles and symbols for any part of the prompt. -- **Extensible** - Easily create and use [custom prompts](#-custom-prompts) by extending Enquirer's built-in [prompts](#-prompts). -- **Pluggable** - Add advanced features to Enquirer using plugins. -- **Validation** - Optionally validate user input with any prompt. -- **Well tested** - All prompts are well-tested, and tests are easy to create without having to use brittle, hacky solutions to spy on prompts or "inject" values. -- **Examples** - There are numerous [examples](examples) available to help you get started. - -If you like Enquirer, please consider starring or tweeting about this project to show your support. Thanks! - -[issue]: https://github.com/enquirer/enquirer/issues/new -[pulls]: https://github.com/enquirer/enquirer/pulls -[jon]: https://github.com/jonschlinkert -[brian]: https://github.com/doowb - -
- -

- >_ Ready to start making prompts your users will love? ▌
- Enquirer Select Prompt with heartbeat example -

- -
-
- -## ❯ Getting started - -Get started with Enquirer, the most powerful and easy-to-use Node.js library for creating interactive CLI prompts. - -- [Install](#-install) -- [Usage](#-usage) -- [Enquirer](#-enquirer) -- [Prompts](#-prompts) - * [Built-in Prompts](#-built-in-prompts) - * [Custom Prompts](#-custom-prompts) -- [Key Bindings](#-key-bindings) -- [Options](#prompt-options) -- [Release History](#-release-history) -- [Performance](#-performance) -- [About](#-about) - -
- -## ❯ Install - -Install with [npm](https://www.npmjs.com/): - -```sh -npm install enquirer --save -``` -Install with [yarn](https://yarnpkg.com/en/): - -```sh -yarn add enquirer -``` - -

- Install Enquirer with NPM -

- -_(Requires Node.js 8.6 or higher. Please let us know if you need support for an earlier version by creating an [issue](../../issues/new).)_ - -
- -## ❯ Usage - -### Single prompt - -The easiest way to get started with enquirer is to pass a [question object](#prompt-options) to the `prompt` method. - -```js -const { prompt } = require('enquirer'); - -const response = await prompt({ - type: 'input', - name: 'username', - message: 'What is your username?' -}); - -console.log(response); // { username: 'jonschlinkert' } -``` - -_(Examples with `await` need to be run inside an `async` function)_ - -### Multiple prompts - -Pass an array of ["question" objects](#prompt-options) to run a series of prompts. - -```js -const response = await prompt([ - { - type: 'input', - name: 'name', - message: 'What is your name?' - }, - { - type: 'input', - name: 'username', - message: 'What is your username?' - } -]); - -console.log(response); // { name: 'Edward Chan', username: 'edwardmchan' } -``` - -### Different ways to run enquirer - -#### 1. By importing the specific `built-in prompt` - -```js -const { Confirm } = require('enquirer'); - -const prompt = new Confirm({ - name: 'question', - message: 'Did you like enquirer?' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)); -``` - -#### 2. By passing the options to `prompt` - -```js -const { prompt } = require('enquirer'); - -prompt({ - type: 'confirm', - name: 'question', - message: 'Did you like enquirer?' -}) - .then(answer => console.log('Answer:', answer)); -``` - -**Jump to**: [Getting Started](#-getting-started) · [Prompts](#-prompts) · [Options](#prompt-options) · [Key Bindings](#-key-bindings) - -
- -## ❯ Enquirer - -**Enquirer is a prompt runner** - -Add Enquirer to your JavaScript project with following line of code. - -```js -const Enquirer = require('enquirer'); -``` - -The main export of this library is the `Enquirer` class, which has methods and features designed to simplify running prompts. - -```js -const { prompt } = require('enquirer'); -const questions = [ - { - type: 'input', - name: 'username', - message: 'What is your username?' - }, - { - type: 'password', - name: 'password', - message: 'What is your password?' - } -]; - -const answers = await prompt(questions); -console.log(answers); -``` - -**Prompts control how values are rendered and returned** - -Each individual prompt is a class with special features and functionality for rendering the types of values you want to show users in the terminal, and subsequently returning the types of values you need to use in your application. - -**How can I customize prompts?** - -Below in this guide you will find information about creating [custom prompts](#-custom-prompts). For now, we'll focus on how to customize an existing prompt. - -All of the individual [prompt classes](#built-in-prompts) in this library are exposed as static properties on Enquirer. This allows them to be used directly without using `enquirer.prompt()`. - -Use this approach if you need to modify a prompt instance, or listen for events on the prompt. - -**Example** - -```js -const { Input } = require('enquirer'); -const prompt = new Input({ - name: 'username', - message: 'What is your username?' -}); - -prompt.run() - .then(answer => console.log('Username:', answer)) - .catch(console.error); -``` - -### [Enquirer](index.js#L20) - -Create an instance of `Enquirer`. - -**Params** - -* `options` **{Object}**: (optional) Options to use with all prompts. -* `answers` **{Object}**: (optional) Answers object to initialize with. - -**Example** - -```js -const Enquirer = require('enquirer'); -const enquirer = new Enquirer(); -``` - -### [register()](index.js#L42) - -Register a custom prompt type. - -**Params** - -* `type` **{String}** -* `fn` **{Function|Prompt}**: `Prompt` class, or a function that returns a `Prompt` class. -* `returns` **{Object}**: Returns the Enquirer instance - -**Example** - -```js -const Enquirer = require('enquirer'); -const enquirer = new Enquirer(); -enquirer.register('customType', require('./custom-prompt')); -``` - -### [prompt()](index.js#L81) - -Prompt function that takes a "question" object or array of question objects, and returns an object with responses from the user. - -**Params** - -* `questions` **{Array|Object}**: Options objects for one or more prompts to run. -* `returns` **{Promise}**: Promise that returns an "answers" object with the user's responses. - -**Example** - -```js -const Enquirer = require('enquirer'); -const enquirer = new Enquirer(); - -const response = await enquirer.prompt({ - type: 'input', - name: 'username', - message: 'What is your username?' -}); -console.log(response); -``` - -### [use()](index.js#L164) - -Use an enquirer plugin. - -**Params** - -* `plugin` **{Function}**: Plugin function that takes an instance of Enquirer. -* `returns` **{Object}**: Returns the Enquirer instance. - -**Example** - -```js -const Enquirer = require('enquirer'); -const enquirer = new Enquirer(); -const plugin = enquirer => { - // do stuff to enquire instance -}; -enquirer.use(plugin); -``` - -### [Enquirer#prompt](index.js#L214) - -Prompt function that takes a "question" object or array of question objects, and returns an object with responses from the user. - -**Params** - -* `questions` **{Array|Object}**: Options objects for one or more prompts to run. -* `returns` **{Promise}**: Promise that returns an "answers" object with the user's responses. - -**Example** - -```js -const { prompt } = require('enquirer'); -const response = await prompt({ - type: 'input', - name: 'username', - message: 'What is your username?' -}); -console.log(response); -``` - -
- -## ❯ Prompts - -This section is about Enquirer's prompts: what they look like, how they work, how to run them, available options, and how to customize the prompts or create your own prompt concept. - -**Getting started with Enquirer's prompts** - -- [Prompt](#prompt) - The base `Prompt` class used by other prompts - - [Prompt Options](#prompt-options) -- [Built-in prompts](#built-in-prompts) -- [Prompt Types](#prompt-types) - The base `Prompt` class used by other prompts -- [Custom prompts](#-custom-prompts) - Enquirer 2.0 introduced the concept of prompt "types", with the goal of making custom prompts easier than ever to create and use. - -### Prompt - -The base `Prompt` class is used to create all other prompts. - -```js -const { Prompt } = require('enquirer'); -class MyCustomPrompt extends Prompt {} -``` - -See the documentation for [creating custom prompts](#-custom-prompts) to learn more about how this works. - -#### Prompt Options - -Each prompt takes an options object (aka "question" object), that implements the following interface: - -```js -{ - // required - type: string | function, - name: string | function, - message: string | function | async function, - - // optional - skip: boolean | function | async function, - initial: string | function | async function, - format: function | async function, - result: function | async function, - validate: function | async function, -} -``` -Each property of the options object is described below: - -| **Property** | **Required?** | **Type** | **Description** | -| --- | --- | --- | --- | -| `type` | yes | `string\|function` | Enquirer uses this value to determine the type of prompt to run, but it's optional when prompts are run directly. | -| `name` | yes | `string\|function` | Used as the key for the answer on the returned values (answers) object. | -| `message` | yes | `string\|function` | The message to display when the prompt is rendered in the terminal. | -| `skip` | no | `boolean\|function` | If `true` it will not ask that prompt. | -| `initial` | no | `string\|function` | The default value to return if the user does not supply a value. | -| `format` | no | `function` | Function to format user input in the terminal. | -| `result` | no | `function` | Function to format the final submitted value before it's returned. | -| `validate` | no | `function` | Function to validate the submitted value before it's returned. This function may return a boolean or a string. If a string is returned it will be used as the validation error message. | - -**Example usage** - -```js -const { prompt } = require('enquirer'); - -const question = { - type: 'input', - name: 'username', - message: 'What is your username?' -}; - -prompt(question) - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -
- -### Built-in prompts - -- [AutoComplete Prompt](#autocomplete-prompt) -- [BasicAuth Prompt](#basicauth-prompt) -- [Confirm Prompt](#confirm-prompt) -- [Form Prompt](#form-prompt) -- [Input Prompt](#input-prompt) -- [Invisible Prompt](#invisible-prompt) -- [List Prompt](#list-prompt) -- [MultiSelect Prompt](#multiselect-prompt) -- [Numeral Prompt](#numeral-prompt) -- [Password Prompt](#password-prompt) -- [Quiz Prompt](#quiz-prompt) -- [Survey Prompt](#survey-prompt) -- [Scale Prompt](#scale-prompt) -- [Select Prompt](#select-prompt) -- [Sort Prompt](#sort-prompt) -- [Snippet Prompt](#snippet-prompt) -- [Toggle Prompt](#toggle-prompt) - -### AutoComplete Prompt - -Prompt that auto-completes as the user types, and returns the selected value as a string. - -

- Enquirer AutoComplete Prompt -

- -**Example Usage** - -```js -const { AutoComplete } = require('enquirer'); - -const prompt = new AutoComplete({ - name: 'flavor', - message: 'Pick your favorite flavor', - limit: 10, - initial: 2, - choices: [ - 'Almond', - 'Apple', - 'Banana', - 'Blackberry', - 'Blueberry', - 'Cherry', - 'Chocolate', - 'Cinnamon', - 'Coconut', - 'Cranberry', - 'Grape', - 'Nougat', - 'Orange', - 'Pear', - 'Pineapple', - 'Raspberry', - 'Strawberry', - 'Vanilla', - 'Watermelon', - 'Wintergreen' - ] -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**AutoComplete Options** - -| Option | Type | Default | Description | -| --- | --- | --- | --- | -| `highlight` | `function` | `dim` version of primary style | The color to use when "highlighting" characters in the list that match user input. | -| `multiple` | `boolean` | `false` | Allow multiple choices to be selected. | -| `suggest` | `function` | Greedy match, returns choices where `choice.message` contains the input string. | Function that filters choices. Takes user input and a choices array, and returns a list of matching choices. | -| `initial` | `number` | 0 | Preselected item in the list of choices. | -| `footer` | `function` | None | Function that displays [footer text](https://github.com/enquirer/enquirer/blob/6c2819518a1e2ed284242a99a685655fbaabfa28/examples/autocomplete/option-footer.js#L10) | - -**Related prompts** - -- [Select](#select-prompt) -- [MultiSelect](#multiselect-prompt) -- [Survey](#survey-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### BasicAuth Prompt - -Prompt that asks for username and password to authenticate the user. The default implementation of `authenticate` function in `BasicAuth` prompt is to compare the username and password with the values supplied while running the prompt. The implementer is expected to override the `authenticate` function with a custom logic such as making an API request to a server to authenticate the username and password entered and expect a token back. - -

- Enquirer BasicAuth Prompt -

- -**Example Usage** - -```js -const { BasicAuth } = require('enquirer'); - - const prompt = new BasicAuth({ - name: 'password', - message: 'Please enter your password', - username: 'rajat-sr', - password: '123', - showPassword: true -}); - - prompt - .run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Confirm Prompt - -Prompt that returns `true` or `false`. - -

- Enquirer Confirm Prompt -

- -**Example Usage** - -```js -const { Confirm } = require('enquirer'); - -const prompt = new Confirm({ - name: 'question', - message: 'Want to answer?' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [Input](#input-prompt) -- [Numeral](#numeral-prompt) -- [Password](#password-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Form Prompt - -Prompt that allows the user to enter and submit multiple values on a single terminal screen. - -

- Enquirer Form Prompt -

- -**Example Usage** - -```js -const { Form } = require('enquirer'); - -const prompt = new Form({ - name: 'user', - message: 'Please provide the following information:', - choices: [ - { name: 'firstname', message: 'First Name', initial: 'Jon' }, - { name: 'lastname', message: 'Last Name', initial: 'Schlinkert' }, - { name: 'username', message: 'GitHub username', initial: 'jonschlinkert' } - ] -}); - -prompt.run() - .then(value => console.log('Answer:', value)) - .catch(console.error); -``` - -**Related prompts** - -- [Input](#input-prompt) -- [Survey](#survey-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Input Prompt - -Prompt that takes user input and returns a string. - -

- Enquirer Input Prompt -

- -**Example Usage** - -```js -const { Input } = require('enquirer'); -const prompt = new Input({ - message: 'What is your username?', - initial: 'jonschlinkert' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.log); -``` - -You can use [data-store](https://github.com/jonschlinkert/data-store) to store [input history](https://github.com/enquirer/enquirer/blob/master/examples/input/option-history.js) that the user can cycle through (see [source](https://github.com/enquirer/enquirer/blob/8407dc3579123df5e6e20215078e33bb605b0c37/lib/prompts/input.js)). - -**Related prompts** - -- [Confirm](#confirm-prompt) -- [Numeral](#numeral-prompt) -- [Password](#password-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Invisible Prompt - -Prompt that takes user input, hides it from the terminal, and returns a string. - -

- Enquirer Invisible Prompt -

- -**Example Usage** - -```js -const { Invisible } = require('enquirer'); -const prompt = new Invisible({ - name: 'secret', - message: 'What is your secret?' -}); - -prompt.run() - .then(answer => console.log('Answer:', { secret: answer })) - .catch(console.error); -``` - -**Related prompts** - -- [Password](#password-prompt) -- [Input](#input-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### List Prompt - -Prompt that returns a list of values, created by splitting the user input. The default split character is `,` with optional trailing whitespace. - -

- Enquirer List Prompt -

- -**Example Usage** - -```js -const { List } = require('enquirer'); -const prompt = new List({ - name: 'keywords', - message: 'Type comma-separated keywords' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [Sort](#sort-prompt) -- [Select](#select-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### MultiSelect Prompt - -Prompt that allows the user to select multiple items from a list of options. - -

- Enquirer MultiSelect Prompt -

- -**Example Usage** - -```js -const { MultiSelect } = require('enquirer'); - -const prompt = new MultiSelect({ - name: 'value', - message: 'Pick your favorite colors', - limit: 7, - choices: [ - { name: 'aqua', value: '#00ffff' }, - { name: 'black', value: '#000000' }, - { name: 'blue', value: '#0000ff' }, - { name: 'fuchsia', value: '#ff00ff' }, - { name: 'gray', value: '#808080' }, - { name: 'green', value: '#008000' }, - { name: 'lime', value: '#00ff00' }, - { name: 'maroon', value: '#800000' }, - { name: 'navy', value: '#000080' }, - { name: 'olive', value: '#808000' }, - { name: 'purple', value: '#800080' }, - { name: 'red', value: '#ff0000' }, - { name: 'silver', value: '#c0c0c0' }, - { name: 'teal', value: '#008080' }, - { name: 'white', value: '#ffffff' }, - { name: 'yellow', value: '#ffff00' } - ] -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); - -// Answer: ['aqua', 'blue', 'fuchsia'] -``` - -**Example key-value pairs** - -Optionally, pass a `result` function and use the `.map` method to return an object of key-value pairs of the selected names and values: [example](./examples/multiselect/option-result.js) - -```js -const { MultiSelect } = require('enquirer'); - -const prompt = new MultiSelect({ - name: 'value', - message: 'Pick your favorite colors', - limit: 7, - choices: [ - { name: 'aqua', value: '#00ffff' }, - { name: 'black', value: '#000000' }, - { name: 'blue', value: '#0000ff' }, - { name: 'fuchsia', value: '#ff00ff' }, - { name: 'gray', value: '#808080' }, - { name: 'green', value: '#008000' }, - { name: 'lime', value: '#00ff00' }, - { name: 'maroon', value: '#800000' }, - { name: 'navy', value: '#000080' }, - { name: 'olive', value: '#808000' }, - { name: 'purple', value: '#800080' }, - { name: 'red', value: '#ff0000' }, - { name: 'silver', value: '#c0c0c0' }, - { name: 'teal', value: '#008080' }, - { name: 'white', value: '#ffffff' }, - { name: 'yellow', value: '#ffff00' } - ], - result(names) { - return this.map(names); - } -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); - -// Answer: { aqua: '#00ffff', blue: '#0000ff', fuchsia: '#ff00ff' } -``` - -**Example alternate labels** - -```js -const { MultiSelect } = require('enquirer'); - -const prompt = new MultiSelect({ - name: 'color', - message: 'Pick a flavor', - choices: [ - { message: 'Negative Red', name: 'cyan', value: '#00ffff' }, - { message: 'Lights Out', name: 'black', value: '#000000' }, - { message: 'The Ocean', name: 'blue', value: '#0000ff' }, - ] -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [AutoComplete](#autocomplete-prompt) -- [Select](#select-prompt) -- [Survey](#survey-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Numeral Prompt - -Prompt that takes a number as input. - -

- Enquirer Numeral Prompt -

- -**Example Usage** - -```js -const { NumberPrompt } = require('enquirer'); - -const prompt = new NumberPrompt({ - name: 'number', - message: 'Please enter a number' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [Input](#input-prompt) -- [Confirm](#confirm-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Password Prompt - -Prompt that takes user input and masks it in the terminal. Also see the [invisible prompt](#invisible-prompt) - -

- Enquirer Password Prompt -

- -**Example Usage** - -```js -const { Password } = require('enquirer'); - -const prompt = new Password({ - name: 'password', - message: 'What is your password?' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [Input](#input-prompt) -- [Invisible](#invisible-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Quiz Prompt - -Prompt that allows the user to play multiple-choice quiz questions. - -

- Enquirer Quiz Prompt -

- -**Example Usage** - -```js -const { Quiz } = require('enquirer'); - - const prompt = new Quiz({ - name: 'countries', - message: 'How many countries are there in the world?', - choices: ['165', '175', '185', '195', '205'], - correctChoice: 3 -}); - - prompt - .run() - .then(answer => { - if (answer.correct) { - console.log('Correct!'); - } else { - console.log(`Wrong! Correct answer is ${answer.correctAnswer}`); - } - }) - .catch(console.error); -``` - -**Quiz Options** - -| Option | Type | Required | Description | -| -------------- | ------------- | ------------- | --- | -| `choices` | `array` | Yes | The list of possible answers to the quiz question. | -| `correctChoice`| `number` | Yes | Index of the correct choice from the `choices` array. | - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Survey Prompt - -Prompt that allows the user to provide feedback for a list of questions. - -

- Enquirer Survey Prompt -

- -**Example Usage** - -```js -const { Survey } = require('enquirer'); - -const prompt = new Survey({ - name: 'experience', - message: 'Please rate your experience', - scale: [ - { name: '1', message: 'Strongly Disagree' }, - { name: '2', message: 'Disagree' }, - { name: '3', message: 'Neutral' }, - { name: '4', message: 'Agree' }, - { name: '5', message: 'Strongly Agree' } - ], - margin: [0, 0, 2, 1], - choices: [ - { - name: 'interface', - message: 'The website has a friendly interface.' - }, - { - name: 'navigation', - message: 'The website is easy to navigate.' - }, - { - name: 'images', - message: 'The website usually has good images.' - }, - { - name: 'upload', - message: 'The website makes it easy to upload images.' - }, - { - name: 'colors', - message: 'The website has a pleasing color palette.' - } - ] -}); - -prompt.run() - .then(value => console.log('ANSWERS:', value)) - .catch(console.error); -``` - -**Related prompts** - -- [Scale](#scale-prompt) -- [Snippet](#snippet-prompt) -- [Select](#select-prompt) - -*** - -### Scale Prompt - -A more compact version of the [Survey prompt](#survey-prompt), the Scale prompt allows the user to quickly provide feedback using a [Likert Scale](https://en.wikipedia.org/wiki/Likert_scale). - -

- Enquirer Scale Prompt -

- -**Example Usage** - -```js -const { Scale } = require('enquirer'); -const prompt = new Scale({ - name: 'experience', - message: 'Please rate your experience', - scale: [ - { name: '1', message: 'Strongly Disagree' }, - { name: '2', message: 'Disagree' }, - { name: '3', message: 'Neutral' }, - { name: '4', message: 'Agree' }, - { name: '5', message: 'Strongly Agree' } - ], - margin: [0, 0, 2, 1], - choices: [ - { - name: 'interface', - message: 'The website has a friendly interface.', - initial: 2 - }, - { - name: 'navigation', - message: 'The website is easy to navigate.', - initial: 2 - }, - { - name: 'images', - message: 'The website usually has good images.', - initial: 2 - }, - { - name: 'upload', - message: 'The website makes it easy to upload images.', - initial: 2 - }, - { - name: 'colors', - message: 'The website has a pleasing color palette.', - initial: 2 - } - ] -}); - -prompt.run() - .then(value => console.log('ANSWERS:', value)) - .catch(console.error); -``` - -**Related prompts** - -- [AutoComplete](#autocomplete-prompt) -- [Select](#select-prompt) -- [Survey](#survey-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Select Prompt - -Prompt that allows the user to select from a list of options. - -

- Enquirer Select Prompt -

- -**Example Usage** - -```js -const { Select } = require('enquirer'); - -const prompt = new Select({ - name: 'color', - message: 'Pick a flavor', - choices: ['apple', 'grape', 'watermelon', 'cherry', 'orange'] -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Example key-value pairs** - -```js -const { Select } = require('enquirer'); - -const prompt = new Select({ - name: 'color', - message: 'Pick a color', - choices: [ - { name: 'cyan', value: '#00ffff' }, - { name: 'black', value: '#000000' }, - { name: 'blue', value: '#0000ff' }, - ] -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Example alternate labels** - -```js -const { Select } = require('enquirer'); - -const prompt = new Select({ - name: 'color', - message: 'Pick a color', - choices: [ - { message: 'Negative Red', name: 'cyan', value: '#00ffff' }, - { message: 'Lights Out', name: 'black', value: '#000000' }, - { message: 'The Ocean', name: 'blue', value: '#0000ff' }, - ] -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [AutoComplete](#autocomplete-prompt) -- [MultiSelect](#multiselect-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Sort Prompt - -Prompt that allows the user to sort items in a list. - -**Example** - -In this [example](https://github.com/enquirer/enquirer/raw/master/examples/sort/prompt.js), custom styling is applied to the returned values to make it easier to see what's happening. - -

- Enquirer Sort Prompt -

- -**Example Usage** - -```js -const colors = require('ansi-colors'); -const { Sort } = require('enquirer'); -const prompt = new Sort({ - name: 'colors', - message: 'Sort the colors in order of preference', - hint: 'Top is best, bottom is worst', - numbered: true, - choices: ['red', 'white', 'green', 'cyan', 'yellow'].map(n => ({ - name: n, - message: colors[n](n) - })) -}); - -prompt.run() - .then(function(answer = []) { - console.log(answer); - console.log('Your preferred order of colors is:'); - console.log(answer.map(key => colors[key](key)).join('\n')); - }) - .catch(console.error); -``` - -**Related prompts** - -- [List](#list-prompt) -- [Select](#select-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Snippet Prompt - -Prompt that allows the user to replace placeholders in a snippet of code or text. - -

- Prompts -

- -**Example Usage** - -```js -const semver = require('semver'); -const { Snippet } = require('enquirer'); -const prompt = new Snippet({ - name: 'username', - message: 'Fill out the fields in package.json', - required: true, - fields: [ - { - name: 'author_name', - message: 'Author Name' - }, - { - name: 'version', - validate(value, state, item, index) { - if (item && item.name === 'version' && !semver.valid(value)) { - return prompt.styles.danger('version should be a valid semver value'); - } - return true; - } - } - ], - template: `{ - "name": "\${name}", - "description": "\${description}", - "version": "\${version}", - "homepage": "https://github.com/\${username}/\${name}", - "author": "\${author_name} (https://github.com/\${username})", - "repository": "\${username}/\${name}", - "license": "\${license:ISC}" -} -` -}); - -prompt.run() - .then(answer => console.log('Answer:', answer.result)) - .catch(console.error); -``` - -**Related prompts** - -- [Survey](#survey-prompt) -- [AutoComplete](#autocomplete-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Toggle Prompt - -Prompt that allows the user to toggle between two values then returns `true` or `false`. - -

- Enquirer Toggle Prompt -

- -**Example Usage** - -```js -const { Toggle } = require('enquirer'); - -const prompt = new Toggle({ - message: 'Want to answer?', - enabled: 'Yep', - disabled: 'Nope' -}); - -prompt.run() - .then(answer => console.log('Answer:', answer)) - .catch(console.error); -``` - -**Related prompts** - -- [Confirm](#confirm-prompt) -- [Input](#input-prompt) -- [Sort](#sort-prompt) - -**↑ back to:** [Getting Started](#-getting-started) · [Prompts](#-prompts) - -*** - -### Prompt Types - -There are 5 (soon to be 6!) type classes: - -* [ArrayPrompt](#arrayprompt) - - [Options](#options) - - [Properties](#properties) - - [Methods](#methods) - - [Choices](#choices) - - [Defining choices](#defining-choices) - - [Choice properties](#choice-properties) - - [Related prompts](#related-prompts) -* [AuthPrompt](#authprompt) -* [BooleanPrompt](#booleanprompt) -* DatePrompt (Coming Soon!) -* [NumberPrompt](#numberprompt) -* [StringPrompt](#stringprompt) - -Each type is a low-level class that may be used as a starting point for creating higher level prompts. Continue reading to learn how. - -### ArrayPrompt - -The `ArrayPrompt` class is used for creating prompts that display a list of choices in the terminal. For example, Enquirer uses this class as the basis for the [Select](#select) and [Survey](#survey) prompts. - -#### Options - -In addition to the [options](#options) available to all prompts, Array prompts also support the following options. - -| **Option** | **Required?** | **Type** | **Description** | -| --- | --- | --- | --- | -| `autofocus` | `no` | `string\|number` | The index or name of the choice that should have focus when the prompt loads. Only one choice may have focus at a time. | | -| `stdin` | `no` | `stream` | The input stream to use for emitting keypress events. Defaults to `process.stdin`. | -| `stdout` | `no` | `stream` | The output stream to use for writing the prompt to the terminal. Defaults to `process.stdout`. | -| | - -#### Properties - -Array prompts have the following instance properties and getters. - -| **Property name** | **Type** | **Description** | -| --- | --- | --- | -| `choices` | `array` | Array of choices that have been normalized from choices passed on the prompt options. | -| `cursor` | `number` | Position of the cursor relative to the _user input (string)_. | -| `enabled` | `array` | Returns an array of enabled choices. | -| `focused` | `array` | Returns the currently selected choice in the visible list of choices. This is similar to the concept of focus in HTML and CSS. Focused choices are always visible (on-screen). When a list of choices is longer than the list of visible choices, and an off-screen choice is _focused_, the list will scroll to the focused choice and re-render. | -| `focused` | Gets the currently selected choice. Equivalent to `prompt.choices[prompt.index]`. | -| `index` | `number` | Position of the pointer in the _visible list (array) of choices_. | -| `limit` | `number` | The number of choices to display on-screen. | -| `selected` | `array` | Either a list of enabled choices (when `options.multiple` is true) or the currently focused choice. | -| `visible` | `string` | | - -#### Methods - -| **Method** | **Description** | -| --- | --- | -| `pointer()` | Returns the visual symbol to use to identify the choice that currently has focus. The `❯` symbol is often used for this. The pointer is not always visible, as with the `autocomplete` prompt. | -| `indicator()` | Returns the visual symbol that indicates whether or not a choice is checked/enabled. | -| `focus()` | Sets focus on a choice, if it can be focused. | - -#### Choices - -Array prompts support the `choices` option, which is the array of choices users will be able to select from when rendered in the terminal. - -**Type**: `string|object` - -**Example** - -```js -const { prompt } = require('enquirer'); - -const questions = [{ - type: 'select', - name: 'color', - message: 'Favorite color?', - initial: 1, - choices: [ - { name: 'red', message: 'Red', value: '#ff0000' }, //<= choice object - { name: 'green', message: 'Green', value: '#00ff00' }, //<= choice object - { name: 'blue', message: 'Blue', value: '#0000ff' } //<= choice object - ] -}]; - -let answers = await prompt(questions); -console.log('Answer:', answers.color); -``` - -#### Defining choices - -Whether defined as a string or object, choices are normalized to the following interface: - -```js -{ - name: string; - message: string | undefined; - value: string | undefined; - hint: string | undefined; - disabled: boolean | string | undefined; -} -``` - -**Example** - -```js -const question = { - name: 'fruit', - message: 'Favorite fruit?', - choices: ['Apple', 'Orange', 'Raspberry'] -}; -``` - -Normalizes to the following when the prompt is run: - -```js -const question = { - name: 'fruit', - message: 'Favorite fruit?', - choices: [ - { name: 'Apple', message: 'Apple', value: 'Apple' }, - { name: 'Orange', message: 'Orange', value: 'Orange' }, - { name: 'Raspberry', message: 'Raspberry', value: 'Raspberry' } - ] -}; -``` - -#### Choice properties - -The following properties are supported on `choice` objects. - -| **Option** | **Type** | **Description** | -| --- | --- | --- | -| `name` | `string` | The unique key to identify a choice | -| `message` | `string` | The message to display in the terminal. `name` is used when this is undefined. | -| `value` | `string` | Value to associate with the choice. Useful for creating key-value pairs from user choices. `name` is used when this is undefined. | -| `choices` | `array` | Array of "child" choices. | -| `hint` | `string` | Help message to display next to a choice. | -| `role` | `string` | Determines how the choice will be displayed. Currently the only role supported is `separator`. Additional roles may be added in the future (like `heading`, etc). Please create a [feature request] | -| `enabled` | `boolean` | Enabled a choice by default. This is only supported when `options.multiple` is true or on prompts that support multiple choices, like [MultiSelect](#-multiselect). | -| `disabled` | `boolean\|string` | Disable a choice so that it cannot be selected. This value may either be `true`, `false`, or a message to display. | -| `indicator` | `string\|function` | Custom indicator to render for a choice (like a check or radio button). | - -#### Related prompts - -- [AutoComplete](#autocomplete-prompt) -- [Form](#form-prompt) -- [MultiSelect](#multiselect-prompt) -- [Select](#select-prompt) -- [Survey](#survey-prompt) - -*** - -### AuthPrompt - -The `AuthPrompt` is used to create prompts to log in user using any authentication method. For example, Enquirer uses this class as the basis for the [BasicAuth Prompt](#basicauth-prompt). You can also find prompt examples in `examples/auth/` folder that utilizes `AuthPrompt` to create OAuth based authentication prompt or a prompt that authenticates using time-based OTP, among others. - -`AuthPrompt` has a factory function that creates an instance of `AuthPrompt` class and it expects an `authenticate` function, as an argument, which overrides the `authenticate` function of the `AuthPrompt` class. - -#### Methods - -| **Method** | **Description** | -| ---------------- | --- | -| `authenticate()` | Contain all the authentication logic. This function should be overridden to implement custom authentication logic. The default `authenticate` function throws an error if no other function is provided. | - -#### Choices - -Auth prompt supports the `choices` option, which is the similar to the choices used in [Form Prompt](#form-prompt). - -**Example** - -```js -const { AuthPrompt } = require('enquirer'); - -function authenticate(value, state) { - if (value.username === this.options.username && value.password === this.options.password) { - return true; - } - return false; -} - -const CustomAuthPrompt = AuthPrompt.create(authenticate); - -const prompt = new CustomAuthPrompt({ - name: 'password', - message: 'Please enter your password', - username: 'rajat-sr', - password: '1234567', - choices: [ - { name: 'username', message: 'username' }, - { name: 'password', message: 'password' } - ] -}); - -prompt - .run() - .then(answer => console.log('Authenticated?', answer)) - .catch(console.error); -``` - -#### Related prompts - -- [BasicAuth Prompt](#basicauth-prompt) - -*** - -### BooleanPrompt - -The `BooleanPrompt` class is used for creating prompts that display and return a boolean value. - -```js -const { BooleanPrompt } = require('enquirer'); - -const prompt = new BooleanPrompt({ - header: '========================', - message: 'Do you love enquirer?', - footer: '========================', -}); - -prompt.run() - .then(answer => console.log('Selected:', answer)) - .catch(console.error); -``` - -**Returns**: `boolean` - -*** - -### NumberPrompt - -The `NumberPrompt` class is used for creating prompts that display and return a numerical value. - -```js -const { NumberPrompt } = require('enquirer'); - -const prompt = new NumberPrompt({ - header: '************************', - message: 'Input the Numbers:', - footer: '************************', -}); - -prompt.run() - .then(answer => console.log('Numbers are:', answer)) - .catch(console.error); -``` - -**Returns**: `string|number` (number, or number formatted as a string) - -*** - -### StringPrompt - -The `StringPrompt` class is used for creating prompts that display and return a string value. - -```js -const { StringPrompt } = require('enquirer'); - -const prompt = new StringPrompt({ - header: '************************', - message: 'Input the String:', - footer: '************************' -}); - -prompt.run() - .then(answer => console.log('String is:', answer)) - .catch(console.error); -``` - -**Returns**: `string` - -
- -## ❯ Custom prompts - -With Enquirer 2.0, custom prompts are easier than ever to create and use. - -**How do I create a custom prompt?** - -Custom prompts are created by extending either: - -- Enquirer's `Prompt` class -- one of the built-in [prompts](#-prompts), or -- low-level [types](#prompt-types). - - - -```js -const { Prompt } = require('enquirer'); - -class HaiKarate extends Prompt { - constructor(options = {}) { - super(options); - this.value = options.initial || 0; - this.cursorHide(); - } - up() { - this.value++; - this.render(); - } - down() { - this.value--; - this.render(); - } - render() { - this.clear(); // clear previously rendered prompt from the terminal - this.write(`${this.state.message}: ${this.value}`); - } -} - -// Use the prompt by creating an instance of your custom prompt class. -const prompt = new HaiKarate({ - message: 'How many sprays do you want?', - initial: 10 -}); - -prompt.run() - .then(answer => console.log('Sprays:', answer)) - .catch(console.error); -``` - -If you want to be able to specify your prompt by `type` so that it may be used alongside other prompts, you will need to first create an instance of `Enquirer`. - -```js -const Enquirer = require('enquirer'); -const enquirer = new Enquirer(); -``` - -Then use the `.register()` method to add your custom prompt. - -```js -enquirer.register('haikarate', HaiKarate); -``` - -Now you can do the following when defining "questions". - -```js -let spritzer = require('cologne-drone'); -let answers = await enquirer.prompt([ - { - type: 'haikarate', - name: 'cologne', - message: 'How many sprays do you need?', - initial: 10, - async onSubmit(name, value) { - await spritzer.activate(value); //<= activate drone - return value; - } - } -]); -``` - -
- -## ❯ Key Bindings - -### All prompts - -These key combinations may be used with all prompts. - -| **command** | **description** | -| -------------------------------- | -------------------------------------- | -| ctrl + c | Cancel the prompt. | -| ctrl + g | Reset the prompt to its initial state. | - -
- -### Move cursor - -These combinations may be used on prompts that support user input (eg. [input prompt](#input-prompt), [password prompt](#password-prompt), and [invisible prompt](#invisible-prompt)). - -| **command** | **description** | -| ------------------------------ | ---------------------------------------- | -| left | Move the cursor back one character. | -| right | Move the cursor forward one character. | -| ctrl + a | Move cursor to the start of the line | -| ctrl + e | Move cursor to the end of the line | -| ctrl + b | Move cursor back one character | -| ctrl + f | Move cursor forward one character | -| ctrl + x | Toggle between first and cursor position | - -
- -### Edit Input - -These key combinations may be used on prompts that support user input (eg. [input prompt](#input-prompt), [password prompt](#password-prompt), and [invisible prompt](#invisible-prompt)). - -| **command** | **description** | -| ------------------------------ | ---------------------------------------- | -| ctrl + a | Move cursor to the start of the line | -| ctrl + e | Move cursor to the end of the line | -| ctrl + b | Move cursor back one character | -| ctrl + f | Move cursor forward one character | -| ctrl + x | Toggle between first and cursor position | - -
- -| **command (Mac)** | **command (Windows)** | **description** | -| ----------------------------------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| delete | backspace | Delete one character to the left. | -| fn + delete | delete | Delete one character to the right. | -| option + up | alt + up | Scroll to the previous item in history ([Input prompt](#input-prompt) only, when [history is enabled](examples/input/option-history.js)). | -| option + down | alt + down | Scroll to the next item in history ([Input prompt](#input-prompt) only, when [history is enabled](examples/input/option-history.js)). | - -### Select choices - -These key combinations may be used on prompts that support _multiple_ choices, such as the [multiselect prompt](#multiselect-prompt), or the [select prompt](#select-prompt) when the `multiple` options is true. - -| **command** | **description** | -| ----------------- | -------------------------------------------------------------------------------------------------------------------- | -| space | Toggle the currently selected choice when `options.multiple` is true. | -| number | Move the pointer to the choice at the given index. Also toggles the selected choice when `options.multiple` is true. | -| a | Toggle all choices to be enabled or disabled. | -| i | Invert the current selection of choices. | -| g | Toggle the current choice group. | - -
- -### Hide/show choices - -| **command** | **description** | -| ------------------------------- | ---------------------------------------------- | -| fn + up | Decrease the number of visible choices by one. | -| fn + down | Increase the number of visible choices by one. | - -
- -### Move/lock Pointer - -| **command** | **description** | -| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| number | Move the pointer to the choice at the given index. Also toggles the selected choice when `options.multiple` is true. | -| up | Move the pointer up. | -| down | Move the pointer down. | -| ctrl + a | Move the pointer to the first _visible_ choice. | -| ctrl + e | Move the pointer to the last _visible_ choice. | -| shift + up | Scroll up one choice without changing pointer position (locks the pointer while scrolling). | -| shift + down | Scroll down one choice without changing pointer position (locks the pointer while scrolling). | - -
- -| **command (Mac)** | **command (Windows)** | **description** | -| -------------------------------- | --------------------- | ---------------------------------------------------------- | -| fn + left | home | Move the pointer to the first choice in the choices array. | -| fn + right | end | Move the pointer to the last choice in the choices array. | - -
- -## ❯ Release History - -Please see [CHANGELOG.md](CHANGELOG.md). - -## ❯ Performance - -### System specs - -MacBook Pro, Intel Core i7, 2.5 GHz, 16 GB. - -### Load time - -Time it takes for the module to load the first time (average of 3 runs): - -``` -enquirer: 4.013ms -inquirer: 286.717ms -``` - -
- -## ❯ About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Todo - -We're currently working on documentation for the following items. Please star and watch the repository for updates! - -* [ ] Customizing symbols -* [ ] Customizing styles (palette) -* [ ] Customizing rendered input -* [ ] Customizing returned values -* [ ] Customizing key bindings -* [ ] Question validation -* [ ] Choice validation -* [ ] Skipping questions -* [ ] Async choices -* [ ] Async timers: loaders, spinners and other animations -* [ ] Links to examples -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -npm install && npm test -``` -```sh -yarn && yarn test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -#### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 312 | [jonschlinkert](https://github.com/jonschlinkert) | -| 86 | [doowb](https://github.com/doowb) | -| 32 | [rajat-sr](https://github.com/rajat-sr) | -| 20 | [318097](https://github.com/318097) | -| 15 | [g-plane](https://github.com/g-plane) | -| 12 | [pixelass](https://github.com/pixelass) | -| 5 | [adityavyas611](https://github.com/adityavyas611) | -| 5 | [satotake](https://github.com/satotake) | -| 3 | [hongaar](https://github.com/hongaar) | -| 3 | [Ovyerus](https://github.com/Ovyerus) | -| 3 | [swyxio](https://github.com/swyxio) | -| 2 | [GabeL7r](https://github.com/GabeL7r) | -| 2 | [Andarist](https://github.com/Andarist) | -| 1 | [ahmadawais](https://github.com/ahmadawais) | -| 1 | [AlCalzone](https://github.com/AlCalzone) | -| 1 | [hipstersmoothie](https://github.com/hipstersmoothie) | -| 1 | [TrySound](https://github.com/TrySound) | -| 1 | [brentjanderson](https://github.com/brentjanderson) | -| 1 | [camilaibs](https://github.com/camilaibs) | -| 1 | [AgentEnder](https://github.com/AgentEnder) | -| 1 | [danieldelcore](https://github.com/danieldelcore) | -| 1 | [deve-sh](https://github.com/deve-sh) | -| 1 | [shortercode](https://github.com/shortercode) | -| 1 | [ImgBotApp](https://github.com/ImgBotApp) | -| 1 | [shumkov](https://github.com/shumkov) | -| 1 | [jsonkao](https://github.com/jsonkao) | -| 1 | [JounQin](https://github.com/JounQin) | -| 1 | [knpwrs](https://github.com/knpwrs) | -| 1 | [yeskunall](https://github.com/yeskunall) | -| 1 | [mischah](https://github.com/mischah) | -| 1 | [starpit](https://github.com/starpit) | -| 1 | [remcohaszing](https://github.com/remcohaszing) | -| 1 | [renarsvilnis](https://github.com/renarsvilnis) | -| 1 | [rstagi](https://github.com/rstagi) | -| 1 | [sbugert](https://github.com/sbugert) | -| 1 | [skellock](https://github.com/skellock) | -| 1 | [tinesoft](https://github.com/tinesoft) | -| 1 | [busticated](https://github.com/busticated) | -| 1 | [cha147](https://github.com/cha147) | -| 1 | [jmlee2k](https://github.com/jmlee2k) | -| 1 | [lef237](https://github.com/lef237) | -| 1 | [peterroe](https://github.com/peterroe) | -| 1 | [spwoodall](https://github.com/spwoodall) | -| 1 | [whxaxes](https://github.com/whxaxes) | -| 1 | [holynewbie](https://github.com/holynewbie) | -| 1 | [xulingling0](https://github.com/xulingling0) | - -#### Author - -**Jon Schlinkert** - -* [GitHub Profile](https://github.com/jonschlinkert) -* [Twitter Profile](https://twitter.com/jonschlinkert) -* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) - -#### Credit - -Thanks to [derhuerst](https://github.com/derhuerst), creator of prompt libraries such as [prompt-skeleton](https://github.com/derhuerst/prompt-skeleton), which influenced some of the concepts we used in our prompts. - -#### License - -Copyright © 2018-present, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -[issue]: https://github.com/enquirer/enquirer/issues/new -[pulls]: https://github.com/enquirer/enquirer/pulls -[jon]: https://github.com/jonschlinkert -[brian]: https://github.com/doowb diff --git a/build/node_modules/enquirer/index.d.ts b/build/node_modules/enquirer/index.d.ts deleted file mode 100644 index 8150fa48..00000000 --- a/build/node_modules/enquirer/index.d.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { EventEmitter } from "events"; - -interface BasePromptOptions { - name: string | (() => string) - type: string | (() => string) - message: string | (() => string) | (() => Promise) - prefix?: string - initial?: any - required?: boolean - enabled?: boolean | string - disabled?: boolean | string - format?(value: string): string | Promise - result?(value: string): string | Promise - skip?: ((state: object) => boolean | Promise) | boolean - validate?(value: string): boolean | string | Promise - onSubmit?(name: string, value: any, prompt: Enquirer.Prompt): boolean | Promise - onCancel?(name: string, value: any, prompt: Enquirer.Prompt): boolean | Promise - stdin?: NodeJS.ReadStream - stdout?: NodeJS.WriteStream -} - -interface Choice { - name: string - message?: string - value?: unknown - hint?: string - role?: string - enabled?: boolean - disabled?: boolean | string -} - -interface ArrayPromptOptions extends BasePromptOptions { - type: - | 'autocomplete' - | 'editable' - | 'form' - | 'multiselect' - | 'select' - | 'survey' - | 'list' - | 'scale' - choices: (string | Choice)[] - maxChoices?: number - multiple?: boolean - initial?: number - delay?: number - separator?: boolean - sort?: boolean - linebreak?: boolean - edgeLength?: number - align?: 'left' | 'right' - scroll?: boolean -} - -interface BooleanPromptOptions extends BasePromptOptions { - type: 'confirm' - initial?: boolean -} - -interface StringPromptOptions extends BasePromptOptions { - type: 'input' | 'invisible' | 'list' | 'password' | 'text' - initial?: string - multiline?: boolean -} - -interface NumberPromptOptions extends BasePromptOptions { - type: 'numeral' - min?: number - max?: number - delay?: number - float?: boolean - round?: boolean - major?: number - minor?: number - initial?: number -} - -interface SnippetPromptOptions extends BasePromptOptions { - type: 'snippet' - newline?: string - template?: string -} - -interface SortPromptOptions extends BasePromptOptions { - type: 'sort' - hint?: string - drag?: boolean - numbered?: boolean -} - -type PromptOptions = - | BasePromptOptions - | ArrayPromptOptions - | BooleanPromptOptions - | StringPromptOptions - | NumberPromptOptions - | SnippetPromptOptions - | SortPromptOptions - -declare class BasePrompt extends EventEmitter { - constructor(options?: PromptOptions); - - render(): void; - - run(): Promise; - } - -declare class Enquirer extends EventEmitter { - constructor(options?: object, answers?: T); - - /** - * Register a custom prompt type. - * - * @param type - * @param fn `Prompt` class, or a function that returns a `Prompt` class. - */ - register(type: string, fn: typeof BasePrompt | (() => typeof BasePrompt)): this; - - /** - * Register a custom prompt type. - */ - register(type: { [key: string]: typeof BasePrompt | (() => typeof BasePrompt) }): this; - - /** - * Prompt function that takes a "question" object or array of question objects, - * and returns an object with responses from the user. - * - * @param questions Options objects for one or more prompts to run. - */ - prompt( - questions: - | PromptOptions - | ((this: Enquirer) => PromptOptions) - | (PromptOptions | ((this: Enquirer) => PromptOptions))[] - ): Promise; - - /** - * Use an enquirer plugin. - * - * @param plugin Plugin function that takes an instance of Enquirer. - */ - use(plugin: (this: this, enquirer: this) => void): this; -} - -declare namespace Enquirer { - function prompt( - questions: - | PromptOptions - | ((this: Enquirer) => PromptOptions) - | (PromptOptions | ((this: Enquirer) => PromptOptions))[] - ): Promise; - - class Prompt extends BasePrompt {} -} - -export = Enquirer; diff --git a/build/node_modules/enquirer/index.js b/build/node_modules/enquirer/index.js deleted file mode 100644 index deaf94bc..00000000 --- a/build/node_modules/enquirer/index.js +++ /dev/null @@ -1,254 +0,0 @@ -'use strict'; - -const assert = require('assert'); -const Events = require('events'); -const utils = require('./lib/utils'); - -/** - * Create an instance of `Enquirer`. - * - * ```js - * const Enquirer = require('enquirer'); - * const enquirer = new Enquirer(); - * ``` - * @name Enquirer - * @param {Object} `options` (optional) Options to use with all prompts. - * @param {Object} `answers` (optional) Answers object to initialize with. - * @api public - */ - -class Enquirer extends Events { - constructor(options, answers) { - super(); - this.options = utils.merge({}, options); - this.answers = { ...answers }; - } - - /** - * Register a custom prompt type. - * - * ```js - * const Enquirer = require('enquirer'); - * const enquirer = new Enquirer(); - * enquirer.register('customType', require('./custom-prompt')); - * ``` - * @name register() - * @param {String} `type` - * @param {Function|Prompt} `fn` `Prompt` class, or a function that returns a `Prompt` class. - * @return {Object} Returns the Enquirer instance - * @api public - */ - - register(type, fn) { - if (utils.isObject(type)) { - for (let key of Object.keys(type)) this.register(key, type[key]); - return this; - } - - assert.equal(typeof fn, 'function', 'expected a function'); - const name = type.toLowerCase(); - - if (fn.prototype instanceof this.Prompt) { - this.prompts[name] = fn; - } else { - this.prompts[name] = fn(this.Prompt, this); - } - - return this; - } - - /** - * Prompt function that takes a "question" object or array of question objects, - * and returns an object with responses from the user. - * - * ```js - * const Enquirer = require('enquirer'); - * const enquirer = new Enquirer(); - * - * const response = await enquirer.prompt({ - * type: 'input', - * name: 'username', - * message: 'What is your username?' - * }); - * console.log(response); - * ``` - * @name prompt() - * @param {Array|Object} `questions` Options objects for one or more prompts to run. - * @return {Promise} Promise that returns an "answers" object with the user's responses. - * @api public - */ - - async prompt(questions = []) { - for (let question of [].concat(questions)) { - try { - if (typeof question === 'function') question = await question.call(this); - await this.ask(utils.merge({}, this.options, question)); - } catch (err) { - return Promise.reject(err); - } - } - return this.answers; - } - - async ask(question) { - if (typeof question === 'function') { - question = await question.call(this); - } - - let opts = utils.merge({}, this.options, question); - let { type, name } = question; - let { set, get } = utils; - - if (typeof type === 'function') { - type = await type.call(this, question, this.answers); - } - - if (!type) return this.answers[name]; - if (type === 'number') type = 'numeral'; - - assert(this.prompts[type], `Prompt "${type}" is not registered`); - - let prompt = new this.prompts[type](opts); - let value = get(this.answers, name); - - prompt.state.answers = this.answers; - prompt.enquirer = this; - - if (name) { - prompt.on('submit', value => { - this.emit('answer', name, value, prompt); - set(this.answers, name, value); - }); - } - - // bubble events - let emit = prompt.emit.bind(prompt); - prompt.emit = (...args) => { - this.emit.call(this, ...args); - return emit(...args); - }; - - this.emit('prompt', prompt, this); - - if (opts.autofill && value != null) { - prompt.value = prompt.input = value; - - // if "autofill=show" render the prompt, otherwise stay "silent" - if (opts.autofill === 'show') { - await prompt.submit(); - } - } else { - value = prompt.value = await prompt.run(); - } - - return value; - } - - /** - * Use an enquirer plugin. - * - * ```js - * const Enquirer = require('enquirer'); - * const enquirer = new Enquirer(); - * const plugin = enquirer => { - * // do stuff to enquire instance - * }; - * enquirer.use(plugin); - * ``` - * @name use() - * @param {Function} `plugin` Plugin function that takes an instance of Enquirer. - * @return {Object} Returns the Enquirer instance. - * @api public - */ - - use(plugin) { - plugin.call(this, this); - return this; - } - - set Prompt(value) { - this._Prompt = value; - } - get Prompt() { - return this._Prompt || this.constructor.Prompt; - } - - get prompts() { - return this.constructor.prompts; - } - - static set Prompt(value) { - this._Prompt = value; - } - static get Prompt() { - return this._Prompt || require('./lib/prompt'); - } - - static get prompts() { - return require('./lib/prompts'); - } - - static get types() { - return require('./lib/types'); - } - - /** - * Prompt function that takes a "question" object or array of question objects, - * and returns an object with responses from the user. - * - * ```js - * const { prompt } = require('enquirer'); - * const response = await prompt({ - * type: 'input', - * name: 'username', - * message: 'What is your username?' - * }); - * console.log(response); - * ``` - * @name Enquirer#prompt - * @param {Array|Object} `questions` Options objects for one or more prompts to run. - * @return {Promise} Promise that returns an "answers" object with the user's responses. - * @api public - */ - - static get prompt() { - const fn = (questions, ...rest) => { - let enquirer = new this(...rest); - let emit = enquirer.emit.bind(enquirer); - enquirer.emit = (...args) => { - fn.emit(...args); - return emit(...args); - }; - return enquirer.prompt(questions); - }; - utils.mixinEmitter(fn, new Events()); - return fn; - } -} - -utils.mixinEmitter(Enquirer, new Events()); -const prompts = Enquirer.prompts; - -for (let name of Object.keys(prompts)) { - let key = name.toLowerCase(); - - let run = options => new prompts[name](options).run(); - Enquirer.prompt[key] = run; - Enquirer[key] = run; - - if (!Enquirer[name]) { - Reflect.defineProperty(Enquirer, name, { get: () => prompts[name] }); - } -} - -const define = name => { - utils.defineExport(Enquirer, name, () => Enquirer.types[name]); -}; - -define('ArrayPrompt'); -define('AuthPrompt'); -define('BooleanPrompt'); -define('NumberPrompt'); -define('StringPrompt'); - -module.exports = Enquirer; diff --git a/build/node_modules/enquirer/package.json b/build/node_modules/enquirer/package.json deleted file mode 100644 index aae0fc7b..00000000 --- a/build/node_modules/enquirer/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "name": "enquirer", - "description": "Stylish, intuitive and user-friendly prompt system. Fast and lightweight enough for small projects, powerful and extensible enough for the most advanced use cases.", - "version": "2.4.1", - "homepage": "https://github.com/enquirer/enquirer", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" - ], - "repository": "enquirer/enquirer", - "bugs": { - "url": "https://github.com/enquirer/enquirer/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "index.d.ts", - "lib" - ], - "main": "index.js", - "engines": { - "node": ">=8.6" - }, - "scripts": { - "test": "mocha && tsc -p ./test/types", - "cover": "nyc --reporter=text --reporter=html mocha" - }, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "devDependencies": { - "@types/node": "^8", - "gulp-format-md": "^2.0.0", - "inquirer": "^6.2.0", - "mocha": "^5.2.0", - "nyc": "^13.1.0", - "prompts": "^1.2.1", - "time-require": "github:jonschlinkert/time-require", - "typescript": "^3.1.6" - }, - "keywords": [ - "answer", - "answers", - "ask", - "base", - "cli", - "command", - "command-line", - "confirm", - "enquirer", - "generator", - "generate", - "hyper", - "input", - "inquire", - "inquirer", - "interface", - "iterm", - "javascript", - "node", - "nodejs", - "prompt", - "prompts", - "promptly", - "question", - "readline", - "scaffold", - "scaffolding", - "scaffolder", - "stdin", - "stdout", - "terminal", - "tty", - "ui", - "yeoman", - "yo", - "zsh" - ], - "lintDeps": { - "devDependencies": { - "files": { - "patterns": [ - "examples/**/*.js", - "perf/*.js", - "recipes/*.js" - ] - } - } - }, - "verb": { - "toc": false, - "layout": false, - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "helpers": [ - "./docs/helpers.js" - ], - "lint": { - "reflinks": true - }, - "reflinks": [ - "inquirer", - "prompt-skeleton" - ] - } -} diff --git a/build/node_modules/entities/LICENSE b/build/node_modules/entities/LICENSE deleted file mode 100644 index c464f863..00000000 --- a/build/node_modules/entities/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) Felix Böhm -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/entities/package.json b/build/node_modules/entities/package.json deleted file mode 100644 index cb9aedd1..00000000 --- a/build/node_modules/entities/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "entities", - "version": "2.2.0", - "description": "Encode & decode XML and HTML entities with ease", - "author": "Felix Boehm ", - "funding": "https://github.com/fb55/entities?sponsor=1", - "sideEffects": false, - "keywords": [ - "entity", - "decoding", - "encoding", - "html", - "xml", - "html entities" - ], - "directories": { - "lib": "lib/" - }, - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib/**/*" - ], - "devDependencies": { - "@types/jest": "^26.0.0", - "@types/node": "^14.11.8", - "@typescript-eslint/eslint-plugin": "^4.4.1", - "@typescript-eslint/parser": "^4.4.1", - "coveralls": "*", - "eslint": "^7.11.0", - "eslint-config-prettier": "^7.0.0", - "eslint-plugin-node": "^11.1.0", - "jest": "^26.5.3", - "prettier": "^2.0.5", - "ts-jest": "^26.1.0", - "typescript": "^4.0.2" - }, - "scripts": { - "test": "jest --coverage && npm run lint", - "coverage": "cat coverage/lcov.info | coveralls", - "lint": "npm run lint:es && npm run lint:prettier", - "lint:es": "eslint .", - "lint:prettier": "npm run prettier -- --check", - "format": "npm run format:es && npm run format:prettier", - "format:es": "npm run lint:es -- --fix", - "format:prettier": "npm run prettier -- --write", - "prettier": "prettier '**/*.{ts,md,json,yml}'", - "build": "tsc && cp -r src/maps lib", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/fb55/entities.git" - }, - "license": "BSD-2-Clause", - "jest": { - "preset": "ts-jest", - "testEnvironment": "node" - }, - "prettier": { - "tabWidth": 4, - "proseWrap": "always" - } -} diff --git a/build/node_modules/entities/readme.md b/build/node_modules/entities/readme.md deleted file mode 100644 index f69264a2..00000000 --- a/build/node_modules/entities/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# entities [![NPM version](http://img.shields.io/npm/v/entities.svg)](https://npmjs.org/package/entities) [![Downloads](https://img.shields.io/npm/dm/entities.svg)](https://npmjs.org/package/entities) [![Build Status](http://img.shields.io/travis/fb55/entities.svg)](http://travis-ci.org/fb55/entities) [![Coverage](http://img.shields.io/coveralls/fb55/entities.svg)](https://coveralls.io/r/fb55/entities) - -Encode & decode HTML & XML entities with ease & speed. - -## How to… - -### …install `entities` - - npm install entities - -### …use `entities` - -```javascript -const entities = require("entities"); - -//encoding -entities.escape("&"); // "&#38;" -entities.encodeXML("&"); // "&#38;" -entities.encodeHTML("&"); // "&#38;" - -//decoding -entities.decodeXML("asdf & ÿ ü '"); // "asdf & ÿ ü '" -entities.decodeHTML("asdf & ÿ ü '"); // "asdf & ÿ ü '" -``` - -## Performance - -This is how `entities` compares to other libraries on a very basic benchmark -(see `scripts/benchmark.ts`, for 10,000,000 iterations): - -| Library | `decode` performance | `encode` performance | Bundle size | -| -------------- | -------------------- | -------------------- | -------------------------------------------------------------------------- | -| entities | 10.809s | 17.683s | ![npm bundle size](https://img.shields.io/bundlephobia/min/entities) | -| html-entities | 14.029s | 22.670s | ![npm bundle size](https://img.shields.io/bundlephobia/min/html-entities) | -| he | 16.163s | 44.010s | ![npm bundle size](https://img.shields.io/bundlephobia/min/he) | -| parse-entities | 28.507s | N/A | ![npm bundle size](https://img.shields.io/bundlephobia/min/parse-entities) | - ---- - -License: BSD-2-Clause - -## Security contact information - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). Tidelift will -coordinate the fix and disclosure. - -## `entities` for enterprise - -Available as part of the Tidelift Subscription - -The maintainers of `entities` and thousands of other packages are working with -Tidelift to deliver commercial support and maintenance for the open source -dependencies you use to build your applications. Save time, reduce risk, and -improve code health, while paying the maintainers of the exact dependencies you -use. -[Learn more.](https://tidelift.com/subscription/pkg/npm-entities?utm_source=npm-entities&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/build/node_modules/env-paths/index.d.ts b/build/node_modules/env-paths/index.d.ts deleted file mode 100644 index 277ddc0a..00000000 --- a/build/node_modules/env-paths/index.d.ts +++ /dev/null @@ -1,101 +0,0 @@ -declare namespace envPaths { - export interface Options { - /** - __Don't use this option unless you really have to!__ - - Suffix appended to the project name to avoid name conflicts with native apps. Pass an empty string to disable it. - - @default 'nodejs' - */ - readonly suffix?: string; - } - - export interface Paths { - /** - Directory for data files. - - Example locations (with the default `nodejs` suffix): - - - macOS: `~/Library/Application Support/MyApp-nodejs` - - Windows: `%LOCALAPPDATA%\MyApp-nodejs\Data` (for example, `C:\Users\USERNAME\AppData\Local\MyApp-nodejs\Data`) - - Linux: `~/.local/share/MyApp-nodejs` (or `$XDG_DATA_HOME/MyApp-nodejs`) - */ - readonly data: string; - - /** - Directory for data files. - - Example locations (with the default `nodejs` suffix): - - - macOS: `~/Library/Preferences/MyApp-nodejs` - - Windows: `%APPDATA%\MyApp-nodejs\Config` (for example, `C:\Users\USERNAME\AppData\Roaming\MyApp-nodejs\Config`) - - Linux: `~/.config/MyApp-nodejs` (or `$XDG_CONFIG_HOME/MyApp-nodejs`) - */ - readonly config: string; - - /** - Directory for non-essential data files. - - Example locations (with the default `nodejs` suffix): - - - macOS: `~/Library/Caches/MyApp-nodejs` - - Windows: `%LOCALAPPDATA%\MyApp-nodejs\Cache` (for example, `C:\Users\USERNAME\AppData\Local\MyApp-nodejs\Cache`) - - Linux: `~/.cache/MyApp-nodejs` (or `$XDG_CACHE_HOME/MyApp-nodejs`) - */ - readonly cache: string; - - /** - Directory for log files. - - Example locations (with the default `nodejs` suffix): - - - macOS: `~/Library/Logs/MyApp-nodejs` - - Windows: `%LOCALAPPDATA%\MyApp-nodejs\Log` (for example, `C:\Users\USERNAME\AppData\Local\MyApp-nodejs\Log`) - - Linux: `~/.local/state/MyApp-nodejs` (or `$XDG_STATE_HOME/MyApp-nodejs`) - */ - readonly log: string; - - /** - Directory for temporary files. - - Example locations (with the default `nodejs` suffix): - - - macOS: `/var/folders/jf/f2twvvvs5jl_m49tf034ffpw0000gn/T/MyApp-nodejs` - - Windows: `%LOCALAPPDATA%\Temp\MyApp-nodejs` (for example, `C:\Users\USERNAME\AppData\Local\Temp\MyApp-nodejs`) - - Linux: `/tmp/USERNAME/MyApp-nodejs` - */ - readonly temp: string; - } -} - -declare const envPaths: { - /** - Get paths for storing things like data, config, cache, etc. - - Note: It only generates the path strings. It doesn't create the directories for you. You could use [`make-dir`](https://github.com/sindresorhus/make-dir) to create the directories. - - @param name - Name of your project. Used to generate the paths. - @returns The paths to use for your project on current OS. - - @example - ``` - import envPaths = require('env-paths'); - - const paths = envPaths('MyApp'); - - paths.data; - //=> '/home/sindresorhus/.local/share/MyApp-nodejs' - - paths.config - //=> '/home/sindresorhus/.config/MyApp-nodejs' - ``` - */ - (name: string, options?: envPaths.Options): envPaths.Paths; - - // TODO: Remove this for the next major release, refactor the whole definition to: - // declare function envPaths(name: string, options?: envPaths.Options): envPaths.Paths; - // export = envPaths; - default: typeof envPaths; -}; - -export = envPaths; diff --git a/build/node_modules/env-paths/index.js b/build/node_modules/env-paths/index.js deleted file mode 100644 index 7e7b50ba..00000000 --- a/build/node_modules/env-paths/index.js +++ /dev/null @@ -1,74 +0,0 @@ -'use strict'; -const path = require('path'); -const os = require('os'); - -const homedir = os.homedir(); -const tmpdir = os.tmpdir(); -const {env} = process; - -const macos = name => { - const library = path.join(homedir, 'Library'); - - return { - data: path.join(library, 'Application Support', name), - config: path.join(library, 'Preferences', name), - cache: path.join(library, 'Caches', name), - log: path.join(library, 'Logs', name), - temp: path.join(tmpdir, name) - }; -}; - -const windows = name => { - const appData = env.APPDATA || path.join(homedir, 'AppData', 'Roaming'); - const localAppData = env.LOCALAPPDATA || path.join(homedir, 'AppData', 'Local'); - - return { - // Data/config/cache/log are invented by me as Windows isn't opinionated about this - data: path.join(localAppData, name, 'Data'), - config: path.join(appData, name, 'Config'), - cache: path.join(localAppData, name, 'Cache'), - log: path.join(localAppData, name, 'Log'), - temp: path.join(tmpdir, name) - }; -}; - -// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html -const linux = name => { - const username = path.basename(homedir); - - return { - data: path.join(env.XDG_DATA_HOME || path.join(homedir, '.local', 'share'), name), - config: path.join(env.XDG_CONFIG_HOME || path.join(homedir, '.config'), name), - cache: path.join(env.XDG_CACHE_HOME || path.join(homedir, '.cache'), name), - // https://wiki.debian.org/XDGBaseDirectorySpecification#state - log: path.join(env.XDG_STATE_HOME || path.join(homedir, '.local', 'state'), name), - temp: path.join(tmpdir, username, name) - }; -}; - -const envPaths = (name, options) => { - if (typeof name !== 'string') { - throw new TypeError(`Expected string, got ${typeof name}`); - } - - options = Object.assign({suffix: 'nodejs'}, options); - - if (options.suffix) { - // Add suffix to prevent possible conflict with native apps - name += `-${options.suffix}`; - } - - if (process.platform === 'darwin') { - return macos(name); - } - - if (process.platform === 'win32') { - return windows(name); - } - - return linux(name); -}; - -module.exports = envPaths; -// TODO: Remove this for the next major release -module.exports.default = envPaths; diff --git a/build/node_modules/env-paths/license b/build/node_modules/env-paths/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/env-paths/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/env-paths/package.json b/build/node_modules/env-paths/package.json deleted file mode 100644 index fae4ebcf..00000000 --- a/build/node_modules/env-paths/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "env-paths", - "version": "2.2.1", - "description": "Get paths for storing things like data, config, cache, etc", - "license": "MIT", - "repository": "sindresorhus/env-paths", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "common", - "user", - "paths", - "env", - "environment", - "directory", - "dir", - "appdir", - "path", - "data", - "config", - "cache", - "logs", - "temp", - "linux", - "unix" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/env-paths/readme.md b/build/node_modules/env-paths/readme.md deleted file mode 100644 index b66d571a..00000000 --- a/build/node_modules/env-paths/readme.md +++ /dev/null @@ -1,115 +0,0 @@ -# env-paths - -> Get paths for storing things like data, config, cache, etc - -Uses the correct OS-specific paths. Most developers get this wrong. - - -## Install - -``` -$ npm install env-paths -``` - - -## Usage - -```js -const envPaths = require('env-paths'); - -const paths = envPaths('MyApp'); - -paths.data; -//=> '/home/sindresorhus/.local/share/MyApp-nodejs' - -paths.config -//=> '/home/sindresorhus/.config/MyApp-nodejs' -``` - - -## API - -### paths = envPaths(name, options?) - -Note: It only generates the path strings. It doesn't create the directories for you. You could use [`make-dir`](https://github.com/sindresorhus/make-dir) to create the directories. - -#### name - -Type: `string` - -Name of your project. Used to generate the paths. - -#### options - -Type: `object` - -##### suffix - -Type: `string`
-Default: `'nodejs'` - -**Don't use this option unless you really have to!**
-Suffix appended to the project name to avoid name conflicts with native -apps. Pass an empty string to disable it. - -### paths.data - -Directory for data files. - -Example locations (with the default `nodejs` [suffix](#suffix)): - -- macOS: `~/Library/Application Support/MyApp-nodejs` -- Windows: `%LOCALAPPDATA%\MyApp-nodejs\Data` (for example, `C:\Users\USERNAME\AppData\Local\MyApp-nodejs\Data`) -- Linux: `~/.local/share/MyApp-nodejs` (or `$XDG_DATA_HOME/MyApp-nodejs`) - -### paths.config - -Directory for config files. - -Example locations (with the default `nodejs` [suffix](#suffix)): - -- macOS: `~/Library/Preferences/MyApp-nodejs` -- Windows: `%APPDATA%\MyApp-nodejs\Config` (for example, `C:\Users\USERNAME\AppData\Roaming\MyApp-nodejs\Config`) -- Linux: `~/.config/MyApp-nodejs` (or `$XDG_CONFIG_HOME/MyApp-nodejs`) - -### paths.cache - -Directory for non-essential data files. - -Example locations (with the default `nodejs` [suffix](#suffix)): - -- macOS: `~/Library/Caches/MyApp-nodejs` -- Windows: `%LOCALAPPDATA%\MyApp-nodejs\Cache` (for example, `C:\Users\USERNAME\AppData\Local\MyApp-nodejs\Cache`) -- Linux: `~/.cache/MyApp-nodejs` (or `$XDG_CACHE_HOME/MyApp-nodejs`) - -### paths.log - -Directory for log files. - -Example locations (with the default `nodejs` [suffix](#suffix)): - -- macOS: `~/Library/Logs/MyApp-nodejs` -- Windows: `%LOCALAPPDATA%\MyApp-nodejs\Log` (for example, `C:\Users\USERNAME\AppData\Local\MyApp-nodejs\Log`) -- Linux: `~/.local/state/MyApp-nodejs` (or `$XDG_STATE_HOME/MyApp-nodejs`) - -### paths.temp - -Directory for temporary files. - -Example locations (with the default `nodejs` [suffix](#suffix)): - -- macOS: `/var/folders/jf/f2twvvvs5jl_m49tf034ffpw0000gn/T/MyApp-nodejs` -- Windows: `%LOCALAPPDATA%\Temp\MyApp-nodejs` (for example, `C:\Users\USERNAME\AppData\Local\Temp\MyApp-nodejs`) -- Linux: `/tmp/USERNAME/MyApp-nodejs` - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/envinfo/LICENSE b/build/node_modules/envinfo/LICENSE deleted file mode 100644 index 1bc5440c..00000000 --- a/build/node_modules/envinfo/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Trevor Brindle - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/envinfo/README.md b/build/node_modules/envinfo/README.md deleted file mode 100644 index e9e56b18..00000000 --- a/build/node_modules/envinfo/README.md +++ /dev/null @@ -1,285 +0,0 @@ -

- -

envinfo generates a report of the common details needed when troubleshooting software issues, such as your operating system, binary versions, browsers, installed languages, and more

-
-

- -[![CircleCI](https://circleci.com/gh/tabrindle/envinfo/tree/master.svg?style=svg)](https://circleci.com/gh/tabrindle/envinfo/tree/master) [![Build Status](https://travis-ci.org/tabrindle/envinfo.svg?branch=master)](https://travis-ci.org/tabrindle/envinfo) [![npm version](https://badge.fury.io/js/envinfo.svg)](https://badge.fury.io/js/envinfo) [![npm downloads per month](https://img.shields.io/npm/dm/envinfo.svg?maxAge=86400)](https://www.npmjs.com/package/envinfo) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) -[![All Contributors](https://img.shields.io/badge/all_contributors-11-orange.svg?style=flat-square)](#contributors) - -## The problem - -- It works on my computer -- "command not found" -- what version of "command" are you running? -- what version of "different command" are you running? -- do you have "insert obscure android sdk version"? -- every github issue reporting template ever: - -**Please mention other relevant information such as the browser version, Node.js version, Operating System and programming language.** - -## This solution - -- Gather all of this information in one spot, quickly, and painlessly. - -## Installation - -To use as a CLI tool, install this package globally: - -```sh -npm install -g envinfo || yarn global add envinfo -``` - -Or, use without installing with npx: - -`npx envinfo` - -To use as a library in another project: - -```sh -npm install envinfo || yarn add envinfo -``` - -## CLI Usage - -`envinfo` || `npx envinfo` - -```bash - System: - OS: macOS Mojave 10.14.5 - CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz - Memory: 2.97 GB / 16.00 GB - Shell: 5.3 - /bin/zsh - Binaries: - Node: 8.16.0 - ~/.nvm/versions/node/v8.16.0/bin/node - Yarn: 1.15.2 - ~/.yarn/bin/yarn - npm: 6.9.0 - ~/.nvm/versions/node/v8.16.0/bin/npm - Watchman: 4.9.0 - /usr/local/bin/watchman - Managers: - Cargo: 1.31.0 - ~/.cargo/bin/cargo - CocoaPods: 1.7.3 - /usr/local/bin/pod - Composer: 1.8.6 - /usr/local/bin/composer - Gradle: 5.5 - /usr/local/bin/gradle - Homebrew: 2.1.7 - /usr/local/bin/brew - Maven: 3.6.1 - /usr/local/bin/mvn - pip2: 19.0.3 - /usr/local/bin/pip2 - pip3: 19.0.2 - /usr/local/bin/pip3 - RubyGems: 2.5.2.3 - /usr/bin/gem - Utilities: - CMake: 3.13.3 - /usr/local/bin/cmake - Make: 3.81 - /usr/bin/make - GCC: 10.14. - /usr/bin/gcc - Git: 2.20.0 - /usr/local/bin/git - Mercurial: 4.5.3 - /usr/bin/hg - Clang: 1001.0.46.4 - /usr/bin/clang - Subversion: 1.10.3 - /usr/bin/svn - Servers: - Apache: 2.4.34 - /usr/sbin/apachectl - Nginx: 1.13.12 - /usr/local/bin/nginx - Virtualization: - Docker: 18.09.1 - /usr/local/bin/docker - Parallels: 13.3.0 - /usr/local/bin/prlctl - VirtualBox: 5.2.20 - /usr/local/bin/vboxmanage - SDKs: - iOS SDK: - Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2 - Android SDK: - API Levels: 28 - Build Tools: 28.0.3 - System Images: android-28 | Google Play Intel x86 Atom - IDEs: - Android Studio: 3.2 AI-181.5540.7.32.5056338 - Atom: 1.23.3 - Emacs: 22.1.1 - /usr/bin/emacs - Nano: 2.0.6 - /usr/bin/nano - VSCode: 1.36.0 - /usr/local/bin/code - Vim: 8.0 - /usr/bin/vim - Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild - Languages: - Bash: 4.4.23 - /usr/local/bin/bash - Elixir: 1.6.2 - /usr/local/bin/elixir - Go: 1.11.1 - /usr/local/bin/go - Java: 1.8.0_192 - /usr/bin/javac - Perl: 5.18.4 - /usr/bin/perl - PHP: 7.1.23 - /usr/bin/php - Python: 2.7.16 - /usr/local/bin/python - Python3: 3.7.2 - /usr/local/bin/python3 - R: 3.6.0 - /usr/local/bin/R - Ruby: 2.3.7 - /usr/bin/ruby - Rust: 1.16.0 - /Users/tabrindle/.cargo/bin/rustup - Databases: - MongoDB: 3.6.4 - /usr/local/bin/mongo - MySQL: 10.3.10 (MariaDB) - /usr/local/bin/mysql - PostgreSQL: 10.3 - /usr/local/bin/postgres - SQLite: 3.24.0 - /usr/bin/sqlite3 - Browsers: - Chrome: 75.0.3770.100 - Chrome Canary: 77.0.3847.0 - Firefox: 68.0 - Firefox Developer Edition: 69.0 - Firefox Nightly: 69.0a1 - Safari: 12.1.1 - Safari Technology Preview: 13.0 - npmPackages: - apollo-client: ^2.3.1 => 2.3.1 - jest: ^22.2.1 => 22.2.1 - ... - react: ^16.3.2 => 16.3.2 - react-apollo: ^2.1.4 => 2.1.4 - run4staged: ^1.1.1 => 1.1.1 - solidarity: 2.0.5 => 2.0.5 - styled-components: ^3.1.6 => 3.1.6 - npmGlobalPackages: - create-react-app: 1.5.2 - create-react-native-app: 1.0.0 - envinfo: 5.10.0 - exp: 49.2.2 - gatsby-cli: 1.1.52 - npm: 5.6.0 - react-native-cli: 2.0.1 - solidarity: 2.1.0 - typescript: 2.8.1 -``` - -## Programmatic Usage - -Envinfo takes a configuration object and returns a Promise that resolves a string (optionally yaml, json or markdown) - -```javascript -import envinfo from 'envinfo'; - -envinfo.run( - { - System: ['OS', 'CPU'], - Binaries: ['Node', 'Yarn', 'npm'], - Browsers: ['Chrome', 'Firefox', 'Safari'], - npmPackages: ['styled-components', 'babel-plugin-styled-components'], - }, - { json: true, showNotFound: true } -).then(env => console.log(env)); -``` - -logs: - -```json -{ - "System": { - "OS": "macOS High Sierra 10.13", - "CPU": "x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz" - }, - "Binaries": { - "Node": { - "version": "8.11.0", - "path": "~/.nvm/versions/node/v8.11.0/bin/node" - }, - "Yarn": { - "version": "1.5.1", - "path": "~/.yarn/bin/yarn" - }, - "npm": { - "version": "5.6.0", - "path": "~/.nvm/versions/node/v8.11.0/bin/npm" - } - }, - "Browsers": { - "Chrome": { - "version": "67.0.3396.62" - }, - "Firefox": { - "version": "59.0.2" - }, - "Safari": { - "version": "11.0" - } - }, - "npmPackages": { - "styled-components": { - "wanted": "^3.2.1", - "installed": "3.2.1" - }, - "babel-plugin-styled-components": "Not Found" - } -} -``` - -All of envinfo's helpers are also exported for use. You can use envinfo as a whole, or just the parts that you need, like this: - -```javascript -const envinfo = require('envinfo'); - -// each helper returns a promise -const node = await envinfo.helpers.getNodeInfo(); - -// The promises resolve to an array of values: ["Name", "Version", "Path"] -// e.g. ["Node", "10.9.0", "/usr/local/bin/node"] - -console.log(`Node: ${node[1]} - ${node[2]}`); // "Node: 10.9.0 - ~/.nvm/versions/node/v8.14.0/bin/node" -``` - -## CLI Options - -``` - --system Print general system info such as OS, CPU, Memory and Shell - --browsers Get version numbers of installed web browsers - --SDKs Get platforms, build tools and SDKs of iOS and Android - --IDEs Get version numbers of installed IDEs - --languages Get version numbers of installed languages such as Java, Python, PHP, etc - --binaries Get version numbers of node, npm, watchman, etc - --npmPackages Get version numbers of locally installed npm packages - glob, string, or comma delimited list - --npmGlobalPackages Get version numbers of globally installed npm packages - - --duplicates Mark duplicate npm packages inside parentheses eg. (2.1.4) - --fullTree Traverse entire node_modules dependency tree, not just top level - - --markdown Print output in markdown format - --json Print output in JSON format - --console Print to console (defaults to on for CLI usage, off for programmatic usage) -``` - -## Integration - -envinfo is live in: - -- [React Native](https://github.com/facebook/react-native) (`react-native info`) -- [Create React App](https://github.com/facebook/create-react-app) (`create-react-app --info`) -- [Expo Environment Info](https://github.com/expo/expo-cli/tree/main/packages/expo-env-info) (`npx expo-env-info`) -- [Webpack](https://github.com/webpack/webpack-cli) (`webpack-cli info`) -- [Solidarity](https://github.com/infinitered/solidarity) (`solidarity report`) -- [Gatsby](https://github.com/gatsbyjs/gatsby) (`gatsby info`) - -envinfo is used in the ISSUE_TEMPLATE of: - -- [styled-components](https://github.com/styled-components/styled-components) -- [Jest](https://github.com/facebook/jest) -- [Apollo Client](https://github.com/apollographql/apollo-client) - -## Alternatives - -- type `command -v` until you smash your computer -- [specs](https://github.com/mcandre/specs) - an excellent ruby gem that runs `command -v` for you on :all-the-things: Great for raw info. -- [screenfetch](https://github.com/KittyKatt/screenFetch) - fetch system and terminal information, and display a pretty ascii logo -- [Solidarity](https://github.com/infinitered/solidarity) - a project based environment checker -- write your own - -## License - -MIT - -## Contributing - -PRs for additional features are welcome! Run `npm run lint && npm run format` before committing. - -This project came out of a [PR](https://github.com/facebook/react-native/pull/14428) to the React Native CLI tool - issues are reported frequently without important environment information, like Node/npm versions. - -## Contributors - -Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)): - - - -| [
Trevor Brindle](http://trevorbrindle.com)
[💬](#question-tabrindle "Answering Questions") [📝](#blog-tabrindle "Blogposts") [🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Atabrindle "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=tabrindle "Code") [📖](https://github.com/tabrindle/envinfo/commits?author=tabrindle "Documentation") [💡](#example-tabrindle "Examples") [🤔](#ideas-tabrindle "Ideas, Planning, & Feedback") [👀](#review-tabrindle "Reviewed Pull Requests") [📢](#talk-tabrindle "Talks") [⚠️](https://github.com/tabrindle/envinfo/commits?author=tabrindle "Tests") | [
Gant Laborde](http://gantlaborde.com/)
[📝](#blog-GantMan "Blogposts") [🐛](https://github.com/tabrindle/envinfo/issues?q=author%3AGantMan "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=GantMan "Code") [🤔](#ideas-GantMan "Ideas, Planning, & Feedback") | [
Anton Fisher](http://antonfisher.com)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Aantonfisher "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=antonfisher "Code") | [
Ahmad Awais ⚡️](https://AhmadAwais.com/)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Aahmadawais "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=ahmadawais "Code") | [
Hasan](https://github.com/LEQADA)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3ALEQADA "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=LEQADA "Code") | [
Ernesto Ramírez](http://twitter.com/_ErnestoR)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3AErnestoR "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=ErnestoR "Code") | [
Jiawen Geng](https://www.gengjiawen.com)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Agengjiawen "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=gengjiawen "Code") [🤔](#ideas-gengjiawen "Ideas, Planning, & Feedback") [⚠️](https://github.com/tabrindle/envinfo/commits?author=gengjiawen "Tests") | -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| [
Zac Anger](https://zacanger.com)
[💻](https://github.com/tabrindle/envinfo/commits?author=zacanger "Code") [🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Azacanger "Bug reports") | [
Ville Immonen](https://twitter.com/VilleImmonen)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Afson "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=fson "Code") | [
Olmo Maldonado](http://ibolmo.com)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Aibolmo "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=ibolmo "Code") | [
Rishabh Chawla](https://rishabhchawla.co)
[🐛](https://github.com/tabrindle/envinfo/issues?q=author%3Arishabh3112 "Bug reports") [💻](https://github.com/tabrindle/envinfo/commits?author=rishabh3112 "Code") | - - -This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! diff --git a/build/node_modules/envinfo/package.json b/build/node_modules/envinfo/package.json deleted file mode 100644 index f3af516a..00000000 --- a/build/node_modules/envinfo/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "envinfo", - "version": "7.10.0", - "description": "Info about your dev environment for debugging purposes", - "repository": "https://github.com/tabrindle/envinfo", - "author": "tabrindle@gmail.com", - "license": "MIT", - "files": [ - "dist/" - ], - "main": "dist/envinfo.js", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "build": "webpack --progress", - "check:format": "prettier -l src/**/*.js --verbose", - "compress": "gzexe envinfo-* && upx envinfo-win.exe", - "contributors:add": "all-contributors add", - "contributors:generate": "all-contributors generate", - "postcompress": "tar -czvf envinfo-linux.tar.gz envinfo-linux && tar -czvf envinfo-macos.tar.gz envinfo-macos && zip -r -X envinfo-win.zip envinfo-win.exe", - "executable": "pkg package.json", - "format": "prettier --write src/**/*.js", - "lint": "eslint src", - "lint-fix": "eslint src --fix", - "preversion": "npm run test && webpack && git add .", - "postversion": "npm run executable && npm run compress && npm run release", - "release": "github-release upload --owner=tabrindle --repo=envinfo --tag=${npm_package_version} 'envinfo-linux.tar.gz' 'envinfo-macos.tar.gz' 'envinfo-win.zip'", - "start": "node -r esm src/cli.js", - "test": "jest --env=node && eslint src && prettier -l src/**/*.js" - }, - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS && npm run lint" - } - }, - "keywords": [ - "development", - "env", - "environment", - "info", - "issues", - "reporting", - "diagnostics" - ], - "pkg": { - "scripts": "dist/*.js", - "targets": [ - "linux", - "macos", - "win" - ] - }, - "jest": { - "testEnvironment": "node" - }, - "dependencies": {}, - "devDependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-proposal-optional-chaining": "^7.2.0", - "@babel/polyfill": "^7.2.5", - "@babel/preset-env": "^7.3.1", - "@commitlint/cli": "^8.3.5", - "@commitlint/config-conventional": "^8.3.4", - "all-contributors-cli": "^4.11.1", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "^10.0.1", - "babel-jest": "23.6.0", - "babel-loader": "^8.0.5", - "eslint": "^5.13.0", - "eslint-config-airbnb-base": "^12.1.0", - "eslint-config-prettier": "^2.7.0", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-prettier": "^2.3.1", - "esm": "^3.2.22", - "github-release-cli": "^0.4.1", - "glob": "^7.1.6", - "husky": "^4.2.5", - "jest": "^22.4.3", - "minimist": "^1.2.5", - "os-name": "^3.1.0", - "pkg": "^4.5.1", - "prettier": "^1.19.1", - "prettier-eslint-cli": "^4.1.1", - "webpack": "^4.29.6", - "webpack-cli": "^3.1.2", - "which": "^1.2.14", - "yamlify-object": "^0.5.1" - }, - "resolutions": { - "lodash": "4.17.15" - } -} diff --git a/build/node_modules/err-code/.editorconfig b/build/node_modules/err-code/.editorconfig deleted file mode 100644 index 829280be..00000000 --- a/build/node_modules/err-code/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[package.json] -indent_size = 2 diff --git a/build/node_modules/err-code/.eslintrc.json b/build/node_modules/err-code/.eslintrc.json deleted file mode 100644 index 4829595a..00000000 --- a/build/node_modules/err-code/.eslintrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "root": true, - "extends": [ - "@satazor/eslint-config/es6", - "@satazor/eslint-config/addons/node" - ] -} \ No newline at end of file diff --git a/build/node_modules/err-code/.travis.yml b/build/node_modules/err-code/.travis.yml deleted file mode 100644 index b29cf66a..00000000 --- a/build/node_modules/err-code/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "4" - - "6" diff --git a/build/node_modules/err-code/README.md b/build/node_modules/err-code/README.md deleted file mode 100644 index 5afdab00..00000000 --- a/build/node_modules/err-code/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# err-code - -[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url] [![Greenkeeper badge][greenkeeper-image]][greenkeeper-url] - -[npm-url]:https://npmjs.org/package/err-code -[downloads-image]:http://img.shields.io/npm/dm/err-code.svg -[npm-image]:http://img.shields.io/npm/v/err-code.svg -[travis-url]:https://travis-ci.org/IndigoUnited/js-err-code -[travis-image]:http://img.shields.io/travis/IndigoUnited/js-err-code/master.svg -[david-dm-url]:https://david-dm.org/IndigoUnited/js-err-code -[david-dm-image]:https://img.shields.io/david/IndigoUnited/js-err-code.svg -[david-dm-dev-url]:https://david-dm.org/IndigoUnited/js-err-code?type=dev -[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/js-err-code.svg -[greenkeeper-image]:https://badges.greenkeeper.io/IndigoUnited/js-err-code.svg -[greenkeeper-url]:https://greenkeeper.io/ - -Create new error instances with a code and additional properties. - - -## Installation - -```console -$ npm install err-code -// or -$ bower install err-code -``` - -The browser file is named index.umd.js which supports CommonJS, AMD and globals (errCode). - - -## Why - -I find myself doing this repeatedly: - -```js -var err = new Error('My message'); -err.code = 'SOMECODE'; -err.detail = 'Additional information about the error'; -throw err; -``` - - -## Usage - -Simple usage. - -```js -var errcode = require('err-code'); - -// fill error with message + code -throw errcode(new Error('My message'), 'ESOMECODE'); -// fill error with message + code + props -throw errcode(new Error('My message'), 'ESOMECODE', { detail: 'Additional information about the error' }); -// fill error with message + props -throw errcode(new Error('My message'), { detail: 'Additional information about the error' }); -``` - -## Pre-existing fields - -If the passed `Error` already has a `.code` field, or fields specified in the third argument to `errcode` they will be overwritten, unless the fields are read only or otherwise throw during assignment in which case a new object will be created that shares a prototype chain with the original `Error`. The `.stack` and `.message` properties will be carried over from the original error and `.code` or any passed properties will be set on it. - - -## Tests - -`$ npm test` - - -## License - -Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). diff --git a/build/node_modules/err-code/bower.json b/build/node_modules/err-code/bower.json deleted file mode 100644 index a39cb702..00000000 --- a/build/node_modules/err-code/bower.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "err-code", - "version": "1.1.1", - "description": "Create new error instances with a code and additional properties", - "main": "index.umd.js", - "homepage": "https://github.com/IndigoUnited/js-err-code", - "authors": [ - "IndigoUnited (http://indigounited.com)" - ], - "moduleType": [ - "amd", - "globals", - "node" - ], - "keywords": [ - "error", - "err", - "code", - "properties", - "property" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/build/node_modules/err-code/index.js b/build/node_modules/err-code/index.js deleted file mode 100644 index 9ff3e9c5..00000000 --- a/build/node_modules/err-code/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -function assign(obj, props) { - for (const key in props) { - Object.defineProperty(obj, key, { - value: props[key], - enumerable: true, - configurable: true, - }); - } - - return obj; -} - -function createError(err, code, props) { - if (!err || typeof err === 'string') { - throw new TypeError('Please pass an Error to err-code'); - } - - if (!props) { - props = {}; - } - - if (typeof code === 'object') { - props = code; - code = undefined; - } - - if (code != null) { - props.code = code; - } - - try { - return assign(err, props); - } catch (_) { - props.message = err.message; - props.stack = err.stack; - - const ErrClass = function () {}; - - ErrClass.prototype = Object.create(Object.getPrototypeOf(err)); - - return assign(new ErrClass(), props); - } -} - -module.exports = createError; diff --git a/build/node_modules/err-code/index.umd.js b/build/node_modules/err-code/index.umd.js deleted file mode 100644 index 41007269..00000000 --- a/build/node_modules/err-code/index.umd.js +++ /dev/null @@ -1,51 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.errCode = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i index.umd.js" - }, - "bugs": { - "url": "https://github.com/IndigoUnited/js-err-code/issues/" - }, - "repository": { - "type": "git", - "url": "git://github.com/IndigoUnited/js-err-code.git" - }, - "keywords": [ - "error", - "err", - "code", - "properties", - "property" - ], - "author": "IndigoUnited (http://indigounited.com)", - "license": "MIT", - "devDependencies": { - "@satazor/eslint-config": "^3.0.0", - "browserify": "^16.5.1", - "eslint": "^7.2.0", - "expect.js": "^0.3.1", - "mocha": "^8.0.1" - } -} diff --git a/build/node_modules/error-stack-parser/LICENSE b/build/node_modules/error-stack-parser/LICENSE deleted file mode 100644 index 5c09f1a0..00000000 --- a/build/node_modules/error-stack-parser/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2017 Eric Wendelin and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/error-stack-parser/README.md b/build/node_modules/error-stack-parser/README.md deleted file mode 100644 index ac7d30b2..00000000 --- a/build/node_modules/error-stack-parser/README.md +++ /dev/null @@ -1,44 +0,0 @@ -error-stack-parser.js - Extract meaning from JS Errors -=============== -[![Build Status](https://img.shields.io/github/workflow/status/stacktracejs/error-stack-parser/Continuous%20Integration/master?logo=github&style=flat-square)](https://github.com/stacktracejs/error-stack-parser/actions?query=workflow%3AContinuous+Integration+branch%3Amaster) -[![Coverage Status](https://img.shields.io/coveralls/stacktracejs/error-stack-parser.svg?style=flat-square)](https://coveralls.io/r/stacktracejs/error-stack-parser?branch=master) -[![GitHub license](https://img.shields.io/github/license/stacktracejs/error-stack-parser.svg?style=flat-square)](https://opensource.org/licenses/MIT) -[![size with dependencies](https://img.shields.io/badge/size-4.8k-green.svg?style=flat-square)](https://github.com/stacktracejs/error-stack-parser/releases) -[![gzip size](https://img.shields.io/badge/gzipped-1.8k-green.svg?style=flat-square)](https://github.com/stacktracejs/error-stack-parser/releases) -[![module format](https://img.shields.io/badge/module%20format-umd-lightgrey.svg?style=flat-square&colorB=ff69b4)](https://github.com/stacktracejs/error-stack-parser/releases) -[![code of conduct](https://img.shields.io/badge/code%20of-conduct-lightgrey.svg?style=flat-square&colorB=ff69b4)](http://todogroup.org/opencodeofconduct/#stacktrace.js/me@eriwen.com) -[![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/error-stack-parser/badge)](https://www.jsdelivr.com/package/npm/error-stack-parser) - -Simple, cross-browser [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) parser. -This library parses and extracts function names, URLs, line numbers, and column numbers from the given Error's `stack` as -an Array of [StackFrame](http://git.io/stackframe)s. - -Once you have parsed out StackFrames, you can do much more interesting things. See [stacktrace-gps](http://git.io/stacktrace-gps). - -Note that in IE9 and earlier, `Error` objects don't have enough information to extract much of anything. In IE 10, `Error`s -are given a `stack` once they're `throw`n. - -## Browser Support -[![Sauce Test Status](https://saucelabs.com/browser-matrix/stacktracejs.svg)](https://saucelabs.com/u/stacktracejs) - -## Usage -```js -ErrorStackParser.parse(new Error('BOOM')); - -=> [ - StackFrame({functionName: 'foo', args: [], fileName: 'path/to/file.js', lineNumber: 35, columnNumber: 79, isNative: false, isEval: false}), - StackFrame({functionName: 'Bar', fileName: 'https://cdn.somewherefast.com/utils.min.js', lineNumber: 1, columnNumber: 832, isNative: false, isEval: false, isConstructor: true}), - StackFrame(... and so on ...) - ] -``` - -## Installation -```bash -npm install error-stack-parser -bower install error-stack-parser -https://raw.githubusercontent.com/stacktracejs/error-stack-parser/master/dist/error-stack-parser.min.js -``` - -## Contributing -Want to be listed as a *Contributor*? Start with the [Contributing Guide](.github/CONTRIBUTING.md)! - diff --git a/build/node_modules/error-stack-parser/error-stack-parser.d.ts b/build/node_modules/error-stack-parser/error-stack-parser.d.ts deleted file mode 100644 index 10ba6145..00000000 --- a/build/node_modules/error-stack-parser/error-stack-parser.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Type definitions for ErrorStackParser v2.1.0 -// Project: https://github.com/stacktracejs/error-stack-parser -// Definitions by: Eric Wendelin -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -import StackFrame = require("stackframe"); - -declare namespace ErrorStackParser { - export type {StackFrame}; - /** - * Given an Error object, extract the most information from it. - * - * @param {Error} error object - * @return {Array} of StackFrames - */ - export function parse(error: Error): StackFrame[]; -} - -export = ErrorStackParser; diff --git a/build/node_modules/error-stack-parser/error-stack-parser.js b/build/node_modules/error-stack-parser/error-stack-parser.js deleted file mode 100644 index 5231091b..00000000 --- a/build/node_modules/error-stack-parser/error-stack-parser.js +++ /dev/null @@ -1,202 +0,0 @@ -(function(root, factory) { - 'use strict'; - // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers. - - /* istanbul ignore next */ - if (typeof define === 'function' && define.amd) { - define('error-stack-parser', ['stackframe'], factory); - } else if (typeof exports === 'object') { - module.exports = factory(require('stackframe')); - } else { - root.ErrorStackParser = factory(root.StackFrame); - } -}(this, function ErrorStackParser(StackFrame) { - 'use strict'; - - var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\S+:\d+/; - var CHROME_IE_STACK_REGEXP = /^\s*at .*(\S+:\d+|\(native\))/m; - var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\[native code])?$/; - - return { - /** - * Given an Error object, extract the most information from it. - * - * @param {Error} error object - * @return {Array} of StackFrames - */ - parse: function ErrorStackParser$$parse(error) { - if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') { - return this.parseOpera(error); - } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) { - return this.parseV8OrIE(error); - } else if (error.stack) { - return this.parseFFOrSafari(error); - } else { - throw new Error('Cannot parse given Error object'); - } - }, - - // Separate line and column numbers from a string of the form: (URI:Line:Column) - extractLocation: function ErrorStackParser$$extractLocation(urlLike) { - // Fail-fast but return locations like "(native)" - if (urlLike.indexOf(':') === -1) { - return [urlLike]; - } - - var regExp = /(.+?)(?::(\d+))?(?::(\d+))?$/; - var parts = regExp.exec(urlLike.replace(/[()]/g, '')); - return [parts[1], parts[2] || undefined, parts[3] || undefined]; - }, - - parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) { - var filtered = error.stack.split('\n').filter(function(line) { - return !!line.match(CHROME_IE_STACK_REGEXP); - }, this); - - return filtered.map(function(line) { - if (line.indexOf('(eval ') > -1) { - // Throw away eval information until we implement stacktrace.js/stackframe#8 - line = line.replace(/eval code/g, 'eval').replace(/(\(eval at [^()]*)|(,.*$)/g, ''); - } - var sanitizedLine = line.replace(/^\s+/, '').replace(/\(eval code/g, '(').replace(/^.*?\s+/, ''); - - // capture and preseve the parenthesized location "(/foo/my bar.js:12:87)" in - // case it has spaces in it, as the string is split on \s+ later on - var location = sanitizedLine.match(/ (\(.+\)$)/); - - // remove the parenthesized location from the line, if it was matched - sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine; - - // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine - // because this line doesn't have function name - var locationParts = this.extractLocation(location ? location[1] : sanitizedLine); - var functionName = location && sanitizedLine || undefined; - var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0]; - - return new StackFrame({ - functionName: functionName, - fileName: fileName, - lineNumber: locationParts[1], - columnNumber: locationParts[2], - source: line - }); - }, this); - }, - - parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) { - var filtered = error.stack.split('\n').filter(function(line) { - return !line.match(SAFARI_NATIVE_CODE_REGEXP); - }, this); - - return filtered.map(function(line) { - // Throw away eval information until we implement stacktrace.js/stackframe#8 - if (line.indexOf(' > eval') > -1) { - line = line.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, ':$1'); - } - - if (line.indexOf('@') === -1 && line.indexOf(':') === -1) { - // Safari eval frames only have function names and nothing else - return new StackFrame({ - functionName: line - }); - } else { - var functionNameRegex = /((.*".+"[^@]*)?[^@]*)(?:@)/; - var matches = line.match(functionNameRegex); - var functionName = matches && matches[1] ? matches[1] : undefined; - var locationParts = this.extractLocation(line.replace(functionNameRegex, '')); - - return new StackFrame({ - functionName: functionName, - fileName: locationParts[0], - lineNumber: locationParts[1], - columnNumber: locationParts[2], - source: line - }); - } - }, this); - }, - - parseOpera: function ErrorStackParser$$parseOpera(e) { - if (!e.stacktrace || (e.message.indexOf('\n') > -1 && - e.message.split('\n').length > e.stacktrace.split('\n').length)) { - return this.parseOpera9(e); - } else if (!e.stack) { - return this.parseOpera10(e); - } else { - return this.parseOpera11(e); - } - }, - - parseOpera9: function ErrorStackParser$$parseOpera9(e) { - var lineRE = /Line (\d+).*script (?:in )?(\S+)/i; - var lines = e.message.split('\n'); - var result = []; - - for (var i = 2, len = lines.length; i < len; i += 2) { - var match = lineRE.exec(lines[i]); - if (match) { - result.push(new StackFrame({ - fileName: match[2], - lineNumber: match[1], - source: lines[i] - })); - } - } - - return result; - }, - - parseOpera10: function ErrorStackParser$$parseOpera10(e) { - var lineRE = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i; - var lines = e.stacktrace.split('\n'); - var result = []; - - for (var i = 0, len = lines.length; i < len; i += 2) { - var match = lineRE.exec(lines[i]); - if (match) { - result.push( - new StackFrame({ - functionName: match[3] || undefined, - fileName: match[2], - lineNumber: match[1], - source: lines[i] - }) - ); - } - } - - return result; - }, - - // Opera 10.65+ Error.stack very similar to FF/Safari - parseOpera11: function ErrorStackParser$$parseOpera11(error) { - var filtered = error.stack.split('\n').filter(function(line) { - return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/); - }, this); - - return filtered.map(function(line) { - var tokens = line.split('@'); - var locationParts = this.extractLocation(tokens.pop()); - var functionCall = (tokens.shift() || ''); - var functionName = functionCall - .replace(//, '$2') - .replace(/\([^)]*\)/g, '') || undefined; - var argsRaw; - if (functionCall.match(/\(([^)]*)\)/)) { - argsRaw = functionCall.replace(/^[^(]+\(([^)]*)\)$/, '$1'); - } - var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ? - undefined : argsRaw.split(','); - - return new StackFrame({ - functionName: functionName, - args: args, - fileName: locationParts[0], - lineNumber: locationParts[1], - columnNumber: locationParts[2], - source: line - }); - }, this); - } - }; -})); diff --git a/build/node_modules/error-stack-parser/package.json b/build/node_modules/error-stack-parser/package.json deleted file mode 100644 index 71ecc101..00000000 --- a/build/node_modules/error-stack-parser/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "error-stack-parser", - "description": "Extract meaning from JS Errors", - "maintainers": [ - "Eric Wendelin (https://www.eriwen.com)", - "Victor Homyakov (https://github.com/victor-homyakov)", - "Oliver Salzburg (https://github.com/oliversalzburg)", - "Ben Gourley (https://github.com/bengourley)" - ], - "version": "2.1.4", - "license": "MIT", - "keywords": [ - "stacktrace", - "error", - "stack", - "parser" - ], - "homepage": "https://www.stacktracejs.com", - "dependencies": { - "stackframe": "^1.3.4" - }, - "repository": { - "type": "git", - "url": "git://github.com/stacktracejs/error-stack-parser.git" - }, - "devDependencies": { - "eslint": "^8.17.0", - "jasmine": "^4.1.0", - "jasmine-core": "^4.1.1", - "karma": "^6.3.20", - "karma-chrome-launcher": "^3.1.1", - "karma-coverage": "^2.2.0", - "karma-coveralls": "^2.1.0", - "karma-firefox-launcher": "^2.1.2", - "karma-ie-launcher": "^1.0.0", - "karma-jasmine": "^4.0.2", - "karma-opera-launcher": "^1.0.0", - "karma-phantomjs-launcher": "^1.0.4", - "karma-safari-launcher": "^1.0.0", - "karma-sauce-launcher": "^4.3.6", - "karma-spec-reporter": "^0.0.34", - "uglify-es": "^3.3.9" - }, - "bugs": { - "url": "https://github.com/stacktracejs/error-stack-parser/issues" - }, - "main": "./error-stack-parser.js", - "typings": "./error-stack-parser.d.ts", - "files": [ - "LICENSE", - "README.md", - "error-stack-parser.js", - "error-stack-parser.d.ts", - "dist/" - ], - "scripts": { - "lint": "eslint --fix .", - "test": "karma start karma.conf.js --single-run", - "test-pr": "karma start karma.conf.js --single-run --browsers Firefox,Chrome_No_Sandbox", - "test-ci": "karma start karma.conf.ci.js --single-run", - "prepare": "cp error-stack-parser.js dist/ && uglifyjs node_modules/stackframe/stackframe.js error-stack-parser.js -o dist/error-stack-parser.min.js --compress --mangle --source-map \"url=error-stack-parser.min.js.map\"" - } -} diff --git a/build/node_modules/es-module-lexer/CHANGELOG.md b/build/node_modules/es-module-lexer/CHANGELOG.md deleted file mode 100644 index 6bd14f54..00000000 --- a/build/node_modules/es-module-lexer/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -0.3.13 -* Fix comment support in export var statements (https://github.com/guybedford/es-module-lexer/pull/35) - -0.3.12 -* Fix empty export statement handling (https://github.com/guybedford/es-module-lexer/pull/32) -* Add Binaryen optimization passes to reduce file size (https://github.com/guybedford/es-module-lexer/pull/33) - -0.3.11 -* Fixup parse error column handling (https://github.com/guybedford/es-module-lexer/commit/3979105162c50827af00dc4549944d708896da53) -* Fix non-terminating loop case (https://github.com/guybedford/es-module-lexer/pull/31) - -0.3.10 -* Better parse errors (https://github.com/guybedford/es-module-lexer/pull/30) -* Handle end offset correctly (https://github.com/guybedford/es-module-lexer/pull/29) - -0.3.9 -* Better invalid state handling (https://github.com/guybedford/es-module-lexer/pull/28) -* Handle allocations for large numbers of exports (https://github.com/guybedford/es-module-lexer/pull/27) - -0.3.8 -* Fix template parsing bug (https://github.com/guybedford/es-module-lexer/pull/22) - -0.3.7 -* Refactoring (https://github.com/guybedford/es-module-lexer/pull/20, https://github.com/guybedford/es-module-lexer/pull/21) - -0.3.6 -* Fix case where methods named import would be incorrectly reported as dynamic imports (https://github.com/guybedford/es-module-lexer/pull/19) - -0.3.5 -* Fix Node.js 10 memory grow support for globals without a value getter (https://github.com/guybedford/es-module-lexer/issues/14) - -0.3.4 -* Use UTF16 encoding for better performance, and removing reliance on TextEncoder (https://github.com/guybedford/es-module-lexer/pull/15) - -0.3.3 -* Minification improvements -* Fix for TextEncoder global being missing in Node.js 10 -* Fix CJS build to end in .cjs extension for modules compatibility - -0.3.2 -* Fix export declaration parse bugs (https://github.com/guybedford/es-module-lexer/pull/11) - -0.3.1 -* Fix up the ESM and CJS interfaces to use named exports - -0.3.0 -* Web Assembly conversion for performance (https://github.com/guybedford/es-module-lexer/pull/7) -* Fix $ characters in templates (https://github.com/guybedford/es-module-lexer/pull/6, @LarsDenBakker) -* Fix comment handling in imports (https://github.com/guybedford/es-module-lexer/issues/8) - -0.2.0 -* Include CJS build (https://github.com/guybedford/es-module-lexer/pull/1, @LarsDenBakker) diff --git a/build/node_modules/es-module-lexer/LICENSE b/build/node_modules/es-module-lexer/LICENSE deleted file mode 100644 index cfeb4885..00000000 --- a/build/node_modules/es-module-lexer/LICENSE +++ /dev/null @@ -1,10 +0,0 @@ -MIT License ------------ - -Copyright (C) 2018-2019 Guy Bedford - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/es-module-lexer/README.md b/build/node_modules/es-module-lexer/README.md deleted file mode 100644 index 91f19e73..00000000 --- a/build/node_modules/es-module-lexer/README.md +++ /dev/null @@ -1,187 +0,0 @@ -# ES Module Lexer - -[![Build Status][travis-image]][travis-url] - -A JS module syntax lexer used in [es-module-shims](https://github.com/guybedford/es-module-shims). - -Outputs the list of exports and locations of import specifiers, including dynamic import and import meta handling. - -A very small single JS file (4KiB gzipped) that includes inlined Web Assembly for very fast source analysis of ECMAScript module syntax only. - -For an example of the performance, Angular 1 (720KiB) is fully parsed in 5ms, in comparison to the fastest JS parser, Acorn which takes over 100ms. - -_Comprehensively handles the JS language grammar while remaining small and fast. - ~10ms per MB of JS cold and ~5ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._ - -### Usage - -``` -npm install es-module-lexer -``` - -For use in CommonJS: - -```js -const { init, parse } = require('es-module-lexer'); - -(async () => { - // either await init, or call parse asynchronously - // this is necessary for the Web Assembly boot - await init; - - const [imports, exports] = parse('export var p = 5'); - exports[0] === 'p'; -})(); -``` - -An ES module version is also available from `dist/lexer.js`: -Note: This version will be automatically used in rollup/es-dev-server/node (if an es-module project) - -```js -import { init, parse } from 'es-module-lexer/dist/lexer.js'; - -(async () => { - await init; - - const source = ` - import { a } from 'asdf'; - export var p = 5; - export function q () { - - }; - - // Comments provided to demonstrate edge cases - import /*comment!*/ ('asdf'); - import /*comment!*/.meta.asdf; - `; - - const [imports, exports] = parse(source, 'optional-sourcename'); - - // Returns "asdf" - source.substring(imports[0].s, imports[0].e); - // "s" is shorthand for "start" - // "e" is shorthand for "end" - - // Returns "import { a } from 'asdf';" - source.substring(imports[0].ss, imports[0].se); - // "ss" is shorthand for "statement start" - // "se" is shorthand for "statement end" - - // Returns "p,q" - exports.toString(); - - // Dynamic imports are indicated by imports[1].d > -1 - // In this case the "d" index is the start of the dynamic import - // Returns true - imports[1].d > -1; - - // Returns "'asdf'" - source.substring(imports[1].s, imports[1].e); - // Returns "import /*comment!*/ (" - source.substring(imports[1].d, imports[1].s); - // Returns "import /*comment!*/ ('asdf')" - source.substring(imports[1].d, imports[1].e + 1); - // imports[1].ss and imports[1].se is not meaningful - // because dynamic import is not a statement - - // import.meta is indicated by imports[2].d === -2 - // Returns true - imports[2].d === -2; - // Returns "import /*comment!*/.meta" - source.substring(imports[2].s, imports[2].e); -})(); -``` - -### Facade Detection - -Facade modules that only use import / export syntax can be detected via the third return value: - -```js -const [,, facade] = parse(` - export * from 'external'; - import * as ns from 'external2'; - export { a as b } from 'external3'; - export { ns }; -`); -facade === true; -``` - -### Environment Support - -Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#feat=wasm). - -### Grammar Support - -* Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators. -* Division operator / regex token ambiguity is handled via backtracking checks against punctuator prefixes, including closing brace or paren backtracking. -* Always correctly parses valid JS source, but may parse invalid JS source without errors. - -### Limitations - -The lexing approach is designed to deal with the full language grammar including RegEx / division operator ambiguity through backtracking and paren / brace tracking. - -The only limitation to the reduced parser is that the "exports" list may not correctly gather all export identifiers in the following edge cases: - -```js -// Only "a" is detected as an export, "q" isn't -export var a = 'asdf', q = z; - -// "b" is not detected as an export -export var { a: b } = asdf; -``` - -The above cases are handled gracefully in that the lexer will keep going fine, it will just not properly detect the export names above. - -### Benchmarks - -Benchmarks can be run with `npm run bench`. - -Current results: - -``` -Module load time -> 7ms -Cold Run, All Samples -test/samples/*.js (3057 KiB) -> 33ms - -Warm Runs (average of 25 runs) -test/samples/angular.js (719 KiB) -> 4.08ms -test/samples/angular.min.js (188 KiB) -> 2.08ms -test/samples/d3.js (491 KiB) -> 4.72ms -test/samples/d3.min.js (274 KiB) -> 3ms -test/samples/magic-string.js (34 KiB) -> 0.04ms -test/samples/magic-string.min.js (20 KiB) -> 0ms -test/samples/rollup.js (902 KiB) -> 8.16ms -test/samples/rollup.min.js (429 KiB) -> 4.28ms - -Warm Runs, All Samples (average of 25 runs) -test/samples/*.js (3057 KiB) -> 25.68ms -``` - -### Building - -To build download the WASI SDK from https://github.com/WebAssembly/wasi-sdk/releases. - -The Makefile assumes the existence of "wasi-sdk-11.0" and "wabt" (optional) as sibling folders to this project. - -The build through the Makefile is then run via `make lib/lexer.wasm`, which can also be triggered via `npm run build-wasm` to create `dist/lexer.js`. - -On Windows it may be preferable to use the Linux subsystem. - -After the Web Assembly build, the CJS build can be triggered via `npm run build`. - -### License - -MIT - -[travis-url]: https://travis-ci.org/guybedford/es-module-lexer -[travis-image]: https://travis-ci.org/guybedford/es-module-lexer.svg?branch=master diff --git a/build/node_modules/es-module-lexer/package.json b/build/node_modules/es-module-lexer/package.json deleted file mode 100644 index f1055e00..00000000 --- a/build/node_modules/es-module-lexer/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "es-module-lexer", - "version": "0.3.26", - "description": "Lexes ES modules returning their import/export metadata", - "main": "dist/lexer.cjs", - "module": "dist/lexer.js", - "scripts": { - "test": "NODE_OPTIONS=\"--experimental-modules\" mocha -b -u tdd test/*.cjs", - "build": "node --experimental-modules build.js && babel dist/lexer.js | terser -o dist/lexer.cjs", - "build-wasm": "make lib/lexer.wasm && node build.js", - "bench": "node --experimental-modules --expose-gc bench/index.js", - "prepublishOnly": "npm run build", - "footprint": "npm run build && cat dist/lexer.js | gzip -9f | wc -c" - }, - "author": "Guy Bedford", - "license": "MIT", - "devDependencies": { - "@babel/cli": "^7.5.5", - "@babel/core": "^7.5.5", - "@babel/plugin-transform-modules-commonjs": "^7.5.0", - "kleur": "^2.0.2", - "mocha": "^5.2.0", - "terser": "^4.1.4" - }, - "files": [ - "dist" - ], - "type": "module", - "repository": { - "type": "git", - "url": "git+https://github.com/guybedford/es-module-lexer.git" - }, - "bugs": { - "url": "https://github.com/guybedford/es-module-lexer/issues" - }, - "homepage": "https://github.com/guybedford/es-module-lexer#readme" -} diff --git a/build/node_modules/escalade/index.d.ts b/build/node_modules/escalade/index.d.ts deleted file mode 100644 index 283e398d..00000000 --- a/build/node_modules/escalade/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -type Promisable = T | Promise; -export type Callback = (directory: string, files: string[]) => Promisable; -export default function (directory: string, callback: Callback): Promise; diff --git a/build/node_modules/escalade/license b/build/node_modules/escalade/license deleted file mode 100644 index fa6089fa..00000000 --- a/build/node_modules/escalade/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Luke Edwards (lukeed.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/escalade/package.json b/build/node_modules/escalade/package.json deleted file mode 100644 index 0d1bfce9..00000000 --- a/build/node_modules/escalade/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "escalade", - "version": "3.1.1", - "repository": "lukeed/escalade", - "description": "A tiny (183B to 210B) and fast utility to ascend parent directories", - "module": "dist/index.mjs", - "main": "dist/index.js", - "types": "index.d.ts", - "license": "MIT", - "author": { - "name": "Luke Edwards", - "email": "luke.edwards05@gmail.com", - "url": "https://lukeed.com" - }, - "exports": { - ".": [ - { - "import": "./dist/index.mjs", - "require": "./dist/index.js" - }, - "./dist/index.js" - ], - "./sync": [ - { - "import": "./sync/index.mjs", - "require": "./sync/index.js" - }, - "./sync/index.js" - ] - }, - "files": [ - "*.d.ts", - "dist", - "sync" - ], - "modes": { - "sync": "src/sync.js", - "default": "src/async.js" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "build": "bundt", - "pretest": "npm run build", - "test": "uvu -r esm test -i fixtures" - }, - "keywords": [ - "find", - "parent", - "parents", - "directory", - "search", - "walk" - ], - "devDependencies": { - "bundt": "1.1.1", - "esm": "3.2.25", - "uvu": "0.3.3" - } -} diff --git a/build/node_modules/escalade/readme.md b/build/node_modules/escalade/readme.md deleted file mode 100644 index 4e2195c1..00000000 --- a/build/node_modules/escalade/readme.md +++ /dev/null @@ -1,211 +0,0 @@ -# escalade [![CI](https://github.com/lukeed/escalade/workflows/CI/badge.svg)](https://github.com/lukeed/escalade/actions) [![codecov](https://badgen.now.sh/codecov/c/github/lukeed/escalade)](https://codecov.io/gh/lukeed/escalade) - -> A tiny (183B to 210B) and [fast](#benchmarks) utility to ascend parent directories - -With [escalade](https://en.wikipedia.org/wiki/Escalade), you can scale parent directories until you've found what you're looking for.
Given an input file or directory, `escalade` will continue executing your callback function until either: - -1) the callback returns a truthy value -2) `escalade` has reached the system root directory (eg, `/`) - -> **Important:**
Please note that `escalade` only deals with direct ancestry – it will not dive into parents' sibling directories. - ---- - -**Notice:** As of v3.1.0, `escalade` now includes [Deno support](http://deno.land/x/escalade)! Please see [Deno Usage](#deno) below. - ---- - -## Install - -``` -$ npm install --save escalade -``` - - -## Modes - -There are two "versions" of `escalade` available: - -#### "async" -> **Node.js:** >= 8.x
-> **Size (gzip):** 210 bytes
-> **Availability:** [CommonJS](https://unpkg.com/escalade/dist/index.js), [ES Module](https://unpkg.com/escalade/dist/index.mjs) - -This is the primary/default mode. It makes use of `async`/`await` and [`util.promisify`](https://nodejs.org/api/util.html#util_util_promisify_original). - -#### "sync" -> **Node.js:** >= 6.x
-> **Size (gzip):** 183 bytes
-> **Availability:** [CommonJS](https://unpkg.com/escalade/sync/index.js), [ES Module](https://unpkg.com/escalade/sync/index.mjs) - -This is the opt-in mode, ideal for scenarios where `async` usage cannot be supported. - - -## Usage - -***Example Structure*** - -``` -/Users/lukeed - └── oss - ├── license - └── escalade - ├── package.json - └── test - └── fixtures - ├── index.js - └── foobar - └── demo.js -``` - -***Example Usage*** - -```js -//~> demo.js -import { join } from 'path'; -import escalade from 'escalade'; - -const input = join(__dirname, 'demo.js'); -// or: const input = __dirname; - -const pkg = await escalade(input, (dir, names) => { - console.log('~> dir:', dir); - console.log('~> names:', names); - console.log('---'); - - if (names.includes('package.json')) { - // will be resolved into absolute - return 'package.json'; - } -}); - -//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar -//~> names: ['demo.js'] -//--- -//~> dir: /Users/lukeed/oss/escalade/test/fixtures -//~> names: ['index.js', 'foobar'] -//--- -//~> dir: /Users/lukeed/oss/escalade/test -//~> names: ['fixtures'] -//--- -//~> dir: /Users/lukeed/oss/escalade -//~> names: ['package.json', 'test'] -//--- - -console.log(pkg); -//=> /Users/lukeed/oss/escalade/package.json - -// Now search for "missing123.txt" -// (Assume it doesn't exist anywhere!) -const missing = await escalade(input, (dir, names) => { - console.log('~> dir:', dir); - return names.includes('missing123.txt') && 'missing123.txt'; -}); - -//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar -//~> dir: /Users/lukeed/oss/escalade/test/fixtures -//~> dir: /Users/lukeed/oss/escalade/test -//~> dir: /Users/lukeed/oss/escalade -//~> dir: /Users/lukeed/oss -//~> dir: /Users/lukeed -//~> dir: /Users -//~> dir: / - -console.log(missing); -//=> undefined -``` - -> **Note:** To run the above example with "sync" mode, import from `escalade/sync` and remove the `await` keyword. - - -## API - -### escalade(input, callback) -Returns: `string|void` or `Promise` - -When your `callback` locates a file, `escalade` will resolve/return with an absolute path.
-If your `callback` was never satisfied, then `escalade` will resolve/return with nothing (undefined). - -> **Important:**
The `sync` and `async` versions share the same API.
The **only** difference is that `sync` is not Promise-based. - -#### input -Type: `string` - -The path from which to start ascending. - -This may be a file or a directory path.
However, when `input` is a file, `escalade` will begin with its parent directory. - -> **Important:** Unless given an absolute path, `input` will be resolved from `process.cwd()` location. - -#### callback -Type: `Function` - -The callback to execute for each ancestry level. It always is given two arguments: - -1) `dir` - an absolute path of the current parent directory -2) `names` - a list (`string[]`) of contents _relative to_ the `dir` parent - -> **Note:** The `names` list can contain names of files _and_ directories. - -When your callback returns a _falsey_ value, then `escalade` will continue with `dir`'s parent directory, re-invoking your callback with new argument values. - -When your callback returns a string, then `escalade` stops iteration immediately.
-If the string is an absolute path, then it's left as is. Otherwise, the string is resolved into an absolute path _from_ the `dir` that housed the satisfying condition. - -> **Important:** Your `callback` can be a `Promise/AsyncFunction` when using the "async" version of `escalade`. - -## Benchmarks - -> Running on Node.js v10.13.0 - -``` -# Load Time - find-up 3.891ms - escalade 0.485ms - escalade/sync 0.309ms - -# Levels: 6 (target = "foo.txt"): - find-up x 24,856 ops/sec ±6.46% (55 runs sampled) - escalade x 73,084 ops/sec ±4.23% (73 runs sampled) - find-up.sync x 3,663 ops/sec ±1.12% (83 runs sampled) - escalade/sync x 9,360 ops/sec ±0.62% (88 runs sampled) - -# Levels: 12 (target = "package.json"): - find-up x 29,300 ops/sec ±10.68% (70 runs sampled) - escalade x 73,685 ops/sec ± 5.66% (66 runs sampled) - find-up.sync x 1,707 ops/sec ± 0.58% (91 runs sampled) - escalade/sync x 4,667 ops/sec ± 0.68% (94 runs sampled) - -# Levels: 18 (target = "missing123.txt"): - find-up x 21,818 ops/sec ±17.37% (14 runs sampled) - escalade x 67,101 ops/sec ±21.60% (20 runs sampled) - find-up.sync x 1,037 ops/sec ± 2.86% (88 runs sampled) - escalade/sync x 1,248 ops/sec ± 0.50% (93 runs sampled) -``` - -## Deno - -As of v3.1.0, `escalade` is available on the Deno registry. - -Please note that the [API](#api) is identical and that there are still [two modes](#modes) from which to choose: - -```ts -// Choose "async" mode -import escalade from 'https://deno.land/escalade/async.ts'; - -// Choose "sync" mode -import escalade from 'https://deno.land/escalade/sync.ts'; -``` - -> **Important:** The `allow-read` permission is required! - - -## Related - -- [premove](https://github.com/lukeed/premove) - A tiny (247B) utility to remove items recursively -- [totalist](https://github.com/lukeed/totalist) - A tiny (195B to 224B) utility to recursively list all (total) files in a directory -- [mk-dirs](https://github.com/lukeed/mk-dirs) - A tiny (420B) utility to make a directory and its parents, recursively - -## License - -MIT © [Luke Edwards](https://lukeed.com) diff --git a/build/node_modules/escape-goat/index.d.ts b/build/node_modules/escape-goat/index.d.ts deleted file mode 100644 index 4f46024d..00000000 --- a/build/node_modules/escape-goat/index.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** -Escape a string for use in HTML. - -Escapes the following characters in the given `string` argument: `&` `<` `>` `"` `'`. - -@example -``` -import {htmlEscape} from 'escape-goat'; - -htmlEscape('🦄 & 🐐'); -//=> '🦄 & 🐐' - -htmlEscape('Hello World'); -//=> 'Hello <em>World</em>' -``` -*/ -export function htmlEscape(string: string): string; - -/** -Unescape an HTML string to use as a plain string. - -Unescapes the following HTML entities in the given `htmlString` argument: `&` `<` `>` `"` `'`. - -@example -``` -import {htmlUnescape} from 'escape-goat'; - -htmlUnescape('🦄 & 🐐'); -//=> '🦄 & 🐐' -``` -*/ -export function htmlUnescape(htmlString: string): string; - -/** -[Tagged template literal](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) that escapes interpolated values. - -@example -``` -import {htmlEscapeTag} from 'escape-goat'; - -const url = 'https://sindresorhus.com?x="🦄"'; - -htmlEscapeTag`Unicorn`; -//=> 'Unicorn' -``` -*/ -export function htmlEscapeTag(template: TemplateStringsArray, ...substitutions: readonly unknown[]): string; - -/** -[Tagged template literal](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) that unescapes interpolated values. - -@example -``` -import {htmlUnescapeTag} from 'escape-goat'; - -const escapedUrl = 'https://sindresorhus.com?x="🦄"'; - -htmlUnescapeTag`URL from HTML: ${url}`; -//=> 'URL from HTML: https://sindresorhus.com?x="🦄"' -``` -*/ -export function htmlUnescapeTag(template: TemplateStringsArray, ...substitutions: readonly unknown[]): string; diff --git a/build/node_modules/escape-goat/index.js b/build/node_modules/escape-goat/index.js deleted file mode 100644 index 0960d55e..00000000 --- a/build/node_modules/escape-goat/index.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -exports.htmlEscape = string => string - .replace(/&/g, '&') - .replace(/"/g, '"') - .replace(/'/g, ''') - .replace(//g, '>'); - -exports.htmlUnescape = htmlString => htmlString - .replace(/>/g, '>') - .replace(/</g, '<') - .replace(/�?39;/g, '\'') - .replace(/"/g, '"') - .replace(/&/g, '&'); - -exports.htmlEscapeTag = (strings, ...values) => { - let output = strings[0]; - for (let i = 0; i < values.length; i++) { - output = output + exports.htmlEscape(String(values[i])) + strings[i + 1]; - } - - return output; -}; - -exports.htmlUnescapeTag = (strings, ...values) => { - let output = strings[0]; - for (let i = 0; i < values.length; i++) { - output = output + exports.htmlUnescape(String(values[i])) + strings[i + 1]; - } - - return output; -}; diff --git a/build/node_modules/escape-goat/license b/build/node_modules/escape-goat/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/escape-goat/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/escape-goat/package.json b/build/node_modules/escape-goat/package.json deleted file mode 100644 index 84803d21..00000000 --- a/build/node_modules/escape-goat/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "escape-goat", - "version": "2.1.1", - "description": "Escape a string for use in HTML or the inverse", - "license": "MIT", - "repository": "sindresorhus/escape-goat", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "escape", - "unescape", - "html", - "entity", - "entities", - "escaping", - "sanitize", - "sanitization", - "utility", - "template", - "attribute", - "value", - "interpolate", - "xss", - "goat", - "🐐" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/escape-goat/readme.md b/build/node_modules/escape-goat/readme.md deleted file mode 100644 index 56f33d30..00000000 --- a/build/node_modules/escape-goat/readme.md +++ /dev/null @@ -1,76 +0,0 @@ -

- escape-goat -

- -> Escape a string for use in HTML or the inverse - -[![Build Status](https://travis-ci.org/sindresorhus/escape-goat.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-goat) - - -## Install - -``` -$ npm install escape-goat -``` - - -## Usage - -```js -const {htmlEscape, htmlUnescape, htmlEscapeTag, htmlUnescapeTag} = require('escape-goat'); - -htmlEscape('🦄 & 🐐'); -//=> '🦄 & 🐐' - -htmlUnescape('🦄 & 🐐'); -//=> '🦄 & 🐐' - -htmlEscape('Hello World'); -//=> 'Hello <em>World</em>' - -const url = 'https://sindresorhus.com?x="🦄"'; - -htmlEscapeTag`Unicorn`; -//=> 'Unicorn' - -const escapedUrl = 'https://sindresorhus.com?x="🦄"'; - -htmlUnescapeTag`URL from HTML: ${url}`; -//=> 'URL from HTML: https://sindresorhus.com?x="🦄"' -``` - - -## API - -### htmlEscape(string) - -Escapes the following characters in the given `string` argument: `&` `<` `>` `"` `'` - -### htmlUnescape(htmlString) - -Unescapes the following HTML entities in the given `htmlString` argument: `&` `<` `>` `"` `'` - -### htmlEscapeTag - -[Tagged template literal](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) that escapes interpolated values. - -### htmlUnescapeTag - -[Tagged template literal](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals) that unescapes interpolated values. - - -## Tip - -Ensure you always quote your HTML attributes to prevent possible [XSS](https://en.wikipedia.org/wiki/Cross-site_scripting). - - -## FAQ - -### Why yet another HTML escaping package? - -I couldn't find one I liked that was tiny, well-tested, and had both `.escape()` and `.unescape()`. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/escape-html/LICENSE b/build/node_modules/escape-html/LICENSE deleted file mode 100644 index 2e70de97..00000000 --- a/build/node_modules/escape-html/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2013 TJ Holowaychuk -Copyright (c) 2015 Andreas Lubbe -Copyright (c) 2015 Tiancheng "Timothy" Gu - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/escape-html/Readme.md b/build/node_modules/escape-html/Readme.md deleted file mode 100644 index 653d9eaa..00000000 --- a/build/node_modules/escape-html/Readme.md +++ /dev/null @@ -1,43 +0,0 @@ - -# escape-html - - Escape string for use in HTML - -## Example - -```js -var escape = require('escape-html'); -var html = escape('foo & bar'); -// -> foo & bar -``` - -## Benchmark - -``` -$ npm run-script bench - -> escape-html@1.0.3 bench nodejs-escape-html -> node benchmark/index.js - - - http_parser@1.0 - node@0.10.33 - v8@3.14.5.9 - ares@1.9.0-DEV - uv@0.10.29 - zlib@1.2.3 - modules@11 - openssl@1.0.1j - - 1 test completed. - 2 tests completed. - 3 tests completed. - - no special characters x 19,435,271 ops/sec ±0.85% (187 runs sampled) - single special character x 6,132,421 ops/sec ±0.67% (194 runs sampled) - many special characters x 3,175,826 ops/sec ±0.65% (193 runs sampled) -``` - -## License - - MIT \ No newline at end of file diff --git a/build/node_modules/escape-html/index.js b/build/node_modules/escape-html/index.js deleted file mode 100644 index bf9e226f..00000000 --- a/build/node_modules/escape-html/index.js +++ /dev/null @@ -1,78 +0,0 @@ -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -'use strict'; - -/** - * Module variables. - * @private - */ - -var matchHtmlRegExp = /["'&<>]/; - -/** - * Module exports. - * @public - */ - -module.exports = escapeHtml; - -/** - * Escape special characters in the given string of html. - * - * @param {string} string The string to escape for inserting into HTML - * @return {string} - * @public - */ - -function escapeHtml(string) { - var str = '' + string; - var match = matchHtmlRegExp.exec(str); - - if (!match) { - return str; - } - - var escape; - var html = ''; - var index = 0; - var lastIndex = 0; - - for (index = match.index; index < str.length; index++) { - switch (str.charCodeAt(index)) { - case 34: // " - escape = '"'; - break; - case 38: // & - escape = '&'; - break; - case 39: // ' - escape = '''; - break; - case 60: // < - escape = '<'; - break; - case 62: // > - escape = '>'; - break; - default: - continue; - } - - if (lastIndex !== index) { - html += str.substring(lastIndex, index); - } - - lastIndex = index + 1; - html += escape; - } - - return lastIndex !== index - ? html + str.substring(lastIndex, index) - : html; -} diff --git a/build/node_modules/escape-html/package.json b/build/node_modules/escape-html/package.json deleted file mode 100644 index 57ec7bd0..00000000 --- a/build/node_modules/escape-html/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "escape-html", - "description": "Escape string for use in HTML", - "version": "1.0.3", - "license": "MIT", - "keywords": [ - "escape", - "html", - "utility" - ], - "repository": "component/escape-html", - "devDependencies": { - "benchmark": "1.0.0", - "beautify-benchmark": "0.2.4" - }, - "files": [ - "LICENSE", - "Readme.md", - "index.js" - ], - "scripts": { - "bench": "node benchmark/index.js" - } -} diff --git a/build/node_modules/eslint-config-prettier/@typescript-eslint.js b/build/node_modules/eslint-config-prettier/@typescript-eslint.js deleted file mode 100644 index f986ab06..00000000 --- a/build/node_modules/eslint-config-prettier/@typescript-eslint.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/@typescript-eslint" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/LICENSE b/build/node_modules/eslint-config-prettier/LICENSE deleted file mode 100644 index 4b17469e..00000000 --- a/build/node_modules/eslint-config-prettier/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017, 2018, 2019, 2020, 2021, 2022, 2023 Simon Lydell and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/eslint-config-prettier/README.md b/build/node_modules/eslint-config-prettier/README.md deleted file mode 100644 index 21dab4ed..00000000 --- a/build/node_modules/eslint-config-prettier/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# eslint-config-prettier - -Turns off all rules that are unnecessary or might conflict with [Prettier]. - -This lets you use your favorite shareable config without letting its stylistic choices get in the way when using Prettier. - -Note that this config _only_ turns rules _off,_ so it only makes sense using it together with some other config. - -[prettier]: https://github.com/prettier/prettier - -**[➡️ Full readme](https://github.com/prettier/eslint-config-prettier/)** \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/babel.js b/build/node_modules/eslint-config-prettier/babel.js deleted file mode 100644 index fecd94b6..00000000 --- a/build/node_modules/eslint-config-prettier/babel.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/babel" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/flowtype.js b/build/node_modules/eslint-config-prettier/flowtype.js deleted file mode 100644 index 2677fa83..00000000 --- a/build/node_modules/eslint-config-prettier/flowtype.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/flowtype" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/index.js b/build/node_modules/eslint-config-prettier/index.js deleted file mode 100644 index 6120e385..00000000 --- a/build/node_modules/eslint-config-prettier/index.js +++ /dev/null @@ -1,225 +0,0 @@ -"use strict"; - -const includeDeprecated = !process.env.ESLINT_CONFIG_PRETTIER_NO_DEPRECATED; - -module.exports = { - rules: { - // The following rules can be used in some cases. See the README for more - // information. (These are marked with `0` instead of `"off"` so that a - // script can distinguish them.) - "curly": 0, - "lines-around-comment": 0, - "max-len": 0, - "no-confusing-arrow": 0, - "no-mixed-operators": 0, - "no-tabs": 0, - "no-unexpected-multiline": 0, - "quotes": 0, - "@typescript-eslint/lines-around-comment": 0, - "@typescript-eslint/quotes": 0, - "babel/quotes": 0, - "vue/html-self-closing": 0, - "vue/max-len": 0, - - // The rest are rules that you never need to enable when using Prettier. - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-element-newline": "off", - "arrow-parens": "off", - "arrow-spacing": "off", - "block-spacing": "off", - "brace-style": "off", - "comma-dangle": "off", - "comma-spacing": "off", - "comma-style": "off", - "computed-property-spacing": "off", - "dot-location": "off", - "eol-last": "off", - "func-call-spacing": "off", - "function-call-argument-newline": "off", - "function-paren-newline": "off", - "generator-star-spacing": "off", - "implicit-arrow-linebreak": "off", - "indent": "off", - "jsx-quotes": "off", - "key-spacing": "off", - "keyword-spacing": "off", - "linebreak-style": "off", - "max-statements-per-line": "off", - "multiline-ternary": "off", - "newline-per-chained-call": "off", - "new-parens": "off", - "no-extra-parens": "off", - "no-extra-semi": "off", - "no-floating-decimal": "off", - "no-mixed-spaces-and-tabs": "off", - "no-multi-spaces": "off", - "no-multiple-empty-lines": "off", - "no-trailing-spaces": "off", - "no-whitespace-before-property": "off", - "nonblock-statement-body-position": "off", - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "one-var-declaration-per-line": "off", - "operator-linebreak": "off", - "padded-blocks": "off", - "quote-props": "off", - "rest-spread-spacing": "off", - "semi": "off", - "semi-spacing": "off", - "semi-style": "off", - "space-before-blocks": "off", - "space-before-function-paren": "off", - "space-in-parens": "off", - "space-infix-ops": "off", - "space-unary-ops": "off", - "switch-colon-spacing": "off", - "template-curly-spacing": "off", - "template-tag-spacing": "off", - "wrap-iife": "off", - "wrap-regex": "off", - "yield-star-spacing": "off", - "@babel/object-curly-spacing": "off", - "@babel/semi": "off", - "@typescript-eslint/block-spacing": "off", - "@typescript-eslint/brace-style": "off", - "@typescript-eslint/comma-dangle": "off", - "@typescript-eslint/comma-spacing": "off", - "@typescript-eslint/func-call-spacing": "off", - "@typescript-eslint/indent": "off", - "@typescript-eslint/key-spacing": "off", - "@typescript-eslint/keyword-spacing": "off", - "@typescript-eslint/member-delimiter-style": "off", - "@typescript-eslint/no-extra-parens": "off", - "@typescript-eslint/no-extra-semi": "off", - "@typescript-eslint/object-curly-spacing": "off", - "@typescript-eslint/semi": "off", - "@typescript-eslint/space-before-blocks": "off", - "@typescript-eslint/space-before-function-paren": "off", - "@typescript-eslint/space-infix-ops": "off", - "@typescript-eslint/type-annotation-spacing": "off", - "babel/object-curly-spacing": "off", - "babel/semi": "off", - "flowtype/boolean-style": "off", - "flowtype/delimiter-dangle": "off", - "flowtype/generic-spacing": "off", - "flowtype/object-type-curly-spacing": "off", - "flowtype/object-type-delimiter": "off", - "flowtype/quotes": "off", - "flowtype/semi": "off", - "flowtype/space-after-type-colon": "off", - "flowtype/space-before-generic-bracket": "off", - "flowtype/space-before-type-colon": "off", - "flowtype/union-intersection-spacing": "off", - "react/jsx-child-element-spacing": "off", - "react/jsx-closing-bracket-location": "off", - "react/jsx-closing-tag-location": "off", - "react/jsx-curly-newline": "off", - "react/jsx-curly-spacing": "off", - "react/jsx-equals-spacing": "off", - "react/jsx-first-prop-new-line": "off", - "react/jsx-indent": "off", - "react/jsx-indent-props": "off", - "react/jsx-max-props-per-line": "off", - "react/jsx-newline": "off", - "react/jsx-one-expression-per-line": "off", - "react/jsx-props-no-multi-spaces": "off", - "react/jsx-tag-spacing": "off", - "react/jsx-wrap-multilines": "off", - "standard/array-bracket-even-spacing": "off", - "standard/computed-property-even-spacing": "off", - "standard/object-curly-even-spacing": "off", - "unicorn/empty-brace-spaces": "off", - "unicorn/no-nested-ternary": "off", - "unicorn/number-literal-case": "off", - "vue/array-bracket-newline": "off", - "vue/array-bracket-spacing": "off", - "vue/array-element-newline": "off", - "vue/arrow-spacing": "off", - "vue/block-spacing": "off", - "vue/block-tag-newline": "off", - "vue/brace-style": "off", - "vue/comma-dangle": "off", - "vue/comma-spacing": "off", - "vue/comma-style": "off", - "vue/dot-location": "off", - "vue/func-call-spacing": "off", - "vue/html-closing-bracket-newline": "off", - "vue/html-closing-bracket-spacing": "off", - "vue/html-end-tags": "off", - "vue/html-indent": "off", - "vue/html-quotes": "off", - "vue/key-spacing": "off", - "vue/keyword-spacing": "off", - "vue/max-attributes-per-line": "off", - "vue/multiline-html-element-content-newline": "off", - "vue/multiline-ternary": "off", - "vue/mustache-interpolation-spacing": "off", - "vue/no-extra-parens": "off", - "vue/no-multi-spaces": "off", - "vue/no-spaces-around-equal-signs-in-attribute": "off", - "vue/object-curly-newline": "off", - "vue/object-curly-spacing": "off", - "vue/object-property-newline": "off", - "vue/operator-linebreak": "off", - "vue/quote-props": "off", - "vue/script-indent": "off", - "vue/singleline-html-element-content-newline": "off", - "vue/space-in-parens": "off", - "vue/space-infix-ops": "off", - "vue/space-unary-ops": "off", - "vue/template-curly-spacing": "off", - - ...(includeDeprecated && { - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/generator-star - "generator-star": "off", - // Deprecated since version 4.0.0. - // https://github.com/eslint/eslint/pull/8286 - "indent-legacy": "off", - // Removed in version 2.0.0. - // https://eslint.org/docs/latest/rules/no-arrow-condition - "no-arrow-condition": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/no-comma-dangle - "no-comma-dangle": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/no-reserved-keys - "no-reserved-keys": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/no-space-before-semi - "no-space-before-semi": "off", - // Deprecated since version 3.3.0. - // https://eslint.org/docs/rules/no-spaced-func - "no-spaced-func": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/no-wrap-func - "no-wrap-func": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/space-after-function-name - "space-after-function-name": "off", - // Removed in version 2.0.0. - // https://eslint.org/docs/latest/rules/space-after-keywords - "space-after-keywords": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/space-before-function-parentheses - "space-before-function-parentheses": "off", - // Removed in version 2.0.0. - // https://eslint.org/docs/latest/rules/space-before-keywords - "space-before-keywords": "off", - // Removed in version 1.0.0. - // https://eslint.org/docs/latest/rules/space-in-brackets - "space-in-brackets": "off", - // Removed in version 2.0.0. - // https://eslint.org/docs/latest/rules/space-return-throw-case - "space-return-throw-case": "off", - // Removed in version 0.10.0. - // https://eslint.org/docs/latest/rules/space-unary-word-ops - "space-unary-word-ops": "off", - // Deprecated since version 7.0.0. - // https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06 - "react/jsx-space-before-closing": "off", - }), - }, -}; diff --git a/build/node_modules/eslint-config-prettier/package.json b/build/node_modules/eslint-config-prettier/package.json deleted file mode 100644 index ba9f15b1..00000000 --- a/build/node_modules/eslint-config-prettier/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "eslint-config-prettier", - "version": "9.0.0", - "license": "MIT", - "author": "Simon Lydell", - "description": "Turns off all rules that are unnecessary or might conflict with Prettier.", - "repository": "prettier/eslint-config-prettier", - "bin": "bin/cli.js", - "keywords": ["eslint", "eslintconfig", "prettier"], - "peerDependencies": { - "eslint": ">=7.0.0" - } -} diff --git a/build/node_modules/eslint-config-prettier/prettier.js b/build/node_modules/eslint-config-prettier/prettier.js deleted file mode 100644 index aac873c4..00000000 --- a/build/node_modules/eslint-config-prettier/prettier.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -module.exports = { - rules: { - // These are safe to use as long as the `"prettier/prettier"` rule from - // eslint-plugin-prettier isn’t enabled. - // These are also included in `"plugin:prettier/recommended"`: - // https://github.com/prettier/eslint-plugin-prettier#recommended-configuration - "arrow-body-style": 0, - "prefer-arrow-callback": 0, - }, -}; diff --git a/build/node_modules/eslint-config-prettier/react.js b/build/node_modules/eslint-config-prettier/react.js deleted file mode 100644 index a53d08ac..00000000 --- a/build/node_modules/eslint-config-prettier/react.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/react" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/standard.js b/build/node_modules/eslint-config-prettier/standard.js deleted file mode 100644 index 818cb5c7..00000000 --- a/build/node_modules/eslint-config-prettier/standard.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/standard" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/unicorn.js b/build/node_modules/eslint-config-prettier/unicorn.js deleted file mode 100644 index 6ac04a36..00000000 --- a/build/node_modules/eslint-config-prettier/unicorn.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/unicorn" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-config-prettier/vue.js b/build/node_modules/eslint-config-prettier/vue.js deleted file mode 100644 index 693d38fb..00000000 --- a/build/node_modules/eslint-config-prettier/vue.js +++ /dev/null @@ -1,3 +0,0 @@ -throw new Error( - '"prettier/vue" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' -); \ No newline at end of file diff --git a/build/node_modules/eslint-plugin-adonis/LICENSE.md b/build/node_modules/eslint-plugin-adonis/LICENSE.md deleted file mode 100644 index 344fc580..00000000 --- a/build/node_modules/eslint-plugin-adonis/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -# The MIT License - -Copyright 2020 Harminder Virk, contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/eslint-plugin-adonis/README.md b/build/node_modules/eslint-plugin-adonis/README.md deleted file mode 100644 index c2323919..00000000 --- a/build/node_modules/eslint-plugin-adonis/README.md +++ /dev/null @@ -1,75 +0,0 @@ -
- -
- -
- -
- -[![npm-image]][npm-url] ![][typescript-image] [![license-image]][license-url] [![synk-image]][synk-url] - -
- -
- - -# Eslint plugin AdonisJS -> Eslint plugin for AdonisJS applications and packages. - -This repo contains the config for eslint used by the core packages of AdonisJS and recommended for AdonisJS applications as well. - -## Installation - -You'll first need to install [ESLint](http://eslint.org): - -```sh -$ npm i eslint --save-dev -``` - -Next, install `eslint-plugin-adonis`: - -```sh -$ npm install eslint-plugin-adonis --save-dev -``` - -> **Note:** If you installed ESLint globally (using the `-g` flag) then you must also install `eslint-plugin-adonis` globally. - -## Usage -Add `adonis` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix: - -### For core or community packages -`adonis/typescriptPackage` must be extended when creating packages for AdonisJS. - -```json -{ - "extends": [ - "plugin:adonis/typescriptPackage" - ] -} -``` - -### For applications -`adonis/typescriptApp` must be extended when creating AdonisJS application written in Typescript. - -```json -{ - "extends": [ - "plugin:adonis/typescriptApp" - ] -} -``` - -
- Built with ❤︎ by Harminder Virk -
- -[npm-image]: https://img.shields.io/npm/v/eslint-plugin-adonis/latest.svg?style=for-the-badge&logo=npm -[npm-url]: https://www.npmjs.com/package/eslint-plugin-adonis/v/alpha "npm" - -[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript - -[license-url]: LICENSE.md -[license-image]: https://img.shields.io/github/license/adonisjs-community/eslint-plugin-adonis?style=for-the-badge - -[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/adonisjs-community/eslint-plugin-adonis?label=Synk%20Vulnerabilities&style=for-the-badge -[synk-url]: https://snyk.io/test/github/adonisjs-community/eslint-plugin-adonis?targetFile=package.json "synk" diff --git a/build/node_modules/eslint-plugin-adonis/package.json b/build/node_modules/eslint-plugin-adonis/package.json deleted file mode 100644 index 19b24a22..00000000 --- a/build/node_modules/eslint-plugin-adonis/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "eslint-plugin-adonis", - "version": "2.1.1", - "description": "ESlint rules for AdonisJs applications and addons", - "keywords": [ - "eslint", - "eslintplugin", - "eslint-plugin", - "adonisjs", - "typescript" - ], - "scripts": { - "release": "np" - }, - "author": "adonisjs,virk", - "main": "lib/index.js", - "devDependencies": { - "eslint": "^8.23.1", - "np": "^7.6.2" - }, - "np": { - "tests": false - }, - "peerDependencies": { - "eslint": "^8.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "license": "MIT", - "directories": { - "lib": "lib" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/AdonisCommunity/eslint-plugin-adonis.git" - }, - "bugs": { - "url": "https://github.com/AdonisCommunity/eslint-plugin-adonis/issues" - }, - "homepage": "https://github.com/AdonisCommunity/eslint-plugin-adonis#readme", - "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.37.0", - "@typescript-eslint/parser": "^5.37.0" - } -} diff --git a/build/node_modules/eslint-plugin-prettier/CHANGELOG.md b/build/node_modules/eslint-plugin-prettier/CHANGELOG.md deleted file mode 100644 index c456d5da..00000000 --- a/build/node_modules/eslint-plugin-prettier/CHANGELOG.md +++ /dev/null @@ -1,318 +0,0 @@ -# Changelog - -## 5.0.1 - -### Patch Changes - -- [#588](https://github.com/prettier/eslint-plugin-prettier/pull/588) [`21a7146`](https://github.com/prettier/eslint-plugin-prettier/commit/21a7146d78161307dcc7eaa96f41dac51f7ce89f) Thanks [@krist7599555](https://github.com/krist7599555)! - fix: `parserPath` type might be `undefined` on Eslint Falt Config - -## 5.0.0 - -### Major Changes - -- [#508](https://github.com/prettier/eslint-plugin-prettier/pull/508) [`910aeb6`](https://github.com/prettier/eslint-plugin-prettier/commit/910aeb60a7456beb6193c634bb8dec1b7181312d) Thanks [@JounQin](https://github.com/JounQin)! - feat!: bump peer eslint to ">=8.0.0" and node to "^14.18.0 || >=16.0.0" - -- [#508](https://github.com/prettier/eslint-plugin-prettier/pull/508) [`910aeb6`](https://github.com/prettier/eslint-plugin-prettier/commit/910aeb60a7456beb6193c634bb8dec1b7181312d) Thanks [@JounQin](https://github.com/JounQin)! - feat!: upgrade to prettier v3 - -### Minor Changes - -- [#508](https://github.com/prettier/eslint-plugin-prettier/pull/508) [`910aeb6`](https://github.com/prettier/eslint-plugin-prettier/commit/910aeb60a7456beb6193c634bb8dec1b7181312d) Thanks [@JounQin](https://github.com/JounQin)! - feat: add typings support - -### Patch Changes - -- [#548](https://github.com/prettier/eslint-plugin-prettier/pull/548) [`82a3db8`](https://github.com/prettier/eslint-plugin-prettier/commit/82a3db878baf1a8f8ef53393069fe23c3a80ce15) Thanks [@fisker](https://github.com/fisker)! - fix: add missing dependency `synckit` - -- [#564](https://github.com/prettier/eslint-plugin-prettier/pull/564) [`ae7a73c`](https://github.com/prettier/eslint-plugin-prettier/commit/ae7a73c6c4b306c617c5dd9baaaa2ae7c0f9f44b) Thanks [@auvred](https://github.com/auvred)! - fix: compatibility with prettier@3 without plugins - -## 4.2.2 - -### Patch Changes - -- [`2373d0c`](https://github.com/prettier/eslint-plugin-prettier/commit/2373d0c0c9f30aee30e6059ba386fdc4435ed333) Thanks [@JounQin](https://github.com/JounQin)! - docs: add Sponsors and Backers sections - -## 4.2.1 - -### Patch Changes - -- [#485](https://github.com/prettier/eslint-plugin-prettier/pull/485) [`5736ed5`](https://github.com/prettier/eslint-plugin-prettier/commit/5736ed5224b06507374e21c626e8c462552cacf2) Thanks [@JounQin](https://github.com/JounQin)! - chore: reuse prettierRcOptions instead of resolveConfig again - -## 4.2.0 - -### Minor Changes - -- [#483](https://github.com/prettier/eslint-plugin-prettier/pull/483) [`7bd70b6`](https://github.com/prettier/eslint-plugin-prettier/commit/7bd70b65b680d360cd55aa9998804fc1e7188331) Thanks [@JounQin](https://github.com/JounQin)! - feat: support svelte out of box - - close #472, close #482 - - We recommend to use [`eslint-plugin-svelte`](https://github.com/ota-meshi/eslint-plugin-svelte) instead of [`eslint-plugin-svelte3`](https://github.com/sveltejs/eslint-plugin-svelte3). - -## v4.1.0 (2022-06-27) - -- feat: skip processing code blocks on specific languages like `stylelint-prettier` ([#415](https://github.com/prettier/eslint-plugin-prettier/issues/415)) ([52eec48](https://github.com/prettier/eslint-plugin-prettier/commit/52eec489cf5ec7a6d97c3edbb7dafc109e9156a4)) -- build(deps): Bump minimist from 1.2.5 to 1.2.6 ([#464](https://github.com/prettier/eslint-plugin-prettier/issues/464)) ([42bfe88](https://github.com/prettier/eslint-plugin-prettier/commit/42bfe88bb748a5d433aeac6d7f17dd8bce3da58c)) -- build(deps-dev): Bump graphql from 15.5.1 to 15.7.2 ([#442](https://github.com/prettier/eslint-plugin-prettier/issues/442)) ([0158640](https://github.com/prettier/eslint-plugin-prettier/commit/01586408fc27bf34e9f51f2047eecf421774074e)) -- build(deps-dev): Bump @graphql-eslint/eslint-plugin from 2.3.0 to 2.4.0 ([#444](https://github.com/prettier/eslint-plugin-prettier/issues/444)) ([4bcaca2](https://github.com/prettier/eslint-plugin-prettier/commit/4bcaca2ee3632b832ccd9366c8d7333376263199)) -- chore(CI): add tests for ESLint 8 ([#428](https://github.com/prettier/eslint-plugin-prettier/issues/428)) ([f3713be](https://github.com/prettier/eslint-plugin-prettier/commit/f3713befaec34fc35c87b71c68db626e38fe31b5)) -- README.md: HTTP => HTTPS ([#443](https://github.com/prettier/eslint-plugin-prettier/issues/443)) ([44e1478](https://github.com/prettier/eslint-plugin-prettier/commit/44e14784396713e43941be8a1635143c5a0c5f4f)) - -## v4.0.0 (2021-08-30) - -This breaking change drops support for old versions of ESLint, Prettier and -Node. You must use at least ESLint v7.28.0, Prettier v2.0.0 and Node v12.0.0. -Aside from that, usage of this plugin remains identical. - -- v4 - Drop support for eslint 5/6, prettier 1, node 6/8 ([#429](https://github.com/prettier/eslint-plugin-prettier/issues/429)) ([acb56f3](https://github.com/prettier/eslint-plugin-prettier/commit/acb56f3b2891b2a6998a75a7d4406183d452ba16)) - -## v3.4.1 (2021-08-20) - -- build(deps): Bump glob-parent from 5.0.0 to 5.1.2 ([#420](https://github.com/prettier/eslint-plugin-prettier/issues/420)) ([b6d075c](https://github.com/prettier/eslint-plugin-prettier/commit/b6d075cf7111468e8af4161c306c7f37f09f220e)) -- build(deps): Bump path-parse from 1.0.6 to 1.0.7 ([#425](https://github.com/prettier/eslint-plugin-prettier/issues/425)) ([24f957e](https://github.com/prettier/eslint-plugin-prettier/commit/24f957ee2a5476bb9cc8e64921b9841fc751391e)) -- feat: support `@graphql-eslint/eslint-plugin` out of box ([#413](https://github.com/prettier/eslint-plugin-prettier/issues/413)) ([ec6fbb1](https://github.com/prettier/eslint-plugin-prettier/commit/ec6fbb159e2454c6e145db55480932dc953cf7c1)) -- chore: add tests for Node 16 ([#410](https://github.com/prettier/eslint-plugin-prettier/issues/410)) ([76bd45e](https://github.com/prettier/eslint-plugin-prettier/commit/76bd45ece6d56eb52f75db6b4a1efdd2efb56392)) - -## v3.4.0 (2021-04-15) - -- feat: support processor virtual filename ([#401](https://github.com/prettier/eslint-plugin-prettier/issues/401)) ([ee0ccc6](https://github.com/prettier/eslint-plugin-prettier/commit/ee0ccc6ac06d13cd546e78b444e53164f59eb27f)) -- Simplify report logic ([#380](https://github.com/prettier/eslint-plugin-prettier/issues/380)) ([d993f24](https://github.com/prettier/eslint-plugin-prettier/commit/d993f247b5661683af031ab3b93955a0dfe448fa)) -- Update: README.md ([#375](https://github.com/prettier/eslint-plugin-prettier/issues/375)) ([3ea4242](https://github.com/prettier/eslint-plugin-prettier/commit/3ea4242a8d4acdb76eb7e7dca9e44d3e87db70e3)) - -## v3.3.1 (2021-01-04) - -- fix: add eslint-config-prettier as an optional peer dependency ([#374](https://github.com/prettier/eslint-plugin-prettier/issues/374)) ([d59df27](https://github.com/prettier/eslint-plugin-prettier/commit/d59df27890aaffec9e528ceb3155831a0261848d)) -- build(deps-dev): bump eslint from 7.16.0 to 7.17.0 ([b87985d](https://github.com/prettier/eslint-plugin-prettier/commit/b87985d8b1986743374b56691bcc1633df8f4eae)) -- build(deps-dev): bump eslint from 7.15.0 to 7.16.0 ([11e427e](https://github.com/prettier/eslint-plugin-prettier/commit/11e427e5d6cedeb26e3e03c8143be3496a24955a)) - -## v3.3.0 (2020-12-13) - -- Minor: Perf improvement: Do not clear the config cache on each run ([#368](https://github.com/prettier/eslint-plugin-prettier/issues/368)) ([1b90ea7](https://github.com/prettier/eslint-plugin-prettier/commit/1b90ea752636959babb27ebca5d67093c346dab9)) -- Add peerDependenciesMeta block ([#367](https://github.com/prettier/eslint-plugin-prettier/issues/367)) ([86608d5](https://github.com/prettier/eslint-plugin-prettier/commit/86608d5084692ab0d1f2f49a3df4909d04c39ae7)) -- build(deps-dev): bump eslint from 7.14.0 to 7.15.0 ([885f484](https://github.com/prettier/eslint-plugin-prettier/commit/885f48405e0fc9f312acdd3e3487c824bd59c102)) -- build(deps-dev): bump eslint from 7.3.1 to 7.14.0 ([cebc80b](https://github.com/prettier/eslint-plugin-prettier/commit/cebc80b39d3d09f957a73536e54f6d8dd4567080)) - -## v3.2.0 (2020-12-03) - -- Skip CI for eslint 6 + node 8 ([#364](https://github.com/prettier/eslint-plugin-prettier/issues/364)) ([f8f08e4](https://github.com/prettier/eslint-plugin-prettier/commit/f8f08e483522d74bc4dd93d9813914aa7ba9314b)) -- Turn off problematic rules in recommended config (prepare for next eslint-config-prettier version) ([#360](https://github.com/prettier/eslint-plugin-prettier/issues/360)) ([a1e5591](https://github.com/prettier/eslint-plugin-prettier/commit/a1e559112073eedfb0dd2041b9c2f6ef775844ec)) -- Create dependabot.yml ([f58b6c7](https://github.com/prettier/eslint-plugin-prettier/commit/f58b6c7c356a37b437593cd6ff8d1dca1c437b13)) -- docs(README): fix prettier getFileInfo link ([#335](https://github.com/prettier/eslint-plugin-prettier/issues/335)) ([5a690f1](https://github.com/prettier/eslint-plugin-prettier/commit/5a690f14d793ba5a08c55287fa3d6338dcda21ba)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 2.2.2 to 2.3.0 ([8614c45](https://github.com/prettier/eslint-plugin-prettier/commit/8614c458ed284bc126034d432b49b07d7d67ef06)) -- build(deps-dev): bump eslint from 7.3.0 to 7.3.1 ([12d9ed8](https://github.com/prettier/eslint-plugin-prettier/commit/12d9ed877aacfad2c27f01161cc2eb28a445725f)) -- build(deps-dev): bump eslint from 7.2.0 to 7.3.0 ([5a6f42e](https://github.com/prettier/eslint-plugin-prettier/commit/5a6f42e4eda871a294da1eb55f214c475450faa6)) -- chore: update CI badge in readme ([5012b66](https://github.com/prettier/eslint-plugin-prettier/commit/5012b665f981edbc21feaaccb3cd297f49ca40d3)) -- Use Github Actions for CI ([#305](https://github.com/prettier/eslint-plugin-prettier/issues/305)) ([41eb64f](https://github.com/prettier/eslint-plugin-prettier/commit/41eb64fda33663ed1c43a85218f390c6cd4b6191)) - -## v3.1.4 (2020-06-14) - -- Avoid clearing Prettier cache when not using prettierrc ([#303](https://github.com/prettier/eslint-plugin-prettier/issues/303)) ([3c8e2d9](https://github.com/prettier/eslint-plugin-prettier/commit/3c8e2d9871d86a82b10fe3d54f32bb5a54f2913b)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 2.2.1 to 2.2.2 ([93f7c8b](https://github.com/prettier/eslint-plugin-prettier/commit/93f7c8be7c99a0c3e4b11be6a5311316f76e6e08)) -- build(deps-dev): bump eslint from 7.1.0 to 7.2.0 ([650ac7a](https://github.com/prettier/eslint-plugin-prettier/commit/650ac7a40c1f4d46b0bd37efad3eed84f8155a44)) -- build(deps-dev): bump eslint-plugin-self from 1.2.0 to 1.2.1 ([6449ec1](https://github.com/prettier/eslint-plugin-prettier/commit/6449ec151f119e98d69da91ad6d10dbb374162d8)) -- build(deps-dev): bump eslint from 7.0.0 to 7.1.0 ([fd30022](https://github.com/prettier/eslint-plugin-prettier/commit/fd30022a51a57a4e96dd4ab3e04956b945886874)) -- Chore: Add CI tests for ESLint 7 ([#291](https://github.com/prettier/eslint-plugin-prettier/issues/291)) ([cc2979b](https://github.com/prettier/eslint-plugin-prettier/commit/cc2979b68258b8545931ce37168adfe17b1d3a7b)) -- build(deps-dev): bump eslint-config-prettier from 6.10.1 to 6.11.0 ([35a7ee6](https://github.com/prettier/eslint-plugin-prettier/commit/35a7ee68b02ea3088270210ac8dc85ff47ef65a9)) - -## v3.1.3 (2020-04-13) - -- Fix: Set `meta.type` to "layout" ([#283](https://github.com/prettier/eslint-plugin-prettier/issues/283)) ([97152e2](https://github.com/prettier/eslint-plugin-prettier/commit/97152e2787bf9bb27f053d6a91ccf826dc96a505)) -- build(deps-dev): bump eslint-config-prettier from 6.10.0 to 6.10.1 ([185b106](https://github.com/prettier/eslint-plugin-prettier/commit/185b1064d3dd674538456fb2fad97fbfcde49e0d)) -- build(deps): [security] bump acorn from 6.1.0 to 6.4.1 ([bba5881](https://github.com/prettier/eslint-plugin-prettier/commit/bba588151e860b1a644096441b31a0f3144db611)) -- build(deps-dev): bump eslint-config-prettier from 6.9.0 to 6.10.0 ([9a47a6f](https://github.com/prettier/eslint-plugin-prettier/commit/9a47a6feab691cf228d184c103d4cab99b464d0b)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 2.2.0 to 2.2.1 ([aad671d](https://github.com/prettier/eslint-plugin-prettier/commit/aad671d5123a2fd20e4396d591e25335d7219950)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 2.1.0 to 2.2.0 ([e2458c2](https://github.com/prettier/eslint-plugin-prettier/commit/e2458c2d41825f94441dc7d552da37aede95ffe7)) -- build(deps-dev): bump eslint-config-prettier from 6.8.0 to 6.9.0 ([05ef06f](https://github.com/prettier/eslint-plugin-prettier/commit/05ef06ffdda2bb485a2175243e6a8a167a01466c)) -- build(deps-dev): bump eslint-config-prettier from 6.7.0 to 6.8.0 ([ab80b3c](https://github.com/prettier/eslint-plugin-prettier/commit/ab80b3c5d30ea605aa363f13078aef9e0b697b6e)) -- build(deps-dev): bump eslint from 6.7.2 to 6.8.0 ([dea1b30](https://github.com/prettier/eslint-plugin-prettier/commit/dea1b30361921d7160aaf44d5302c5cc6490f87a)) - -## v3.1.2 (2019-12-15) - -- Resolve config when getting list of inferred parsers ([1ad45be](https://github.com/prettier/eslint-plugin-prettier/commit/1ad45be48ea1ed16e0eb3ba6247163724b956516)) -- Fix tests now they to stop them inheriting from base prettierrc file ([14840fa](https://github.com/prettier/eslint-plugin-prettier/commit/14840fa4c88c938bf30c1fdf1c26c32b2708a3b6)) -- Move prettier config into dedicated file, so vscode plugins pick it up ([c49334a](https://github.com/prettier/eslint-plugin-prettier/commit/c49334a846afa6f688695a4774f7824ee3a05e1c)) -- build(deps-dev): bump eslint from 6.7.1 to 6.7.2 ([15e6cf9](https://github.com/prettier/eslint-plugin-prettier/commit/15e6cf91509cb5b819d2e1fb19dbe9bc71c87893)) -- build(deps-dev): bump eslint from 6.6.0 to 6.7.1 ([e8ad019](https://github.com/prettier/eslint-plugin-prettier/commit/e8ad0195000af416f3315396e9c02fea261391cc)) -- build(deps-dev): bump eslint-config-prettier from 6.6.0 to 6.7.0 ([44f4bfe](https://github.com/prettier/eslint-plugin-prettier/commit/44f4bfe0b6f63234afeba266928b39b762269282)) -- build(deps-dev): bump eslint-config-prettier from 6.5.0 to 6.6.0 ([46580c5](https://github.com/prettier/eslint-plugin-prettier/commit/46580c55914057dee5089e9c6e525e41996888d1)) -- build(deps-dev): bump prettier from 1.18.2 to 1.19.1 ([10b4676](https://github.com/prettier/eslint-plugin-prettier/commit/10b46763fd007a8f939e43635831aec590717e87)) -- build(deps-dev): bump eslint from 6.5.1 to 6.6.0 ([53eaeae](https://github.com/prettier/eslint-plugin-prettier/commit/53eaeaec91c158b66cc04dbf80f9631bb82285bf)) -- build(deps-dev): bump eslint-config-prettier from 6.4.0 to 6.5.0 ([ad3321c](https://github.com/prettier/eslint-plugin-prettier/commit/ad3321c3ae6e963317fedcdd205ba719bf933d74)) -- build(deps-dev): bump mocha from 6.2.1 to 6.2.2 ([b7280b6](https://github.com/prettier/eslint-plugin-prettier/commit/b7280b68eaae243aa33de364576cddf0844c6848)) -- build(deps-dev): bump eslint-config-prettier from 6.3.0 to 6.4.0 ([4c1d69a](https://github.com/prettier/eslint-plugin-prettier/commit/4c1d69a8022c709cd62e964a82c7dbc7963f0544)) -- build(deps-dev): bump eslint from 6.5.0 to 6.5.1 ([c109a7a](https://github.com/prettier/eslint-plugin-prettier/commit/c109a7a5acca9533feae6258e9ac4934359ed9b3)) -- build(deps-dev): bump mocha from 6.2.0 to 6.2.1 ([3134bea](https://github.com/prettier/eslint-plugin-prettier/commit/3134beab61dee13aa2c73762a55f51f868553e8a)) -- build(deps-dev): bump eslint from 6.4.0 to 6.5.0 ([7c290d7](https://github.com/prettier/eslint-plugin-prettier/commit/7c290d799e319b39519d81a110b62846894bc7ba)) - -## v3.1.1 (2019-09-18) - -- build(deps-dev): bump eslint from 6.3.0 to 6.4.0 ([8a793eb](https://github.com/prettier/eslint-plugin-prettier/commit/8a793eba54ff01493e3ee83daf4dcb782d039fdd)) -- build(deps-dev): bump eslint-config-prettier from 6.2.0 to 6.3.0 ([88c3f6c](https://github.com/prettier/eslint-plugin-prettier/commit/88c3f6cb510b758e6dc866a1ad1a0484ef074484)) -- build(deps-dev): bump eslint-config-prettier from 6.0.0 to 6.2.0 ([5f9fbc1](https://github.com/prettier/eslint-plugin-prettier/commit/5f9fbc16f91d88a5c77b8b9d942b82424add77a5)) -- build(deps-dev): bump eslint from 6.2.2 to 6.3.0 ([746b66d](https://github.com/prettier/eslint-plugin-prettier/commit/746b66dc701e8226930f6e4d8386bd500dcb303b)) -- build(deps-dev): bump eslint from 6.1.0 to 6.2.2 ([97eedb4](https://github.com/prettier/eslint-plugin-prettier/commit/97eedb4734a4c569d4c24a62cffe024c2a26c178)) -- build(deps-dev): bump eslint from 6.0.1 to 6.1.0 ([afef9d1](https://github.com/prettier/eslint-plugin-prettier/commit/afef9d137c8b7887c63e3f8d51cabf42851f5cf1)) -- build(deps-dev): bump mocha from 6.1.4 to 6.2.0 ([0360a84](https://github.com/prettier/eslint-plugin-prettier/commit/0360a845ce530d8c25f390961d6446b4c58e85ac)) -- build(deps): [security] bump lodash from 4.17.11 to 4.17.14 ([9eceb68](https://github.com/prettier/eslint-plugin-prettier/commit/9eceb6834fcd003c5680c3202b656ca3474c19c2)) -- Fix: When forcing the JS parser, use the modern name ([#212](https://github.com/prettier/eslint-plugin-prettier/issues/212)) ([1385310](https://github.com/prettier/eslint-plugin-prettier/commit/1385310fce778a8c771d0dab0e400725c9f9d82e)) -- Add eslint 6 to test matrix ([#210](https://github.com/prettier/eslint-plugin-prettier/issues/210)) ([bca77e6](https://github.com/prettier/eslint-plugin-prettier/commit/bca77e66ed1eba682eb13055862adc70478d472b)) -- build(deps-dev): bump eslint-config-prettier from 5.0.0 to 6.0.0 ([4c069bd](https://github.com/prettier/eslint-plugin-prettier/commit/4c069bd0f3b907039569964e747479aa06279594)) -- build(deps-dev): bump eslint-config-prettier from 4.3.0 to 5.0.0 ([60bb22f](https://github.com/prettier/eslint-plugin-prettier/commit/60bb22f4ae1d6af001ba55338a7cb08111db23d9)) -- build(deps-dev): bump prettier from 1.18.0 to 1.18.2 ([a183560](https://github.com/prettier/eslint-plugin-prettier/commit/a1835600facebc819e31a0816061e62f8be2cd8b)) -- build(deps-dev): bump prettier from 1.17.1 to 1.18.0 ([0cad479](https://github.com/prettier/eslint-plugin-prettier/commit/0cad4793abb6139eb9d6853b5adef7469aef756d)) -- build(deps-dev): bump eslint-config-prettier from 4.2.0 to 4.3.0 ([6f3c76f](https://github.com/prettier/eslint-plugin-prettier/commit/6f3c76fd75dc4f982d1221e6b4802329b32176a9)) -- build(deps-dev): bump prettier from 1.17.0 to 1.17.1 ([03aecfd](https://github.com/prettier/eslint-plugin-prettier/commit/03aecfd49b96d055ff54ec989c93408a9fb3f3ee)) - -## v3.1.0 (2019-05-11) - -- New: Allow options to be passed to prettier.getFileInfo ([#187](https://github.com/prettier/eslint-plugin-prettier/issues/187)) ([21fa69a](https://github.com/prettier/eslint-plugin-prettier/commit/21fa69a8ed3b6acfc5461f6c3332444c21e65e28)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 2.0.1 to 2.1.0 ([bb597e1](https://github.com/prettier/eslint-plugin-prettier/commit/bb597e14aba46211fd4149d0b0f1bdc51fe76452)) -- build(deps-dev): bump eslint-config-prettier from 4.1.0 to 4.2.0 ([0bb7c1d](https://github.com/prettier/eslint-plugin-prettier/commit/0bb7c1d361b581fddebd64bf172b5dedcad5149c)) -- build(deps-dev): bump vue-eslint-parser from 6.0.3 to 6.0.4 ([2f77df4](https://github.com/prettier/eslint-plugin-prettier/commit/2f77df48f151d4975bbdb29ced8c74a72d011428)) -- build(deps-dev): bump mocha from 6.1.3 to 6.1.4 ([222b87a](https://github.com/prettier/eslint-plugin-prettier/commit/222b87a347331b20b3e7f65dcdfaa491bd277b3a)) -- build(deps-dev): bump prettier from 1.16.4 to 1.17.0 ([58d8ff8](https://github.com/prettier/eslint-plugin-prettier/commit/58d8ff8ab2b1f73c904f5492eb523d7ea585ed8f)) -- build(deps-dev): bump mocha from 6.1.2 to 6.1.3 ([e94e56c](https://github.com/prettier/eslint-plugin-prettier/commit/e94e56c36018aab6e08452fbe05bb16a23d64197)) -- build(deps-dev): bump mocha from 6.1.1 to 6.1.2 ([c02244b](https://github.com/prettier/eslint-plugin-prettier/commit/c02244b197893f4e2a214d43f755b726cecbd03c)) -- build(deps-dev): bump mocha from 6.0.2 to 6.1.1 ([a9a2e4e](https://github.com/prettier/eslint-plugin-prettier/commit/a9a2e4e3c0a243ec73061c10d9c4a5ae0c0e6f68)) -- build(deps-dev): bump eslint from 5.15.3 to 5.16.0 ([073c14c](https://github.com/prettier/eslint-plugin-prettier/commit/073c14c2ae5c43d0939fe6f475561f1cf3d7a3e5)) -- build(deps-dev): bump eslint from 5.15.2 to 5.15.3 ([bda931f](https://github.com/prettier/eslint-plugin-prettier/commit/bda931f4f1344f6927fbfd3a35965d1a4d319642)) -- build(deps-dev): bump eslint from 5.15.1 to 5.15.2 ([19f53d6](https://github.com/prettier/eslint-plugin-prettier/commit/19f53d6a94a701e0aab9630bef93051aec4dfd36)) -- build(deps-dev): bump eslint from 5.15.0 to 5.15.1 ([34b39de](https://github.com/prettier/eslint-plugin-prettier/commit/34b39dec2e6e283da1ca6faa0c636c5361efb5b9)) -- build(deps-dev): bump eslint from 5.14.1 to 5.15.0 ([13bcc66](https://github.com/prettier/eslint-plugin-prettier/commit/13bcc66c120d614c17040e329360510feab47e7d)) -- build(deps-dev): bump eslint-plugin-self from 1.1.0 to 1.2.0 ([5b4adb8](https://github.com/prettier/eslint-plugin-prettier/commit/5b4adb8ce683a93feddad07eda17d99b41849342)) -- build(deps-dev): bump vue-eslint-parser from 6.0.2 to 6.0.3 ([e676cd1](https://github.com/prettier/eslint-plugin-prettier/commit/e676cd19387e70102467d9a82014906561f3c225)) -- build(deps-dev): bump eslint-config-prettier from 4.0.0 to 4.1.0 ([b8a9215](https://github.com/prettier/eslint-plugin-prettier/commit/b8a9215515cdcb75faf212caeb00dfbcae11ee42)) -- build(deps-dev): bump mocha from 6.0.1 to 6.0.2 ([cde36e4](https://github.com/prettier/eslint-plugin-prettier/commit/cde36e4db18ac4442eba3c75a20c1a6605e937d4)) -- build(deps-dev): bump mocha from 6.0.0 to 6.0.1 ([eb39699](https://github.com/prettier/eslint-plugin-prettier/commit/eb39699b9bdf7c406a3134cc26c404947534661d)) -- build(deps-dev): bump mocha from 5.2.0 to 6.0.0 ([5d75421](https://github.com/prettier/eslint-plugin-prettier/commit/5d75421d5e3ee5f8293b47a5825e1f2415f7e6b9)) -- build(deps-dev): bump eslint from 5.14.0 to 5.14.1 ([829156e](https://github.com/prettier/eslint-plugin-prettier/commit/829156e467e53f554691afa687c13715086974f7)) -- build(deps-dev): bump eslint from 5.13.0 to 5.14.0 ([b76d0b4](https://github.com/prettier/eslint-plugin-prettier/commit/b76d0b4471845143630b3603b97607665bf66ca0)) -- build(deps-dev): bump vue-eslint-parser from 6.0.0 to 6.0.2 ([15439e8](https://github.com/prettier/eslint-plugin-prettier/commit/15439e8e0dcfa11a19f0cf249a1f4ad5f7fa5b96)) -- build(deps-dev): bump vue-eslint-parser from 5.0.0 to 6.0.0 ([0ea70e5](https://github.com/prettier/eslint-plugin-prettier/commit/0ea70e5161d315ab93e6c4eb93f76d5304b8c162)) -- build(deps-dev): bump eslint from 5.12.1 to 5.13.0 ([5f18729](https://github.com/prettier/eslint-plugin-prettier/commit/5f18729dbe359fe0df10730fd768a1ca6949b0a2)) -- build(deps-dev): bump prettier from 1.16.3 to 1.16.4 ([ef637fe](https://github.com/prettier/eslint-plugin-prettier/commit/ef637fea4d6028b472cfe56dcb4fe30ee7939e0d)) -- build(deps-dev): bump prettier from 1.16.1 to 1.16.3 ([58ab20c](https://github.com/prettier/eslint-plugin-prettier/commit/58ab20cc03f81a7d668998e64168eef7ad5b4365)) -- build(deps-dev): bump eslint-config-prettier from 3.6.0 to 4.0.0 ([14393bd](https://github.com/prettier/eslint-plugin-prettier/commit/14393bdbcfd6114e810c10b4b7f905485474a36f)) -- build(deps-dev): bump prettier from 1.16.0 to 1.16.1 ([00198b9](https://github.com/prettier/eslint-plugin-prettier/commit/00198b9795d1341f4c4a488c83f656e74f6bfdb0)) -- build(deps-dev): bump prettier from 1.15.3 to 1.16.0 ([7890a87](https://github.com/prettier/eslint-plugin-prettier/commit/7890a876fc1c22b1fdee8724296eaa56eb6df1a3)) -- build(deps-dev): bump eslint from 5.12.0 to 5.12.1 ([92a8984](https://github.com/prettier/eslint-plugin-prettier/commit/92a898470fbd88a4f5f4d8e1b15cf53bd7f8a92e)) -- build(deps-dev): bump eslint-config-prettier from 3.5.0 to 3.6.0 ([5292d12](https://github.com/prettier/eslint-plugin-prettier/commit/5292d127dfd4f90ec6695d4060b5f5447a2c0119)) -- build(deps-dev): bump eslint-config-prettier from 3.4.0 to 3.5.0 ([44a2558](https://github.com/prettier/eslint-plugin-prettier/commit/44a2558820d1c733f1572c98503e7b00b16b3fb7)) -- build(deps-dev): bump eslint-config-prettier from 3.3.0 to 3.4.0 ([425cfce](https://github.com/prettier/eslint-plugin-prettier/commit/425cfce1bb712c96dfdd2292b04d89cceb375681)) -- build(deps-dev): bump eslint from 5.11.1 to 5.12.0 ([3e9aa39](https://github.com/prettier/eslint-plugin-prettier/commit/3e9aa399ee3c0394a397f6ed3f8ec7c5e1597991)) -- build(deps-dev): bump eslint-plugin-node from 8.0.0 to 8.0.1 ([e913afd](https://github.com/prettier/eslint-plugin-prettier/commit/e913afdd7291b5e58adf567f5e7a5bb9257dc9e3)) -- build(deps-dev): bump vue-eslint-parser from 4.0.3 to 5.0.0 ([ecfd5ba](https://github.com/prettier/eslint-plugin-prettier/commit/ecfd5bab7bfb36e0203a334808243cb85aaeb512)) - -## v3.0.1 (2018-12-28) - -- Catch and format SyntaxErrors as eslint violations ([#141](https://github.com/prettier/eslint-plugin-prettier/issues/141)) ([4a0e57d](https://github.com/prettier/eslint-plugin-prettier/commit/4a0e57ddcc0fa2ae8e8f7d8b65ddc4ac93d9f474)) -- build(deps-dev): bump eslint from 5.11.0 to 5.11.1 ([d34daed](https://github.com/prettier/eslint-plugin-prettier/commit/d34daed47fbda09cbd19a73c38323e0aed0c30d5)) -- build(deps-dev): bump eslint from 5.10.0 to 5.11.0 ([7f4f45d](https://github.com/prettier/eslint-plugin-prettier/commit/7f4f45dd132ecd72207b536b86910bebf15693b6)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 2.0.0 to 2.0.1 ([5be3bcf](https://github.com/prettier/eslint-plugin-prettier/commit/5be3bcfce11b741cd35c92b9c972e457a4038766)) -- build(deps-dev): bump eslint from 5.9.0 to 5.10.0 ([11e7c44](https://github.com/prettier/eslint-plugin-prettier/commit/11e7c447a8ebcfae213afe6ba872f96adb43e6b9)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 1.4.1 to 2.0.0 ([9e5bf14](https://github.com/prettier/eslint-plugin-prettier/commit/9e5bf140451f82a36c78042315a9f88a12cfe45f)) -- build(deps-dev): bump vue-eslint-parser from 4.0.2 to 4.0.3 ([234583a](https://github.com/prettier/eslint-plugin-prettier/commit/234583a19a97ecd1f996542ccb1178a26d20c0fd)) -- build(deps-dev): bump vue-eslint-parser from 3.3.0 to 4.0.2 ([8675d57](https://github.com/prettier/eslint-plugin-prettier/commit/8675d5713f5171981119b89c2e8a58fda6b81259)) -- Upgrade: Bump vue-eslint-parser from 3.2.2 to 3.3.0 ([2379e93](https://github.com/prettier/eslint-plugin-prettier/commit/2379e93c7fb81ddfe306c1fe6a10d1833cfddf2c)) -- Upgrade: Bump eslint-config-prettier from 3.1.0 to 3.3.0 ([3ea0021](https://github.com/prettier/eslint-plugin-prettier/commit/3ea00218961b75e475def14372f9eab0de5ad05d)) -- Upgrade: Bump eslint from 5.8.0 to 5.9.0 ([c774fb8](https://github.com/prettier/eslint-plugin-prettier/commit/c774fb87fe53d19389964883f05e77309b321139)) -- build(deps-dev): bump eslint-plugin-node from 7.0.1 to 8.0.0 ([#121](https://github.com/prettier/eslint-plugin-prettier/issues/121)) ([2a4fba0](https://github.com/prettier/eslint-plugin-prettier/commit/2a4fba01222f62a576da48478e3dcd832e3bff7e)) -- build(deps-dev): bump eslint-plugin-eslint-plugin from 1.4.0 to 1.4.1 ([#120](https://github.com/prettier/eslint-plugin-prettier/issues/120)) ([29caa29](https://github.com/prettier/eslint-plugin-prettier/commit/29caa299612db8af7a188749a5dd8b9827f51a67)) -- build(deps-dev): bump eslint from 5.6.0 to 5.8.0 ([#119](https://github.com/prettier/eslint-plugin-prettier/issues/119)) ([2836350](https://github.com/prettier/eslint-plugin-prettier/commit/2836350829dc3c19b4c1ebca33a3a7905c1b28a5)) - -## v3.0.0 (2018-10-01) - -- Chore: Add eslint peer-dependency ([d55d79c](https://github.com/prettier/eslint-plugin-prettier/commit/d55d79c6a64f659f405788fc75f344704619979f)) -- Breaking: Extract showInvisibles and generateDifferences ([bf7c40c](https://github.com/prettier/eslint-plugin-prettier/commit/bf7c40c240d9833548a7c9d210a28c90a4f3957b)) -- Breaking: Defining prettier options must use an object ([478c7e5](https://github.com/prettier/eslint-plugin-prettier/commit/478c7e5d2165f3e67e893c9a317b602159eaff9c)) -- Breaking: Drop support for ESLint v3 and v4 ([2326231](https://github.com/prettier/eslint-plugin-prettier/commit/232623179b16b99c0cf89ec9b8ed7660c69b092d)) -- Chore: Update dependencies ([1ec94c8](https://github.com/prettier/eslint-plugin-prettier/commit/1ec94c8e3495f6964588da5264b890cb49616fff)) -- Chore: remove two unused dependencies ([bfe459c](https://github.com/prettier/eslint-plugin-prettier/commit/bfe459c39b742115137e81278f03f8e6abfd7dcf)) -- Chore: Rename test files to keep them sequential ([d38ea52](https://github.com/prettier/eslint-plugin-prettier/commit/d38ea52debdf9da718c60933f42a709fa05f550f)) -- Breaking: Remove pragma support ([3af422c](https://github.com/prettier/eslint-plugin-prettier/commit/3af422c8e301978b611cfc665e052d48c102b443)) -- Breaking: Update minimum required pretter version to 1.13.0 ([29c0506](https://github.com/prettier/eslint-plugin-prettier/commit/29c050605674fda2975b3b620c89a7eb9332641a)) -- Breaking: Drop support for node v4, v7 and v9 ([be460bd](https://github.com/prettier/eslint-plugin-prettier/commit/be460bdd06fafb04442b440efabc7b36b12934a7)) -- Chore: Add vscode config to autoformat on save ([9fac6b4](https://github.com/prettier/eslint-plugin-prettier/commit/9fac6b4039c1983b83073fa7af7864f0d7e1f2d3)) -- Chore: Improve travis matrix ([46d2444](https://github.com/prettier/eslint-plugin-prettier/commit/46d244409e397ba9ff2dea621e99a4ea90e0585b)) -- Chore: Add format script to run prettier ([d46aa6d](https://github.com/prettier/eslint-plugin-prettier/commit/d46aa6dbd8028802121231d3ae0fe3f837bca9ad)) - -## v2.7.0 (2018-09-26) - -- Update: Support prettierignore and custom processors ([#111](https://github.com/prettier/eslint-plugin-prettier/issues/111)) ([38537ba](https://github.com/prettier/eslint-plugin-prettier/commit/38537ba35fc9152852c3b91f3041d72556b43013)) -- Build: switch to release script package ([047dc8f](https://github.com/prettier/eslint-plugin-prettier/commit/047dc8ffdf006c74267df4902fec684c589dad12)) - -## v2.6.2 (2018-07-06) - -- Fix: Add representation for \r to showInvisibles ([#100](https://github.com/prettier/eslint-plugin-prettier/issues/100)) ([731bbb5](https://github.com/prettier/eslint-plugin-prettier/commit/731bbb576ce422a5c73a1fa9750aa3466c7da928)) -- Docs: Add clarification about Flow/React support to readme ([#96](https://github.com/prettier/eslint-plugin-prettier/issues/96)) ([977aa77](https://github.com/prettier/eslint-plugin-prettier/commit/977aa77a119f22af3f8ca8d6f47e5bcfcc9e23fb)) - -## v2.6.1 (2018-06-23) - -- Fix: respect editorconfig ([#92](https://github.com/prettier/eslint-plugin-prettier/issues/92)) ([0b04dd3](https://github.com/prettier/eslint-plugin-prettier/commit/0b04dd362d0d92534a7cf11eaebbab8eb59fc96d)) - -## v2.6.0 (2018-02-02) - -- Update: Add option to skip loading prettierrc ([#83](https://github.com/prettier/eslint-plugin-prettier/issues/83)) ([9e0fb48](https://github.com/prettier/eslint-plugin-prettier/commit/9e0fb48d077214a81ac549731308ab11512c37cd)) -- Build: add Node 8 and 9 to Travis ([e5b5fa7](https://github.com/prettier/eslint-plugin-prettier/commit/e5b5fa74d06a06a53d04c4748b31e24fcd7a41b9)) -- Chore: add test for vue parsing ([1ab43fd](https://github.com/prettier/eslint-plugin-prettier/commit/1ab43fd601a67100cb03bbfe614203fd399d40bb)) - -## v2.5.0 (2018-01-16) - -- Fix: pass filepath to prettier ([#76](https://github.com/prettier/eslint-plugin-prettier/issues/76)) ([0b6ab55](https://github.com/prettier/eslint-plugin-prettier/commit/0b6ab55e0a48e9c31cfa1d7f3b891100e0580493)) -- Update: Add URL to rule documentation to the metadata ([#75](https://github.com/prettier/eslint-plugin-prettier/issues/75)) ([804ead7](https://github.com/prettier/eslint-plugin-prettier/commit/804ead7406e12024a1f9c28628024e5d63b75854)) - -## v2.4.0 (2017-12-17) - -- New: Add 'recommended' configuration ([#73](https://github.com/prettier/eslint-plugin-prettier/issues/73)) ([e529b60](https://github.com/prettier/eslint-plugin-prettier/commit/e529b6004b278fb8de660c75d69381ea071b2114)) -- Docs: Create ISSUE_TEMPLATE.md ([4335b08](https://github.com/prettier/eslint-plugin-prettier/commit/4335b08f2956f695eda20f9ca41653fe15b6538d)) - -## v2.3.1 (2017-09-18) - -- Fix: Guard against older prettier installation ([#56](https://github.com/prettier/eslint-plugin-prettier/issues/56)) ([8a115f9](https://github.com/prettier/eslint-plugin-prettier/commit/8a115f9cc57dc20c9fc5c2b942f1e4770a5d730e)) - -## v2.3.0 (2017-09-18) - -- Update: Support .prettierrc config files (fixes [#46](https://github.com/prettier/eslint-plugin-prettier/issues/46)) ([#55](https://github.com/prettier/eslint-plugin-prettier/issues/55)) ([bc89153](https://github.com/prettier/eslint-plugin-prettier/commit/bc89153ffa733b3b58f123849485d7990577c216)) -- Docs: .eslintrc.json > .eslintrc ([#52](https://github.com/prettier/eslint-plugin-prettier/issues/52)) ([95f0808](https://github.com/prettier/eslint-plugin-prettier/commit/95f0808416f7493426c822790d79cf22b0db0f22)) -- Upgrade: jest-docblock to ^21.0.0 ([#50](https://github.com/prettier/eslint-plugin-prettier/issues/50)) ([c777111](https://github.com/prettier/eslint-plugin-prettier/commit/c777111a526c87236b8853d7e253ee93ac1d988d)) -- Chore: upgrade prettier to ^1.6.1 ([#49](https://github.com/prettier/eslint-plugin-prettier/issues/49)) ([56deffa](https://github.com/prettier/eslint-plugin-prettier/commit/56deffae056c0165a7ed2b993b7cf78b6c71148a)) -- Chore: use eslint-plugin-self for linting ([#47](https://github.com/prettier/eslint-plugin-prettier/issues/47)) ([5ea0526](https://github.com/prettier/eslint-plugin-prettier/commit/5ea05269cc947c2e30a42e5101140ab6faac311a)) - -## v2.2.0 (2017-08-16) - -- New: expose reporter api (fixes [#39](https://github.com/prettier/eslint-plugin-prettier/issues/39)) ([#41](https://github.com/prettier/eslint-plugin-prettier/issues/41)) ([1666067](https://github.com/prettier/eslint-plugin-prettier/commit/1666067aa396dfe6a622eb1d9fd5d21fa851a612)) - -## v2.1.2 (2017-06-14) - -- Chore: Relax peerDependencies ([#30](https://github.com/prettier/eslint-plugin-prettier/issues/30)) ([a19b8af](https://github.com/prettier/eslint-plugin-prettier/commit/a19b8afc5b3e7a05468e1c566d359f80f13b80cd)) -- Chore: Add release script ([#25](https://github.com/prettier/eslint-plugin-prettier/issues/25)) ([8fbfe73](https://github.com/prettier/eslint-plugin-prettier/commit/8fbfe73ec2cdba4c313e9e3add4b602fc3166ab8)) - -## v2.1.1 (2017-05-19) - -- Fix: Support ESLint <3.11.0 ([#24](https://github.com/prettier/eslint-plugin-prettier/issues/24)) ([fde7fdf](https://github.com/prettier/eslint-plugin-prettier/commit/fde7fdf2e2dcb3a1f164e1fddb337070802d2c68)) -- Chore: add yarn.lock ([#23](https://github.com/prettier/eslint-plugin-prettier/issues/23)) ([8b55518](https://github.com/prettier/eslint-plugin-prettier/commit/8b555187937a7e37ad84324c4331478b04898493)) -- Docs: fix links in changelog ([#22](https://github.com/prettier/eslint-plugin-prettier/issues/22)) ([7e70e11](https://github.com/prettier/eslint-plugin-prettier/commit/7e70e11de37ca77f5aeb3dcdb216e1a421b54f0d)) - -## v2.1.0 (2017-05-16) - -- Merge with eslint-plugin-prettify ([#21](https://github.com/prettier/eslint-plugin-prettier/issues/21)) ([6de494f](https://github.com/prettier/eslint-plugin-prettier/commit/6de494fd685a107f3a9a371e663a1f8d68d6d31f)) -- Docs: update repo links to new URL ([#18](https://github.com/prettier/eslint-plugin-prettier/issues/18)) ([6b69492](https://github.com/prettier/eslint-plugin-prettier/commit/6b694928e6e6c192dcb06e6287272fb40cbad17d)) -- Chore: Upgrade development dependencies ([#16](https://github.com/prettier/eslint-plugin-prettier/issues/16)) ([12984ea](https://github.com/prettier/eslint-plugin-prettier/commit/12984ead6c46156b25607c9a8b03ae17def7ef9e)) -- Docs: fix outdated info about prettier's semicolon support ([da6aad1](https://github.com/prettier/eslint-plugin-prettier/commit/da6aad15ea22aa899b26b5ce0979f4a945d80319)) -- Docs: update prettier options in example ([#14](https://github.com/prettier/eslint-plugin-prettier/issues/14)) ([0ae173f](https://github.com/prettier/eslint-plugin-prettier/commit/0ae173f2731b02c0ed72a6cb49efdbdcff54a419)) -- Docs: Change the order of dependencies install ([#13](https://github.com/prettier/eslint-plugin-prettier/issues/13)) ([cbf803c](https://github.com/prettier/eslint-plugin-prettier/commit/cbf803ccf0add6e324ae1513b5260e31bf9a3c05)) -- Docs: Add CONTRIBUTING.md (fixes [#9](https://github.com/prettier/eslint-plugin-prettier/issues/9)) ([40fe55b](https://github.com/prettier/eslint-plugin-prettier/commit/40fe55b3d8c000787b0dcbfa0aed4f0d930808a9)) - -## v2.0.1 (2017-02-26) - -- Docs: add travis badge to README.md ([1daa495](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/1daa49558a7f904f8d307d3d434a9bc80f41fee6)) -- Upgrade: prettier to 0.18.0 ([1700e41](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/1700e41b2c66721b521e766052cfaa3cc59cd219)) -- Chore: use eslint-config-prettier ([c979b84](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/c979b84641c42f8870c21c69d22b75916c8511e0)) -- Fix: avoid relying on an internal eslint function ([5296930](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/5296930386ef28a26e0f5c606d107e4293f51620)) -- Docs: mention eslint-config-prettier in README.md ([3fd855d](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/3fd855dfb356c8616c19b51b70eb5fcb8fb90c9c)) -- Chore: pin the version of prettier used to lint this module (refs [#1](https://github.com/not-an-aardvark/eslint-plugin-prettier/issues/1)) ([db85633](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/db85633a0360caeebbf5b20195a3bc19ebf7177a)) - -## v2.0.0 (2017-01-28) - -- Docs: create changelog ([d388095](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/d388095314f5c23b12df2b210219dca4cb31cb2d)) -- Docs: add 2.0.0 migration guide ([db508d7](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/db508d709c92ce60eee6f9f879af44c8d0b44d1d)) -- Breaking: Make prettier a peerDependency ([#1](https://github.com/not-an-aardvark/eslint-plugin-prettier/issues/1)) ([d8a8992](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/d8a89922ddc6b747c474b62a0948deba6ea2657d)) -- Docs: add repo url to package.json ([2474bc9](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/2474bc9dd3f05dbd0b1fec38e27bc91a9cb0f1c7)) -- Docs: suggest prettier-eslint if eslint rules disagree with prettier ([3414437](https://github.com/not-an-aardvark/eslint-plugin-prettier/commit/341443754ae231a17d82f037f8b35663257d282a)) diff --git a/build/node_modules/eslint-plugin-prettier/LICENSE.md b/build/node_modules/eslint-plugin-prettier/LICENSE.md deleted file mode 100644 index 26864ebf..00000000 --- a/build/node_modules/eslint-plugin-prettier/LICENSE.md +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License (MIT) - -Copyright © 2017 Andres Suarez and Teddy Katz - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the “Software”), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/eslint-plugin-prettier/README.md b/build/node_modules/eslint-plugin-prettier/README.md deleted file mode 100644 index b392f08f..00000000 --- a/build/node_modules/eslint-plugin-prettier/README.md +++ /dev/null @@ -1,186 +0,0 @@ -# eslint-plugin-prettier [![Build Status](https://github.com/prettier/eslint-plugin-prettier/workflows/CI/badge.svg?branch=master)](https://github.com/prettier/eslint-plugin-prettier/actions?query=workflow%3ACI+branch%3Amaster) - -Runs [Prettier](https://github.com/prettier/prettier) as an [ESLint](https://eslint.org) rule and reports differences as individual ESLint issues. - -If your desired formatting does not match Prettier’s output, you should use a different tool such as [prettier-eslint](https://github.com/prettier/prettier-eslint) instead. - -Please read [Integrating with linters](https://prettier.io/docs/en/integrating-with-linters.html) before installing. - -## Sample - -```js -error: Insert `,` (prettier/prettier) at pkg/commons-atom/ActiveEditorRegistry.js:22:25: - 20 | import { - 21 | observeActiveEditorsDebounced, -> 22 | editorChangesDebounced - | ^ - 23 | } from './debounced';; - 24 | - 25 | import {observableFromSubscribeFunction} from '../commons-node/event'; - - -error: Delete `;` (prettier/prettier) at pkg/commons-atom/ActiveEditorRegistry.js:23:21: - 21 | observeActiveEditorsDebounced, - 22 | editorChangesDebounced -> 23 | } from './debounced';; - | ^ - 24 | - 25 | import {observableFromSubscribeFunction} from '../commons-node/event'; - 26 | import {cacheWhileSubscribed} from '../commons-node/observable'; - - -2 errors found. -``` - -> `./node_modules/.bin/eslint --format codeframe pkg/commons-atom/ActiveEditorRegistry.js` (code from [nuclide](https://github.com/facebook/nuclide)). - -## Installation - -```sh -npm install --save-dev eslint-plugin-prettier -npm install --save-dev --save-exact prettier -``` - -**_`eslint-plugin-prettier` does not install Prettier or ESLint for you._** _You must install these yourself._ - -Then, in your `.eslintrc.json`: - -```json -{ - "plugins": ["prettier"], - "rules": { - "prettier/prettier": "error" - } -} -``` - -## Recommended Configuration - -This plugin works best if you disable all other ESLint rules relating to code formatting, and only enable rules that detect potential bugs. (If another active ESLint rule disagrees with `prettier` about how code should be formatted, it will be impossible to avoid lint errors.) You can use [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) to disable all formatting-related ESLint rules. - -This plugin ships with a `plugin:prettier/recommended` config that sets up both the plugin and `eslint-config-prettier` in one go. - -1. In addition to the above installation instructions, install `eslint-config-prettier`: - - ```sh - npm install --save-dev eslint-config-prettier - ``` - -2. Then you need to add `plugin:prettier/recommended` as the _last_ extension in your `.eslintrc.json`: - - ```json - { - "extends": ["plugin:prettier/recommended"] - } - ``` - - You can then set Prettier's own options inside a `.prettierrc` file. - -Exactly what does `plugin:prettier/recommended` do? Well, this is what it expands to: - -```json -{ - "extends": ["prettier"], - "plugins": ["prettier"], - "rules": { - "prettier/prettier": "error", - "arrow-body-style": "off", - "prefer-arrow-callback": "off" - } -} -``` - -- `"extends": ["prettier"]` enables the config from `eslint-config-prettier`, which turns off some ESLint rules that conflict with Prettier. -- `"plugins": ["prettier"]` registers this plugin. -- `"prettier/prettier": "error"` turns on the rule provided by this plugin, which runs Prettier from within ESLint. -- `"arrow-body-style": "off"` and `"prefer-arrow-callback": "off"` turns off two ESLint core rules that unfortunately are problematic with this plugin – see the next section. - -## `Svelte` support - -We recommend to use [`eslint-plugin-svelte`](https://github.com/ota-meshi/eslint-plugin-svelte) instead of [`eslint-plugin-svelte3`](https://github.com/sveltejs/eslint-plugin-svelte3) because `eslint-plugin-svelte` has a correct [`eslint-svelte-parser`](https://github.com/ota-meshi/svelte-eslint-parser) instead of hacking. - -When use with `eslint-plugin-svelte3`, `eslint-plugin-prettier` will just ignore the text passed by `eslint-plugin-svelte3`, because the text has been modified. - -If you still decide to use `eslint-plugin-svelte3`, you'll need to run `prettier --write *.svelte` manually. - -## `arrow-body-style` and `prefer-arrow-callback` issue - -If you use [arrow-body-style](https://eslint.org/docs/rules/arrow-body-style) or [prefer-arrow-callback](https://eslint.org/docs/rules/prefer-arrow-callback) together with the `prettier/prettier` rule from this plugin, you can in some cases end up with invalid code due to a bug in ESLint’s autofix – see [issue #65](https://github.com/prettier/eslint-plugin-prettier/issues/65). - -For this reason, it’s recommended to turn off these rules. The `plugin:prettier/recommended` config does that for you. - -You _can_ still use these rules together with this plugin if you want, because the bug does not occur _all the time._ But if you do, you need to keep in mind that you might end up with invalid code, where you manually have to insert a missing closing parenthesis to get going again. - -If you’re fixing large of amounts of previously unformatted code, consider temporarily disabling the `prettier/prettier` rule and running `eslint --fix` and `prettier --write` separately. - -## Options - -> Note: While it is possible to pass options to Prettier via your ESLint configuration file, it is not recommended because editor extensions such as `prettier-atom` and `prettier-vscode` **will** read [`.prettierrc`](https://prettier.io/docs/en/configuration.html), but **won't** read settings from ESLint, which can lead to an inconsistent experience. - -- The first option: - - - An object representing [options](https://prettier.io/docs/en/options.html) that will be passed into prettier. Example: - - ```json - { - "prettier/prettier": [ - "error", - { - "singleQuote": true, - "parser": "flow" - } - ] - } - ``` - - NB: This option will merge and override any config set with `.prettierrc` files - -- The second option: - - - An object with the following options - - - `usePrettierrc`: Enables loading of the Prettier configuration file, (default: `true`). May be useful if you are using multiple tools that conflict with each other, or do not wish to mix your ESLint settings with your Prettier configuration. And also, it is possible to run prettier without loading the prettierrc config file [via the CLI's --no-config option](https://prettier.io/docs/en/cli.html#--no-config) or through the API by [calling prettier.format() without passing through the options generated by calling resolveConfig](https://prettier.io/docs/en/api.html#prettierresolveconfigfilepath--options). - - ```json - { - "prettier/prettier": [ - "error", - {}, - { - "usePrettierrc": false - } - ] - } - ``` - - - `fileInfoOptions`: Options that are passed to [prettier.getFileInfo](https://prettier.io/docs/en/api.html#prettiergetfileinfofilepath--options) to decide whether a file needs to be formatted. Can be used for example to opt-out from ignoring files located in `node_modules` directories. - - ```json - { - "prettier/prettier": [ - "error", - {}, - { - "fileInfoOptions": { - "withNodeModules": true - } - } - ] - } - ``` - -- The rule is auto fixable -- if you run `eslint` with the `--fix` flag, your code will be formatted according to `prettier` style. - ---- - -## Contributing - -See [CONTRIBUTING.md](https://github.com/prettier/eslint-plugin-prettier/blob/master/CONTRIBUTING.md) - -## Changelog - -Detailed changes for each release are documented in [CHANGELOG.md](./CHANGELOG.md). - -## License - -[MIT](http://opensource.org/licenses/MIT) diff --git a/build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.d.ts b/build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.d.ts deleted file mode 100644 index eafdb4a1..00000000 --- a/build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ESLint } from 'eslint'; - -declare const eslintPluginPrettier: ESLint.Plugin; - -export = eslintPluginPrettier; diff --git a/build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js b/build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js deleted file mode 100644 index 04c24892..00000000 --- a/build/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js +++ /dev/null @@ -1,227 +0,0 @@ -/** - * @file Runs `prettier` as an ESLint rule. - * @author Andres Suarez - */ - -// @ts-check - -/** - * @typedef {import('eslint').AST.Range} Range - * @typedef {import('eslint').AST.SourceLocation} SourceLocation - * @typedef {import('eslint').ESLint.Plugin} Plugin - * @typedef {import('prettier').FileInfoOptions} FileInfoOptions - * @typedef {import('prettier').Options & { onDiskFilepath: string, parserPath: string, usePrettierrc?: boolean }} Options - */ - -'use strict'; - -// ------------------------------------------------------------------------------ -// Requirements -// ------------------------------------------------------------------------------ - -const { - showInvisibles, - generateDifferences, -} = require('prettier-linter-helpers'); - -// ------------------------------------------------------------------------------ -// Constants -// ------------------------------------------------------------------------------ - -const { INSERT, DELETE, REPLACE } = generateDifferences; - -// ------------------------------------------------------------------------------ -// Privates -// ------------------------------------------------------------------------------ - -// Lazily-loaded Prettier. -/** - * @type {(source: string, options: Options, fileInfoOptions: FileInfoOptions) => string} - */ -let prettierFormat; - -// ------------------------------------------------------------------------------ -// Rule Definition -// ------------------------------------------------------------------------------ - -/** - * Reports a difference. - * - * @param {import('eslint').Rule.RuleContext} context - The ESLint rule context. - * @param {import('prettier-linter-helpers').Difference} difference - The difference object. - * @returns {void} - */ -function reportDifference(context, difference) { - const { operation, offset, deleteText = '', insertText = '' } = difference; - const range = /** @type {Range} */ ([offset, offset + deleteText.length]); - const [start, end] = range.map(index => - context.getSourceCode().getLocFromIndex(index), - ); - - context.report({ - messageId: operation, - data: { - deleteText: showInvisibles(deleteText), - insertText: showInvisibles(insertText), - }, - loc: { start, end }, - fix: fixer => fixer.replaceTextRange(range, insertText), - }); -} - -// ------------------------------------------------------------------------------ -// Module Definition -// ------------------------------------------------------------------------------ - -/** - * @type {Plugin} - */ -const eslintPluginPrettier = { - configs: { - recommended: { - extends: ['prettier'], - plugins: ['prettier'], - rules: { - 'prettier/prettier': 'error', - 'arrow-body-style': 'off', - 'prefer-arrow-callback': 'off', - }, - }, - }, - rules: { - prettier: { - meta: { - docs: { - url: 'https://github.com/prettier/eslint-plugin-prettier#options', - }, - type: 'layout', - fixable: 'code', - schema: [ - // Prettier options: - { - type: 'object', - properties: {}, - additionalProperties: true, - }, - { - type: 'object', - properties: { - usePrettierrc: { type: 'boolean' }, - fileInfoOptions: { - type: 'object', - properties: {}, - additionalProperties: true, - }, - }, - additionalProperties: true, - }, - ], - messages: { - [INSERT]: 'Insert `{{ insertText }}`', - [DELETE]: 'Delete `{{ deleteText }}`', - [REPLACE]: 'Replace `{{ deleteText }}` with `{{ insertText }}`', - }, - }, - create(context) { - const usePrettierrc = - !context.options[1] || context.options[1].usePrettierrc !== false; - /** - * @type {FileInfoOptions} - */ - const fileInfoOptions = - (context.options[1] && context.options[1].fileInfoOptions) || {}; - const sourceCode = context.getSourceCode(); - const filepath = context.getFilename(); - // Processors that extract content from a file, such as the markdown - // plugin extracting fenced code blocks may choose to specify virtual - // file paths. If this is the case then we need to resolve prettier - // config and file info using the on-disk path instead of the virtual - // path. - const onDiskFilepath = context.getPhysicalFilename(); - const source = sourceCode.text; - - return { - Program() { - if (!prettierFormat) { - // Prettier is expensive to load, so only load it if needed. - prettierFormat = require('synckit').createSyncFn( - require.resolve('./worker'), - ); - } - - /** - * @type {{}} - */ - const eslintPrettierOptions = context.options[0] || {}; - - // prettier.format() may throw a SyntaxError if it cannot parse the - // source code it is given. Usually for JS files this isn't a - // problem as ESLint will report invalid syntax before trying to - // pass it to the prettier plugin. However this might be a problem - // for non-JS languages that are handled by a plugin. Notably Vue - // files throw an error if they contain unclosed elements, such as - // `. In this case report an error at the - // point at which parsing failed. - /** - * @type {string} - */ - let prettierSource; - try { - prettierSource = prettierFormat( - source, - { - ...eslintPrettierOptions, - filepath, - onDiskFilepath, - parserPath: context.parserPath, - usePrettierrc, - }, - fileInfoOptions, - ); - } catch (err) { - if (!(err instanceof SyntaxError)) { - throw err; - } - - let message = 'Parsing error: ' + err.message; - - const error = - /** @type {SyntaxError & {codeFrame: string; loc: SourceLocation}} */ ( - err - ); - - // Prettier's message contains a codeframe style preview of the - // invalid code and the line/column at which the error occurred. - // ESLint shows those pieces of information elsewhere already so - // remove them from the message - if (error.codeFrame) { - message = message.replace(`\n${error.codeFrame}`, ''); - } - if (error.loc) { - message = message.replace(/ \(\d+:\d+\)$/, ''); - } - - context.report({ message, loc: error.loc }); - - return; - } - - if (prettierSource == null) { - return; - } - - if (source !== prettierSource) { - const differences = generateDifferences(source, prettierSource); - - for (const difference of differences) { - reportDifference(context, difference); - } - } - }, - }; - }, - }, - }, -}; - -module.exports = eslintPluginPrettier; diff --git a/build/node_modules/eslint-plugin-prettier/package.json b/build/node_modules/eslint-plugin-prettier/package.json deleted file mode 100644 index f74e0f57..00000000 --- a/build/node_modules/eslint-plugin-prettier/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "eslint-plugin-prettier", - "version": "5.0.1", - "description": "Runs prettier as an eslint rule", - "repository": "git+https://github.com/prettier/eslint-plugin-prettier.git", - "homepage": "https://github.com/prettier/eslint-plugin-prettier#readme", - "author": "Teddy Katz", - "contributors": [ - "JounQin (https://github.com/JounQin) " - ], - "funding": "https://opencollective.com/prettier", - "license": "MIT", - "packageManager": "pnpm@7.33.3", - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "main": "eslint-plugin-prettier.js", - "types": "eslint-plugin-prettier.d.ts", - "files": [ - "eslint-plugin-prettier.d.ts", - "eslint-plugin-prettier.js", - "worker.js" - ], - "keywords": [ - "eslint", - "eslintplugin", - "eslint-plugin", - "prettier" - ], - "scripts": { - "format": "prettier --write . && pnpm lint --fix", - "lint": "eslint . --cache -f friendly --max-warnings 10", - "prepare": "simple-git-hooks", - "prerelease": "pnpm format && pnpm test", - "release": "changeset publish", - "test": "pnpm lint && mocha" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - }, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.5" - }, - "devDependencies": { - "@1stg/remark-preset": "^2.0.0", - "@changesets/changelog-github": "^0.4.8", - "@changesets/cli": "^2.26.2", - "@commitlint/config-conventional": "^17.6.6", - "@eslint-community/eslint-plugin-eslint-comments": "^3.2.1", - "@graphql-eslint/eslint-plugin": "^3.20.0", - "@types/eslint": "^8.44.0", - "@types/prettier-linter-helpers": "^1.0.1", - "commitlint": "^17.6.6", - "eslint": "^8.44.0", - "eslint-config-prettier": "^8.8.0", - "eslint-formatter-friendly": "^7.0.0", - "eslint-mdx": "^2.1.0", - "eslint-plugin-eslint-plugin": "^5.1.0", - "eslint-plugin-mdx": "^2.1.0", - "eslint-plugin-n": "^16.0.1", - "eslint-plugin-prettier": "link:.", - "eslint-plugin-svelte": "^2.32.2", - "eslint-plugin-svelte3": "^4.0.0", - "graphql": "^16.7.1", - "lint-staged": "^13.2.3", - "mocha": "^10.2.0", - "prettier": "^3.0.0", - "prettier-plugin-pkg": "^0.18.0", - "simple-git-hooks": "^2.8.1", - "svelte": "^4.0.5", - "vue-eslint-parser": "^9.3.1" - }, - "pnpm": { - "patchedDependencies": { - "@graphql-eslint/eslint-plugin@3.20.0": "patches/@graphql-eslint__eslint-plugin@3.20.0.patch" - } - } -} diff --git a/build/node_modules/eslint-plugin-prettier/worker.js b/build/node_modules/eslint-plugin-prettier/worker.js deleted file mode 100644 index d4cadc05..00000000 --- a/build/node_modules/eslint-plugin-prettier/worker.js +++ /dev/null @@ -1,163 +0,0 @@ -// @ts-check - -/** - * @typedef {import('prettier').FileInfoOptions} FileInfoOptions - * @typedef {import('prettier').Options & { onDiskFilepath: string, parserPath?: string, usePrettierrc?: boolean }} Options - */ - -const { runAsWorker } = require('synckit'); - -/** - * @type {typeof import('prettier')} - */ -let prettier; - -runAsWorker( - /** - * @param {string} source - The source code to format. - * @param {Options} options - The prettier options. - * @param {FileInfoOptions} eslintFileInfoOptions - The file info options. - * @returns {Promise} The formatted source code. - */ - async ( - source, - { - filepath, - onDiskFilepath, - parserPath, - usePrettierrc, - ...eslintPrettierOptions - }, - eslintFileInfoOptions, - ) => { - if (!prettier) { - prettier = await import('prettier'); - } - - const prettierRcOptions = usePrettierrc - ? await prettier.resolveConfig(onDiskFilepath, { - editorconfig: true, - }) - : null; - - const { ignored, inferredParser } = await prettier.getFileInfo( - onDiskFilepath, - { - resolveConfig: false, - withNodeModules: false, - ignorePath: '.prettierignore', - plugins: /** @type {string[] | undefined} */ ( - prettierRcOptions ? prettierRcOptions.plugins : undefined - ), - ...eslintFileInfoOptions, - }, - ); - - // Skip if file is ignored using a .prettierignore file - if (ignored) { - return; - } - - const initialOptions = {}; - - // ESLint supports processors that let you extract and lint JS - // fragments within a non-JS language. In the cases where prettier - // supports the same language as a processor, we want to process - // the provided source code as javascript (as ESLint provides the - // rules with fragments of JS) instead of guessing the parser - // based off the filename. Otherwise, for instance, on a .md file we - // end up trying to run prettier over a fragment of JS using the - // markdown parser, which throws an error. - // Processors may set virtual filenames for these extracted blocks. - // If they do so then we want to trust the file extension they - // provide, and no override is needed. - // If the processor does not set any virtual filename (signified by - // `filepath` and `onDiskFilepath` being equal) AND we can't - // infer the parser from the filename, either because no filename - // was provided or because there is no parser found for the - // filename, use javascript. - // This is added to the options first, so that - // prettierRcOptions and eslintPrettierOptions can still override - // the parser. - // - // `parserBlocklist` should contain the list of prettier parser - // names for file types where: - // * Prettier supports parsing the file type - // * There is an ESLint processor that extracts JavaScript snippets - // from the file type. - if (filepath === onDiskFilepath) { - // The following list means the plugin process source into js content - // but with same filename, so we need to change the parser to `babel` - // by default. - // Related ESLint plugins are: - // 1. `eslint-plugin-graphql` (replacement: `@graphql-eslint/eslint-plugin`) - // 2. `eslint-plugin-html` - // 3. `eslint-plugin-markdown@1` (replacement: `eslint-plugin-markdown@2+`) - // 4. `eslint-plugin-svelte3` (replacement: `eslint-plugin-svelte@2+`) - const parserBlocklist = [null, 'markdown', 'html']; - - let inferParserToBabel = parserBlocklist.includes(inferredParser); - - switch (inferredParser) { - // it could be processed by `@graphql-eslint/eslint-plugin` or `eslint-plugin-graphql` - case 'graphql': { - if ( - // for `eslint-plugin-graphql`, see https://github.com/apollographql/eslint-plugin-graphql/blob/master/src/index.js#L416 - source.startsWith('ESLintPluginGraphQLFile`') - ) { - inferParserToBabel = true; - } - break; - } - // it could be processed by `@ota-meshi/eslint-plugin-svelte`, `eslint-plugin-svelte` or `eslint-plugin-svelte3` - case 'svelte': { - // The `source` would be modified by `eslint-plugin-svelte3` - if ( - typeof parserPath === 'string' && - !parserPath.includes('svelte-eslint-parser') - ) { - // We do not support `eslint-plugin-svelte3`, - // the users should run `prettier` on `.svelte` files manually - return; - } - } - } - - if (inferParserToBabel) { - initialOptions.parser = 'babel'; - } - } else { - // Similar to https://github.com/prettier/stylelint-prettier/pull/22 - // In all of the following cases ESLint extracts a part of a file to - // be formatted and there exists a prettier parser for the whole file. - // If you're interested in prettier you'll want a fully formatted file so - // you're about to run prettier over the whole file anyway. - // Therefore running prettier over just the style section is wasteful, so - // skip it. - const parserBlocklist = [ - 'babel', - 'babylon', - 'flow', - 'typescript', - 'vue', - 'markdown', - 'html', - 'mdx', - 'angular', - 'svelte', - ]; - if (parserBlocklist.includes(/** @type {string} */ (inferredParser))) { - return; - } - } - - const prettierOptions = { - ...initialOptions, - ...prettierRcOptions, - ...eslintPrettierOptions, - filepath, - }; - - return prettier.format(source, prettierOptions); - }, -); diff --git a/build/node_modules/eslint-scope/LICENSE b/build/node_modules/eslint-scope/LICENSE deleted file mode 100644 index d36a526f..00000000 --- a/build/node_modules/eslint-scope/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright JS Foundation and other contributors, https://js.foundation -Copyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/eslint-scope/README.md b/build/node_modules/eslint-scope/README.md deleted file mode 100644 index 110baaf8..00000000 --- a/build/node_modules/eslint-scope/README.md +++ /dev/null @@ -1,70 +0,0 @@ -[![npm version](https://img.shields.io/npm/v/eslint-scope.svg)](https://www.npmjs.com/package/eslint-scope) -[![Downloads](https://img.shields.io/npm/dm/eslint-scope.svg)](https://www.npmjs.com/package/eslint-scope) -[![Build Status](https://github.com/eslint/eslint-scope/workflows/CI/badge.svg)](https://github.com/eslint/eslint-scope/actions) - -# ESLint Scope - -ESLint Scope is the [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) scope analyzer used in ESLint. It is a fork of [escope](http://github.com/estools/escope). - -## Install - -``` -npm i eslint-scope --save -``` - -## 📖 Usage - -To use in an ESM file: - -```js -import * as eslintScope from 'eslint-scope'; -``` - -To use in a CommonJS file: - -```js -const eslintScope = require('eslint-scope'); -``` - -Example: - -```js -import * as eslintScope from 'eslint-scope'; -import * as espree from 'espree'; -import estraverse from 'estraverse'; - -const ast = espree.parse(code, { range: true }); -const scopeManager = eslintScope.analyze(ast); - -const currentScope = scopeManager.acquire(ast); // global scope - -estraverse.traverse(ast, { - enter (node, parent) { - // do stuff - - if (/Function/.test(node.type)) { - currentScope = scopeManager.acquire(node); // get current function scope - } - }, - leave(node, parent) { - if (/Function/.test(node.type)) { - currentScope = currentScope.upper; // set to parent scope - } - - // do stuff - } -}); -``` - -## Contributing - -Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/eslint-scope/issues). - -## Build Commands - -* `npm test` - run all linting and tests -* `npm run lint` - run all linting - -## License - -ESLint Scope is licensed under a permissive BSD 2-clause license. diff --git a/build/node_modules/eslint-scope/package.json b/build/node_modules/eslint-scope/package.json deleted file mode 100644 index 0aae36d3..00000000 --- a/build/node_modules/eslint-scope/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "eslint-scope", - "description": "ECMAScript scope analyzer for ESLint", - "homepage": "http://github.com/eslint/eslint-scope", - "main": "./dist/eslint-scope.cjs", - "type": "module", - "exports": { - ".": { - "import": "./lib/index.js", - "require": "./dist/eslint-scope.cjs" - }, - "./package.json": "./package.json" - }, - "version": "7.2.2", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "repository": "eslint/eslint-scope", - "funding": "https://opencollective.com/eslint", - "bugs": { - "url": "https://github.com/eslint/eslint-scope/issues" - }, - "license": "BSD-2-Clause", - "scripts": { - "build": "rollup -c", - "lint": "npm run build && node Makefile.js lint", - "update-version": "node tools/update-version.js", - "test": "npm run build && node Makefile.js test", - "prepublishOnly": "npm run update-version && npm run build", - "generate-release": "eslint-generate-release", - "generate-alpharelease": "eslint-generate-prerelease alpha", - "generate-betarelease": "eslint-generate-prerelease beta", - "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" - }, - "files": [ - "LICENSE", - "README.md", - "lib", - "dist/eslint-scope.cjs" - ], - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "devDependencies": { - "@typescript-eslint/parser": "^4.28.1", - "c8": "^7.7.3", - "chai": "^4.3.4", - "eslint": "^7.29.0", - "eslint-config-eslint": "^7.0.0", - "eslint-plugin-jsdoc": "^35.4.1", - "eslint-plugin-node": "^11.1.0", - "eslint-release": "^3.2.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "mocha": "^9.0.1", - "npm-license": "^0.3.3", - "rollup": "^2.52.7", - "shelljs": "^0.8.4", - "typescript": "^4.3.5" - } -} diff --git a/build/node_modules/eslint-visitor-keys/LICENSE b/build/node_modules/eslint-visitor-keys/LICENSE deleted file mode 100644 index 17a25538..00000000 --- a/build/node_modules/eslint-visitor-keys/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/eslint-visitor-keys/README.md b/build/node_modules/eslint-visitor-keys/README.md deleted file mode 100644 index cab81032..00000000 --- a/build/node_modules/eslint-visitor-keys/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# eslint-visitor-keys - -[![npm version](https://img.shields.io/npm/v/eslint-visitor-keys.svg)](https://www.npmjs.com/package/eslint-visitor-keys) -[![Downloads/month](https://img.shields.io/npm/dm/eslint-visitor-keys.svg)](http://www.npmtrends.com/eslint-visitor-keys) -[![Build Status](https://github.com/eslint/eslint-visitor-keys/workflows/CI/badge.svg)](https://github.com/eslint/eslint-visitor-keys/actions) - -Constants and utilities about visitor keys to traverse AST. - -## 💿 Installation - -Use [npm] to install. - -```bash -$ npm install eslint-visitor-keys -``` - -### Requirements - -- [Node.js] `^12.22.0`, `^14.17.0`, or `>=16.0.0` - - -## 📖 Usage - -To use in an ESM file: - -```js -import * as evk from "eslint-visitor-keys" -``` - -To use in a CommonJS file: - -```js -const evk = require("eslint-visitor-keys") -``` - -### evk.KEYS - -> type: `{ [type: string]: string[] | undefined }` - -Visitor keys. This keys are frozen. - -This is an object. Keys are the type of [ESTree] nodes. Their values are an array of property names which have child nodes. - -For example: - -``` -console.log(evk.KEYS.AssignmentExpression) // → ["left", "right"] -``` - -### evk.getKeys(node) - -> type: `(node: object) => string[]` - -Get the visitor keys of a given AST node. - -This is similar to `Object.keys(node)` of ES Standard, but some keys are excluded: `parent`, `leadingComments`, `trailingComments`, and names which start with `_`. - -This will be used to traverse unknown nodes. - -For example: - -```js -const node = { - type: "AssignmentExpression", - left: { type: "Identifier", name: "foo" }, - right: { type: "Literal", value: 0 } -} -console.log(evk.getKeys(node)) // → ["type", "left", "right"] -``` - -### evk.unionWith(additionalKeys) - -> type: `(additionalKeys: object) => { [type: string]: string[] | undefined }` - -Make the union set with `evk.KEYS` and the given keys. - -- The order of keys is, `additionalKeys` is at first, then `evk.KEYS` is concatenated after that. -- It removes duplicated keys as keeping the first one. - -For example: - -```js -console.log(evk.unionWith({ - MethodDefinition: ["decorators"] -})) // → { ..., MethodDefinition: ["decorators", "key", "value"], ... } -``` - -## 📰 Change log - -See [GitHub releases](https://github.com/eslint/eslint-visitor-keys/releases). - -## 🍻 Contributing - -Welcome. See [ESLint contribution guidelines](https://eslint.org/docs/developer-guide/contributing/). - -### Development commands - -- `npm test` runs tests and measures code coverage. -- `npm run lint` checks source codes with ESLint. -- `npm run test:open-coverage` opens the code coverage report of the previous test with your default browser. - - -[npm]: https://www.npmjs.com/ -[Node.js]: https://nodejs.org/ -[ESTree]: https://github.com/estree/estree diff --git a/build/node_modules/eslint-visitor-keys/package.json b/build/node_modules/eslint-visitor-keys/package.json deleted file mode 100644 index b9d51ce0..00000000 --- a/build/node_modules/eslint-visitor-keys/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "eslint-visitor-keys", - "version": "3.4.3", - "description": "Constants and utilities about visitor keys to traverse AST.", - "type": "module", - "main": "dist/eslint-visitor-keys.cjs", - "types": "./dist/index.d.ts", - "exports": { - ".": [ - { - "import": "./lib/index.js", - "require": "./dist/eslint-visitor-keys.cjs" - }, - "./dist/eslint-visitor-keys.cjs" - ], - "./package.json": "./package.json" - }, - "files": [ - "dist/index.d.ts", - "dist/visitor-keys.d.ts", - "dist/eslint-visitor-keys.cjs", - "dist/eslint-visitor-keys.d.cts", - "lib" - ], - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "devDependencies": { - "@types/estree": "^0.0.51", - "@types/estree-jsx": "^0.0.1", - "@typescript-eslint/parser": "^5.14.0", - "c8": "^7.11.0", - "chai": "^4.3.6", - "eslint": "^7.29.0", - "eslint-config-eslint": "^7.0.0", - "eslint-plugin-jsdoc": "^35.4.0", - "eslint-plugin-node": "^11.1.0", - "eslint-release": "^3.2.0", - "esquery": "^1.4.0", - "json-diff": "^0.7.3", - "mocha": "^9.2.1", - "opener": "^1.5.2", - "rollup": "^2.70.0", - "rollup-plugin-dts": "^4.2.3", - "tsd": "^0.19.1", - "typescript": "^4.6.2" - }, - "scripts": { - "build": "npm run build:cjs && npm run build:types", - "build:cjs": "rollup -c", - "build:debug": "npm run build:cjs -- -m && npm run build:types", - "build:keys": "node tools/build-keys-from-ts", - "build:types": "tsc", - "lint": "eslint .", - "prepare": "npm run build", - "release:generate:latest": "eslint-generate-release", - "release:generate:alpha": "eslint-generate-prerelease alpha", - "release:generate:beta": "eslint-generate-prerelease beta", - "release:generate:rc": "eslint-generate-prerelease rc", - "release:publish": "eslint-publish-release", - "test": "mocha tests/lib/**/*.cjs && c8 mocha tests/lib/**/*.js && npm run test:types", - "test:open-coverage": "c8 report --reporter lcov && opener coverage/lcov-report/index.html", - "test:types": "tsd" - }, - "repository": "eslint/eslint-visitor-keys", - "funding": "https://opencollective.com/eslint", - "keywords": [], - "author": "Toru Nagashima (https://github.com/mysticatea)", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/eslint/eslint-visitor-keys/issues" - }, - "homepage": "https://github.com/eslint/eslint-visitor-keys#readme" -} diff --git a/build/node_modules/eslint/LICENSE b/build/node_modules/eslint/LICENSE deleted file mode 100644 index b607bb36..00000000 --- a/build/node_modules/eslint/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright OpenJS Foundation and other contributors, - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/eslint/README.md b/build/node_modules/eslint/README.md deleted file mode 100644 index c910134a..00000000 --- a/build/node_modules/eslint/README.md +++ /dev/null @@ -1,304 +0,0 @@ -[![npm version](https://img.shields.io/npm/v/eslint.svg)](https://www.npmjs.com/package/eslint) -[![Downloads](https://img.shields.io/npm/dm/eslint.svg)](https://www.npmjs.com/package/eslint) -[![Build Status](https://github.com/eslint/eslint/workflows/CI/badge.svg)](https://github.com/eslint/eslint/actions) -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint?ref=badge_shield) -
-[![Open Collective Backers](https://img.shields.io/opencollective/backers/eslint)](https://opencollective.com/eslint) -[![Open Collective Sponsors](https://img.shields.io/opencollective/sponsors/eslint)](https://opencollective.com/eslint) -[![Follow us on Twitter](https://img.shields.io/twitter/follow/geteslint?label=Follow&style=social)](https://twitter.com/intent/user?screen_name=geteslint) - -# ESLint - -[Website](https://eslint.org) | -[Configure ESLint](https://eslint.org/docs/latest/use/configure) | -[Rules](https://eslint.org/docs/rules/) | -[Contribute to ESLint](https://eslint.org/docs/latest/contribute) | -[Report Bugs](https://eslint.org/docs/latest/contribute/report-bugs) | -[Code of Conduct](https://eslint.org/conduct) | -[Twitter](https://twitter.com/geteslint) | -[Discord](https://eslint.org/chat) | -[Mastodon](https://fosstodon.org/@eslint) - -ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code. In many ways, it is similar to JSLint and JSHint with a few exceptions: - -* ESLint uses [Espree](https://github.com/eslint/espree) for JavaScript parsing. -* ESLint uses an AST to evaluate patterns in code. -* ESLint is completely pluggable, every single rule is a plugin and you can add more at runtime. - -## Table of Contents - -1. [Installation and Usage](#installation-and-usage) -2. [Configuration](#configuration) -3. [Code of Conduct](#code-of-conduct) -4. [Filing Issues](#filing-issues) -5. [Frequently Asked Questions](#frequently-asked-questions) -6. [Releases](#releases) -7. [Security Policy](#security-policy) -8. [Semantic Versioning Policy](#semantic-versioning-policy) -9. [Stylistic Rule Updates](#stylistic-rule-updates) -10. [License](#license) -11. [Team](#team) -12. [Sponsors](#sponsors) -13. [Technology Sponsors](#technology-sponsors) - -## Installation and Usage - -Prerequisites: [Node.js](https://nodejs.org/) (`^12.22.0`, `^14.17.0`, or `>=16.0.0`) built with SSL support. (If you are using an official Node.js distribution, SSL is always built in.) - -You can install and configure ESLint using this command: - -```shell -npm init @eslint/config -``` - -After that, you can run ESLint on any file or directory like this: - -```shell -./node_modules/.bin/eslint yourfile.js -``` - -## Configuration - -After running `npm init @eslint/config`, you'll have an `.eslintrc` file in your directory. In it, you'll see some rules configured like this: - -```json -{ - "rules": { - "semi": ["error", "always"], - "quotes": ["error", "double"] - } -} -``` - -The names `"semi"` and `"quotes"` are the names of [rules](https://eslint.org/docs/rules) in ESLint. The first value is the error level of the rule and can be one of these values: - -* `"off"` or `0` - turn the rule off -* `"warn"` or `1` - turn the rule on as a warning (doesn't affect exit code) -* `"error"` or `2` - turn the rule on as an error (exit code will be 1) - -The three error levels allow you fine-grained control over how ESLint applies rules (for more configuration options and details, see the [configuration docs](https://eslint.org/docs/latest/use/configure)). - -## Code of Conduct - -ESLint adheres to the [JS Foundation Code of Conduct](https://eslint.org/conduct). - -## Filing Issues - -Before filing an issue, please be sure to read the guidelines for what you're reporting: - -* [Bug Report](https://eslint.org/docs/latest/contribute/report-bugs) -* [Propose a New Rule](https://eslint.org/docs/latest/contribute/propose-new-rule) -* [Proposing a Rule Change](https://eslint.org/docs/latest/contribute/propose-rule-change) -* [Request a Change](https://eslint.org/docs/latest/contribute/request-change) - -## Frequently Asked Questions - -### I'm using JSCS, should I migrate to ESLint? - -Yes. [JSCS has reached end of life](https://eslint.org/blog/2016/07/jscs-end-of-life) and is no longer supported. - -We have prepared a [migration guide](https://eslint.org/docs/latest/use/migrating-from-jscs) to help you convert your JSCS settings to an ESLint configuration. - -We are now at or near 100% compatibility with JSCS. If you try ESLint and believe we are not yet compatible with a JSCS rule/configuration, please create an issue (mentioning that it is a JSCS compatibility issue) and we will evaluate it as per our normal process. - -### Does Prettier replace ESLint? - -No, ESLint does both traditional linting (looking for problematic patterns) and style checking (enforcement of conventions). You can use ESLint for everything, or you can combine both using Prettier to format your code and ESLint to catch possible errors. - -### Why can't ESLint find my plugins? - -* Make sure your plugins (and ESLint) are both in your project's `package.json` as devDependencies (or dependencies, if your project uses ESLint at runtime). -* Make sure you have run `npm install` and all your dependencies are installed. -* Make sure your plugins' peerDependencies have been installed as well. You can use `npm view eslint-plugin-myplugin peerDependencies` to see what peer dependencies `eslint-plugin-myplugin` has. - -### Does ESLint support JSX? - -Yes, ESLint natively supports parsing JSX syntax (this must be enabled in [configuration](https://eslint.org/docs/latest/use/configure)). Please note that supporting JSX syntax *is not* the same as supporting React. React applies specific semantics to JSX syntax that ESLint doesn't recognize. We recommend using [eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react) if you are using React and want React semantics. - -### What ECMAScript versions does ESLint support? - -ESLint has full support for ECMAScript 3, 5 (default), 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, and 2023. You can set your desired ECMAScript syntax (and other settings, like global variables or your target environments) through [configuration](https://eslint.org/docs/latest/use/configure). - -### What about experimental features? - -ESLint's parser only officially supports the latest final ECMAScript standard. We will make changes to core rules in order to avoid crashes on stage 3 ECMAScript syntax proposals (as long as they are implemented using the correct experimental ESTree syntax). We may make changes to core rules to better work with language extensions (such as JSX, Flow, and TypeScript) on a case-by-case basis. - -In other cases (including if rules need to warn on more or fewer cases due to new syntax, rather than just not crashing), we recommend you use other parsers and/or rule plugins. If you are using Babel, you can use [@babel/eslint-parser](https://www.npmjs.com/package/@babel/eslint-parser) and [@babel/eslint-plugin](https://www.npmjs.com/package/@babel/eslint-plugin) to use any option available in Babel. - -Once a language feature has been adopted into the ECMAScript standard (stage 4 according to the [TC39 process](https://tc39.github.io/process-document/)), we will accept issues and pull requests related to the new feature, subject to our [contributing guidelines](https://eslint.org/docs/latest/contribute). Until then, please use the appropriate parser and plugin(s) for your experimental feature. - -### Where to ask for help? - -Open a [discussion](https://github.com/eslint/eslint/discussions) or stop by our [Discord server](https://eslint.org/chat). - -### Why doesn't ESLint lock dependency versions? - -Lock files like `package-lock.json` are helpful for deployed applications. They ensure that dependencies are consistent between environments and across deployments. - -Packages like `eslint` that get published to the npm registry do not include lock files. `npm install eslint` as a user will respect version constraints in ESLint's `package.json`. ESLint and its dependencies will be included in the user's lock file if one exists, but ESLint's own lock file would not be used. - -We intentionally don't lock dependency versions so that we have the latest compatible dependency versions in development and CI that our users get when installing ESLint in a project. - -The Twilio blog has a [deeper dive](https://www.twilio.com/blog/lockfiles-nodejs) to learn more. - -## Releases - -We have scheduled releases every two weeks on Friday or Saturday. You can follow a [release issue](https://github.com/eslint/eslint/issues?q=is%3Aopen+is%3Aissue+label%3Arelease) for updates about the scheduling of any particular release. - -## Security Policy - -ESLint takes security seriously. We work hard to ensure that ESLint is safe for everyone and that security issues are addressed quickly and responsibly. Read the full [security policy](https://github.com/eslint/.github/blob/master/SECURITY.md). - -## Semantic Versioning Policy - -ESLint follows [semantic versioning](https://semver.org). However, due to the nature of ESLint as a code quality tool, it's not always clear when a minor or major version bump occurs. To help clarify this for everyone, we've defined the following semantic versioning policy for ESLint: - -* Patch release (intended to not break your lint build) - * A bug fix in a rule that results in ESLint reporting fewer linting errors. - * A bug fix to the CLI or core (including formatters). - * Improvements to documentation. - * Non-user-facing changes such as refactoring code, adding, deleting, or modifying tests, and increasing test coverage. - * Re-releasing after a failed release (i.e., publishing a release that doesn't work for anyone). -* Minor release (might break your lint build) - * A bug fix in a rule that results in ESLint reporting more linting errors. - * A new rule is created. - * A new option to an existing rule that does not result in ESLint reporting more linting errors by default. - * A new addition to an existing rule to support a newly-added language feature (within the last 12 months) that will result in ESLint reporting more linting errors by default. - * An existing rule is deprecated. - * A new CLI capability is created. - * New capabilities to the public API are added (new classes, new methods, new arguments to existing methods, etc.). - * A new formatter is created. - * `eslint:recommended` is updated and will result in strictly fewer linting errors (e.g., rule removals). -* Major release (likely to break your lint build) - * `eslint:recommended` is updated and may result in new linting errors (e.g., rule additions, most rule option updates). - * A new option to an existing rule that results in ESLint reporting more linting errors by default. - * An existing formatter is removed. - * Part of the public API is removed or changed in an incompatible way. The public API includes: - * Rule schemas - * Configuration schema - * Command-line options - * Node.js API - * Rule, formatter, parser, plugin APIs - -According to our policy, any minor update may report more linting errors than the previous release (ex: from a bug fix). As such, we recommend using the tilde (`~`) in `package.json` e.g. `"eslint": "~3.1.0"` to guarantee the results of your builds. - -## Stylistic Rule Updates - -Stylistic rules are frozen according to [our policy](https://eslint.org/blog/2020/05/changes-to-rules-policies) on how we evaluate new rules and rule changes. -This means: - -* **Bug fixes**: We will still fix bugs in stylistic rules. -* **New ECMAScript features**: We will also make sure stylistic rules are compatible with new ECMAScript features. -* **New options**: We will **not** add any new options to stylistic rules unless an option is the only way to fix a bug or support a newly-added ECMAScript feature. - -## License - -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint?ref=badge_large) - -## Team - -These folks keep the project moving and are resources for help. - - - - - -### Technical Steering Committee (TSC) - -The people who manage releases, review feature requests, and meet regularly to ensure ESLint is properly maintained. - -
- -
-Nicholas C. Zakas -
-
- -
-Milos Djermanovic -
-
- -### Reviewers - -The people who review and implement new features. - -
- -
-唯然 -
-
- -
-Nitin Kumar -
-
- -### Committers - -The people who review and fix bugs and help triage issues. - -
- -
-Bryan Mishkin -
-
- -
-Francesco Trotta -
-
- -
-Yosuke Ota -
-
- -
-Tanuj Kanti -
-
- -### Website Team - -Team members who focus specifically on eslint.org - -
- -
-Amaresh S M -
-
- -
-Strek -
-
- -
-Percy Ma -
-
- - - -## Sponsors - -The following companies, organizations, and individuals support ESLint's ongoing maintenance and development. [Become a Sponsor](https://opencollective.com/eslint) to get your logo on our README and website. - - - -

Platinum Sponsors

-

Chrome Frameworks Fund Automattic

Gold Sponsors

-

Salesforce Airbnb

Silver Sponsors

-

Liftoff American Express

Bronze Sponsors

-

ThemeIsle Anagram Solver Icons8 Discord Transloadit Ignition HeroCoders QuickBooks Tool hub

- - -## Technology Sponsors - -* Site search ([eslint.org](https://eslint.org)) is sponsored by [Algolia](https://www.algolia.com) -* Hosting for ([eslint.org](https://eslint.org)) is sponsored by [Netlify](https://www.netlify.com) -* Password management is sponsored by [1Password](https://www.1password.com) diff --git a/build/node_modules/eslint/package.json b/build/node_modules/eslint/package.json deleted file mode 100644 index 45a42d1b..00000000 --- a/build/node_modules/eslint/package.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "name": "eslint", - "version": "8.52.0", - "author": "Nicholas C. Zakas ", - "description": "An AST-based pattern checker for JavaScript.", - "bin": { - "eslint": "./bin/eslint.js" - }, - "main": "./lib/api.js", - "exports": { - "./package.json": "./package.json", - ".": "./lib/api.js", - "./use-at-your-own-risk": "./lib/unsupported-api.js" - }, - "scripts": { - "build:docs:update-links": "node tools/fetch-docs-links.js", - "build:site": "node Makefile.js gensite", - "build:webpack": "node Makefile.js webpack", - "build:readme": "node tools/update-readme.js", - "lint": "node Makefile.js lint", - "lint:docs:js": "node Makefile.js lintDocsJS", - "lint:fix": "node Makefile.js lint -- fix", - "lint:fix:docs:js": "node Makefile.js lintDocsJS -- fix", - "release:generate:alpha": "node Makefile.js generatePrerelease -- alpha", - "release:generate:beta": "node Makefile.js generatePrerelease -- beta", - "release:generate:latest": "node Makefile.js generateRelease", - "release:generate:rc": "node Makefile.js generatePrerelease -- rc", - "release:publish": "node Makefile.js publishRelease", - "test": "node Makefile.js test", - "test:cli": "mocha", - "test:fuzz": "node Makefile.js fuzz", - "test:performance": "node Makefile.js perf" - }, - "gitHooks": { - "pre-commit": "lint-staged" - }, - "lint-staged": { - "*.js": "eslint --fix", - "*.md": "markdownlint --fix", - "lib/rules/*.js": [ - "node tools/update-eslint-all.js", - "git add packages/js/src/configs/eslint-all.js" - ], - "docs/src/rules/*.md": [ - "node tools/fetch-docs-links.js", - "git add docs/src/_data/further_reading_links.json" - ], - "docs/**/*.svg": "npx svgo -r --multipass" - }, - "files": [ - "LICENSE", - "README.md", - "bin", - "conf", - "lib", - "messages" - ], - "repository": "eslint/eslint", - "funding": "https://opencollective.com/eslint", - "homepage": "https://eslint.org", - "bugs": "https://github.com/eslint/eslint/issues/", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "devDependencies": { - "@babel/core": "^7.4.3", - "@babel/preset-env": "^7.4.3", - "@wdio/browser-runner": "^8.14.6", - "@wdio/cli": "^8.14.6", - "@wdio/concise-reporter": "^8.14.0", - "@wdio/globals": "^8.14.6", - "@wdio/mocha-framework": "^8.14.0", - "babel-loader": "^8.0.5", - "c8": "^7.12.0", - "chai": "^4.0.1", - "cheerio": "^0.22.0", - "common-tags": "^1.8.0", - "core-js": "^3.1.3", - "ejs": "^3.0.2", - "eslint": "file:.", - "eslint-config-eslint": "file:packages/eslint-config-eslint", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-eslint-plugin": "^5.1.0", - "eslint-plugin-internal-rules": "file:tools/internal-rules", - "eslint-plugin-jsdoc": "^46.2.5", - "eslint-plugin-n": "^16.0.0", - "eslint-plugin-unicorn": "^42.0.0", - "eslint-release": "^3.2.0", - "eslump": "^3.0.0", - "esprima": "^4.0.1", - "fast-glob": "^3.2.11", - "fs-teardown": "^0.1.3", - "glob": "^7.1.6", - "got": "^11.8.3", - "gray-matter": "^4.0.3", - "lint-staged": "^11.0.0", - "load-perf": "^0.2.0", - "markdownlint": "^0.25.1", - "markdownlint-cli": "^0.31.1", - "marked": "^4.0.8", - "memfs": "^3.0.1", - "metascraper": "^5.25.7", - "metascraper-description": "^5.25.7", - "metascraper-image": "^5.29.3", - "metascraper-logo": "^5.25.7", - "metascraper-logo-favicon": "^5.25.7", - "metascraper-title": "^5.25.7", - "mocha": "^8.3.2", - "mocha-junit-reporter": "^2.0.0", - "node-polyfill-webpack-plugin": "^1.0.3", - "npm-license": "^0.3.3", - "pirates": "^4.0.5", - "progress": "^2.0.3", - "proxyquire": "^2.0.1", - "recast": "^0.20.4", - "regenerator-runtime": "^0.13.2", - "rollup-plugin-node-polyfills": "^0.2.1", - "semver": "^7.5.3", - "shelljs": "^0.8.2", - "sinon": "^11.0.0", - "vite-plugin-commonjs": "^0.8.2", - "webdriverio": "^8.14.6", - "webpack": "^5.23.0", - "webpack-cli": "^4.5.0", - "yorkie": "^2.0.0" - }, - "keywords": [ - "ast", - "lint", - "javascript", - "ecmascript", - "espree" - ], - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } -} diff --git a/build/node_modules/esm/LICENSE b/build/node_modules/esm/LICENSE deleted file mode 100644 index 1e4afd1b..00000000 --- a/build/node_modules/esm/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright esm contributors - -Based on reify, copyright Ben Newman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/esm/README.md b/build/node_modules/esm/README.md deleted file mode 100644 index 7c01192b..00000000 --- a/build/node_modules/esm/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# esm - -The brilliantly simple, babel-less, bundle-less ECMAScript module loader. - -> `esm` is the world’s most advanced ECMAScript module loader. -This fast, production ready, zero dependency loader is all you need to support -ECMAScript modules in Node 6+. See the release [post](https://medium.com/web-on-the-edge/tomorrows-es-modules-today-c53d29ac448c) -and [video](https://www.youtube.com/watch?v=JcZ-FzfDq8A#t=5) for details! - -Install ---- - -* __New projects__ - - Run `npm init esm` or `yarn create esm`. - - :bulb: Use the `-y` flag to answer “yes” to all prompts. - -* __Existing projects__ - - Run `npm i esm` or `yarn add esm`. - -Getting started ---- - -There are two ways to enable `esm`. - -1. Enable `esm` for packages: - - Use `esm` to load the main ES module and export it as CommonJS. - - __index.js__ - ```js - // Set options as a parameter, environment variable, or rc file. - require = require("esm")(module/*, options*/) - module.exports = require("./main.js") - ``` - __main.js__ - ```js - // ESM syntax is supported. - export {} - ``` - :bulb: These files are automagically created with `npm init esm` or `yarn create esm`. - -2. Enable `esm` for local runs: - - ```shell - node -r esm main.js - ``` - :bulb: Omit the filename to enable `esm` in the REPL. - -Features ---- - -:clap: By default, :100: percent CJS interoperability is enabled so you can get stuff done.
-:lock: `.mjs` files are limited to basic functionality without support for `esm` options. - -Out of the box `esm` just works, no configuration necessary, and supports: - -* Passing all applicable [test262](https://github.com/tc39/test262) compliance tests -* [`import`](https://ponyfoo.com/articles/es6-modules-in-depth#import)/[`export`](https://ponyfoo.com/articles/es6-modules-in-depth#export) -* [`import.meta`](https://github.com/tc39/proposal-import-meta) -* [Dynamic `import`](https://github.com/tc39/proposal-dynamic-import) -* [Live bindings](https://ponyfoo.com/articles/es6-modules-in-depth#bindings-not-values) -* [File URI scheme](https://en.wikipedia.org/wiki/File_URI_scheme) -* Node `stdin`, [`--eval`](https://nodejs.org/api/cli.html#cli_e_eval_script), [`--print`](https://nodejs.org/api/cli.html#cli_p_print_script) flags -* Node [`--check`](https://nodejs.org/api/cli.html#cli_c_check) flag _(Node 10+)_ - -Options ---- - -Specify options with one of the following: - -* `"esm"` field in `package.json` -* CJS/ESM in an `.esmrc.js`, `.esmrc.cjs`, or `.esmrc.mjs` file -* [JSON6](https://github.com/d3x0r/json6) in an `.esmrc` or `.esmrc.json` file -* JSON6 or file path in the `ESM_OPTIONS` environment variable -* `ESM_DISABLE_CACHE` environment variable - -
{
"cjs":true

A boolean or object for toggling CJS features in ESM.

Features
{
"cache":true

A boolean for storing ES modules in require.cache.

"esModule":true

A boolean for __esModule interoperability.

"extensions":true

A boolean for respecting require.extensions in ESM.

"mutableNamespace":true

A boolean for mutable namespace objects.

"namedExports":true

A boolean for importing named exports of CJS modules.

"paths":true

A boolean for following CJS path rules in ESM.

"vars":true

A boolean for __dirname, __filename, and require in ESM.

"dedefault":false

A boolean for requiring ES modules without the dangling require().default.

"topLevelReturn":false

A boolean for top-level return support.

}
"mainFields":["main"]

An array of fields checked when importing a package.

"mode":"auto"

A string mode:

  • "auto" detect files with import, import.meta, export,
    "use module", or .mjs as ESM.
  • "all" files besides those with "use script" or .cjs are treated as ESM.
  • "strict" to treat only .mjs files as ESM.
"await":false

A boolean for top-level await in modules without ESM exports. (Node 10+)

"force":false

A boolean to apply these options to all module loads.

"wasm":false

A boolean for WebAssembly module support. (Node 8+)

}
- -DevOpts ---- - -
{
"cache":true

A boolean for toggling cache creation or a cache directory path.

"sourceMap":false

A boolean for including inline source maps.

}
- -Tips ---- - -### Bundling - -* For bundlers like [`browserify`](http://browserify.org/)+[`esmify`](https://github.com/mattdesl/esmify), - [`parcel-bundler`](https://parceljs.org/), and [`webpack`](https://webpack.js.org/) - add a `"module"` field to `package.json` pointing to the main ES module. - ```json - "main": "index.js", - "module": "main.js" - ``` - - :bulb: This is automagically done with `npm init esm` or `yarn create esm`. - -### Extensions - -* Enable `esm` for [`wallaby.js`](https://wallabyjs.com/) following their - [integration example](https://wallabyjs.com/docs/integration/node.html#es-modules). - -### Loading - -* Load `esm` before loaders/monitors like - [`@babel/register`](https://babeljs.io/docs/en/next/babel-register.html), - [`newrelic`](https://github.com/newrelic/node-newrelic), - [`sqreen`](https://docs.sqreen.io/sqreen-for-nodejs/getting-started-2/), and - [`ts-node`](https://github.com/TypeStrong/ts-node#programmatic). - -* Load `esm` for [`jasmine`](https://jasmine.github.io/) using the - [`"helpers"`](https://jasmine.github.io/setup/nodejs.html#configuration) - field in `jasmine.json`: - ```json - "helpers": [ - "node_modules/esm" - ] - ``` - -* Load `esm` with “node-args" options of:
- - [`pm2`](https://pm2.io/doc/en/runtime/reference/pm2-cli/#pm2-flags): `--node-args="-r esm"` - -* Load `esm` with “require” options of - [`ava`](https://github.com/avajs/ava/blob/master/docs/recipes/es-modules.md), - [`mocha`](https://mochajs.org/#-require-module-r-module), - [`nodemon`](https://nodemon.io/), - [`nyc`](https://github.com/istanbuljs/nyc#require-additional-modules), - [`qunit`](https://github.com/qunitjs/qunit/releases/tag/2.6.0), - [`tape`](https://github.com/substack/tape#preloading-modules), and - [`webpack`](https://webpack.js.org/api/cli/#config-options). - - :bulb: Builtin `require` cannot sideload `.mjs` files. However, `.js` files - can be sideloaded or `.mjs` files may be loaded with dynamic `import`. diff --git a/build/node_modules/esm/esm.js b/build/node_modules/esm/esm.js deleted file mode 100644 index 4c0f100b..00000000 --- a/build/node_modules/esm/esm.js +++ /dev/null @@ -1 +0,0 @@ -const e=(function(){return this||Function("return this")()})(),{apply:t,defineProperty:n}=Reflect,{freeze:r}=Object,{hasOwnProperty:l}=Object.prototype,o=Symbol.for,{type:i,versions:u}=process,{filename:a,id:s,parent:c}=module,_=x(u,"electron"),p=_&&"renderer"===i;let d="";"string"==typeof s&&s.startsWith("internal/")&&(d=q("internal/esm/loader"));const f=require("module"),{Script:m}=require("vm"),{createCachedData:y,runInNewContext:h,runInThisContext:b}=m.prototype,{sep:g}=require("path"),{readFileSync:v}=require("fs"),w=new f(s);function q(e){let t;try{const{internalBinding:n}=require("internal/bootstrap/loaders"),r=n("natives");x(r,e)&&(t=r[e])}catch(e){}return"string"==typeof t?t:""}function x(e,n){return null!=e&&t(l,e,[n])}function D(){return M(require,w,T),w.exports}function O(e,t){return D()(e,t)}function j(e,t){try{return v(e,t)}catch(e){}return null}let C,F;w.filename=a,w.parent=c;let I="",S="";""!==d?(S=d,F={__proto__:null,filename:"esm.js"}):(I=__dirname+g+"node_modules"+g+".cache"+g+"esm",C=j(I+g+".data.blob"),S=j(__dirname+g+"esm"+g+"loader.js","utf8"),null===C&&(C=void 0),null===S&&(S=""),F={__proto__:null,cachedData:C,filename:a,produceCachedData:"function"!=typeof y});const k=new m("const __global__ = this;(function (require, module, __shared__) { "+S+"\n});",F);let M,T;if(M=p?t(b,k,[{__proto__:null,filename:a}]):t(h,k,[{__proto__:null,global:e},{__proto__:null,filename:a}]),T=D(),""!==I){const{dir:e}=T.package;let t=e.get(I);if(void 0===t){let n=C;void 0===n&&(n=null),t={buffer:C,compile:new Map([["esm",{circular:0,code:null,codeWithTDZ:null,filename:null,firstAwaitOutsideFunction:null,firstReturnOutsideFunction:null,mtime:-1,scriptData:n,sourceType:1,transforms:0,yieldIndex:-1}]]),meta:new Map},e.set(I,t)}const{pendingScripts:n}=T;let r=n.get(I);void 0===r&&(r=new Map,n.set(I,r)),r.set("esm",k)}n(O,T.symbol.package,{__proto__:null,value:!0}),n(O,T.customInspectKey,{__proto__:null,value:()=>"esm enabled"}),n(O,o("esm:package"),{__proto__:null,value:!0}),r(O),module.exports=O; \ No newline at end of file diff --git a/build/node_modules/esm/index.js b/build/node_modules/esm/index.js deleted file mode 100644 index 04483764..00000000 --- a/build/node_modules/esm/index.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";module.exports=require("./esm.js"); \ No newline at end of file diff --git a/build/node_modules/esm/package.json b/build/node_modules/esm/package.json deleted file mode 100644 index 022c18c7..00000000 --- a/build/node_modules/esm/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "esm", - "version": "3.2.25", - "description": "Tomorrow's ECMAScript modules today!", - "keywords": "commonjs, ecmascript, export, import, modules, node, require", - "repository": "standard-things/esm", - "license": "MIT", - "author": "John-David Dalton ", - "main": "esm.js", - "runkitExample": "require = require(\"esm\")(module)\nrequire(\"lodash-es\")", - "engines": { - "node": ">=6" - }, - "husky": { - "hooks": { - "precommit": "npm run lint" - } - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "files": [ - "index.js", - "esm.js", - "esm/loader.js" - ] -} diff --git a/build/node_modules/espree/LICENSE b/build/node_modules/espree/LICENSE deleted file mode 100644 index b18469ff..00000000 --- a/build/node_modules/espree/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -BSD 2-Clause License - -Copyright (c) Open JS Foundation -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/espree/README.md b/build/node_modules/espree/README.md deleted file mode 100644 index 87ace4c1..00000000 --- a/build/node_modules/espree/README.md +++ /dev/null @@ -1,244 +0,0 @@ -[![npm version](https://img.shields.io/npm/v/espree.svg)](https://www.npmjs.com/package/espree) -[![npm downloads](https://img.shields.io/npm/dm/espree.svg)](https://www.npmjs.com/package/espree) -[![Build Status](https://github.com/eslint/espree/workflows/CI/badge.svg)](https://github.com/eslint/espree/actions) -[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=9348450)](https://www.bountysource.com/trackers/9348450-eslint?utm_source=9348450&utm_medium=shield&utm_campaign=TRACKER_BADGE) - -# Espree - -Espree started out as a fork of [Esprima](http://esprima.org) v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of [Acorn](https://github.com/ternjs/acorn), which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima. - -## Usage - -Install: - -``` -npm i espree -``` - -To use in an ESM file: - -```js -import * as espree from "espree"; - -const ast = espree.parse(code); -``` - -To use in a Common JS file: - -```js -const espree = require("espree"); - -const ast = espree.parse(code); -``` - -## API - -### `parse()` - -`parse` parses the given code and returns a abstract syntax tree (AST). It takes two parameters. - -- `code` [string]() - the code which needs to be parsed. -- `options (Optional)` [Object]() - read more about this [here](#options). - -```js -import * as espree from "espree"; - -const ast = espree.parse(code); -``` - -**Example :** - -```js -const ast = espree.parse('let foo = "bar"', { ecmaVersion: 6 }); -console.log(ast); -``` - -
Output -

- -``` -Node { - type: 'Program', - start: 0, - end: 15, - body: [ - Node { - type: 'VariableDeclaration', - start: 0, - end: 15, - declarations: [Array], - kind: 'let' - } - ], - sourceType: 'script' -} -``` - -

-
- -### `tokenize()` - -`tokenize` returns the tokens of a given code. It takes two parameters. - -- `code` [string]() - the code which needs to be parsed. -- `options (Optional)` [Object]() - read more about this [here](#options). - -Even if `options` is empty or undefined or `options.tokens` is `false`, it assigns it to `true` in order to get the `tokens` array - -**Example :** - -```js -import * as espree from "espree"; - -const tokens = espree.tokenize('let foo = "bar"', { ecmaVersion: 6 }); -console.log(tokens); -``` - -
Output -

- -``` -Token { type: 'Keyword', value: 'let', start: 0, end: 3 }, -Token { type: 'Identifier', value: 'foo', start: 4, end: 7 }, -Token { type: 'Punctuator', value: '=', start: 8, end: 9 }, -Token { type: 'String', value: '"bar"', start: 10, end: 15 } -``` - -

-
- -### `version` - -Returns the current `espree` version - -### `VisitorKeys` - -Returns all visitor keys for traversing the AST from [eslint-visitor-keys](https://github.com/eslint/eslint-visitor-keys) - -### `latestEcmaVersion` - -Returns the latest ECMAScript supported by `espree` - -### `supportedEcmaVersions` - -Returns an array of all supported ECMAScript versions - -## Options - -```js -const options = { - // attach range information to each node - range: false, - - // attach line/column location information to each node - loc: false, - - // create a top-level comments array containing all comments - comment: false, - - // create a top-level tokens array containing all tokens - tokens: false, - - // Set to 3, 5 (the default), 6, 7, 8, 9, 10, 11, 12, 13, 14 or 15 to specify the version of ECMAScript syntax you want to use. - // You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), 2019 (same as 10), 2020 (same as 11), 2021 (same as 12), 2022 (same as 13), 2023 (same as 14) or 2024 (same as 15) to use the year-based naming. - // You can also set "latest" to use the most recently supported version. - ecmaVersion: 3, - - allowReserved: true, // only allowed when ecmaVersion is 3 - - // specify which type of script you're parsing ("script", "module", or "commonjs") - sourceType: "script", - - // specify additional language features - ecmaFeatures: { - - // enable JSX parsing - jsx: false, - - // enable return in global scope (set to true automatically when sourceType is "commonjs") - globalReturn: false, - - // enable implied strict mode (if ecmaVersion >= 5) - impliedStrict: false - } -} -``` - -## Esprima Compatibility Going Forward - -The primary goal is to produce the exact same AST structure and tokens as Esprima, and that takes precedence over anything else. (The AST structure being the [ESTree](https://github.com/estree/estree) API with JSX extensions.) Separate from that, Espree may deviate from what Esprima outputs in terms of where and how comments are attached, as well as what additional information is available on AST nodes. That is to say, Espree may add more things to the AST nodes than Esprima does but the overall AST structure produced will be the same. - -Espree may also deviate from Esprima in the interface it exposes. - -## Contributing - -Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/espree/issues). - -Espree is licensed under a permissive BSD 2-clause license. - -## Security Policy - -We work hard to ensure that Espree is safe for everyone and that security issues are addressed quickly and responsibly. Read the full [security policy](https://github.com/eslint/.github/blob/master/SECURITY.md). - -## Build Commands - -* `npm test` - run all linting and tests -* `npm run lint` - run all linting - -## Differences from Espree 2.x - -* The `tokenize()` method does not use `ecmaFeatures`. Any string will be tokenized completely based on ECMAScript 6 semantics. -* Trailing whitespace no longer is counted as part of a node. -* `let` and `const` declarations are no longer parsed by default. You must opt-in by using an `ecmaVersion` newer than `5` or setting `sourceType` to `module`. -* The `esparse` and `esvalidate` binary scripts have been removed. -* There is no `tolerant` option. We will investigate adding this back in the future. - -## Known Incompatibilities - -In an effort to help those wanting to transition from other parsers to Espree, the following is a list of noteworthy incompatibilities with other parsers. These are known differences that we do not intend to change. - -### Esprima 1.2.2 - -* Esprima counts trailing whitespace as part of each AST node while Espree does not. In Espree, the end of a node is where the last token occurs. -* Espree does not parse `let` and `const` declarations by default. -* Error messages returned for parsing errors are different. -* There are two addition properties on every node and token: `start` and `end`. These represent the same data as `range` and are used internally by Acorn. - -### Esprima 2.x - -* Esprima 2.x uses a different comment attachment algorithm that results in some comments being added in different places than Espree. The algorithm Espree uses is the same one used in Esprima 1.2.2. - -## Frequently Asked Questions - -### Why another parser - -[ESLint](http://eslint.org) had been relying on Esprima as its parser from the beginning. While that was fine when the JavaScript language was evolving slowly, the pace of development increased dramatically and Esprima had fallen behind. ESLint, like many other tools reliant on Esprima, has been stuck in using new JavaScript language features until Esprima updates, and that caused our users frustration. - -We decided the only way for us to move forward was to create our own parser, bringing us inline with JSHint and JSLint, and allowing us to keep implementing new features as we need them. We chose to fork Esprima instead of starting from scratch in order to move as quickly as possible with a compatible API. - -With Espree 2.0.0, we are no longer a fork of Esprima but rather a translation layer between Acorn and Esprima syntax. This allows us to put work back into a community-supported parser (Acorn) that is continuing to grow and evolve while maintaining an Esprima-compatible parser for those utilities still built on Esprima. - -### Have you tried working with Esprima? - -Yes. Since the start of ESLint, we've regularly filed bugs and feature requests with Esprima and will continue to do so. However, there are some different philosophies around how the projects work that need to be worked through. The initial goal was to have Espree track Esprima and eventually merge the two back together, but we ultimately decided that building on top of Acorn was a better choice due to Acorn's plugin support. - -### Why don't you just use Acorn? - -Acorn is a great JavaScript parser that produces an AST that is compatible with Esprima. Unfortunately, ESLint relies on more than just the AST to do its job. It relies on Esprima's tokens and comment attachment features to get a complete picture of the source code. We investigated switching to Acorn, but the inconsistencies between Esprima and Acorn created too much work for a project like ESLint. - -We are building on top of Acorn, however, so that we can contribute back and help make Acorn even better. - -### What ECMAScript features do you support? - -Espree supports all ECMAScript 2023 features and partially supports ECMAScript 2024 features. - -Because ECMAScript 2024 is still under development, we are implementing features as they are finalized. Currently, Espree supports: - -* [RegExp v flag with set notation + properties of strings](https://github.com/tc39/proposal-regexp-v-flag) - -See [finished-proposals.md](https://github.com/tc39/proposals/blob/master/finished-proposals.md) to know what features are finalized. - -### How do you determine which experimental features to support? - -In general, we do not support experimental JavaScript features. We may make exceptions from time to time depending on the maturity of the features. diff --git a/build/node_modules/espree/espree.js b/build/node_modules/espree/espree.js deleted file mode 100644 index e9b11188..00000000 --- a/build/node_modules/espree/espree.js +++ /dev/null @@ -1,177 +0,0 @@ -/* eslint-disable jsdoc/no-multi-asterisks -- needed to preserve original formatting of licences */ - -/** - * @fileoverview Main Espree file that converts Acorn into Esprima output. - * - * This file contains code from the following MIT-licensed projects: - * 1. Acorn - * 2. Babylon - * 3. Babel-ESLint - * - * This file also contains code from Esprima, which is BSD licensed. - * - * Acorn is Copyright 2012-2015 Acorn Contributors (https://github.com/marijnh/acorn/blob/master/AUTHORS) - * Babylon is Copyright 2014-2015 various contributors (https://github.com/babel/babel/blob/master/packages/babylon/AUTHORS) - * Babel-ESLint is Copyright 2014-2015 Sebastian McKenzie - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Esprima is Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* eslint-enable jsdoc/no-multi-asterisks -- needed to preserve original formatting of licences */ - -import * as acorn from "acorn"; -import jsx from "acorn-jsx"; -import espree from "./lib/espree.js"; -import espreeVersion from "./lib/version.js"; -import * as visitorKeys from "eslint-visitor-keys"; -import { getLatestEcmaVersion, getSupportedEcmaVersions } from "./lib/options.js"; - - -// To initialize lazily. -const parsers = { - _regular: null, - _jsx: null, - - get regular() { - if (this._regular === null) { - this._regular = acorn.Parser.extend(espree()); - } - return this._regular; - }, - - get jsx() { - if (this._jsx === null) { - this._jsx = acorn.Parser.extend(jsx(), espree()); - } - return this._jsx; - }, - - get(options) { - const useJsx = Boolean( - options && - options.ecmaFeatures && - options.ecmaFeatures.jsx - ); - - return useJsx ? this.jsx : this.regular; - } -}; - -//------------------------------------------------------------------------------ -// Tokenizer -//------------------------------------------------------------------------------ - -/** - * Tokenizes the given code. - * @param {string} code The code to tokenize. - * @param {Object} options Options defining how to tokenize. - * @returns {Token[]} An array of tokens. - * @throws {SyntaxError} If the input code is invalid. - * @private - */ -export function tokenize(code, options) { - const Parser = parsers.get(options); - - // Ensure to collect tokens. - if (!options || options.tokens !== true) { - options = Object.assign({}, options, { tokens: true }); // eslint-disable-line no-param-reassign -- stylistic choice - } - - return new Parser(options, code).tokenize(); -} - -//------------------------------------------------------------------------------ -// Parser -//------------------------------------------------------------------------------ - -/** - * Parses the given code. - * @param {string} code The code to tokenize. - * @param {Object} options Options defining how to tokenize. - * @returns {ASTNode} The "Program" AST node. - * @throws {SyntaxError} If the input code is invalid. - */ -export function parse(code, options) { - const Parser = parsers.get(options); - - return new Parser(options, code).parse(); -} - -//------------------------------------------------------------------------------ -// Public -//------------------------------------------------------------------------------ - -export const version = espreeVersion; -export const name = "espree"; - -/* istanbul ignore next */ -export const VisitorKeys = (function() { - return visitorKeys.KEYS; -}()); - -// Derive node types from VisitorKeys -/* istanbul ignore next */ -export const Syntax = (function() { - let key, - types = {}; - - if (typeof Object.create === "function") { - types = Object.create(null); - } - - for (key in VisitorKeys) { - if (Object.hasOwnProperty.call(VisitorKeys, key)) { - types[key] = key; - } - } - - if (typeof Object.freeze === "function") { - Object.freeze(types); - } - - return types; -}()); - -export const latestEcmaVersion = getLatestEcmaVersion(); - -export const supportedEcmaVersions = getSupportedEcmaVersions(); diff --git a/build/node_modules/espree/package.json b/build/node_modules/espree/package.json deleted file mode 100644 index 12c8d0b1..00000000 --- a/build/node_modules/espree/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "name": "espree", - "description": "An Esprima-compatible JavaScript parser built on Acorn", - "author": "Nicholas C. Zakas ", - "homepage": "https://github.com/eslint/espree", - "main": "dist/espree.cjs", - "type": "module", - "exports": { - ".": [ - { - "import": "./espree.js", - "require": "./dist/espree.cjs", - "default": "./dist/espree.cjs" - }, - "./dist/espree.cjs" - ], - "./package.json": "./package.json" - }, - "version": "9.6.1", - "files": [ - "lib", - "dist/espree.cjs", - "espree.js" - ], - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "repository": "eslint/espree", - "bugs": { - "url": "https://github.com/eslint/espree/issues" - }, - "funding": "https://opencollective.com/eslint", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^17.1.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^11.2.0", - "c8": "^7.11.0", - "chai": "^4.3.6", - "eslint": "^8.44.0", - "eslint-config-eslint": "^8.0.0", - "eslint-plugin-n": "^16.0.0", - "eslint-release": "^3.2.0", - "esprima-fb": "^8001.2001.0-dev-harmony-fb", - "globals": "^13.20.0", - "lint-staged": "^13.2.0", - "mocha": "^9.2.2", - "npm-run-all": "^4.1.5", - "rollup": "^2.41.2", - "shelljs": "^0.3.0", - "yorkie": "^2.0.0" - }, - "keywords": [ - "ast", - "ecmascript", - "javascript", - "parser", - "syntax", - "acorn" - ], - "gitHooks": { - "pre-commit": "lint-staged" - }, - "scripts": { - "unit": "npm-run-all -s unit:*", - "unit:esm": "c8 mocha --color --reporter progress --timeout 30000 'tests/lib/**/*.js'", - "unit:cjs": "mocha --color --reporter progress --timeout 30000 tests/lib/commonjs.cjs", - "test": "npm-run-all -p unit lint", - "lint": "eslint . --report-unused-disable-directives", - "fixlint": "npm run lint -- --fix", - "build": "rollup -c rollup.config.js", - "build:debug": "npm run build -- -m", - "update-version": "node tools/update-version.js", - "pretest": "npm run build", - "prepublishOnly": "npm run update-version && npm run build", - "sync-docs": "node sync-docs.js", - "generate-release": "eslint-generate-release", - "generate-alpharelease": "eslint-generate-prerelease alpha", - "generate-betarelease": "eslint-generate-prerelease beta", - "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" - } -} diff --git a/build/node_modules/esprima/ChangeLog b/build/node_modules/esprima/ChangeLog deleted file mode 100644 index fafe1c98..00000000 --- a/build/node_modules/esprima/ChangeLog +++ /dev/null @@ -1,235 +0,0 @@ -2018-06-17: Version 4.0.1 - - * Fix parsing async get/set in a class (issue 1861, 1875) - * Account for different return statement argument (issue 1829, 1897, 1928) - * Correct the handling of HTML comment when parsing a module (issue 1841) - * Fix incorrect parse async with proto-identifier-shorthand (issue 1847) - * Fix negative column in binary expression (issue 1844) - * Fix incorrect YieldExpression in object methods (issue 1834) - * Various documentation fixes - -2017-06-10: Version 4.0.0 - - * Support ES2017 async function and await expression (issue 1079) - * Support ES2017 trailing commas in function parameters (issue 1550) - * Explicitly distinguish parsing a module vs a script (issue 1576) - * Fix JSX non-empty container (issue 1786) - * Allow JSX element in a yield expression (issue 1765) - * Allow `in` expression in a concise body with a function body (issue 1793) - * Setter function argument must not be a rest parameter (issue 1693) - * Limit strict mode directive to functions with a simple parameter list (issue 1677) - * Prohibit any escape sequence in a reserved word (issue 1612) - * Only permit hex digits in hex escape sequence (issue 1619) - * Prohibit labelled class/generator/function declaration (issue 1484) - * Limit function declaration as if statement clause only in non-strict mode (issue 1657) - * Tolerate missing ) in a with and do-while statement (issue 1481) - -2016-12-22: Version 3.1.3 - - * Support binding patterns as rest element (issue 1681) - * Account for different possible arguments of a yield expression (issue 1469) - -2016-11-24: Version 3.1.2 - - * Ensure that import specifier is more restrictive (issue 1615) - * Fix duplicated JSX tokens (issue 1613) - * Scan template literal in a JSX expression container (issue 1622) - * Improve XHTML entity scanning in JSX (issue 1629) - -2016-10-31: Version 3.1.1 - - * Fix assignment expression problem in an export declaration (issue 1596) - * Fix incorrect tokenization of hex digits (issue 1605) - -2016-10-09: Version 3.1.0 - - * Do not implicitly collect comments when comment attachment is specified (issue 1553) - * Fix incorrect handling of duplicated proto shorthand fields (issue 1485) - * Prohibit initialization in some variants of for statements (issue 1309, 1561) - * Fix incorrect parsing of export specifier (issue 1578) - * Fix ESTree compatibility for assignment pattern (issue 1575) - -2016-09-03: Version 3.0.0 - - * Support ES2016 exponentiation expression (issue 1490) - * Support JSX syntax (issue 1467) - * Use the latest Unicode 8.0 (issue 1475) - * Add the support for syntax node delegate (issue 1435) - * Fix ESTree compatibility on meta property (issue 1338) - * Fix ESTree compatibility on default parameter value (issue 1081) - * Fix ESTree compatibility on try handler (issue 1030) - -2016-08-23: Version 2.7.3 - - * Fix tokenizer confusion with a comment (issue 1493, 1516) - -2016-02-02: Version 2.7.2 - - * Fix out-of-bound error location in an invalid string literal (issue 1457) - * Fix shorthand object destructuring defaults in variable declarations (issue 1459) - -2015-12-10: Version 2.7.1 - - * Do not allow trailing comma in a variable declaration (issue 1360) - * Fix assignment to `let` in non-strict mode (issue 1376) - * Fix missing delegate property in YieldExpression (issue 1407) - -2015-10-22: Version 2.7.0 - - * Fix the handling of semicolon in a break statement (issue 1044) - * Run the test suite with major web browsers (issue 1259, 1317) - * Allow `let` as an identifier in non-strict mode (issue 1289) - * Attach orphaned comments as `innerComments` (issue 1328) - * Add the support for token delegator (issue 1332) - -2015-09-01: Version 2.6.0 - - * Properly allow or prohibit `let` in a binding identifier/pattern (issue 1048, 1098) - * Add sourceType field for Program node (issue 1159) - * Ensure that strict mode reserved word binding throw an error (issue 1171) - * Run the test suite with Node.js and IE 11 on Windows (issue 1294) - * Allow binding pattern with no initializer in a for statement (issue 1301) - -2015-07-31: Version 2.5.0 - - * Run the test suite in a browser environment (issue 1004) - * Ensure a comma between imported default binding and named imports (issue 1046) - * Distinguish `yield` as a keyword vs an identifier (issue 1186) - * Support ES6 meta property `new.target` (issue 1203) - * Fix the syntax node for yield with expression (issue 1223) - * Fix the check of duplicated proto in property names (issue 1225) - * Fix ES6 Unicode escape in identifier name (issue 1229) - * Support ES6 IdentifierStart and IdentifierPart (issue 1232) - * Treat await as a reserved word when parsing as a module (issue 1234) - * Recognize identifier characters from Unicode SMP (issue 1244) - * Ensure that export and import can be followed by a comma (issue 1250) - * Fix yield operator precedence (issue 1262) - -2015-07-01: Version 2.4.1 - - * Fix some cases of comment attachment (issue 1071, 1175) - * Fix the handling of destructuring in function arguments (issue 1193) - * Fix invalid ranges in assignment expression (issue 1201) - -2015-06-26: Version 2.4.0 - - * Support ES6 for-of iteration (issue 1047) - * Support ES6 spread arguments (issue 1169) - * Minimize npm payload (issue 1191) - -2015-06-16: Version 2.3.0 - - * Support ES6 generator (issue 1033) - * Improve parsing of regular expressions with `u` flag (issue 1179) - -2015-04-17: Version 2.2.0 - - * Support ES6 import and export declarations (issue 1000) - * Fix line terminator before arrow not recognized as error (issue 1009) - * Support ES6 destructuring (issue 1045) - * Support ES6 template literal (issue 1074) - * Fix the handling of invalid/incomplete string escape sequences (issue 1106) - * Fix ES3 static member access restriction (issue 1120) - * Support for `super` in ES6 class (issue 1147) - -2015-03-09: Version 2.1.0 - - * Support ES6 class (issue 1001) - * Support ES6 rest parameter (issue 1011) - * Expand the location of property getter, setter, and methods (issue 1029) - * Enable TryStatement transition to a single handler (issue 1031) - * Support ES6 computed property name (issue 1037) - * Tolerate unclosed block comment (issue 1041) - * Support ES6 lexical declaration (issue 1065) - -2015-02-06: Version 2.0.0 - - * Support ES6 arrow function (issue 517) - * Support ES6 Unicode code point escape (issue 521) - * Improve the speed and accuracy of comment attachment (issue 522) - * Support ES6 default parameter (issue 519) - * Support ES6 regular expression flags (issue 557) - * Fix scanning of implicit octal literals (issue 565) - * Fix the handling of automatic semicolon insertion (issue 574) - * Support ES6 method definition (issue 620) - * Support ES6 octal integer literal (issue 621) - * Support ES6 binary integer literal (issue 622) - * Support ES6 object literal property value shorthand (issue 624) - -2015-03-03: Version 1.2.5 - - * Fix scanning of implicit octal literals (issue 565) - -2015-02-05: Version 1.2.4 - - * Fix parsing of LeftHandSideExpression in ForInStatement (issue 560) - * Fix the handling of automatic semicolon insertion (issue 574) - -2015-01-18: Version 1.2.3 - - * Fix division by this (issue 616) - -2014-05-18: Version 1.2.2 - - * Fix duplicated tokens when collecting comments (issue 537) - -2014-05-04: Version 1.2.1 - - * Ensure that Program node may still have leading comments (issue 536) - -2014-04-29: Version 1.2.0 - - * Fix semicolon handling for expression statement (issue 462, 533) - * Disallow escaped characters in regular expression flags (issue 503) - * Performance improvement for location tracking (issue 520) - * Improve the speed of comment attachment (issue 522) - -2014-03-26: Version 1.1.1 - - * Fix token handling of forward slash after an array literal (issue 512) - -2014-03-23: Version 1.1.0 - - * Optionally attach comments to the owning syntax nodes (issue 197) - * Simplify binary parsing with stack-based shift reduce (issue 352) - * Always include the raw source of literals (issue 376) - * Add optional input source information (issue 386) - * Tokenizer API for pure lexical scanning (issue 398) - * Improve the web site and its online demos (issue 337, 400, 404) - * Performance improvement for location tracking (issue 417, 424) - * Support HTML comment syntax (issue 451) - * Drop support for legacy browsers (issue 474) - -2013-08-27: Version 1.0.4 - - * Minimize the payload for packages (issue 362) - * Fix missing cases on an empty switch statement (issue 436) - * Support escaped ] in regexp literal character classes (issue 442) - * Tolerate invalid left-hand side expression (issue 130) - -2013-05-17: Version 1.0.3 - - * Variable declaration needs at least one declarator (issue 391) - * Fix benchmark's variance unit conversion (issue 397) - * IE < 9: \v should be treated as vertical tab (issue 405) - * Unary expressions should always have prefix: true (issue 418) - * Catch clause should only accept an identifier (issue 423) - * Tolerate setters without parameter (issue 426) - -2012-11-02: Version 1.0.2 - - Improvement: - - * Fix esvalidate JUnit output upon a syntax error (issue 374) - -2012-10-28: Version 1.0.1 - - Improvements: - - * esvalidate understands shebang in a Unix shell script (issue 361) - * esvalidate treats fatal parsing failure as an error (issue 361) - * Reduce Node.js package via .npmignore (issue 362) - -2012-10-22: Version 1.0.0 - - Initial release. diff --git a/build/node_modules/esprima/LICENSE.BSD b/build/node_modules/esprima/LICENSE.BSD deleted file mode 100644 index 7a55160f..00000000 --- a/build/node_modules/esprima/LICENSE.BSD +++ /dev/null @@ -1,21 +0,0 @@ -Copyright JS Foundation and other contributors, https://js.foundation/ - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/esprima/README.md b/build/node_modules/esprima/README.md deleted file mode 100644 index 8fb25e6c..00000000 --- a/build/node_modules/esprima/README.md +++ /dev/null @@ -1,46 +0,0 @@ -[![NPM version](https://img.shields.io/npm/v/esprima.svg)](https://www.npmjs.com/package/esprima) -[![npm download](https://img.shields.io/npm/dm/esprima.svg)](https://www.npmjs.com/package/esprima) -[![Build Status](https://img.shields.io/travis/jquery/esprima/master.svg)](https://travis-ci.org/jquery/esprima) -[![Coverage Status](https://img.shields.io/codecov/c/github/jquery/esprima/master.svg)](https://codecov.io/github/jquery/esprima) - -**Esprima** ([esprima.org](http://esprima.org), BSD license) is a high performance, -standard-compliant [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) -parser written in ECMAScript (also popularly known as -[JavaScript](https://en.wikipedia.org/wiki/JavaScript)). -Esprima is created and maintained by [Ariya Hidayat](https://twitter.com/ariyahidayat), -with the help of [many contributors](https://github.com/jquery/esprima/contributors). - -### Features - -- Full support for ECMAScript 2017 ([ECMA-262 8th Edition](http://www.ecma-international.org/publications/standards/Ecma-262.htm)) -- Sensible [syntax tree format](https://github.com/estree/estree/blob/master/es5.md) as standardized by [ESTree project](https://github.com/estree/estree) -- Experimental support for [JSX](https://facebook.github.io/jsx/), a syntax extension for [React](https://facebook.github.io/react/) -- Optional tracking of syntax node location (index-based and line-column) -- [Heavily tested](http://esprima.org/test/ci.html) (~1500 [unit tests](https://github.com/jquery/esprima/tree/master/test/fixtures) with [full code coverage](https://codecov.io/github/jquery/esprima)) - -### API - -Esprima can be used to perform [lexical analysis](https://en.wikipedia.org/wiki/Lexical_analysis) (tokenization) or [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program. - -A simple example on Node.js REPL: - -```javascript -> var esprima = require('esprima'); -> var program = 'const answer = 42'; - -> esprima.tokenize(program); -[ { type: 'Keyword', value: 'const' }, - { type: 'Identifier', value: 'answer' }, - { type: 'Punctuator', value: '=' }, - { type: 'Numeric', value: '42' } ] - -> esprima.parseScript(program); -{ type: 'Program', - body: - [ { type: 'VariableDeclaration', - declarations: [Object], - kind: 'const' } ], - sourceType: 'script' } -``` - -For more information, please read the [complete documentation](http://esprima.org/doc). \ No newline at end of file diff --git a/build/node_modules/esprima/package.json b/build/node_modules/esprima/package.json deleted file mode 100644 index 4148b8ce..00000000 --- a/build/node_modules/esprima/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "name": "esprima", - "description": "ECMAScript parsing infrastructure for multipurpose analysis", - "homepage": "http://esprima.org", - "main": "dist/esprima.js", - "bin": { - "esparse": "./bin/esparse.js", - "esvalidate": "./bin/esvalidate.js" - }, - "version": "4.0.1", - "files": [ - "bin", - "dist/esprima.js" - ], - "engines": { - "node": ">=4" - }, - "author": { - "name": "Ariya Hidayat", - "email": "ariya.hidayat@gmail.com" - }, - "maintainers": [ - { - "name": "Ariya Hidayat", - "email": "ariya.hidayat@gmail.com", - "web": "http://ariya.ofilabs.com" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/jquery/esprima.git" - }, - "bugs": { - "url": "https://github.com/jquery/esprima/issues" - }, - "license": "BSD-2-Clause", - "devDependencies": { - "codecov.io": "~0.1.6", - "escomplex-js": "1.2.0", - "everything.js": "~1.0.3", - "glob": "~7.1.0", - "istanbul": "~0.4.0", - "json-diff": "~0.3.1", - "karma": "~1.3.0", - "karma-chrome-launcher": "~2.0.0", - "karma-detect-browsers": "~2.2.3", - "karma-edge-launcher": "~0.2.0", - "karma-firefox-launcher": "~1.0.0", - "karma-ie-launcher": "~1.0.0", - "karma-mocha": "~1.3.0", - "karma-safari-launcher": "~1.0.0", - "karma-safaritechpreview-launcher": "~0.0.4", - "karma-sauce-launcher": "~1.1.0", - "lodash": "~3.10.1", - "mocha": "~3.2.0", - "node-tick-processor": "~0.0.2", - "regenerate": "~1.3.2", - "temp": "~0.8.3", - "tslint": "~5.1.0", - "typescript": "~2.3.2", - "typescript-formatter": "~5.1.3", - "unicode-8.0.0": "~0.7.0", - "webpack": "~1.14.0" - }, - "keywords": [ - "ast", - "ecmascript", - "esprima", - "javascript", - "parser", - "syntax" - ], - "scripts": { - "check-version": "node test/check-version.js", - "tslint": "tslint src/*.ts", - "code-style": "tsfmt --verify src/*.ts && tsfmt --verify test/*.js", - "format-code": "tsfmt -r src/*.ts && tsfmt -r test/*.js", - "complexity": "node test/check-complexity.js", - "static-analysis": "npm run check-version && npm run tslint && npm run code-style && npm run complexity", - "hostile-env-tests": "node test/hostile-environment-tests.js", - "unit-tests": "node test/unit-tests.js", - "api-tests": "mocha -R dot test/api-tests.js", - "grammar-tests": "node test/grammar-tests.js", - "regression-tests": "node test/regression-tests.js", - "all-tests": "npm run verify-line-ending && npm run generate-fixtures && npm run unit-tests && npm run api-tests && npm run grammar-tests && npm run regression-tests && npm run hostile-env-tests", - "verify-line-ending": "node test/verify-line-ending.js", - "generate-fixtures": "node tools/generate-fixtures.js", - "browser-tests": "npm run compile && npm run generate-fixtures && cd test && karma start --single-run", - "saucelabs-evergreen": "cd test && karma start saucelabs-evergreen.conf.js", - "saucelabs-safari": "cd test && karma start saucelabs-safari.conf.js", - "saucelabs-ie": "cd test && karma start saucelabs-ie.conf.js", - "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari", - "analyze-coverage": "istanbul cover test/unit-tests.js", - "check-coverage": "istanbul check-coverage --statement 100 --branch 100 --function 100", - "dynamic-analysis": "npm run analyze-coverage && npm run check-coverage", - "compile": "tsc -p src/ && webpack && node tools/fixupbundle.js", - "test": "npm run compile && npm run all-tests && npm run static-analysis && npm run dynamic-analysis", - "prepublish": "npm run compile", - "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor", - "benchmark-parser": "node -expose_gc test/benchmark-parser.js", - "benchmark-tokenizer": "node --expose_gc test/benchmark-tokenizer.js", - "benchmark": "npm run benchmark-parser && npm run benchmark-tokenizer", - "codecov": "istanbul report cobertura && codecov < ./coverage/cobertura-coverage.xml", - "downstream": "node test/downstream.js", - "travis": "npm test", - "circleci": "npm test && npm run codecov && npm run downstream", - "appveyor": "npm run compile && npm run all-tests && npm run browser-tests", - "droneio": "npm run compile && npm run all-tests && npm run saucelabs", - "generate-regex": "node tools/generate-identifier-regex.js", - "generate-xhtml-entities": "node tools/generate-xhtml-entities.js" - } -} diff --git a/build/node_modules/esquery/README.md b/build/node_modules/esquery/README.md deleted file mode 100644 index 8264efcb..00000000 --- a/build/node_modules/esquery/README.md +++ /dev/null @@ -1,27 +0,0 @@ -ESQuery is a library for querying the AST output by Esprima for patterns of syntax using a CSS style selector system. Check out the demo: - -[demo](https://estools.github.io/esquery/) - -The following selectors are supported: -* AST node type: `ForStatement` -* [wildcard](http://dev.w3.org/csswg/selectors4/#universal-selector): `*` -* [attribute existence](http://dev.w3.org/csswg/selectors4/#attribute-selectors): `[attr]` -* [attribute value](http://dev.w3.org/csswg/selectors4/#attribute-selectors): `[attr="foo"]` or `[attr=123]` -* attribute regex: `[attr=/foo.*/]` or (with flags) `[attr=/foo.*/is]` -* attribute conditions: `[attr!="foo"]`, `[attr>2]`, `[attr<3]`, `[attr>=2]`, or `[attr<=3]` -* nested attribute: `[attr.level2="foo"]` -* field: `FunctionDeclaration > Identifier.id` -* [First](http://dev.w3.org/csswg/selectors4/#the-first-child-pseudo) or [last](http://dev.w3.org/csswg/selectors4/#the-last-child-pseudo) child: `:first-child` or `:last-child` -* [nth-child](http://dev.w3.org/csswg/selectors4/#the-nth-child-pseudo) (no ax+b support): `:nth-child(2)` -* [nth-last-child](http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo) (no ax+b support): `:nth-last-child(1)` -* [descendant](http://dev.w3.org/csswg/selectors4/#descendant-combinators): `ancestor descendant` -* [child](http://dev.w3.org/csswg/selectors4/#child-combinators): `parent > child` -* [following sibling](http://dev.w3.org/csswg/selectors4/#general-sibling-combinators): `node ~ sibling` -* [adjacent sibling](http://dev.w3.org/csswg/selectors4/#adjacent-sibling-combinators): `node + adjacent` -* [negation](http://dev.w3.org/csswg/selectors4/#negation-pseudo): `:not(ForStatement)` -* [has](https://drafts.csswg.org/selectors-4/#has-pseudo): `:has(ForStatement)` -* [matches-any](http://dev.w3.org/csswg/selectors4/#matches): `:matches([attr] > :first-child, :last-child)` -* [subject indicator](http://dev.w3.org/csswg/selectors4/#subject): `!IfStatement > [name="foo"]` -* class of AST node: `:statement`, `:expression`, `:declaration`, `:function`, or `:pattern` - -[![Build Status](https://travis-ci.org/estools/esquery.png?branch=master)](https://travis-ci.org/estools/esquery) diff --git a/build/node_modules/esquery/license.txt b/build/node_modules/esquery/license.txt deleted file mode 100644 index 52f915e2..00000000 --- a/build/node_modules/esquery/license.txt +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2013, Joel Feenstra -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the ESQuery nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL JOEL FEENSTRA BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/esquery/package.json b/build/node_modules/esquery/package.json deleted file mode 100644 index a1944fe6..00000000 --- a/build/node_modules/esquery/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "esquery", - "version": "1.5.0", - "author": "Joel Feenstra ", - "contributors": [], - "description": "A query library for ECMAScript AST using a CSS selector like query language.", - "main": "dist/esquery.min.js", - "module": "dist/esquery.esm.min.js", - "files": [ - "dist/*.js", - "dist/*.map", - "parser.js", - "license.txt", - "README.md" - ], - "nyc": { - "branches": 100, - "lines": 100, - "functions": 100, - "statements": 100, - "reporter": [ - "html", - "text" - ], - "exclude": [ - "parser.js", - "dist", - "tests" - ] - }, - "scripts": { - "prepublishOnly": "npm run build && npm test", - "build:parser": "rm parser.js && pegjs --cache --format umd -o \"parser.js\" \"grammar.pegjs\"", - "build:browser": "rollup -c", - "build": "npm run build:parser && npm run build:browser", - "mocha": "mocha --require chai/register-assert --require @babel/register tests", - "test": "nyc npm run mocha && npm run lint", - "test:ci": "npm run mocha", - "lint": "eslint ." - }, - "repository": { - "type": "git", - "url": "https://github.com/estools/esquery.git" - }, - "bugs": "https://github.com/estools/esquery/issues", - "homepage": "https://github.com/estools/esquery/", - "keywords": [ - "ast", - "ecmascript", - "javascript", - "query" - ], - "devDependencies": { - "@babel/core": "^7.9.0", - "@babel/preset-env": "^7.9.5", - "@babel/register": "^7.9.0", - "@rollup/plugin-commonjs": "^11.1.0", - "@rollup/plugin-json": "^4.0.2", - "@rollup/plugin-node-resolve": "^7.1.3", - "babel-plugin-transform-es2017-object-entries": "0.0.5", - "chai": "4.2.0", - "eslint": "^6.8.0", - "esprima": "~4.0.1", - "mocha": "7.1.1", - "nyc": "^15.0.1", - "pegjs": "~0.10.0", - "rollup": "^1.32.1", - "rollup-plugin-babel": "^4.4.0", - "rollup-plugin-terser": "^5.3.0" - }, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10" - }, - "dependencies": { - "estraverse": "^5.1.0" - } -} diff --git a/build/node_modules/esquery/parser.js b/build/node_modules/esquery/parser.js deleted file mode 100644 index 640f84c9..00000000 --- a/build/node_modules/esquery/parser.js +++ /dev/null @@ -1,2550 +0,0 @@ -/* - * Generated by PEG.js 0.10.0. - * - * http://pegjs.org/ - */ -(function(root, factory) { - if (typeof define === "function" && define.amd) { - define([], factory); - } else if (typeof module === "object" && module.exports) { - module.exports = factory(); - } -})(this, function() { - "use strict"; - - function peg$subclass(child, parent) { - function ctor() { this.constructor = child; } - ctor.prototype = parent.prototype; - child.prototype = new ctor(); - } - - function peg$SyntaxError(message, expected, found, location) { - this.message = message; - this.expected = expected; - this.found = found; - this.location = location; - this.name = "SyntaxError"; - - if (typeof Error.captureStackTrace === "function") { - Error.captureStackTrace(this, peg$SyntaxError); - } - } - - peg$subclass(peg$SyntaxError, Error); - - peg$SyntaxError.buildMessage = function(expected, found) { - var DESCRIBE_EXPECTATION_FNS = { - literal: function(expectation) { - return "\"" + literalEscape(expectation.text) + "\""; - }, - - "class": function(expectation) { - var escapedParts = "", - i; - - for (i = 0; i < expectation.parts.length; i++) { - escapedParts += expectation.parts[i] instanceof Array - ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) - : classEscape(expectation.parts[i]); - } - - return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; - }, - - any: function(expectation) { - return "any character"; - }, - - end: function(expectation) { - return "end of input"; - }, - - other: function(expectation) { - return expectation.description; - } - }; - - function hex(ch) { - return ch.charCodeAt(0).toString(16).toUpperCase(); - } - - function literalEscape(s) { - return s - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\0/g, '\\0') - .replace(/\t/g, '\\t') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) - .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); - } - - function classEscape(s) { - return s - .replace(/\\/g, '\\\\') - .replace(/\]/g, '\\]') - .replace(/\^/g, '\\^') - .replace(/-/g, '\\-') - .replace(/\0/g, '\\0') - .replace(/\t/g, '\\t') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) - .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); - } - - function describeExpectation(expectation) { - return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); - } - - function describeExpected(expected) { - var descriptions = new Array(expected.length), - i, j; - - for (i = 0; i < expected.length; i++) { - descriptions[i] = describeExpectation(expected[i]); - } - - descriptions.sort(); - - if (descriptions.length > 0) { - for (i = 1, j = 1; i < descriptions.length; i++) { - if (descriptions[i - 1] !== descriptions[i]) { - descriptions[j] = descriptions[i]; - j++; - } - } - descriptions.length = j; - } - - switch (descriptions.length) { - case 1: - return descriptions[0]; - - case 2: - return descriptions[0] + " or " + descriptions[1]; - - default: - return descriptions.slice(0, -1).join(", ") - + ", or " - + descriptions[descriptions.length - 1]; - } - } - - function describeFound(found) { - return found ? "\"" + literalEscape(found) + "\"" : "end of input"; - } - - return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; - }; - - function peg$parse(input, options) { - options = options !== void 0 ? options : {}; - - var peg$FAILED = {}, - - peg$startRuleFunctions = { start: peg$parsestart }, - peg$startRuleFunction = peg$parsestart, - - peg$c0 = function(ss) { - return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss }; - }, - peg$c1 = function() { return void 0; }, - peg$c2 = " ", - peg$c3 = peg$literalExpectation(" ", false), - peg$c4 = /^[^ [\],():#!=><~+.]/, - peg$c5 = peg$classExpectation([" ", "[", "]", ",", "(", ")", ":", "#", "!", "=", ">", "<", "~", "+", "."], true, false), - peg$c6 = function(i) { return i.join(''); }, - peg$c7 = ">", - peg$c8 = peg$literalExpectation(">", false), - peg$c9 = function() { return 'child'; }, - peg$c10 = "~", - peg$c11 = peg$literalExpectation("~", false), - peg$c12 = function() { return 'sibling'; }, - peg$c13 = "+", - peg$c14 = peg$literalExpectation("+", false), - peg$c15 = function() { return 'adjacent'; }, - peg$c16 = function() { return 'descendant'; }, - peg$c17 = ",", - peg$c18 = peg$literalExpectation(",", false), - peg$c19 = function(s, ss) { - return [s].concat(ss.map(function (s) { return s[3]; })); - }, - peg$c20 = function(a, ops) { - return ops.reduce(function (memo, rhs) { - return { type: rhs[0], left: memo, right: rhs[1] }; - }, a); - }, - peg$c21 = "!", - peg$c22 = peg$literalExpectation("!", false), - peg$c23 = function(subject, as) { - const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as }; - if(subject) b.subject = true; - return b; - }, - peg$c24 = "*", - peg$c25 = peg$literalExpectation("*", false), - peg$c26 = function(a) { return { type: 'wildcard', value: a }; }, - peg$c27 = "#", - peg$c28 = peg$literalExpectation("#", false), - peg$c29 = function(i) { return { type: 'identifier', value: i }; }, - peg$c30 = "[", - peg$c31 = peg$literalExpectation("[", false), - peg$c32 = "]", - peg$c33 = peg$literalExpectation("]", false), - peg$c34 = function(v) { return v; }, - peg$c35 = /^[>", "<", "!"], false, false), - peg$c37 = "=", - peg$c38 = peg$literalExpectation("=", false), - peg$c39 = function(a) { return (a || '') + '='; }, - peg$c40 = /^[><]/, - peg$c41 = peg$classExpectation([">", "<"], false, false), - peg$c42 = ".", - peg$c43 = peg$literalExpectation(".", false), - peg$c44 = function(a, as) { - return [].concat.apply([a], as).join(''); - }, - peg$c45 = function(name, op, value) { - return { type: 'attribute', name: name, operator: op, value: value }; - }, - peg$c46 = function(name) { return { type: 'attribute', name: name }; }, - peg$c47 = "\"", - peg$c48 = peg$literalExpectation("\"", false), - peg$c49 = /^[^\\"]/, - peg$c50 = peg$classExpectation(["\\", "\""], true, false), - peg$c51 = "\\", - peg$c52 = peg$literalExpectation("\\", false), - peg$c53 = peg$anyExpectation(), - peg$c54 = function(a, b) { return a + b; }, - peg$c55 = function(d) { - return { type: 'literal', value: strUnescape(d.join('')) }; - }, - peg$c56 = "'", - peg$c57 = peg$literalExpectation("'", false), - peg$c58 = /^[^\\']/, - peg$c59 = peg$classExpectation(["\\", "'"], true, false), - peg$c60 = /^[0-9]/, - peg$c61 = peg$classExpectation([["0", "9"]], false, false), - peg$c62 = function(a, b) { - // Can use `a.flat().join('')` once supported - const leadingDecimals = a ? [].concat.apply([], a).join('') : ''; - return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) }; - }, - peg$c63 = function(i) { return { type: 'literal', value: i }; }, - peg$c64 = "type(", - peg$c65 = peg$literalExpectation("type(", false), - peg$c66 = /^[^ )]/, - peg$c67 = peg$classExpectation([" ", ")"], true, false), - peg$c68 = ")", - peg$c69 = peg$literalExpectation(")", false), - peg$c70 = function(t) { return { type: 'type', value: t.join('') }; }, - peg$c71 = /^[imsu]/, - peg$c72 = peg$classExpectation(["i", "m", "s", "u"], false, false), - peg$c73 = "/", - peg$c74 = peg$literalExpectation("/", false), - peg$c75 = /^[^\/]/, - peg$c76 = peg$classExpectation(["/"], true, false), - peg$c77 = function(d, flgs) { return { - type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') }; - }, - peg$c78 = function(i, is) { - return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)}; - }, - peg$c79 = ":not(", - peg$c80 = peg$literalExpectation(":not(", false), - peg$c81 = function(ss) { return { type: 'not', selectors: ss }; }, - peg$c82 = ":matches(", - peg$c83 = peg$literalExpectation(":matches(", false), - peg$c84 = function(ss) { return { type: 'matches', selectors: ss }; }, - peg$c85 = ":has(", - peg$c86 = peg$literalExpectation(":has(", false), - peg$c87 = function(ss) { return { type: 'has', selectors: ss }; }, - peg$c88 = ":first-child", - peg$c89 = peg$literalExpectation(":first-child", false), - peg$c90 = function() { return nth(1); }, - peg$c91 = ":last-child", - peg$c92 = peg$literalExpectation(":last-child", false), - peg$c93 = function() { return nthLast(1); }, - peg$c94 = ":nth-child(", - peg$c95 = peg$literalExpectation(":nth-child(", false), - peg$c96 = function(n) { return nth(parseInt(n.join(''), 10)); }, - peg$c97 = ":nth-last-child(", - peg$c98 = peg$literalExpectation(":nth-last-child(", false), - peg$c99 = function(n) { return nthLast(parseInt(n.join(''), 10)); }, - peg$c100 = ":", - peg$c101 = peg$literalExpectation(":", false), - peg$c102 = function(c) { - return { type: 'class', name: c }; - }, - - peg$currPos = 0, - peg$savedPos = 0, - peg$posDetailsCache = [{ line: 1, column: 1 }], - peg$maxFailPos = 0, - peg$maxFailExpected = [], - peg$silentFails = 0, - - peg$resultsCache = {}, - - peg$result; - - if ("startRule" in options) { - if (!(options.startRule in peg$startRuleFunctions)) { - throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); - } - - peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; - } - - function text() { - return input.substring(peg$savedPos, peg$currPos); - } - - function location() { - return peg$computeLocation(peg$savedPos, peg$currPos); - } - - function expected(description, location) { - location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) - - throw peg$buildStructuredError( - [peg$otherExpectation(description)], - input.substring(peg$savedPos, peg$currPos), - location - ); - } - - function error(message, location) { - location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) - - throw peg$buildSimpleError(message, location); - } - - function peg$literalExpectation(text, ignoreCase) { - return { type: "literal", text: text, ignoreCase: ignoreCase }; - } - - function peg$classExpectation(parts, inverted, ignoreCase) { - return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; - } - - function peg$anyExpectation() { - return { type: "any" }; - } - - function peg$endExpectation() { - return { type: "end" }; - } - - function peg$otherExpectation(description) { - return { type: "other", description: description }; - } - - function peg$computePosDetails(pos) { - var details = peg$posDetailsCache[pos], p; - - if (details) { - return details; - } else { - p = pos - 1; - while (!peg$posDetailsCache[p]) { - p--; - } - - details = peg$posDetailsCache[p]; - details = { - line: details.line, - column: details.column - }; - - while (p < pos) { - if (input.charCodeAt(p) === 10) { - details.line++; - details.column = 1; - } else { - details.column++; - } - - p++; - } - - peg$posDetailsCache[pos] = details; - return details; - } - } - - function peg$computeLocation(startPos, endPos) { - var startPosDetails = peg$computePosDetails(startPos), - endPosDetails = peg$computePosDetails(endPos); - - return { - start: { - offset: startPos, - line: startPosDetails.line, - column: startPosDetails.column - }, - end: { - offset: endPos, - line: endPosDetails.line, - column: endPosDetails.column - } - }; - } - - function peg$fail(expected) { - if (peg$currPos < peg$maxFailPos) { return; } - - if (peg$currPos > peg$maxFailPos) { - peg$maxFailPos = peg$currPos; - peg$maxFailExpected = []; - } - - peg$maxFailExpected.push(expected); - } - - function peg$buildSimpleError(message, location) { - return new peg$SyntaxError(message, null, null, location); - } - - function peg$buildStructuredError(expected, found, location) { - return new peg$SyntaxError( - peg$SyntaxError.buildMessage(expected, found), - expected, - found, - location - ); - } - - function peg$parsestart() { - var s0, s1, s2, s3; - - var key = peg$currPos * 30 + 0, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parse_(); - if (s1 !== peg$FAILED) { - s2 = peg$parseselectors(); - if (s2 !== peg$FAILED) { - s3 = peg$parse_(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c0(s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - s1 = peg$parse_(); - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c1(); - } - s0 = s1; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parse_() { - var s0, s1; - - var key = peg$currPos * 30 + 1, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = []; - if (input.charCodeAt(peg$currPos) === 32) { - s1 = peg$c2; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c3); } - } - while (s1 !== peg$FAILED) { - s0.push(s1); - if (input.charCodeAt(peg$currPos) === 32) { - s1 = peg$c2; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c3); } - } - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseidentifierName() { - var s0, s1, s2; - - var key = peg$currPos * 30 + 2, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = []; - if (peg$c4.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c5); } - } - if (s2 !== peg$FAILED) { - while (s2 !== peg$FAILED) { - s1.push(s2); - if (peg$c4.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c5); } - } - } - } else { - s1 = peg$FAILED; - } - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c6(s1); - } - s0 = s1; - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsebinaryOp() { - var s0, s1, s2, s3; - - var key = peg$currPos * 30 + 3, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parse_(); - if (s1 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 62) { - s2 = peg$c7; - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c8); } - } - if (s2 !== peg$FAILED) { - s3 = peg$parse_(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c9(); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - s1 = peg$parse_(); - if (s1 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 126) { - s2 = peg$c10; - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c11); } - } - if (s2 !== peg$FAILED) { - s3 = peg$parse_(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c12(); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - s1 = peg$parse_(); - if (s1 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 43) { - s2 = peg$c13; - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c14); } - } - if (s2 !== peg$FAILED) { - s3 = peg$parse_(); - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c15(); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 32) { - s1 = peg$c2; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c3); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c16(); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } - } - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseselectors() { - var s0, s1, s2, s3, s4, s5, s6, s7; - - var key = peg$currPos * 30 + 4, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parseselector(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$currPos; - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 44) { - s5 = peg$c17; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c18); } - } - if (s5 !== peg$FAILED) { - s6 = peg$parse_(); - if (s6 !== peg$FAILED) { - s7 = peg$parseselector(); - if (s7 !== peg$FAILED) { - s4 = [s4, s5, s6, s7]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$currPos; - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 44) { - s5 = peg$c17; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c18); } - } - if (s5 !== peg$FAILED) { - s6 = peg$parse_(); - if (s6 !== peg$FAILED) { - s7 = peg$parseselector(); - if (s7 !== peg$FAILED) { - s4 = [s4, s5, s6, s7]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c19(s1, s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseselector() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 5, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parsesequence(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$currPos; - s4 = peg$parsebinaryOp(); - if (s4 !== peg$FAILED) { - s5 = peg$parsesequence(); - if (s5 !== peg$FAILED) { - s4 = [s4, s5]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$currPos; - s4 = peg$parsebinaryOp(); - if (s4 !== peg$FAILED) { - s5 = peg$parsesequence(); - if (s5 !== peg$FAILED) { - s4 = [s4, s5]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c20(s1, s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsesequence() { - var s0, s1, s2, s3; - - var key = peg$currPos * 30 + 6, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 33) { - s1 = peg$c21; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c22); } - } - if (s1 === peg$FAILED) { - s1 = null; - } - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$parseatom(); - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$parseatom(); - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c23(s1, s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseatom() { - var s0; - - var key = peg$currPos * 30 + 7, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$parsewildcard(); - if (s0 === peg$FAILED) { - s0 = peg$parseidentifier(); - if (s0 === peg$FAILED) { - s0 = peg$parseattr(); - if (s0 === peg$FAILED) { - s0 = peg$parsefield(); - if (s0 === peg$FAILED) { - s0 = peg$parsenegation(); - if (s0 === peg$FAILED) { - s0 = peg$parsematches(); - if (s0 === peg$FAILED) { - s0 = peg$parsehas(); - if (s0 === peg$FAILED) { - s0 = peg$parsefirstChild(); - if (s0 === peg$FAILED) { - s0 = peg$parselastChild(); - if (s0 === peg$FAILED) { - s0 = peg$parsenthChild(); - if (s0 === peg$FAILED) { - s0 = peg$parsenthLastChild(); - if (s0 === peg$FAILED) { - s0 = peg$parseclass(); - } - } - } - } - } - } - } - } - } - } - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsewildcard() { - var s0, s1; - - var key = peg$currPos * 30 + 8, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 42) { - s1 = peg$c24; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c25); } - } - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c26(s1); - } - s0 = s1; - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseidentifier() { - var s0, s1, s2; - - var key = peg$currPos * 30 + 9, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 35) { - s1 = peg$c27; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c28); } - } - if (s1 === peg$FAILED) { - s1 = null; - } - if (s1 !== peg$FAILED) { - s2 = peg$parseidentifierName(); - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c29(s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseattr() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 10, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 91) { - s1 = peg$c30; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c31); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = peg$parseattrValue(); - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 93) { - s5 = peg$c32; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c33); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c34(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseattrOps() { - var s0, s1, s2; - - var key = peg$currPos * 30 + 11, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (peg$c35.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c36); } - } - if (s1 === peg$FAILED) { - s1 = null; - } - if (s1 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 61) { - s2 = peg$c37; - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c38); } - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c39(s1); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - if (peg$c40.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c41); } - } - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseattrEqOps() { - var s0, s1, s2; - - var key = peg$currPos * 30 + 12, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 33) { - s1 = peg$c21; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c22); } - } - if (s1 === peg$FAILED) { - s1 = null; - } - if (s1 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 61) { - s2 = peg$c37; - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c38); } - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c39(s1); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseattrName() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 13, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parseidentifierName(); - if (s1 !== peg$FAILED) { - s2 = []; - s3 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 46) { - s4 = peg$c42; - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c43); } - } - if (s4 !== peg$FAILED) { - s5 = peg$parseidentifierName(); - if (s5 !== peg$FAILED) { - s4 = [s4, s5]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - while (s3 !== peg$FAILED) { - s2.push(s3); - s3 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 46) { - s4 = peg$c42; - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c43); } - } - if (s4 !== peg$FAILED) { - s5 = peg$parseidentifierName(); - if (s5 !== peg$FAILED) { - s4 = [s4, s5]; - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c44(s1, s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseattrValue() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 14, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parseattrName(); - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = peg$parseattrEqOps(); - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - s5 = peg$parsetype(); - if (s5 === peg$FAILED) { - s5 = peg$parseregex(); - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c45(s1, s3, s5); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - s1 = peg$parseattrName(); - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = peg$parseattrOps(); - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - s5 = peg$parsestring(); - if (s5 === peg$FAILED) { - s5 = peg$parsenumber(); - if (s5 === peg$FAILED) { - s5 = peg$parsepath(); - } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c45(s1, s3, s5); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - s1 = peg$parseattrName(); - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c46(s1); - } - s0 = s1; - } - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsestring() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 15, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 34) { - s1 = peg$c47; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c48); } - } - if (s1 !== peg$FAILED) { - s2 = []; - if (peg$c49.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c50); } - } - if (s3 === peg$FAILED) { - s3 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 92) { - s4 = peg$c51; - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c52); } - } - if (s4 !== peg$FAILED) { - if (input.length > peg$currPos) { - s5 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c53); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s3; - s4 = peg$c54(s4, s5); - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - while (s3 !== peg$FAILED) { - s2.push(s3); - if (peg$c49.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c50); } - } - if (s3 === peg$FAILED) { - s3 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 92) { - s4 = peg$c51; - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c52); } - } - if (s4 !== peg$FAILED) { - if (input.length > peg$currPos) { - s5 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c53); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s3; - s4 = peg$c54(s4, s5); - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - } - if (s2 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 34) { - s3 = peg$c47; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c48); } - } - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c55(s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - if (s0 === peg$FAILED) { - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 39) { - s1 = peg$c56; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c57); } - } - if (s1 !== peg$FAILED) { - s2 = []; - if (peg$c58.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c59); } - } - if (s3 === peg$FAILED) { - s3 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 92) { - s4 = peg$c51; - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c52); } - } - if (s4 !== peg$FAILED) { - if (input.length > peg$currPos) { - s5 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c53); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s3; - s4 = peg$c54(s4, s5); - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - while (s3 !== peg$FAILED) { - s2.push(s3); - if (peg$c58.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c59); } - } - if (s3 === peg$FAILED) { - s3 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 92) { - s4 = peg$c51; - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c52); } - } - if (s4 !== peg$FAILED) { - if (input.length > peg$currPos) { - s5 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c53); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s3; - s4 = peg$c54(s4, s5); - s3 = s4; - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } else { - peg$currPos = s3; - s3 = peg$FAILED; - } - } - } - if (s2 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 39) { - s3 = peg$c56; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c57); } - } - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c55(s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsenumber() { - var s0, s1, s2, s3; - - var key = peg$currPos * 30 + 16, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$currPos; - s2 = []; - if (peg$c60.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - while (s3 !== peg$FAILED) { - s2.push(s3); - if (peg$c60.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - } - if (s2 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 46) { - s3 = peg$c42; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c43); } - } - if (s3 !== peg$FAILED) { - s2 = [s2, s3]; - s1 = s2; - } else { - peg$currPos = s1; - s1 = peg$FAILED; - } - } else { - peg$currPos = s1; - s1 = peg$FAILED; - } - if (s1 === peg$FAILED) { - s1 = null; - } - if (s1 !== peg$FAILED) { - s2 = []; - if (peg$c60.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - if (peg$c60.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c62(s1, s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsepath() { - var s0, s1; - - var key = peg$currPos * 30 + 17, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - s1 = peg$parseidentifierName(); - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c63(s1); - } - s0 = s1; - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsetype() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 18, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c64) { - s1 = peg$c64; - peg$currPos += 5; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c65); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = []; - if (peg$c66.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c67); } - } - if (s4 !== peg$FAILED) { - while (s4 !== peg$FAILED) { - s3.push(s4); - if (peg$c66.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c67); } - } - } - } else { - s3 = peg$FAILED; - } - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 41) { - s5 = peg$c68; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c69); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c70(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseflags() { - var s0, s1; - - var key = peg$currPos * 30 + 19, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = []; - if (peg$c71.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c72); } - } - if (s1 !== peg$FAILED) { - while (s1 !== peg$FAILED) { - s0.push(s1); - if (peg$c71.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c72); } - } - } - } else { - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseregex() { - var s0, s1, s2, s3, s4; - - var key = peg$currPos * 30 + 20, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 47) { - s1 = peg$c73; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c74); } - } - if (s1 !== peg$FAILED) { - s2 = []; - if (peg$c75.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c76); } - } - if (s3 !== peg$FAILED) { - while (s3 !== peg$FAILED) { - s2.push(s3); - if (peg$c75.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c76); } - } - } - } else { - s2 = peg$FAILED; - } - if (s2 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 47) { - s3 = peg$c73; - peg$currPos++; - } else { - s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c74); } - } - if (s3 !== peg$FAILED) { - s4 = peg$parseflags(); - if (s4 === peg$FAILED) { - s4 = null; - } - if (s4 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c77(s2, s4); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsefield() { - var s0, s1, s2, s3, s4, s5, s6; - - var key = peg$currPos * 30 + 21, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 46) { - s1 = peg$c42; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c43); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parseidentifierName(); - if (s2 !== peg$FAILED) { - s3 = []; - s4 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 46) { - s5 = peg$c42; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c43); } - } - if (s5 !== peg$FAILED) { - s6 = peg$parseidentifierName(); - if (s6 !== peg$FAILED) { - s5 = [s5, s6]; - s4 = s5; - } else { - peg$currPos = s4; - s4 = peg$FAILED; - } - } else { - peg$currPos = s4; - s4 = peg$FAILED; - } - while (s4 !== peg$FAILED) { - s3.push(s4); - s4 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 46) { - s5 = peg$c42; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c43); } - } - if (s5 !== peg$FAILED) { - s6 = peg$parseidentifierName(); - if (s6 !== peg$FAILED) { - s5 = [s5, s6]; - s4 = s5; - } else { - peg$currPos = s4; - s4 = peg$FAILED; - } - } else { - peg$currPos = s4; - s4 = peg$FAILED; - } - } - if (s3 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c78(s2, s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsenegation() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 22, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c79) { - s1 = peg$c79; - peg$currPos += 5; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c80); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = peg$parseselectors(); - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 41) { - s5 = peg$c68; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c69); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c81(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsematches() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 23, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 9) === peg$c82) { - s1 = peg$c82; - peg$currPos += 9; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c83); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = peg$parseselectors(); - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 41) { - s5 = peg$c68; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c69); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c84(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsehas() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 24, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c85) { - s1 = peg$c85; - peg$currPos += 5; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c86); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = peg$parseselectors(); - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 41) { - s5 = peg$c68; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c69); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c87(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsefirstChild() { - var s0, s1; - - var key = peg$currPos * 30 + 25, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 12) === peg$c88) { - s1 = peg$c88; - peg$currPos += 12; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c89); } - } - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c90(); - } - s0 = s1; - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parselastChild() { - var s0, s1; - - var key = peg$currPos * 30 + 26, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 11) === peg$c91) { - s1 = peg$c91; - peg$currPos += 11; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c92); } - } - if (s1 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c93(); - } - s0 = s1; - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsenthChild() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 27, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 11) === peg$c94) { - s1 = peg$c94; - peg$currPos += 11; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c95); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = []; - if (peg$c60.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - if (s4 !== peg$FAILED) { - while (s4 !== peg$FAILED) { - s3.push(s4); - if (peg$c60.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - } - } else { - s3 = peg$FAILED; - } - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 41) { - s5 = peg$c68; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c69); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c96(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parsenthLastChild() { - var s0, s1, s2, s3, s4, s5; - - var key = peg$currPos * 30 + 28, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.substr(peg$currPos, 16) === peg$c97) { - s1 = peg$c97; - peg$currPos += 16; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c98); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = []; - if (peg$c60.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - if (s4 !== peg$FAILED) { - while (s4 !== peg$FAILED) { - s3.push(s4); - if (peg$c60.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c61); } - } - } - } else { - s3 = peg$FAILED; - } - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 41) { - s5 = peg$c68; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c69); } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c99(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - function peg$parseclass() { - var s0, s1, s2; - - var key = peg$currPos * 30 + 29, - cached = peg$resultsCache[key]; - - if (cached) { - peg$currPos = cached.nextPos; - - return cached.result; - } - - s0 = peg$currPos; - if (input.charCodeAt(peg$currPos) === 58) { - s1 = peg$c100; - peg$currPos++; - } else { - s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$c101); } - } - if (s1 !== peg$FAILED) { - s2 = peg$parseidentifierName(); - if (s2 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c102(s2); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - - peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; - - return s0; - } - - - function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; } - function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; } - function strUnescape(s) { - return s.replace(/\\(.)/g, function(match, ch) { - switch(ch) { - case 'b': return '\b'; - case 'f': return '\f'; - case 'n': return '\n'; - case 'r': return '\r'; - case 't': return '\t'; - case 'v': return '\v'; - default: return ch; - } - }); - } - - - peg$result = peg$startRuleFunction(); - - if (peg$result !== peg$FAILED && peg$currPos === input.length) { - return peg$result; - } else { - if (peg$result !== peg$FAILED && peg$currPos < input.length) { - peg$fail(peg$endExpectation()); - } - - throw peg$buildStructuredError( - peg$maxFailExpected, - peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, - peg$maxFailPos < input.length - ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) - : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) - ); - } - } - - return { - SyntaxError: peg$SyntaxError, - parse: peg$parse - }; -}); diff --git a/build/node_modules/esrecurse/.babelrc b/build/node_modules/esrecurse/.babelrc deleted file mode 100644 index a0765e18..00000000 --- a/build/node_modules/esrecurse/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["es2015"] -} diff --git a/build/node_modules/esrecurse/README.md b/build/node_modules/esrecurse/README.md deleted file mode 100644 index ffea6b43..00000000 --- a/build/node_modules/esrecurse/README.md +++ /dev/null @@ -1,171 +0,0 @@ -### Esrecurse [![Build Status](https://travis-ci.org/estools/esrecurse.svg?branch=master)](https://travis-ci.org/estools/esrecurse) - -Esrecurse ([esrecurse](https://github.com/estools/esrecurse)) is -[ECMAScript](https://www.ecma-international.org/publications/standards/Ecma-262.htm) -recursive traversing functionality. - -### Example Usage - -The following code will output all variables declared at the root of a file. - -```javascript -esrecurse.visit(ast, { - XXXStatement: function (node) { - this.visit(node.left); - // do something... - this.visit(node.right); - } -}); -``` - -We can use `Visitor` instance. - -```javascript -var visitor = new esrecurse.Visitor({ - XXXStatement: function (node) { - this.visit(node.left); - // do something... - this.visit(node.right); - } -}); - -visitor.visit(ast); -``` - -We can inherit `Visitor` instance easily. - -```javascript -class Derived extends esrecurse.Visitor { - constructor() - { - super(null); - } - - XXXStatement(node) { - } -} -``` - -```javascript -function DerivedVisitor() { - esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */); -} -util.inherits(DerivedVisitor, esrecurse.Visitor); -DerivedVisitor.prototype.XXXStatement = function (node) { - this.visit(node.left); - // do something... - this.visit(node.right); -}; -``` - -And you can invoke default visiting operation inside custom visit operation. - -```javascript -function DerivedVisitor() { - esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */); -} -util.inherits(DerivedVisitor, esrecurse.Visitor); -DerivedVisitor.prototype.XXXStatement = function (node) { - // do something... - this.visitChildren(node); -}; -``` - -The `childVisitorKeys` option does customize the behaviour of `this.visitChildren(node)`. -We can use user-defined node types. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -esrecurse.visit( - ast, - { - Literal: function (node) { - // do something... - } - }, - { - // Extending the existing traversing rules. - childVisitorKeys: { - // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] - TestExpression: ['argument'] - } - } -); -``` - -We can use the `fallback` option as well. -If the `fallback` option is `"iteration"`, `esrecurse` would visit all enumerable properties of unknown nodes. -Please note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`). - -```javascript -esrecurse.visit( - ast, - { - Literal: function (node) { - // do something... - } - }, - { - fallback: 'iteration' - } -); -``` - -If the `fallback` option is a function, `esrecurse` calls this function to determine the enumerable properties of unknown nodes. -Please note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`). - -```javascript -esrecurse.visit( - ast, - { - Literal: function (node) { - // do something... - } - }, - { - fallback: function (node) { - return Object.keys(node).filter(function(key) { - return key !== 'argument' - }); - } - } -); -``` - -### License - -Copyright (C) 2014 [Yusuke Suzuki](https://github.com/Constellation) - (twitter: [@Constellation](https://twitter.com/Constellation)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/esrecurse/esrecurse.js b/build/node_modules/esrecurse/esrecurse.js deleted file mode 100644 index 15d57dfd..00000000 --- a/build/node_modules/esrecurse/esrecurse.js +++ /dev/null @@ -1,117 +0,0 @@ -/* - Copyright (C) 2014 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -(function () { - 'use strict'; - - var estraverse = require('estraverse'); - - function isNode(node) { - if (node == null) { - return false; - } - return typeof node === 'object' && typeof node.type === 'string'; - } - - function isProperty(nodeType, key) { - return (nodeType === estraverse.Syntax.ObjectExpression || nodeType === estraverse.Syntax.ObjectPattern) && key === 'properties'; - } - - function Visitor(visitor, options) { - options = options || {}; - - this.__visitor = visitor || this; - this.__childVisitorKeys = options.childVisitorKeys - ? Object.assign({}, estraverse.VisitorKeys, options.childVisitorKeys) - : estraverse.VisitorKeys; - if (options.fallback === 'iteration') { - this.__fallback = Object.keys; - } else if (typeof options.fallback === 'function') { - this.__fallback = options.fallback; - } - } - - /* Default method for visiting children. - * When you need to call default visiting operation inside custom visiting - * operation, you can use it with `this.visitChildren(node)`. - */ - Visitor.prototype.visitChildren = function (node) { - var type, children, i, iz, j, jz, child; - - if (node == null) { - return; - } - - type = node.type || estraverse.Syntax.Property; - - children = this.__childVisitorKeys[type]; - if (!children) { - if (this.__fallback) { - children = this.__fallback(node); - } else { - throw new Error('Unknown node type ' + type + '.'); - } - } - - for (i = 0, iz = children.length; i < iz; ++i) { - child = node[children[i]]; - if (child) { - if (Array.isArray(child)) { - for (j = 0, jz = child.length; j < jz; ++j) { - if (child[j]) { - if (isNode(child[j]) || isProperty(type, children[i])) { - this.visit(child[j]); - } - } - } - } else if (isNode(child)) { - this.visit(child); - } - } - } - }; - - /* Dispatching node. */ - Visitor.prototype.visit = function (node) { - var type; - - if (node == null) { - return; - } - - type = node.type || estraverse.Syntax.Property; - if (this.__visitor[type]) { - this.__visitor[type].call(this, node); - return; - } - this.visitChildren(node); - }; - - exports.version = require('./package.json').version; - exports.Visitor = Visitor; - exports.visit = function (node, visitor, options) { - var v = new Visitor(visitor, options); - v.visit(node); - }; -}()); -/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/build/node_modules/esrecurse/gulpfile.babel.js b/build/node_modules/esrecurse/gulpfile.babel.js deleted file mode 100644 index aa881c9c..00000000 --- a/build/node_modules/esrecurse/gulpfile.babel.js +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (C) 2014 Yusuke Suzuki -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import gulp from 'gulp'; -import mocha from 'gulp-mocha'; -import eslint from 'gulp-eslint'; -import minimist from 'minimist'; -import git from 'gulp-git'; -import bump from 'gulp-bump'; -import filter from 'gulp-filter'; -import tagVersion from 'gulp-tag-version'; -import 'babel-register'; - -const SOURCE = [ - '*.js' -]; - -let ESLINT_OPTION = { - parser: 'babel-eslint', - parserOptions: { - 'sourceType': 'module' - }, - rules: { - 'quotes': 0, - 'eqeqeq': 0, - 'no-use-before-define': 0, - 'no-shadow': 0, - 'no-new': 0, - 'no-underscore-dangle': 0, - 'no-multi-spaces': 0, - 'no-native-reassign': 0, - 'no-loop-func': 0 - }, - env: { - 'node': true - } -}; - -gulp.task('test', function() { - let options = minimist(process.argv.slice(2), { - string: 'test', - default: { - test: 'test/*.js' - } - } - ); - return gulp.src(options.test).pipe(mocha({reporter: 'spec'})); -}); - -gulp.task('lint', () => - gulp.src(SOURCE) - .pipe(eslint(ESLINT_OPTION)) - .pipe(eslint.formatEach('stylish', process.stderr)) - .pipe(eslint.failOnError()) -); - -let inc = importance => - gulp.src(['./package.json']) - .pipe(bump({type: importance})) - .pipe(gulp.dest('./')) - .pipe(git.commit('Bumps package version')) - .pipe(filter('package.json')) - .pipe(tagVersion({ - prefix: '' - })) -; - -gulp.task('travis', [ 'lint', 'test' ]); -gulp.task('default', [ 'travis' ]); - -gulp.task('patch', [ ], () => inc('patch')); -gulp.task('minor', [ ], () => inc('minor')); -gulp.task('major', [ ], () => inc('major')); diff --git a/build/node_modules/esrecurse/package.json b/build/node_modules/esrecurse/package.json deleted file mode 100644 index dec5b1bc..00000000 --- a/build/node_modules/esrecurse/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "esrecurse", - "description": "ECMAScript AST recursive visitor", - "homepage": "https://github.com/estools/esrecurse", - "main": "esrecurse.js", - "version": "4.3.0", - "engines": { - "node": ">=4.0" - }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "https://github.com/Constellation" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/estools/esrecurse.git" - }, - "dependencies": { - "estraverse": "^5.2.0" - }, - "devDependencies": { - "babel-cli": "^6.24.1", - "babel-eslint": "^7.2.3", - "babel-preset-es2015": "^6.24.1", - "babel-register": "^6.24.1", - "chai": "^4.0.2", - "esprima": "^4.0.0", - "gulp": "^3.9.0", - "gulp-bump": "^2.7.0", - "gulp-eslint": "^4.0.0", - "gulp-filter": "^5.0.0", - "gulp-git": "^2.4.1", - "gulp-mocha": "^4.3.1", - "gulp-tag-version": "^1.2.1", - "jsdoc": "^3.3.0-alpha10", - "minimist": "^1.1.0" - }, - "license": "BSD-2-Clause", - "scripts": { - "test": "gulp travis", - "unit-test": "gulp test", - "lint": "gulp lint" - }, - "babel": { - "presets": [ - "es2015" - ] - } -} diff --git a/build/node_modules/estraverse/.jshintrc b/build/node_modules/estraverse/.jshintrc deleted file mode 100644 index f642dae7..00000000 --- a/build/node_modules/estraverse/.jshintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "curly": true, - "eqeqeq": true, - "immed": true, - "eqnull": true, - "latedef": true, - "noarg": true, - "noempty": true, - "quotmark": "single", - "undef": true, - "unused": true, - "strict": true, - "trailing": true, - - "node": true -} diff --git a/build/node_modules/estraverse/LICENSE.BSD b/build/node_modules/estraverse/LICENSE.BSD deleted file mode 100644 index 3e580c35..00000000 --- a/build/node_modules/estraverse/LICENSE.BSD +++ /dev/null @@ -1,19 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/estraverse/README.md b/build/node_modules/estraverse/README.md deleted file mode 100644 index ccd3377f..00000000 --- a/build/node_modules/estraverse/README.md +++ /dev/null @@ -1,153 +0,0 @@ -### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.svg)](http://travis-ci.org/estools/estraverse) - -Estraverse ([estraverse](http://github.com/estools/estraverse)) is -[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) -traversal functions from [esmangle project](http://github.com/estools/esmangle). - -### Documentation - -You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage). - -### Example Usage - -The following code will output all variables declared at the root of a file. - -```javascript -estraverse.traverse(ast, { - enter: function (node, parent) { - if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration') - return estraverse.VisitorOption.Skip; - }, - leave: function (node, parent) { - if (node.type == 'VariableDeclarator') - console.log(node.id.name); - } -}); -``` - -We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break. - -```javascript -estraverse.traverse(ast, { - enter: function (node) { - this.break(); - } -}); -``` - -And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it. - -```javascript -result = estraverse.replace(tree, { - enter: function (node) { - // Replace it with replaced. - if (node.type === 'Literal') - return replaced; - } -}); -``` - -By passing `visitor.keys` mapping, we can extend estraverse traversing functionality. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Extending the existing traversing rules. - keys: { - // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] - TestExpression: ['argument'] - } -}); -``` - -By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Iterating the child **nodes** of unknown nodes. - fallback: 'iteration' -}); -``` - -When `visitor.fallback` is a function, we can determine which keys to visit on each node. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Skip the `argument` property of each node - fallback: function(node) { - return Object.keys(node).filter(function(key) { - return key !== 'argument'; - }); - } -}); -``` - -### License - -Copyright (C) 2012-2016 [Yusuke Suzuki](http://github.com/Constellation) - (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/estraverse/estraverse.js b/build/node_modules/estraverse/estraverse.js deleted file mode 100644 index f0d9af9b..00000000 --- a/build/node_modules/estraverse/estraverse.js +++ /dev/null @@ -1,805 +0,0 @@ -/* - Copyright (C) 2012-2013 Yusuke Suzuki - Copyright (C) 2012 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -/*jslint vars:false, bitwise:true*/ -/*jshint indent:4*/ -/*global exports:true*/ -(function clone(exports) { - 'use strict'; - - var Syntax, - VisitorOption, - VisitorKeys, - BREAK, - SKIP, - REMOVE; - - function deepCopy(obj) { - var ret = {}, key, val; - for (key in obj) { - if (obj.hasOwnProperty(key)) { - val = obj[key]; - if (typeof val === 'object' && val !== null) { - ret[key] = deepCopy(val); - } else { - ret[key] = val; - } - } - } - return ret; - } - - // based on LLVM libc++ upper_bound / lower_bound - // MIT License - - function upperBound(array, func) { - var diff, len, i, current; - - len = array.length; - i = 0; - - while (len) { - diff = len >>> 1; - current = i + diff; - if (func(array[current])) { - len = diff; - } else { - i = current + 1; - len -= diff + 1; - } - } - return i; - } - - Syntax = { - AssignmentExpression: 'AssignmentExpression', - AssignmentPattern: 'AssignmentPattern', - ArrayExpression: 'ArrayExpression', - ArrayPattern: 'ArrayPattern', - ArrowFunctionExpression: 'ArrowFunctionExpression', - AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7. - BlockStatement: 'BlockStatement', - BinaryExpression: 'BinaryExpression', - BreakStatement: 'BreakStatement', - CallExpression: 'CallExpression', - CatchClause: 'CatchClause', - ChainExpression: 'ChainExpression', - ClassBody: 'ClassBody', - ClassDeclaration: 'ClassDeclaration', - ClassExpression: 'ClassExpression', - ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7. - ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7. - ConditionalExpression: 'ConditionalExpression', - ContinueStatement: 'ContinueStatement', - DebuggerStatement: 'DebuggerStatement', - DirectiveStatement: 'DirectiveStatement', - DoWhileStatement: 'DoWhileStatement', - EmptyStatement: 'EmptyStatement', - ExportAllDeclaration: 'ExportAllDeclaration', - ExportDefaultDeclaration: 'ExportDefaultDeclaration', - ExportNamedDeclaration: 'ExportNamedDeclaration', - ExportSpecifier: 'ExportSpecifier', - ExpressionStatement: 'ExpressionStatement', - ForStatement: 'ForStatement', - ForInStatement: 'ForInStatement', - ForOfStatement: 'ForOfStatement', - FunctionDeclaration: 'FunctionDeclaration', - FunctionExpression: 'FunctionExpression', - GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7. - Identifier: 'Identifier', - IfStatement: 'IfStatement', - ImportExpression: 'ImportExpression', - ImportDeclaration: 'ImportDeclaration', - ImportDefaultSpecifier: 'ImportDefaultSpecifier', - ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', - ImportSpecifier: 'ImportSpecifier', - Literal: 'Literal', - LabeledStatement: 'LabeledStatement', - LogicalExpression: 'LogicalExpression', - MemberExpression: 'MemberExpression', - MetaProperty: 'MetaProperty', - MethodDefinition: 'MethodDefinition', - ModuleSpecifier: 'ModuleSpecifier', - NewExpression: 'NewExpression', - ObjectExpression: 'ObjectExpression', - ObjectPattern: 'ObjectPattern', - PrivateIdentifier: 'PrivateIdentifier', - Program: 'Program', - Property: 'Property', - PropertyDefinition: 'PropertyDefinition', - RestElement: 'RestElement', - ReturnStatement: 'ReturnStatement', - SequenceExpression: 'SequenceExpression', - SpreadElement: 'SpreadElement', - Super: 'Super', - SwitchStatement: 'SwitchStatement', - SwitchCase: 'SwitchCase', - TaggedTemplateExpression: 'TaggedTemplateExpression', - TemplateElement: 'TemplateElement', - TemplateLiteral: 'TemplateLiteral', - ThisExpression: 'ThisExpression', - ThrowStatement: 'ThrowStatement', - TryStatement: 'TryStatement', - UnaryExpression: 'UnaryExpression', - UpdateExpression: 'UpdateExpression', - VariableDeclaration: 'VariableDeclaration', - VariableDeclarator: 'VariableDeclarator', - WhileStatement: 'WhileStatement', - WithStatement: 'WithStatement', - YieldExpression: 'YieldExpression' - }; - - VisitorKeys = { - AssignmentExpression: ['left', 'right'], - AssignmentPattern: ['left', 'right'], - ArrayExpression: ['elements'], - ArrayPattern: ['elements'], - ArrowFunctionExpression: ['params', 'body'], - AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7. - BlockStatement: ['body'], - BinaryExpression: ['left', 'right'], - BreakStatement: ['label'], - CallExpression: ['callee', 'arguments'], - CatchClause: ['param', 'body'], - ChainExpression: ['expression'], - ClassBody: ['body'], - ClassDeclaration: ['id', 'superClass', 'body'], - ClassExpression: ['id', 'superClass', 'body'], - ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7. - ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. - ConditionalExpression: ['test', 'consequent', 'alternate'], - ContinueStatement: ['label'], - DebuggerStatement: [], - DirectiveStatement: [], - DoWhileStatement: ['body', 'test'], - EmptyStatement: [], - ExportAllDeclaration: ['source'], - ExportDefaultDeclaration: ['declaration'], - ExportNamedDeclaration: ['declaration', 'specifiers', 'source'], - ExportSpecifier: ['exported', 'local'], - ExpressionStatement: ['expression'], - ForStatement: ['init', 'test', 'update', 'body'], - ForInStatement: ['left', 'right', 'body'], - ForOfStatement: ['left', 'right', 'body'], - FunctionDeclaration: ['id', 'params', 'body'], - FunctionExpression: ['id', 'params', 'body'], - GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. - Identifier: [], - IfStatement: ['test', 'consequent', 'alternate'], - ImportExpression: ['source'], - ImportDeclaration: ['specifiers', 'source'], - ImportDefaultSpecifier: ['local'], - ImportNamespaceSpecifier: ['local'], - ImportSpecifier: ['imported', 'local'], - Literal: [], - LabeledStatement: ['label', 'body'], - LogicalExpression: ['left', 'right'], - MemberExpression: ['object', 'property'], - MetaProperty: ['meta', 'property'], - MethodDefinition: ['key', 'value'], - ModuleSpecifier: [], - NewExpression: ['callee', 'arguments'], - ObjectExpression: ['properties'], - ObjectPattern: ['properties'], - PrivateIdentifier: [], - Program: ['body'], - Property: ['key', 'value'], - PropertyDefinition: ['key', 'value'], - RestElement: [ 'argument' ], - ReturnStatement: ['argument'], - SequenceExpression: ['expressions'], - SpreadElement: ['argument'], - Super: [], - SwitchStatement: ['discriminant', 'cases'], - SwitchCase: ['test', 'consequent'], - TaggedTemplateExpression: ['tag', 'quasi'], - TemplateElement: [], - TemplateLiteral: ['quasis', 'expressions'], - ThisExpression: [], - ThrowStatement: ['argument'], - TryStatement: ['block', 'handler', 'finalizer'], - UnaryExpression: ['argument'], - UpdateExpression: ['argument'], - VariableDeclaration: ['declarations'], - VariableDeclarator: ['id', 'init'], - WhileStatement: ['test', 'body'], - WithStatement: ['object', 'body'], - YieldExpression: ['argument'] - }; - - // unique id - BREAK = {}; - SKIP = {}; - REMOVE = {}; - - VisitorOption = { - Break: BREAK, - Skip: SKIP, - Remove: REMOVE - }; - - function Reference(parent, key) { - this.parent = parent; - this.key = key; - } - - Reference.prototype.replace = function replace(node) { - this.parent[this.key] = node; - }; - - Reference.prototype.remove = function remove() { - if (Array.isArray(this.parent)) { - this.parent.splice(this.key, 1); - return true; - } else { - this.replace(null); - return false; - } - }; - - function Element(node, path, wrap, ref) { - this.node = node; - this.path = path; - this.wrap = wrap; - this.ref = ref; - } - - function Controller() { } - - // API: - // return property path array from root to current node - Controller.prototype.path = function path() { - var i, iz, j, jz, result, element; - - function addToPath(result, path) { - if (Array.isArray(path)) { - for (j = 0, jz = path.length; j < jz; ++j) { - result.push(path[j]); - } - } else { - result.push(path); - } - } - - // root node - if (!this.__current.path) { - return null; - } - - // first node is sentinel, second node is root element - result = []; - for (i = 2, iz = this.__leavelist.length; i < iz; ++i) { - element = this.__leavelist[i]; - addToPath(result, element.path); - } - addToPath(result, this.__current.path); - return result; - }; - - // API: - // return type of current node - Controller.prototype.type = function () { - var node = this.current(); - return node.type || this.__current.wrap; - }; - - // API: - // return array of parent elements - Controller.prototype.parents = function parents() { - var i, iz, result; - - // first node is sentinel - result = []; - for (i = 1, iz = this.__leavelist.length; i < iz; ++i) { - result.push(this.__leavelist[i].node); - } - - return result; - }; - - // API: - // return current node - Controller.prototype.current = function current() { - return this.__current.node; - }; - - Controller.prototype.__execute = function __execute(callback, element) { - var previous, result; - - result = undefined; - - previous = this.__current; - this.__current = element; - this.__state = null; - if (callback) { - result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node); - } - this.__current = previous; - - return result; - }; - - // API: - // notify control skip / break - Controller.prototype.notify = function notify(flag) { - this.__state = flag; - }; - - // API: - // skip child nodes of current node - Controller.prototype.skip = function () { - this.notify(SKIP); - }; - - // API: - // break traversals - Controller.prototype['break'] = function () { - this.notify(BREAK); - }; - - // API: - // remove node - Controller.prototype.remove = function () { - this.notify(REMOVE); - }; - - Controller.prototype.__initialize = function(root, visitor) { - this.visitor = visitor; - this.root = root; - this.__worklist = []; - this.__leavelist = []; - this.__current = null; - this.__state = null; - this.__fallback = null; - if (visitor.fallback === 'iteration') { - this.__fallback = Object.keys; - } else if (typeof visitor.fallback === 'function') { - this.__fallback = visitor.fallback; - } - - this.__keys = VisitorKeys; - if (visitor.keys) { - this.__keys = Object.assign(Object.create(this.__keys), visitor.keys); - } - }; - - function isNode(node) { - if (node == null) { - return false; - } - return typeof node === 'object' && typeof node.type === 'string'; - } - - function isProperty(nodeType, key) { - return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; - } - - function candidateExistsInLeaveList(leavelist, candidate) { - for (var i = leavelist.length - 1; i >= 0; --i) { - if (leavelist[i].node === candidate) { - return true; - } - } - return false; - } - - Controller.prototype.traverse = function traverse(root, visitor) { - var worklist, - leavelist, - element, - node, - nodeType, - ret, - key, - current, - current2, - candidates, - candidate, - sentinel; - - this.__initialize(root, visitor); - - sentinel = {}; - - // reference - worklist = this.__worklist; - leavelist = this.__leavelist; - - // initialize - worklist.push(new Element(root, null, null, null)); - leavelist.push(new Element(null, null, null, null)); - - while (worklist.length) { - element = worklist.pop(); - - if (element === sentinel) { - element = leavelist.pop(); - - ret = this.__execute(visitor.leave, element); - - if (this.__state === BREAK || ret === BREAK) { - return; - } - continue; - } - - if (element.node) { - - ret = this.__execute(visitor.enter, element); - - if (this.__state === BREAK || ret === BREAK) { - return; - } - - worklist.push(sentinel); - leavelist.push(element); - - if (this.__state === SKIP || ret === SKIP) { - continue; - } - - node = element.node; - nodeType = node.type || element.wrap; - candidates = this.__keys[nodeType]; - if (!candidates) { - if (this.__fallback) { - candidates = this.__fallback(node); - } else { - throw new Error('Unknown node type ' + nodeType + '.'); - } - } - - current = candidates.length; - while ((current -= 1) >= 0) { - key = candidates[current]; - candidate = node[key]; - if (!candidate) { - continue; - } - - if (Array.isArray(candidate)) { - current2 = candidate.length; - while ((current2 -= 1) >= 0) { - if (!candidate[current2]) { - continue; - } - - if (candidateExistsInLeaveList(leavelist, candidate[current2])) { - continue; - } - - if (isProperty(nodeType, candidates[current])) { - element = new Element(candidate[current2], [key, current2], 'Property', null); - } else if (isNode(candidate[current2])) { - element = new Element(candidate[current2], [key, current2], null, null); - } else { - continue; - } - worklist.push(element); - } - } else if (isNode(candidate)) { - if (candidateExistsInLeaveList(leavelist, candidate)) { - continue; - } - - worklist.push(new Element(candidate, key, null, null)); - } - } - } - } - }; - - Controller.prototype.replace = function replace(root, visitor) { - var worklist, - leavelist, - node, - nodeType, - target, - element, - current, - current2, - candidates, - candidate, - sentinel, - outer, - key; - - function removeElem(element) { - var i, - key, - nextElem, - parent; - - if (element.ref.remove()) { - // When the reference is an element of an array. - key = element.ref.key; - parent = element.ref.parent; - - // If removed from array, then decrease following items' keys. - i = worklist.length; - while (i--) { - nextElem = worklist[i]; - if (nextElem.ref && nextElem.ref.parent === parent) { - if (nextElem.ref.key < key) { - break; - } - --nextElem.ref.key; - } - } - } - } - - this.__initialize(root, visitor); - - sentinel = {}; - - // reference - worklist = this.__worklist; - leavelist = this.__leavelist; - - // initialize - outer = { - root: root - }; - element = new Element(root, null, null, new Reference(outer, 'root')); - worklist.push(element); - leavelist.push(element); - - while (worklist.length) { - element = worklist.pop(); - - if (element === sentinel) { - element = leavelist.pop(); - - target = this.__execute(visitor.leave, element); - - // node may be replaced with null, - // so distinguish between undefined and null in this place - if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { - // replace - element.ref.replace(target); - } - - if (this.__state === REMOVE || target === REMOVE) { - removeElem(element); - } - - if (this.__state === BREAK || target === BREAK) { - return outer.root; - } - continue; - } - - target = this.__execute(visitor.enter, element); - - // node may be replaced with null, - // so distinguish between undefined and null in this place - if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { - // replace - element.ref.replace(target); - element.node = target; - } - - if (this.__state === REMOVE || target === REMOVE) { - removeElem(element); - element.node = null; - } - - if (this.__state === BREAK || target === BREAK) { - return outer.root; - } - - // node may be null - node = element.node; - if (!node) { - continue; - } - - worklist.push(sentinel); - leavelist.push(element); - - if (this.__state === SKIP || target === SKIP) { - continue; - } - - nodeType = node.type || element.wrap; - candidates = this.__keys[nodeType]; - if (!candidates) { - if (this.__fallback) { - candidates = this.__fallback(node); - } else { - throw new Error('Unknown node type ' + nodeType + '.'); - } - } - - current = candidates.length; - while ((current -= 1) >= 0) { - key = candidates[current]; - candidate = node[key]; - if (!candidate) { - continue; - } - - if (Array.isArray(candidate)) { - current2 = candidate.length; - while ((current2 -= 1) >= 0) { - if (!candidate[current2]) { - continue; - } - if (isProperty(nodeType, candidates[current])) { - element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2)); - } else if (isNode(candidate[current2])) { - element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2)); - } else { - continue; - } - worklist.push(element); - } - } else if (isNode(candidate)) { - worklist.push(new Element(candidate, key, null, new Reference(node, key))); - } - } - } - - return outer.root; - }; - - function traverse(root, visitor) { - var controller = new Controller(); - return controller.traverse(root, visitor); - } - - function replace(root, visitor) { - var controller = new Controller(); - return controller.replace(root, visitor); - } - - function extendCommentRange(comment, tokens) { - var target; - - target = upperBound(tokens, function search(token) { - return token.range[0] > comment.range[0]; - }); - - comment.extendedRange = [comment.range[0], comment.range[1]]; - - if (target !== tokens.length) { - comment.extendedRange[1] = tokens[target].range[0]; - } - - target -= 1; - if (target >= 0) { - comment.extendedRange[0] = tokens[target].range[1]; - } - - return comment; - } - - function attachComments(tree, providedComments, tokens) { - // At first, we should calculate extended comment ranges. - var comments = [], comment, len, i, cursor; - - if (!tree.range) { - throw new Error('attachComments needs range information'); - } - - // tokens array is empty, we attach comments to tree as 'leadingComments' - if (!tokens.length) { - if (providedComments.length) { - for (i = 0, len = providedComments.length; i < len; i += 1) { - comment = deepCopy(providedComments[i]); - comment.extendedRange = [0, tree.range[0]]; - comments.push(comment); - } - tree.leadingComments = comments; - } - return tree; - } - - for (i = 0, len = providedComments.length; i < len; i += 1) { - comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens)); - } - - // This is based on John Freeman's implementation. - cursor = 0; - traverse(tree, { - enter: function (node) { - var comment; - - while (cursor < comments.length) { - comment = comments[cursor]; - if (comment.extendedRange[1] > node.range[0]) { - break; - } - - if (comment.extendedRange[1] === node.range[0]) { - if (!node.leadingComments) { - node.leadingComments = []; - } - node.leadingComments.push(comment); - comments.splice(cursor, 1); - } else { - cursor += 1; - } - } - - // already out of owned node - if (cursor === comments.length) { - return VisitorOption.Break; - } - - if (comments[cursor].extendedRange[0] > node.range[1]) { - return VisitorOption.Skip; - } - } - }); - - cursor = 0; - traverse(tree, { - leave: function (node) { - var comment; - - while (cursor < comments.length) { - comment = comments[cursor]; - if (node.range[1] < comment.extendedRange[0]) { - break; - } - - if (node.range[1] === comment.extendedRange[0]) { - if (!node.trailingComments) { - node.trailingComments = []; - } - node.trailingComments.push(comment); - comments.splice(cursor, 1); - } else { - cursor += 1; - } - } - - // already out of owned node - if (cursor === comments.length) { - return VisitorOption.Break; - } - - if (comments[cursor].extendedRange[0] > node.range[1]) { - return VisitorOption.Skip; - } - } - }); - - return tree; - } - - exports.Syntax = Syntax; - exports.traverse = traverse; - exports.replace = replace; - exports.attachComments = attachComments; - exports.VisitorKeys = VisitorKeys; - exports.VisitorOption = VisitorOption; - exports.Controller = Controller; - exports.cloneEnvironment = function () { return clone({}); }; - - return exports; -}(exports)); -/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/build/node_modules/estraverse/gulpfile.js b/build/node_modules/estraverse/gulpfile.js deleted file mode 100644 index 8772bbcc..00000000 --- a/build/node_modules/estraverse/gulpfile.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2014 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -'use strict'; - -var gulp = require('gulp'), - git = require('gulp-git'), - bump = require('gulp-bump'), - filter = require('gulp-filter'), - tagVersion = require('gulp-tag-version'); - -var TEST = [ 'test/*.js' ]; -var POWERED = [ 'powered-test/*.js' ]; -var SOURCE = [ 'src/**/*.js' ]; - -/** - * Bumping version number and tagging the repository with it. - * Please read http://semver.org/ - * - * You can use the commands - * - * gulp patch # makes v0.1.0 -> v0.1.1 - * gulp feature # makes v0.1.1 -> v0.2.0 - * gulp release # makes v0.2.1 -> v1.0.0 - * - * To bump the version numbers accordingly after you did a patch, - * introduced a feature or made a backwards-incompatible release. - */ - -function inc(importance) { - // get all the files to bump version in - return gulp.src(['./package.json']) - // bump the version number in those files - .pipe(bump({type: importance})) - // save it back to filesystem - .pipe(gulp.dest('./')) - // commit the changed version number - .pipe(git.commit('Bumps package version')) - // read only one file to get the version number - .pipe(filter('package.json')) - // **tag it in the repository** - .pipe(tagVersion({ - prefix: '' - })); -} - -gulp.task('patch', [ ], function () { return inc('patch'); }) -gulp.task('minor', [ ], function () { return inc('minor'); }) -gulp.task('major', [ ], function () { return inc('major'); }) diff --git a/build/node_modules/estraverse/package.json b/build/node_modules/estraverse/package.json deleted file mode 100644 index a8632185..00000000 --- a/build/node_modules/estraverse/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "estraverse", - "description": "ECMAScript JS AST traversal functions", - "homepage": "https://github.com/estools/estraverse", - "main": "estraverse.js", - "version": "5.3.0", - "engines": { - "node": ">=4.0" - }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" - } - ], - "repository": { - "type": "git", - "url": "http://github.com/estools/estraverse.git" - }, - "devDependencies": { - "babel-preset-env": "^1.6.1", - "babel-register": "^6.3.13", - "chai": "^2.1.1", - "espree": "^1.11.0", - "gulp": "^3.8.10", - "gulp-bump": "^0.2.2", - "gulp-filter": "^2.0.0", - "gulp-git": "^1.0.1", - "gulp-tag-version": "^1.3.0", - "jshint": "^2.5.6", - "mocha": "^2.1.0" - }, - "license": "BSD-2-Clause", - "scripts": { - "test": "npm run-script lint && npm run-script unit-test", - "lint": "jshint estraverse.js", - "unit-test": "mocha --compilers js:babel-register" - } -} diff --git a/build/node_modules/esutils/LICENSE.BSD b/build/node_modules/esutils/LICENSE.BSD deleted file mode 100644 index 3e580c35..00000000 --- a/build/node_modules/esutils/LICENSE.BSD +++ /dev/null @@ -1,19 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/esutils/README.md b/build/node_modules/esutils/README.md deleted file mode 100644 index 517526cf..00000000 --- a/build/node_modules/esutils/README.md +++ /dev/null @@ -1,174 +0,0 @@ -### esutils [![Build Status](https://secure.travis-ci.org/estools/esutils.svg)](http://travis-ci.org/estools/esutils) -esutils ([esutils](http://github.com/estools/esutils)) is -utility box for ECMAScript language tools. - -### API - -### ast - -#### ast.isExpression(node) - -Returns true if `node` is an Expression as defined in ECMA262 edition 5.1 section -[11](https://es5.github.io/#x11). - -#### ast.isStatement(node) - -Returns true if `node` is a Statement as defined in ECMA262 edition 5.1 section -[12](https://es5.github.io/#x12). - -#### ast.isIterationStatement(node) - -Returns true if `node` is an IterationStatement as defined in ECMA262 edition -5.1 section [12.6](https://es5.github.io/#x12.6). - -#### ast.isSourceElement(node) - -Returns true if `node` is a SourceElement as defined in ECMA262 edition 5.1 -section [14](https://es5.github.io/#x14). - -#### ast.trailingStatement(node) - -Returns `Statement?` if `node` has trailing `Statement`. -```js -if (cond) - consequent; -``` -When taking this `IfStatement`, returns `consequent;` statement. - -#### ast.isProblematicIfStatement(node) - -Returns true if `node` is a problematic IfStatement. If `node` is a problematic `IfStatement`, `node` cannot be represented as an one on one JavaScript code. -```js -{ - type: 'IfStatement', - consequent: { - type: 'WithStatement', - body: { - type: 'IfStatement', - consequent: {type: 'EmptyStatement'} - } - }, - alternate: {type: 'EmptyStatement'} -} -``` -The above node cannot be represented as a JavaScript code, since the top level `else` alternate belongs to an inner `IfStatement`. - - -### code - -#### code.isDecimalDigit(code) - -Return true if provided code is decimal digit. - -#### code.isHexDigit(code) - -Return true if provided code is hexadecimal digit. - -#### code.isOctalDigit(code) - -Return true if provided code is octal digit. - -#### code.isWhiteSpace(code) - -Return true if provided code is white space. White space characters are formally defined in ECMA262. - -#### code.isLineTerminator(code) - -Return true if provided code is line terminator. Line terminator characters are formally defined in ECMA262. - -#### code.isIdentifierStart(code) - -Return true if provided code can be the first character of ECMA262 Identifier. They are formally defined in ECMA262. - -#### code.isIdentifierPart(code) - -Return true if provided code can be the trailing character of ECMA262 Identifier. They are formally defined in ECMA262. - -### keyword - -#### keyword.isKeywordES5(id, strict) - -Returns `true` if provided identifier string is a Keyword or Future Reserved Word -in ECMA262 edition 5.1. They are formally defined in ECMA262 sections -[7.6.1.1](http://es5.github.io/#x7.6.1.1) and [7.6.1.2](http://es5.github.io/#x7.6.1.2), -respectively. If the `strict` flag is truthy, this function additionally checks whether -`id` is a Keyword or Future Reserved Word under strict mode. - -#### keyword.isKeywordES6(id, strict) - -Returns `true` if provided identifier string is a Keyword or Future Reserved Word -in ECMA262 edition 6. They are formally defined in ECMA262 sections -[11.6.2.1](http://ecma-international.org/ecma-262/6.0/#sec-keywords) and -[11.6.2.2](http://ecma-international.org/ecma-262/6.0/#sec-future-reserved-words), -respectively. If the `strict` flag is truthy, this function additionally checks whether -`id` is a Keyword or Future Reserved Word under strict mode. - -#### keyword.isReservedWordES5(id, strict) - -Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 5.1. -They are formally defined in ECMA262 section [7.6.1](http://es5.github.io/#x7.6.1). -If the `strict` flag is truthy, this function additionally checks whether `id` -is a Reserved Word under strict mode. - -#### keyword.isReservedWordES6(id, strict) - -Returns `true` if provided identifier string is a Reserved Word in ECMA262 edition 6. -They are formally defined in ECMA262 section [11.6.2](http://ecma-international.org/ecma-262/6.0/#sec-reserved-words). -If the `strict` flag is truthy, this function additionally checks whether `id` -is a Reserved Word under strict mode. - -#### keyword.isRestrictedWord(id) - -Returns `true` if provided identifier string is one of `eval` or `arguments`. -They are restricted in strict mode code throughout ECMA262 edition 5.1 and -in ECMA262 edition 6 section [12.1.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers-static-semantics-early-errors). - -#### keyword.isIdentifierNameES5(id) - -Return true if provided identifier string is an IdentifierName as specified in -ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6). - -#### keyword.isIdentifierNameES6(id) - -Return true if provided identifier string is an IdentifierName as specified in -ECMA262 edition 6 section [11.6](http://ecma-international.org/ecma-262/6.0/#sec-names-and-keywords). - -#### keyword.isIdentifierES5(id, strict) - -Return true if provided identifier string is an Identifier as specified in -ECMA262 edition 5.1 section [7.6](https://es5.github.io/#x7.6). If the `strict` -flag is truthy, this function additionally checks whether `id` is an Identifier -under strict mode. - -#### keyword.isIdentifierES6(id, strict) - -Return true if provided identifier string is an Identifier as specified in -ECMA262 edition 6 section [12.1](http://ecma-international.org/ecma-262/6.0/#sec-identifiers). -If the `strict` flag is truthy, this function additionally checks whether `id` -is an Identifier under strict mode. - -### License - -Copyright (C) 2013 [Yusuke Suzuki](http://github.com/Constellation) - (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/esutils/package.json b/build/node_modules/esutils/package.json deleted file mode 100644 index 8396f4ce..00000000 --- a/build/node_modules/esutils/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "esutils", - "description": "utility box for ECMAScript language tools", - "homepage": "https://github.com/estools/esutils", - "main": "lib/utils.js", - "version": "2.0.3", - "engines": { - "node": ">=0.10.0" - }, - "directories": { - "lib": "./lib" - }, - "files": [ - "LICENSE.BSD", - "README.md", - "lib" - ], - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" - } - ], - "repository": { - "type": "git", - "url": "http://github.com/estools/esutils.git" - }, - "devDependencies": { - "chai": "~1.7.2", - "coffee-script": "~1.6.3", - "jshint": "2.6.3", - "mocha": "~2.2.1", - "regenerate": "~1.3.1", - "unicode-9.0.0": "~0.7.0" - }, - "license": "BSD-2-Clause", - "scripts": { - "test": "npm run-script lint && npm run-script unit-test", - "lint": "jshint lib/*.js", - "unit-test": "mocha --compilers coffee:coffee-script -R spec", - "generate-regex": "node tools/generate-identifier-regex.js" - } -} diff --git a/build/node_modules/etag/HISTORY.md b/build/node_modules/etag/HISTORY.md deleted file mode 100644 index 222b293d..00000000 --- a/build/node_modules/etag/HISTORY.md +++ /dev/null @@ -1,83 +0,0 @@ -1.8.1 / 2017-09-12 -================== - - * perf: replace regular expression with substring - -1.8.0 / 2017-02-18 -================== - - * Use SHA1 instead of MD5 for ETag hashing - - Improves performance for larger entities - - Works with FIPS 140-2 OpenSSL configuration - -1.7.0 / 2015-06-08 -================== - - * Always include entity length in ETags for hash length extensions - * Generate non-Stats ETags using MD5 only (no longer CRC32) - * Improve stat performance by removing hashing - * Remove base64 padding in ETags to shorten - * Use MD5 instead of MD4 in weak ETags over 1KB - -1.6.0 / 2015-05-10 -================== - - * Improve support for JXcore - * Remove requirement of `atime` in the stats object - * Support "fake" stats objects in environments without `fs` - -1.5.1 / 2014-11-19 -================== - - * deps: crc@3.2.1 - - Minor fixes - -1.5.0 / 2014-10-14 -================== - - * Improve string performance - * Slightly improve speed for weak ETags over 1KB - -1.4.0 / 2014-09-21 -================== - - * Support "fake" stats objects - * Support Node.js 0.6 - -1.3.1 / 2014-09-14 -================== - - * Use the (new and improved) `crc` for crc32 - -1.3.0 / 2014-08-29 -================== - - * Default strings to strong ETags - * Improve speed for weak ETags over 1KB - -1.2.1 / 2014-08-29 -================== - - * Use the (much faster) `buffer-crc32` for crc32 - -1.2.0 / 2014-08-24 -================== - - * Add support for file stat objects - -1.1.0 / 2014-08-24 -================== - - * Add fast-path for empty entity - * Add weak ETag generation - * Shrink size of generated ETags - -1.0.1 / 2014-08-24 -================== - - * Fix behavior of string containing Unicode - -1.0.0 / 2014-05-18 -================== - - * Initial release diff --git a/build/node_modules/etag/LICENSE b/build/node_modules/etag/LICENSE deleted file mode 100644 index cab251c2..00000000 --- a/build/node_modules/etag/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2016 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/etag/README.md b/build/node_modules/etag/README.md deleted file mode 100644 index 09c2169e..00000000 --- a/build/node_modules/etag/README.md +++ /dev/null @@ -1,159 +0,0 @@ -# etag - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create simple HTTP ETags - -This module generates HTTP ETags (as defined in RFC 7232) for use in -HTTP responses. - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install etag -``` - -## API - - - -```js -var etag = require('etag') -``` - -### etag(entity, [options]) - -Generate a strong ETag for the given entity. This should be the complete -body of the entity. Strings, `Buffer`s, and `fs.Stats` are accepted. By -default, a strong ETag is generated except for `fs.Stats`, which will -generate a weak ETag (this can be overwritten by `options.weak`). - - - -```js -res.setHeader('ETag', etag(body)) -``` - -#### Options - -`etag` accepts these properties in the options object. - -##### weak - -Specifies if the generated ETag will include the weak validator mark (that -is, the leading `W/`). The actual entity tag is the same. The default value -is `false`, unless the `entity` is `fs.Stats`, in which case it is `true`. - -## Testing - -```sh -$ npm test -``` - -## Benchmark - -```bash -$ npm run-script bench - -> etag@1.8.1 bench nodejs-etag -> node benchmark/index.js - - http_parser@2.7.0 - node@6.11.1 - v8@5.1.281.103 - uv@1.11.0 - zlib@1.2.11 - ares@1.10.1-DEV - icu@58.2 - modules@48 - openssl@1.0.2k - -> node benchmark/body0-100b.js - - 100B body - - 4 tests completed. - - buffer - strong x 258,647 ops/sec ±1.07% (180 runs sampled) - buffer - weak x 263,812 ops/sec ±0.61% (184 runs sampled) - string - strong x 259,955 ops/sec ±1.19% (185 runs sampled) - string - weak x 264,356 ops/sec ±1.09% (184 runs sampled) - -> node benchmark/body1-1kb.js - - 1KB body - - 4 tests completed. - - buffer - strong x 189,018 ops/sec ±1.12% (182 runs sampled) - buffer - weak x 190,586 ops/sec ±0.81% (186 runs sampled) - string - strong x 144,272 ops/sec ±0.96% (188 runs sampled) - string - weak x 145,380 ops/sec ±1.43% (187 runs sampled) - -> node benchmark/body2-5kb.js - - 5KB body - - 4 tests completed. - - buffer - strong x 92,435 ops/sec ±0.42% (188 runs sampled) - buffer - weak x 92,373 ops/sec ±0.58% (189 runs sampled) - string - strong x 48,850 ops/sec ±0.56% (186 runs sampled) - string - weak x 49,380 ops/sec ±0.56% (190 runs sampled) - -> node benchmark/body3-10kb.js - - 10KB body - - 4 tests completed. - - buffer - strong x 55,989 ops/sec ±0.93% (188 runs sampled) - buffer - weak x 56,148 ops/sec ±0.55% (190 runs sampled) - string - strong x 27,345 ops/sec ±0.43% (188 runs sampled) - string - weak x 27,496 ops/sec ±0.45% (190 runs sampled) - -> node benchmark/body4-100kb.js - - 100KB body - - 4 tests completed. - - buffer - strong x 7,083 ops/sec ±0.22% (190 runs sampled) - buffer - weak x 7,115 ops/sec ±0.26% (191 runs sampled) - string - strong x 3,068 ops/sec ±0.34% (190 runs sampled) - string - weak x 3,096 ops/sec ±0.35% (190 runs sampled) - -> node benchmark/stats.js - - stat - - 4 tests completed. - - real - strong x 871,642 ops/sec ±0.34% (189 runs sampled) - real - weak x 867,613 ops/sec ±0.39% (190 runs sampled) - fake - strong x 401,051 ops/sec ±0.40% (189 runs sampled) - fake - weak x 400,100 ops/sec ±0.47% (188 runs sampled) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/etag.svg -[npm-url]: https://npmjs.org/package/etag -[node-version-image]: https://img.shields.io/node/v/etag.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/jshttp/etag/master.svg -[travis-url]: https://travis-ci.org/jshttp/etag -[coveralls-image]: https://img.shields.io/coveralls/jshttp/etag/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/etag?branch=master -[downloads-image]: https://img.shields.io/npm/dm/etag.svg -[downloads-url]: https://npmjs.org/package/etag diff --git a/build/node_modules/etag/index.js b/build/node_modules/etag/index.js deleted file mode 100644 index 2a585c91..00000000 --- a/build/node_modules/etag/index.js +++ /dev/null @@ -1,131 +0,0 @@ -/*! - * etag - * Copyright(c) 2014-2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = etag - -/** - * Module dependencies. - * @private - */ - -var crypto = require('crypto') -var Stats = require('fs').Stats - -/** - * Module variables. - * @private - */ - -var toString = Object.prototype.toString - -/** - * Generate an entity tag. - * - * @param {Buffer|string} entity - * @return {string} - * @private - */ - -function entitytag (entity) { - if (entity.length === 0) { - // fast-path empty - return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"' - } - - // compute hash of entity - var hash = crypto - .createHash('sha1') - .update(entity, 'utf8') - .digest('base64') - .substring(0, 27) - - // compute length of entity - var len = typeof entity === 'string' - ? Buffer.byteLength(entity, 'utf8') - : entity.length - - return '"' + len.toString(16) + '-' + hash + '"' -} - -/** - * Create a simple ETag. - * - * @param {string|Buffer|Stats} entity - * @param {object} [options] - * @param {boolean} [options.weak] - * @return {String} - * @public - */ - -function etag (entity, options) { - if (entity == null) { - throw new TypeError('argument entity is required') - } - - // support fs.Stats object - var isStats = isstats(entity) - var weak = options && typeof options.weak === 'boolean' - ? options.weak - : isStats - - // validate argument - if (!isStats && typeof entity !== 'string' && !Buffer.isBuffer(entity)) { - throw new TypeError('argument entity must be string, Buffer, or fs.Stats') - } - - // generate entity tag - var tag = isStats - ? stattag(entity) - : entitytag(entity) - - return weak - ? 'W/' + tag - : tag -} - -/** - * Determine if object is a Stats object. - * - * @param {object} obj - * @return {boolean} - * @api private - */ - -function isstats (obj) { - // genuine fs.Stats - if (typeof Stats === 'function' && obj instanceof Stats) { - return true - } - - // quack quack - return obj && typeof obj === 'object' && - 'ctime' in obj && toString.call(obj.ctime) === '[object Date]' && - 'mtime' in obj && toString.call(obj.mtime) === '[object Date]' && - 'ino' in obj && typeof obj.ino === 'number' && - 'size' in obj && typeof obj.size === 'number' -} - -/** - * Generate a tag for a stat. - * - * @param {object} stat - * @return {string} - * @private - */ - -function stattag (stat) { - var mtime = stat.mtime.getTime().toString(16) - var size = stat.size.toString(16) - - return '"' + size + '-' + mtime + '"' -} diff --git a/build/node_modules/etag/package.json b/build/node_modules/etag/package.json deleted file mode 100644 index b06ab803..00000000 --- a/build/node_modules/etag/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "etag", - "description": "Create simple HTTP ETags", - "version": "1.8.1", - "contributors": [ - "Douglas Christopher Wilson ", - "David Björklund " - ], - "license": "MIT", - "keywords": [ - "etag", - "http", - "res" - ], - "repository": "jshttp/etag", - "devDependencies": { - "beautify-benchmark": "0.2.4", - "benchmark": "2.1.4", - "eslint": "3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-markdown": "1.0.0-beta.6", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "istanbul": "0.4.5", - "mocha": "1.21.5", - "safe-buffer": "5.1.1", - "seedrandom": "2.4.3" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/build/node_modules/event-target-shim/LICENSE b/build/node_modules/event-target-shim/LICENSE deleted file mode 100644 index c39e6949..00000000 --- a/build/node_modules/event-target-shim/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Toru Nagashima - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/event-target-shim/README.md b/build/node_modules/event-target-shim/README.md deleted file mode 100644 index a4f9c1b7..00000000 --- a/build/node_modules/event-target-shim/README.md +++ /dev/null @@ -1,293 +0,0 @@ -# event-target-shim - -[![npm version](https://img.shields.io/npm/v/event-target-shim.svg)](https://www.npmjs.com/package/event-target-shim) -[![Downloads/month](https://img.shields.io/npm/dm/event-target-shim.svg)](http://www.npmtrends.com/event-target-shim) -[![Build Status](https://travis-ci.org/mysticatea/event-target-shim.svg?branch=master)](https://travis-ci.org/mysticatea/event-target-shim) -[![Coverage Status](https://codecov.io/gh/mysticatea/event-target-shim/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/event-target-shim) -[![Dependency Status](https://david-dm.org/mysticatea/event-target-shim.svg)](https://david-dm.org/mysticatea/event-target-shim) - -An implementation of [WHATWG EventTarget interface](https://dom.spec.whatwg.org/#interface-eventtarget), plus few extensions. - -- This provides `EventTarget` constructor that can inherit for your custom object. -- This provides an utility that defines properties of attribute listeners (e.g. `obj.onclick`). - -```js -import {EventTarget, defineEventAttribute} from "event-target-shim" - -class Foo extends EventTarget { - // ... -} - -// Define `foo.onhello` property. -defineEventAttribute(Foo.prototype, "hello") - -// Use -const foo = new Foo() -foo.addEventListener("hello", e => console.log("hello", e)) -foo.onhello = e => console.log("onhello:", e) -foo.dispatchEvent(new CustomEvent("hello")) -``` - -## 💿 Installation - -Use [npm](https://www.npmjs.com/) to install then use a bundler. - -``` -npm install event-target-shim -``` - -Or download from [`dist` directory](./dist). - -- [dist/event-target-shim.mjs](dist/event-target-shim.mjs) ... ES modules version. -- [dist/event-target-shim.js](dist/event-target-shim.js) ... Common JS version. -- [dist/event-target-shim.umd.js](dist/event-target-shim.umd.js) ... UMD (Universal Module Definition) version. This is transpiled by [Babel](https://babeljs.io/) for IE 11. - -## 📖 Usage - -```js -import {EventTarget, defineEventAttribute} from "event-target-shim" -// or -const {EventTarget, defineEventAttribute} = require("event-target-shim") - -// or UMD version defines a global variable: -const {EventTarget, defineEventAttribute} = window.EventTargetShim -``` - -### EventTarget - -> https://dom.spec.whatwg.org/#interface-eventtarget - -#### eventTarget.addEventListener(type, callback, options) - -Register an event listener. - -- `type` is a string. This is the event name to register. -- `callback` is a function. This is the event listener to register. -- `options` is a boolean or an object `{ capture?: boolean, passive?: boolean, once?: boolean }`. If this is a boolean, it's same meaning as `{ capture: options }`. - - `capture` is the flag to register the event listener for capture phase. - - `passive` is the flag to ignore `event.preventDefault()` method in the event listener. - - `once` is the flag to remove the event listener automatically after the first call. - -#### eventTarget.removeEventListener(type, callback, options) - -Unregister an event listener. - -- `type` is a string. This is the event name to unregister. -- `callback` is a function. This is the event listener to unregister. -- `options` is a boolean or an object `{ capture?: boolean }`. If this is a boolean, it's same meaning as `{ capture: options }`. - - `capture` is the flag to register the event listener for capture phase. - -#### eventTarget.dispatchEvent(event) - -Dispatch an event. - -- `event` is a [Event](https://dom.spec.whatwg.org/#event) object or an object `{ type: string, [key: string]: any }`. The latter is non-standard but useful. In both cases, listeners receive the event as implementing [Event](https://dom.spec.whatwg.org/#event) interface. - -### defineEventAttribute(proto, type) - -Define an event attribute (e.g. `onclick`) to `proto`. This is non-standard. - -- `proto` is an object (assuming it's a prototype object). This function defines a getter/setter pair for the event attribute. -- `type` is a string. This is the event name to define. - -For example: - -```js -class AbortSignal extends EventTarget { - constructor() { - this.aborted = false - } -} -// Define `onabort` property. -defineEventAttribute(AbortSignal.prototype, "abort") -``` - -### EventTarget(types) - -Define a custom `EventTarget` class with event attributes. This is non-standard. - -- `types` is a string or an array of strings. This is the event name to define. - -For example: - -```js -// This has `onabort` property. -class AbortSignal extends EventTarget("abort") { - constructor() { - this.aborted = false - } -} -``` - -## 📚 Examples - -### ES2015 and later - -> https://jsfiddle.net/636vea92/ - -```js -const {EventTarget, defineEventAttribute} = EventTargetShim - -// Define a derived class. -class Foo extends EventTarget { - // ... -} - -// Define `foo.onhello` property. -defineEventAttribute(Foo.prototype, "hello") - -// Register event listeners. -const foo = new Foo() -foo.addEventListener("hello", (e) => { - console.log("hello", e) -}) -foo.onhello = (e) => { - console.log("onhello", e) -} - -// Dispatching events -foo.dispatchEvent(new CustomEvent("hello", { detail: "detail" })) -``` - -### Typescript - -```ts -import { EventTarget, defineEventAttribute } from "event-target-shim"; - -// Define events -type FooEvents = { - hello: CustomEvent -} -type FooEventAttributes = { - onhello: CustomEvent -} - -// Define a derived class. -class Foo extends EventTarget { - // ... -} -// Define `foo.onhello` property's implementation. -defineEventAttribute(Foo.prototype, "hello") - -// Register event listeners. -const foo = new Foo() -foo.addEventListener("hello", (e) => { - console.log("hello", e.detail) -}) -foo.onhello = (e) => { - console.log("onhello", e.detail) -} - -// Dispatching events -foo.dispatchEvent(new CustomEvent("hello", { detail: "detail" })) -``` - -Unfortunately, both `FooEvents` and `FooEventAttributes` are needed because TypeScript doesn't allow the mutation of string literal types. If TypeScript allowed us to compute `"onhello"` from `"hello"` in types, `FooEventAttributes` will be optional. - -This `EventTarget` type is compatible with `EventTarget` interface of `lib.dom.d.ts`. - -#### To disallow unknown events - -By default, methods such as `addEventListener` accept unknown events. You can disallow unknown events by the third type parameter `"strict"`. - -```ts -type FooEvents = { - hello: CustomEvent -} -class Foo extends EventTarget { - // ... -} - -// OK because `hello` is defined in FooEvents. -foo.addEventListener("hello", (e) => { -}) -// Error because `unknown` is not defined in FooEvents. -foo.addEventListener("unknown", (e) => { -}) -``` - -However, if you use `"strict"` parameter, it loses compatibility with `EventTarget` interface of `lib.dom.d.ts`. - -#### To infer the type of `dispatchEvent()` method - -TypeScript cannot infer the event type of `dispatchEvent()` method properly from the argument in most cases. You can improve this behavior with the following steps: - -1. Use the third type parameter `"strict"`. This prevents inferring to `dispatchEvent()`. -2. Make the `type` property of event definitions stricter. - -```ts -type FooEvents = { - hello: CustomEvent & { type: "hello" } - hey: Event & { type: "hey" } -} -class Foo extends EventTarget { - // ... -} - -// Error because `detail` property is lacking. -foo.dispatchEvent({ type: "hello" }) -``` - -### ES5 - -> https://jsfiddle.net/522zc9de/ - -```js -// Define a derived class. -function Foo() { - EventTarget.call(this) -} -Foo.prototype = Object.create(EventTarget.prototype, { - constructor: { value: Foo, configurable: true, writable: true } - // ... -}) - -// Define `foo.onhello` property. -defineEventAttribute(Foo.prototype, "hello") - -// Register event listeners. -var foo = new Foo() -foo.addEventListener("hello", function(e) { - console.log("hello", e) -}) -foo.onhello = function(e) { - console.log("onhello", e) -} - -// Dispatching events -function isSupportEventConstrucor() { // IE does not support. - try { - new CusomEvent("hello") - return true - } catch (_err) { - return false - } -} -if (isSupportEventConstrucor()) { - foo.dispatchEvent(new CustomEvent("hello", { detail: "detail" })) -} else { - var e = document.createEvent("CustomEvent") - e.initCustomEvent("hello", false, false, "detail") - foo.dispatchEvent(e) -} -``` - -## 📰 Changelog - -- See [GitHub releases](https://github.com/mysticatea/event-target-shim/releases). - -## 🍻 Contributing - -Contributing is welcome ❤️ - -Please use GitHub issues/PRs. - -### Development tools - -- `npm install` installs dependencies for development. -- `npm test` runs tests and measures code coverage. -- `npm run clean` removes temporary files of tests. -- `npm run coverage` opens code coverage of the previous test with your default browser. -- `npm run lint` runs ESLint. -- `npm run build` generates `dist` codes. -- `npm run watch` runs tests on each file change. diff --git a/build/node_modules/event-target-shim/index.d.ts b/build/node_modules/event-target-shim/index.d.ts deleted file mode 100644 index a3030978..00000000 --- a/build/node_modules/event-target-shim/index.d.ts +++ /dev/null @@ -1,399 +0,0 @@ -export as namespace EventTargetShim - -/** - * `Event` interface. - * @see https://dom.spec.whatwg.org/#event - */ -export interface Event { - /** - * The type of this event. - */ - readonly type: string - - /** - * The target of this event. - */ - readonly target: EventTarget<{}, {}, "standard"> | null - - /** - * The current target of this event. - */ - readonly currentTarget: EventTarget<{}, {}, "standard"> | null - - /** - * The target of this event. - * @deprecated - */ - readonly srcElement: any | null - - /** - * The composed path of this event. - */ - composedPath(): EventTarget<{}, {}, "standard">[] - - /** - * Constant of NONE. - */ - readonly NONE: number - - /** - * Constant of CAPTURING_PHASE. - */ - readonly CAPTURING_PHASE: number - - /** - * Constant of BUBBLING_PHASE. - */ - readonly BUBBLING_PHASE: number - - /** - * Constant of AT_TARGET. - */ - readonly AT_TARGET: number - - /** - * Indicates which phase of the event flow is currently being evaluated. - */ - readonly eventPhase: number - - /** - * Stop event bubbling. - */ - stopPropagation(): void - - /** - * Stop event bubbling. - */ - stopImmediatePropagation(): void - - /** - * Initialize event. - * @deprecated - */ - initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void - - /** - * The flag indicating bubbling. - */ - readonly bubbles: boolean - - /** - * Stop event bubbling. - * @deprecated - */ - cancelBubble: boolean - - /** - * Set or get cancellation flag. - * @deprecated - */ - returnValue: boolean - - /** - * The flag indicating whether the event can be canceled. - */ - readonly cancelable: boolean - - /** - * Cancel this event. - */ - preventDefault(): void - - /** - * The flag to indicating whether the event was canceled. - */ - readonly defaultPrevented: boolean - - /** - * The flag to indicating if event is composed. - */ - readonly composed: boolean - - /** - * Indicates whether the event was dispatched by the user agent. - */ - readonly isTrusted: boolean - - /** - * The unix time of this event. - */ - readonly timeStamp: number -} - -/** - * The constructor of `EventTarget` interface. - */ -export type EventTargetConstructor< - TEvents extends EventTarget.EventDefinition = {}, - TEventAttributes extends EventTarget.EventDefinition = {}, - TMode extends EventTarget.Mode = "loose" -> = { - prototype: EventTarget - new(): EventTarget -} - -/** - * `EventTarget` interface. - * @see https://dom.spec.whatwg.org/#interface-eventtarget - */ -export type EventTarget< - TEvents extends EventTarget.EventDefinition = {}, - TEventAttributes extends EventTarget.EventDefinition = {}, - TMode extends EventTarget.Mode = "loose" -> = EventTarget.EventAttributes & { - /** - * Add a given listener to this event target. - * @param eventName The event name to add. - * @param listener The listener to add. - * @param options The options for this listener. - */ - addEventListener>( - type: TEventType, - listener: - | EventTarget.Listener> - | null, - options?: boolean | EventTarget.AddOptions - ): void - - /** - * Remove a given listener from this event target. - * @param eventName The event name to remove. - * @param listener The listener to remove. - * @param options The options for this listener. - */ - removeEventListener>( - type: TEventType, - listener: - | EventTarget.Listener> - | null, - options?: boolean | EventTarget.RemoveOptions - ): void - - /** - * Dispatch a given event. - * @param event The event to dispatch. - * @returns `false` if canceled. - */ - dispatchEvent>( - event: EventTarget.EventData - ): boolean -} - -export const EventTarget: EventTargetConstructor & { - /** - * Create an `EventTarget` instance with detailed event definition. - * - * The detailed event definition requires to use `defineEventAttribute()` - * function later. - * - * Unfortunately, the second type parameter `TEventAttributes` was needed - * because we cannot compute string literal types. - * - * @example - * const signal = new EventTarget<{ abort: Event }, { onabort: Event }>() - * defineEventAttribute(signal, "abort") - */ - new < - TEvents extends EventTarget.EventDefinition, - TEventAttributes extends EventTarget.EventDefinition, - TMode extends EventTarget.Mode = "loose" - >(): EventTarget - - /** - * Define an `EventTarget` constructor with attribute events and detailed event definition. - * - * Unfortunately, the second type parameter `TEventAttributes` was needed - * because we cannot compute string literal types. - * - * @example - * class AbortSignal extends EventTarget<{ abort: Event }, { onabort: Event }>("abort") { - * abort(): void {} - * } - * - * @param events Optional event attributes (e.g. passing in `"click"` adds `onclick` to prototype). - */ - < - TEvents extends EventTarget.EventDefinition = {}, - TEventAttributes extends EventTarget.EventDefinition = {}, - TMode extends EventTarget.Mode = "loose" - >(events: string[]): EventTargetConstructor< - TEvents, - TEventAttributes, - TMode - > - - /** - * Define an `EventTarget` constructor with attribute events and detailed event definition. - * - * Unfortunately, the second type parameter `TEventAttributes` was needed - * because we cannot compute string literal types. - * - * @example - * class AbortSignal extends EventTarget<{ abort: Event }, { onabort: Event }>("abort") { - * abort(): void {} - * } - * - * @param events Optional event attributes (e.g. passing in `"click"` adds `onclick` to prototype). - */ - < - TEvents extends EventTarget.EventDefinition = {}, - TEventAttributes extends EventTarget.EventDefinition = {}, - TMode extends EventTarget.Mode = "loose" - >(event0: string, ...events: string[]): EventTargetConstructor< - TEvents, - TEventAttributes, - TMode - > -} - -export namespace EventTarget { - /** - * Options of `removeEventListener()` method. - */ - export interface RemoveOptions { - /** - * The flag to indicate that the listener is for the capturing phase. - */ - capture?: boolean - } - - /** - * Options of `addEventListener()` method. - */ - export interface AddOptions extends RemoveOptions { - /** - * The flag to indicate that the listener doesn't support - * `event.preventDefault()` operation. - */ - passive?: boolean - /** - * The flag to indicate that the listener will be removed on the first - * event. - */ - once?: boolean - } - - /** - * The type of regular listeners. - */ - export interface FunctionListener { - (event: TEvent): void - } - - /** - * The type of object listeners. - */ - export interface ObjectListener { - handleEvent(event: TEvent): void - } - - /** - * The type of listeners. - */ - export type Listener = - | FunctionListener - | ObjectListener - - /** - * Event definition. - */ - export type EventDefinition = { - readonly [key: string]: Event - } - - /** - * Mapped type for event attributes. - */ - export type EventAttributes = { - [P in keyof TEventAttributes]: - | FunctionListener - | null - } - - /** - * The type of event data for `dispatchEvent()` method. - */ - export type EventData< - TEvents extends EventDefinition, - TEventType extends keyof TEvents | string, - TMode extends Mode - > = - TEventType extends keyof TEvents - ? ( - // Require properties which are not generated automatically. - & Pick< - TEvents[TEventType], - Exclude - > - // Properties which are generated automatically are optional. - & Partial> - ) - : ( - TMode extends "standard" - ? Event - : Event | NonStandardEvent - ) - - /** - * The string literal types of the properties which are generated - * automatically in `dispatchEvent()` method. - */ - export type OmittableEventKeys = Exclude - - /** - * The type of event data. - */ - export type NonStandardEvent = { - [key: string]: any - type: string - } - - /** - * The type of listeners. - */ - export type PickEvent< - TEvents extends EventDefinition, - TEventType extends keyof TEvents | string, - > = - TEventType extends keyof TEvents - ? TEvents[TEventType] - : Event - - /** - * Event type candidates. - */ - export type EventType< - TEvents extends EventDefinition, - TMode extends Mode - > = - TMode extends "strict" - ? keyof TEvents - : keyof TEvents | string - - /** - * - `"strict"` ..... Methods don't accept unknown events. - * `dispatchEvent()` accepts partial objects. - * - `"loose"` ...... Methods accept unknown events. - * `dispatchEvent()` accepts partial objects. - * - `"standard"` ... Methods accept unknown events. - * `dispatchEvent()` doesn't accept partial objects. - */ - export type Mode = "strict" | "standard" | "loose" -} - -/** - * Specialized `type` property. - */ -export type Type = { type: T } - -/** - * Define an event attribute (e.g. `eventTarget.onclick`). - * @param prototype The event target prototype to define an event attribute. - * @param eventName The event name to define. - */ -export function defineEventAttribute( - prototype: EventTarget, - eventName: string -): void - -export default EventTarget diff --git a/build/node_modules/event-target-shim/package.json b/build/node_modules/event-target-shim/package.json deleted file mode 100644 index 40326f3d..00000000 --- a/build/node_modules/event-target-shim/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "event-target-shim", - "version": "5.0.1", - "description": "An implementation of WHATWG EventTarget interface.", - "main": "dist/event-target-shim", - "types": "index.d.ts", - "files": [ - "dist", - "index.d.ts" - ], - "engines": { - "node": ">=6" - }, - "scripts": { - "preversion": "npm test", - "version": "npm run build && git add dist/*", - "postversion": "git push && git push --tags", - "clean": "rimraf .nyc_output coverage", - "coverage": "nyc report --reporter lcov && opener coverage/lcov-report/index.html", - "lint": "eslint src test scripts --ext .js,.mjs", - "build": "rollup -c scripts/rollup.config.js", - "pretest": "npm run lint", - "test": "run-s test:*", - "test:mocha": "nyc --require ./scripts/babel-register mocha test/*.mjs", - "test:karma": "karma start scripts/karma.conf.js --single-run", - "watch": "run-p watch:*", - "watch:mocha": "mocha test/*.mjs --require ./scripts/babel-register --watch --watch-extensions js,mjs --growl", - "watch:karma": "karma start scripts/karma.conf.js --watch", - "codecov": "codecov" - }, - "devDependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/preset-env": "^7.2.3", - "@babel/register": "^7.0.0", - "@mysticatea/eslint-plugin": "^8.0.1", - "@mysticatea/spy": "^0.1.2", - "assert": "^1.4.1", - "codecov": "^3.1.0", - "eslint": "^5.12.1", - "karma": "^3.1.4", - "karma-chrome-launcher": "^2.2.0", - "karma-coverage": "^1.1.2", - "karma-firefox-launcher": "^1.0.0", - "karma-growl-reporter": "^1.0.0", - "karma-ie-launcher": "^1.0.0", - "karma-mocha": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.0-rc.2", - "mocha": "^5.2.0", - "npm-run-all": "^4.1.5", - "nyc": "^13.1.0", - "opener": "^1.5.1", - "rimraf": "^2.6.3", - "rollup": "^1.1.1", - "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-babel-minify": "^7.0.0", - "rollup-plugin-commonjs": "^9.2.0", - "rollup-plugin-json": "^3.1.0", - "rollup-plugin-node-resolve": "^4.0.0", - "rollup-watch": "^4.3.1", - "type-tester": "^1.0.0", - "typescript": "^3.2.4" - }, - "repository": { - "type": "git", - "url": "https://github.com/mysticatea/event-target-shim.git" - }, - "keywords": [ - "w3c", - "whatwg", - "eventtarget", - "event", - "events", - "shim" - ], - "author": "Toru Nagashima", - "license": "MIT", - "bugs": { - "url": "https://github.com/mysticatea/event-target-shim/issues" - }, - "homepage": "https://github.com/mysticatea/event-target-shim" -} diff --git a/build/node_modules/eventemitter3/LICENSE b/build/node_modules/eventemitter3/LICENSE deleted file mode 100644 index abcbd54e..00000000 --- a/build/node_modules/eventemitter3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Arnout Kazemier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/eventemitter3/README.md b/build/node_modules/eventemitter3/README.md deleted file mode 100644 index aba7e180..00000000 --- a/build/node_modules/eventemitter3/README.md +++ /dev/null @@ -1,94 +0,0 @@ -# EventEmitter3 - -[![Version npm](https://img.shields.io/npm/v/eventemitter3.svg?style=flat-square)](https://www.npmjs.com/package/eventemitter3)[![Build Status](https://img.shields.io/travis/primus/eventemitter3/master.svg?style=flat-square)](https://travis-ci.org/primus/eventemitter3)[![Dependencies](https://img.shields.io/david/primus/eventemitter3.svg?style=flat-square)](https://david-dm.org/primus/eventemitter3)[![Coverage Status](https://img.shields.io/coveralls/primus/eventemitter3/master.svg?style=flat-square)](https://coveralls.io/r/primus/eventemitter3?branch=master)[![IRC channel](https://img.shields.io/badge/IRC-irc.freenode.net%23primus-00a8ff.svg?style=flat-square)](https://webchat.freenode.net/?channels=primus) - -[![Sauce Test Status](https://saucelabs.com/browser-matrix/eventemitter3.svg)](https://saucelabs.com/u/eventemitter3) - -EventEmitter3 is a high performance EventEmitter. It has been micro-optimized -for various of code paths making this, one of, if not the fastest EventEmitter -available for Node.js and browsers. The module is API compatible with the -EventEmitter that ships by default with Node.js but there are some slight -differences: - -- Domain support has been removed. -- We do not `throw` an error when you emit an `error` event and nobody is - listening. -- The `newListener` and `removeListener` events have been removed as they - are useful only in some uncommon use-cases. -- The `setMaxListeners`, `getMaxListeners`, `prependListener` and - `prependOnceListener` methods are not available. -- Support for custom context for events so there is no need to use `fn.bind`. -- The `removeListener` method removes all matching listeners, not only the - first. - -It's a drop in replacement for existing EventEmitters, but just faster. Free -performance, who wouldn't want that? The EventEmitter is written in EcmaScript 3 -so it will work in the oldest browsers and node versions that you need to -support. - -## Installation - -```bash -$ npm install --save eventemitter3 -``` - -## CDN - -Recommended CDN: - -```text -https://unpkg.com/eventemitter3@latest/umd/eventemitter3.min.js -``` - -## Usage - -After installation the only thing you need to do is require the module: - -```js -var EventEmitter = require('eventemitter3'); -``` - -And you're ready to create your own EventEmitter instances. For the API -documentation, please follow the official Node.js documentation: - -http://nodejs.org/api/events.html - -### Contextual emits - -We've upgraded the API of the `EventEmitter.on`, `EventEmitter.once` and -`EventEmitter.removeListener` to accept an extra argument which is the `context` -or `this` value that should be set for the emitted events. This means you no -longer have the overhead of an event that required `fn.bind` in order to get a -custom `this` value. - -```js -var EE = new EventEmitter() - , context = { foo: 'bar' }; - -function emitted() { - console.log(this === context); // true -} - -EE.once('event-name', emitted, context); -EE.on('another-event', emitted, context); -EE.removeListener('another-event', emitted, context); -``` - -### Tests and benchmarks - -This module is well tested. You can run: - -- `npm test` to run the tests under Node.js. -- `npm run test-browser` to run the tests in real browsers via Sauce Labs. - -We also have a set of benchmarks to compare EventEmitter3 with some available -alternatives. To run the benchmarks run `npm run benchmark`. - -Tests and benchmarks are not included in the npm package. If you want to play -with them you have to clone the GitHub repository. -Note that you will have to run an additional `npm i` in the benchmarks folder -before `npm run benchmark`. - -## License - -[MIT](LICENSE) diff --git a/build/node_modules/eventemitter3/index.d.ts b/build/node_modules/eventemitter3/index.d.ts deleted file mode 100644 index 118f68bb..00000000 --- a/build/node_modules/eventemitter3/index.d.ts +++ /dev/null @@ -1,134 +0,0 @@ -/** - * Minimal `EventEmitter` interface that is molded against the Node.js - * `EventEmitter` interface. - */ -declare class EventEmitter< - EventTypes extends EventEmitter.ValidEventTypes = string | symbol, - Context extends any = any -> { - static prefixed: string | boolean; - - /** - * Return an array listing the events for which the emitter has registered - * listeners. - */ - eventNames(): Array>; - - /** - * Return the listeners registered for a given event. - */ - listeners>( - event: T - ): Array>; - - /** - * Return the number of listeners listening to a given event. - */ - listenerCount(event: EventEmitter.EventNames): number; - - /** - * Calls each of the listeners registered for a given event. - */ - emit>( - event: T, - ...args: EventEmitter.EventArgs - ): boolean; - - /** - * Add a listener for a given event. - */ - on>( - event: T, - fn: EventEmitter.EventListener, - context?: Context - ): this; - addListener>( - event: T, - fn: EventEmitter.EventListener, - context?: Context - ): this; - - /** - * Add a one-time listener for a given event. - */ - once>( - event: T, - fn: EventEmitter.EventListener, - context?: Context - ): this; - - /** - * Remove the listeners of a given event. - */ - removeListener>( - event: T, - fn?: EventEmitter.EventListener, - context?: Context, - once?: boolean - ): this; - off>( - event: T, - fn?: EventEmitter.EventListener, - context?: Context, - once?: boolean - ): this; - - /** - * Remove all listeners, or those of the specified event. - */ - removeAllListeners(event?: EventEmitter.EventNames): this; -} - -declare namespace EventEmitter { - export interface ListenerFn { - (...args: Args): void; - } - - export interface EventEmitterStatic { - new < - EventTypes extends ValidEventTypes = string | symbol, - Context = any - >(): EventEmitter; - } - - /** - * `object` should be in either of the following forms: - * ``` - * interface EventTypes { - * 'event-with-parameters': any[] - * 'event-with-example-handler': (...args: any[]) => void - * } - * ``` - */ - export type ValidEventTypes = string | symbol | object; - - export type EventNames = T extends string | symbol - ? T - : keyof T; - - export type ArgumentMap = { - [K in keyof T]: T[K] extends (...args: any[]) => void - ? Parameters - : T[K] extends any[] - ? T[K] - : any[]; - }; - - export type EventListener< - T extends ValidEventTypes, - K extends EventNames - > = T extends string | symbol - ? (...args: any[]) => void - : ( - ...args: ArgumentMap>[Extract] - ) => void; - - export type EventArgs< - T extends ValidEventTypes, - K extends EventNames - > = Parameters>; - - export const EventEmitter: EventEmitterStatic; -} - -export = EventEmitter; diff --git a/build/node_modules/eventemitter3/index.js b/build/node_modules/eventemitter3/index.js deleted file mode 100644 index 6ea485c4..00000000 --- a/build/node_modules/eventemitter3/index.js +++ /dev/null @@ -1,336 +0,0 @@ -'use strict'; - -var has = Object.prototype.hasOwnProperty - , prefix = '~'; - -/** - * Constructor to create a storage for our `EE` objects. - * An `Events` instance is a plain object whose properties are event names. - * - * @constructor - * @private - */ -function Events() {} - -// -// We try to not inherit from `Object.prototype`. In some engines creating an -// instance in this way is faster than calling `Object.create(null)` directly. -// If `Object.create(null)` is not supported we prefix the event names with a -// character to make sure that the built-in object properties are not -// overridden or used as an attack vector. -// -if (Object.create) { - Events.prototype = Object.create(null); - - // - // This hack is needed because the `__proto__` property is still inherited in - // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. - // - if (!new Events().__proto__) prefix = false; -} - -/** - * Representation of a single event listener. - * - * @param {Function} fn The listener function. - * @param {*} context The context to invoke the listener with. - * @param {Boolean} [once=false] Specify if the listener is a one-time listener. - * @constructor - * @private - */ -function EE(fn, context, once) { - this.fn = fn; - this.context = context; - this.once = once || false; -} - -/** - * Add a listener for a given event. - * - * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. - * @param {(String|Symbol)} event The event name. - * @param {Function} fn The listener function. - * @param {*} context The context to invoke the listener with. - * @param {Boolean} once Specify if the listener is a one-time listener. - * @returns {EventEmitter} - * @private - */ -function addListener(emitter, event, fn, context, once) { - if (typeof fn !== 'function') { - throw new TypeError('The listener must be a function'); - } - - var listener = new EE(fn, context || emitter, once) - , evt = prefix ? prefix + event : event; - - if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; - else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); - else emitter._events[evt] = [emitter._events[evt], listener]; - - return emitter; -} - -/** - * Clear event by name. - * - * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. - * @param {(String|Symbol)} evt The Event name. - * @private - */ -function clearEvent(emitter, evt) { - if (--emitter._eventsCount === 0) emitter._events = new Events(); - else delete emitter._events[evt]; -} - -/** - * Minimal `EventEmitter` interface that is molded against the Node.js - * `EventEmitter` interface. - * - * @constructor - * @public - */ -function EventEmitter() { - this._events = new Events(); - this._eventsCount = 0; -} - -/** - * Return an array listing the events for which the emitter has registered - * listeners. - * - * @returns {Array} - * @public - */ -EventEmitter.prototype.eventNames = function eventNames() { - var names = [] - , events - , name; - - if (this._eventsCount === 0) return names; - - for (name in (events = this._events)) { - if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); - } - - if (Object.getOwnPropertySymbols) { - return names.concat(Object.getOwnPropertySymbols(events)); - } - - return names; -}; - -/** - * Return the listeners registered for a given event. - * - * @param {(String|Symbol)} event The event name. - * @returns {Array} The registered listeners. - * @public - */ -EventEmitter.prototype.listeners = function listeners(event) { - var evt = prefix ? prefix + event : event - , handlers = this._events[evt]; - - if (!handlers) return []; - if (handlers.fn) return [handlers.fn]; - - for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) { - ee[i] = handlers[i].fn; - } - - return ee; -}; - -/** - * Return the number of listeners listening to a given event. - * - * @param {(String|Symbol)} event The event name. - * @returns {Number} The number of listeners. - * @public - */ -EventEmitter.prototype.listenerCount = function listenerCount(event) { - var evt = prefix ? prefix + event : event - , listeners = this._events[evt]; - - if (!listeners) return 0; - if (listeners.fn) return 1; - return listeners.length; -}; - -/** - * Calls each of the listeners registered for a given event. - * - * @param {(String|Symbol)} event The event name. - * @returns {Boolean} `true` if the event had listeners, else `false`. - * @public - */ -EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { - var evt = prefix ? prefix + event : event; - - if (!this._events[evt]) return false; - - var listeners = this._events[evt] - , len = arguments.length - , args - , i; - - if (listeners.fn) { - if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); - - switch (len) { - case 1: return listeners.fn.call(listeners.context), true; - case 2: return listeners.fn.call(listeners.context, a1), true; - case 3: return listeners.fn.call(listeners.context, a1, a2), true; - case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; - case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; - case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; - } - - for (i = 1, args = new Array(len -1); i < len; i++) { - args[i - 1] = arguments[i]; - } - - listeners.fn.apply(listeners.context, args); - } else { - var length = listeners.length - , j; - - for (i = 0; i < length; i++) { - if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); - - switch (len) { - case 1: listeners[i].fn.call(listeners[i].context); break; - case 2: listeners[i].fn.call(listeners[i].context, a1); break; - case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break; - case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break; - default: - if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { - args[j - 1] = arguments[j]; - } - - listeners[i].fn.apply(listeners[i].context, args); - } - } - } - - return true; -}; - -/** - * Add a listener for a given event. - * - * @param {(String|Symbol)} event The event name. - * @param {Function} fn The listener function. - * @param {*} [context=this] The context to invoke the listener with. - * @returns {EventEmitter} `this`. - * @public - */ -EventEmitter.prototype.on = function on(event, fn, context) { - return addListener(this, event, fn, context, false); -}; - -/** - * Add a one-time listener for a given event. - * - * @param {(String|Symbol)} event The event name. - * @param {Function} fn The listener function. - * @param {*} [context=this] The context to invoke the listener with. - * @returns {EventEmitter} `this`. - * @public - */ -EventEmitter.prototype.once = function once(event, fn, context) { - return addListener(this, event, fn, context, true); -}; - -/** - * Remove the listeners of a given event. - * - * @param {(String|Symbol)} event The event name. - * @param {Function} fn Only remove the listeners that match this function. - * @param {*} context Only remove the listeners that have this context. - * @param {Boolean} once Only remove one-time listeners. - * @returns {EventEmitter} `this`. - * @public - */ -EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { - var evt = prefix ? prefix + event : event; - - if (!this._events[evt]) return this; - if (!fn) { - clearEvent(this, evt); - return this; - } - - var listeners = this._events[evt]; - - if (listeners.fn) { - if ( - listeners.fn === fn && - (!once || listeners.once) && - (!context || listeners.context === context) - ) { - clearEvent(this, evt); - } - } else { - for (var i = 0, events = [], length = listeners.length; i < length; i++) { - if ( - listeners[i].fn !== fn || - (once && !listeners[i].once) || - (context && listeners[i].context !== context) - ) { - events.push(listeners[i]); - } - } - - // - // Reset the array, or remove it completely if we have no more listeners. - // - if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; - else clearEvent(this, evt); - } - - return this; -}; - -/** - * Remove all listeners, or those of the specified event. - * - * @param {(String|Symbol)} [event] The event name. - * @returns {EventEmitter} `this`. - * @public - */ -EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { - var evt; - - if (event) { - evt = prefix ? prefix + event : event; - if (this._events[evt]) clearEvent(this, evt); - } else { - this._events = new Events(); - this._eventsCount = 0; - } - - return this; -}; - -// -// Alias methods names because people roll like that. -// -EventEmitter.prototype.off = EventEmitter.prototype.removeListener; -EventEmitter.prototype.addListener = EventEmitter.prototype.on; - -// -// Expose the prefix. -// -EventEmitter.prefixed = prefix; - -// -// Allow `EventEmitter` to be imported as module namespace. -// -EventEmitter.EventEmitter = EventEmitter; - -// -// Expose the module. -// -if ('undefined' !== typeof module) { - module.exports = EventEmitter; -} diff --git a/build/node_modules/eventemitter3/package.json b/build/node_modules/eventemitter3/package.json deleted file mode 100644 index 3c575b46..00000000 --- a/build/node_modules/eventemitter3/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "eventemitter3", - "version": "4.0.7", - "description": "EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.", - "main": "index.js", - "typings": "index.d.ts", - "scripts": { - "browserify": "rm -rf umd && mkdir umd && browserify index.js -s EventEmitter3 -o umd/eventemitter3.js", - "minify": "uglifyjs umd/eventemitter3.js --source-map -cm -o umd/eventemitter3.min.js", - "benchmark": "find benchmarks/run -name '*.js' -exec benchmarks/start.sh {} \\;", - "test": "nyc --reporter=html --reporter=text mocha test/test.js", - "prepublishOnly": "npm run browserify && npm run minify", - "test-browser": "node test/browser.js" - }, - "files": [ - "index.js", - "index.d.ts", - "umd" - ], - "repository": { - "type": "git", - "url": "git://github.com/primus/eventemitter3.git" - }, - "keywords": [ - "EventEmitter", - "EventEmitter2", - "EventEmitter3", - "Events", - "addEventListener", - "addListener", - "emit", - "emits", - "emitter", - "event", - "once", - "pub/sub", - "publish", - "reactor", - "subscribe" - ], - "author": "Arnout Kazemier", - "license": "MIT", - "bugs": { - "url": "https://github.com/primus/eventemitter3/issues" - }, - "devDependencies": { - "assume": "^2.2.0", - "browserify": "^16.5.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0", - "pre-commit": "^1.2.0", - "sauce-browsers": "^2.0.0", - "sauce-test": "^1.3.3", - "uglify-js": "^3.9.0" - } -} diff --git a/build/node_modules/events/.airtap.yml b/build/node_modules/events/.airtap.yml deleted file mode 100644 index c7a8a87d..00000000 --- a/build/node_modules/events/.airtap.yml +++ /dev/null @@ -1,15 +0,0 @@ -sauce_connect: true -loopback: airtap.local -browsers: - - name: chrome - version: latest - - name: firefox - version: latest - - name: safari - version: 9..latest - - name: iphone - version: latest - - name: ie - version: 9..latest - - name: microsoftedge - version: 13..latest diff --git a/build/node_modules/events/.travis.yml b/build/node_modules/events/.travis.yml deleted file mode 100644 index 486dc3c4..00000000 --- a/build/node_modules/events/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -dist: xenial -os: linux -language: node_js -node_js: - - 'stable' - - 'lts/*' - - '0.12' -script: - - npm test - - if [ "${TRAVIS_PULL_REQUEST}" = "false" ] && [ "${TRAVIS_NODE_VERSION}" = "stable" ]; then npm run test:browsers; fi -addons: - sauce_connect: true - hosts: - - airtap.local -env: - global: - - secure: XcBiD8yReflut9q7leKsigDZ0mI3qTKH+QrNVY8DaqlomJOZw8aOrVuX9Jz12l86ZJ41nbxmKnRNkFzcVr9mbP9YaeTb3DpeOBWmvaoSfud9Wnc16VfXtc1FCcwDhSVcSiM3UtnrmFU5cH+Dw1LPh5PbfylYOS/nJxUvG0FFLqI= - - secure: jNWtEbqhUdQ0xXDHvCYfUbKYeJCi6a7B4LsrcxYCyWWn4NIgncE5x2YbB+FSUUFVYfz0dsn5RKP1oHB99f0laUEo18HBNkrAS/rtyOdVzcpJjbQ6kgSILGjnJD/Ty1B57Rcz3iyev5Y7bLZ6Y1FbDnk/i9/l0faOGz8vTC3Vdkc= diff --git a/build/node_modules/events/History.md b/build/node_modules/events/History.md deleted file mode 100644 index f48bf210..00000000 --- a/build/node_modules/events/History.md +++ /dev/null @@ -1,118 +0,0 @@ -# 3.3.0 - - - Support EventTarget emitters in `events.once` from Node.js 12.11.0. - - Now you can use the `events.once` function with objects that implement the EventTarget interface. This interface is used widely in - the DOM and other web APIs. - - ```js - var events = require('events'); - var assert = require('assert'); - - async function connect() { - var ws = new WebSocket('wss://example.com'); - await events.once(ws, 'open'); - assert(ws.readyState === WebSocket.OPEN); - } - - async function onClick() { - await events.once(document.body, 'click'); - alert('you clicked the page!'); - } - ``` - -# 3.2.0 - - - Add `events.once` from Node.js 11.13.0. - - To use this function, Promises must be supported in the environment. Use a polyfill like `es6-promise` if you support older browsers. - -# 3.1.0 (2020-01-08) - -`events` now matches the Node.js 11.12.0 API. - - - pass through return value in wrapped `emitter.once()` listeners - - Now, this works: - ```js - emitter.once('myevent', function () { return 1; }); - var listener = emitter.rawListeners('myevent')[0] - assert(listener() === 1); - ``` - Previously, `listener()` would return undefined regardless of the implementation. - - Ported from https://github.com/nodejs/node/commit/acc506c2d2771dab8d7bba6d3452bc5180dff7cf - - - Reduce code duplication in listener type check ([#67](https://github.com/Gozala/events/pull/67) by [@friederbluemle](https://github.com/friederbluemle)). - - Improve `emitter.once()` performance in some engines - -# 3.0.0 (2018-05-25) - -**This version drops support for IE8.** `events` no longer includes polyfills -for ES5 features. If you need to support older environments, use an ES5 shim -like [es5-shim](https://npmjs.com/package/es5-shim). Both the shim and sham -versions of es5-shim are necessary. - - - Update to events code from Node.js 10.x - - (semver major) Adds `off()` method - - Port more tests from Node.js - - Switch browser tests to airtap, making things more reliable - -# 2.1.0 (2018-05-25) - - - add Emitter#rawListeners from Node.js v9.4 - -# 2.0.0 (2018-02-02) - - - Update to events code from node.js 8.x - - Adds `prependListener()` and `prependOnceListener()` - - Adds `eventNames()` method - - (semver major) Unwrap `once()` listeners in `listeners()` - - copy tests from node.js - -Note that this version doubles the gzipped size, jumping from 1.1KB to 2.1KB, -due to new methods and runtime performance improvements. Be aware of that when -upgrading. - -# 1.1.1 (2016-06-22) - - - add more context to errors if they are not instanceof Error - -# 1.1.0 (2015-09-29) - - - add Emitter#listerCount (to match node v4 api) - -# 1.0.2 (2014-08-28) - - - remove un-reachable code - - update devDeps - -## 1.0.1 / 2014-05-11 - - - check for console.trace before using it - -## 1.0.0 / 2013-12-10 - - - Update to latest events code from node.js 0.10 - - copy tests from node.js - -## 0.4.0 / 2011-07-03 ## - - - Switching to graphquire@0.8.0 - -## 0.3.0 / 2011-07-03 ## - - - Switching to URL based module require. - -## 0.2.0 / 2011-06-10 ## - - - Simplified package structure. - - Graphquire for dependency management. - -## 0.1.1 / 2011-05-16 ## - - - Unhandled errors are logged via console.error - -## 0.1.0 / 2011-04-22 ## - - - Initial release diff --git a/build/node_modules/events/LICENSE b/build/node_modules/events/LICENSE deleted file mode 100644 index 52ed3b0a..00000000 --- a/build/node_modules/events/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT - -Copyright Joyent, Inc. and other Node contributors. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/events/Readme.md b/build/node_modules/events/Readme.md deleted file mode 100644 index 80849c0b..00000000 --- a/build/node_modules/events/Readme.md +++ /dev/null @@ -1,50 +0,0 @@ -# events [![Build Status](https://travis-ci.org/Gozala/events.png?branch=master)](https://travis-ci.org/Gozala/events) - -> Node's event emitter for all engines. - -This implements the Node.js [`events`][node.js docs] module for environments that do not have it, like browsers. - -> `events` currently matches the **Node.js 11.13.0** API. - -Note that the `events` module uses ES5 features. If you need to support very old browsers like IE8, use a shim like [`es5-shim`](https://www.npmjs.com/package/es5-shim). You need both the shim and the sham versions of `es5-shim`. - -This module is maintained, but only by very few people. If you'd like to help, let us know in the [Maintainer Needed](https://github.com/Gozala/events/issues/43) issue! - -## Install - -You usually do not have to install `events` yourself! If your code runs in Node.js, `events` is built in. If your code runs in the browser, bundlers like [browserify](https://github.com/browserify/browserify) or [webpack](https://github.com/webpack/webpack) also include the `events` module. - -But if none of those apply, with npm do: - -``` -npm install events -``` - -## Usage - -```javascript -var EventEmitter = require('events') - -var ee = new EventEmitter() -ee.on('message', function (text) { - console.log(text) -}) -ee.emit('message', 'hello world') -``` - -## API - -See the [Node.js EventEmitter docs][node.js docs]. `events` currently matches the Node.js 11.13.0 API. - -## Contributing - -PRs are very welcome! The main way to contribute to `events` is by porting features, bugfixes and tests from Node.js. Ideally, code contributions to this module are copy-pasted from Node.js and transpiled to ES5, rather than reimplemented from scratch. Matching the Node.js code as closely as possible makes maintenance simpler when new changes land in Node.js. -This module intends to provide exactly the same API as Node.js, so features that are not available in the core `events` module will not be accepted. Feature requests should instead be directed at [nodejs/node](https://github.com/nodejs/node) and will be added to this module once they are implemented in Node.js. - -If there is a difference in behaviour between Node.js's `events` module and this module, please open an issue! - -## License - -[MIT](./LICENSE) - -[node.js docs]: https://nodejs.org/dist/v11.13.0/docs/api/events.html diff --git a/build/node_modules/events/events.js b/build/node_modules/events/events.js deleted file mode 100644 index 34b69a0b..00000000 --- a/build/node_modules/events/events.js +++ /dev/null @@ -1,497 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -var R = typeof Reflect === 'object' ? Reflect : null -var ReflectApply = R && typeof R.apply === 'function' - ? R.apply - : function ReflectApply(target, receiver, args) { - return Function.prototype.apply.call(target, receiver, args); - } - -var ReflectOwnKeys -if (R && typeof R.ownKeys === 'function') { - ReflectOwnKeys = R.ownKeys -} else if (Object.getOwnPropertySymbols) { - ReflectOwnKeys = function ReflectOwnKeys(target) { - return Object.getOwnPropertyNames(target) - .concat(Object.getOwnPropertySymbols(target)); - }; -} else { - ReflectOwnKeys = function ReflectOwnKeys(target) { - return Object.getOwnPropertyNames(target); - }; -} - -function ProcessEmitWarning(warning) { - if (console && console.warn) console.warn(warning); -} - -var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) { - return value !== value; -} - -function EventEmitter() { - EventEmitter.init.call(this); -} -module.exports = EventEmitter; -module.exports.once = once; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._eventsCount = 0; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -var defaultMaxListeners = 10; - -function checkListener(listener) { - if (typeof listener !== 'function') { - throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); - } -} - -Object.defineProperty(EventEmitter, 'defaultMaxListeners', { - enumerable: true, - get: function() { - return defaultMaxListeners; - }, - set: function(arg) { - if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) { - throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.'); - } - defaultMaxListeners = arg; - } -}); - -EventEmitter.init = function() { - - if (this._events === undefined || - this._events === Object.getPrototypeOf(this)._events) { - this._events = Object.create(null); - this._eventsCount = 0; - } - - this._maxListeners = this._maxListeners || undefined; -}; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { - if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) { - throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.'); - } - this._maxListeners = n; - return this; -}; - -function _getMaxListeners(that) { - if (that._maxListeners === undefined) - return EventEmitter.defaultMaxListeners; - return that._maxListeners; -} - -EventEmitter.prototype.getMaxListeners = function getMaxListeners() { - return _getMaxListeners(this); -}; - -EventEmitter.prototype.emit = function emit(type) { - var args = []; - for (var i = 1; i < arguments.length; i++) args.push(arguments[i]); - var doError = (type === 'error'); - - var events = this._events; - if (events !== undefined) - doError = (doError && events.error === undefined); - else if (!doError) - return false; - - // If there is no 'error' event listener then throw. - if (doError) { - var er; - if (args.length > 0) - er = args[0]; - if (er instanceof Error) { - // Note: The comments on the `throw` lines are intentional, they show - // up in Node's output if this results in an unhandled exception. - throw er; // Unhandled 'error' event - } - // At least give some kind of context to the user - var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : '')); - err.context = er; - throw err; // Unhandled 'error' event - } - - var handler = events[type]; - - if (handler === undefined) - return false; - - if (typeof handler === 'function') { - ReflectApply(handler, this, args); - } else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - ReflectApply(listeners[i], this, args); - } - - return true; -}; - -function _addListener(target, type, listener, prepend) { - var m; - var events; - var existing; - - checkListener(listener); - - events = target._events; - if (events === undefined) { - events = target._events = Object.create(null); - target._eventsCount = 0; - } else { - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (events.newListener !== undefined) { - target.emit('newListener', type, - listener.listener ? listener.listener : listener); - - // Re-assign `events` because a newListener handler could have caused the - // this._events to be assigned to a new object - events = target._events; - } - existing = events[type]; - } - - if (existing === undefined) { - // Optimize the case of one listener. Don't need the extra array object. - existing = events[type] = listener; - ++target._eventsCount; - } else { - if (typeof existing === 'function') { - // Adding the second element, need to change to array. - existing = events[type] = - prepend ? [listener, existing] : [existing, listener]; - // If we've already got an array, just append. - } else if (prepend) { - existing.unshift(listener); - } else { - existing.push(listener); - } - - // Check for listener leak - m = _getMaxListeners(target); - if (m > 0 && existing.length > m && !existing.warned) { - existing.warned = true; - // No error code for this since it is a Warning - // eslint-disable-next-line no-restricted-syntax - var w = new Error('Possible EventEmitter memory leak detected. ' + - existing.length + ' ' + String(type) + ' listeners ' + - 'added. Use emitter.setMaxListeners() to ' + - 'increase limit'); - w.name = 'MaxListenersExceededWarning'; - w.emitter = target; - w.type = type; - w.count = existing.length; - ProcessEmitWarning(w); - } - } - - return target; -} - -EventEmitter.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false); -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.prependListener = - function prependListener(type, listener) { - return _addListener(this, type, listener, true); - }; - -function onceWrapper() { - if (!this.fired) { - this.target.removeListener(this.type, this.wrapFn); - this.fired = true; - if (arguments.length === 0) - return this.listener.call(this.target); - return this.listener.apply(this.target, arguments); - } -} - -function _onceWrap(target, type, listener) { - var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; - var wrapped = onceWrapper.bind(state); - wrapped.listener = listener; - state.wrapFn = wrapped; - return wrapped; -} - -EventEmitter.prototype.once = function once(type, listener) { - checkListener(listener); - this.on(type, _onceWrap(this, type, listener)); - return this; -}; - -EventEmitter.prototype.prependOnceListener = - function prependOnceListener(type, listener) { - checkListener(listener); - this.prependListener(type, _onceWrap(this, type, listener)); - return this; - }; - -// Emits a 'removeListener' event if and only if the listener was removed. -EventEmitter.prototype.removeListener = - function removeListener(type, listener) { - var list, events, position, i, originalListener; - - checkListener(listener); - - events = this._events; - if (events === undefined) - return this; - - list = events[type]; - if (list === undefined) - return this; - - if (list === listener || list.listener === listener) { - if (--this._eventsCount === 0) - this._events = Object.create(null); - else { - delete events[type]; - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener); - } - } else if (typeof list !== 'function') { - position = -1; - - for (i = list.length - 1; i >= 0; i--) { - if (list[i] === listener || list[i].listener === listener) { - originalListener = list[i].listener; - position = i; - break; - } - } - - if (position < 0) - return this; - - if (position === 0) - list.shift(); - else { - spliceOne(list, position); - } - - if (list.length === 1) - events[type] = list[0]; - - if (events.removeListener !== undefined) - this.emit('removeListener', type, originalListener || listener); - } - - return this; - }; - -EventEmitter.prototype.off = EventEmitter.prototype.removeListener; - -EventEmitter.prototype.removeAllListeners = - function removeAllListeners(type) { - var listeners, events, i; - - events = this._events; - if (events === undefined) - return this; - - // not listening for removeListener, no need to emit - if (events.removeListener === undefined) { - if (arguments.length === 0) { - this._events = Object.create(null); - this._eventsCount = 0; - } else if (events[type] !== undefined) { - if (--this._eventsCount === 0) - this._events = Object.create(null); - else - delete events[type]; - } - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - var keys = Object.keys(events); - var key; - for (i = 0; i < keys.length; ++i) { - key = keys[i]; - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = Object.create(null); - this._eventsCount = 0; - return this; - } - - listeners = events[type]; - - if (typeof listeners === 'function') { - this.removeListener(type, listeners); - } else if (listeners !== undefined) { - // LIFO order - for (i = listeners.length - 1; i >= 0; i--) { - this.removeListener(type, listeners[i]); - } - } - - return this; - }; - -function _listeners(target, type, unwrap) { - var events = target._events; - - if (events === undefined) - return []; - - var evlistener = events[type]; - if (evlistener === undefined) - return []; - - if (typeof evlistener === 'function') - return unwrap ? [evlistener.listener || evlistener] : [evlistener]; - - return unwrap ? - unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); -} - -EventEmitter.prototype.listeners = function listeners(type) { - return _listeners(this, type, true); -}; - -EventEmitter.prototype.rawListeners = function rawListeners(type) { - return _listeners(this, type, false); -}; - -EventEmitter.listenerCount = function(emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type); - } else { - return listenerCount.call(emitter, type); - } -}; - -EventEmitter.prototype.listenerCount = listenerCount; -function listenerCount(type) { - var events = this._events; - - if (events !== undefined) { - var evlistener = events[type]; - - if (typeof evlistener === 'function') { - return 1; - } else if (evlistener !== undefined) { - return evlistener.length; - } - } - - return 0; -} - -EventEmitter.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; -}; - -function arrayClone(arr, n) { - var copy = new Array(n); - for (var i = 0; i < n; ++i) - copy[i] = arr[i]; - return copy; -} - -function spliceOne(list, index) { - for (; index + 1 < list.length; index++) - list[index] = list[index + 1]; - list.pop(); -} - -function unwrapListeners(arr) { - var ret = new Array(arr.length); - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i]; - } - return ret; -} - -function once(emitter, name) { - return new Promise(function (resolve, reject) { - function errorListener(err) { - emitter.removeListener(name, resolver); - reject(err); - } - - function resolver() { - if (typeof emitter.removeListener === 'function') { - emitter.removeListener('error', errorListener); - } - resolve([].slice.call(arguments)); - }; - - eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); - if (name !== 'error') { - addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true }); - } - }); -} - -function addErrorHandlerIfEventEmitter(emitter, handler, flags) { - if (typeof emitter.on === 'function') { - eventTargetAgnosticAddListener(emitter, 'error', handler, flags); - } -} - -function eventTargetAgnosticAddListener(emitter, name, listener, flags) { - if (typeof emitter.on === 'function') { - if (flags.once) { - emitter.once(name, listener); - } else { - emitter.on(name, listener); - } - } else if (typeof emitter.addEventListener === 'function') { - // EventTarget does not have `error` event semantics like Node - // EventEmitters, we do not listen for `error` events here. - emitter.addEventListener(name, function wrapListener(arg) { - // IE does not have builtin `{ once: true }` support so we - // have to do it manually. - if (flags.once) { - emitter.removeEventListener(name, wrapListener); - } - listener(arg); - }); - } else { - throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter); - } -} diff --git a/build/node_modules/events/package.json b/build/node_modules/events/package.json deleted file mode 100644 index b9580d88..00000000 --- a/build/node_modules/events/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "events", - "version": "3.3.0", - "description": "Node's event emitter for all engines.", - "keywords": [ - "events", - "eventEmitter", - "eventDispatcher", - "listeners" - ], - "author": "Irakli Gozalishvili (http://jeditoolkit.com)", - "repository": { - "type": "git", - "url": "git://github.com/Gozala/events.git", - "web": "https://github.com/Gozala/events" - }, - "bugs": { - "url": "http://github.com/Gozala/events/issues/" - }, - "main": "./events.js", - "engines": { - "node": ">=0.8.x" - }, - "devDependencies": { - "airtap": "^1.0.0", - "functions-have-names": "^1.2.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "isarray": "^2.0.5", - "tape": "^5.0.0" - }, - "scripts": { - "test": "node tests/index.js", - "test:browsers": "airtap -- tests/index.js" - }, - "license": "MIT" -} diff --git a/build/node_modules/events/security.md b/build/node_modules/events/security.md deleted file mode 100644 index a14ace6a..00000000 --- a/build/node_modules/events/security.md +++ /dev/null @@ -1,10 +0,0 @@ -# Security Policy - -## Supported Versions -Only the latest major version is supported at any given time. - -## Reporting a Vulnerability - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. diff --git a/build/node_modules/execa/index.d.ts b/build/node_modules/execa/index.d.ts deleted file mode 100644 index 417d5355..00000000 --- a/build/node_modules/execa/index.d.ts +++ /dev/null @@ -1,564 +0,0 @@ -/// -import {ChildProcess} from 'child_process'; -import {Stream, Readable as ReadableStream} from 'stream'; - -declare namespace execa { - type StdioOption = - | 'pipe' - | 'ipc' - | 'ignore' - | 'inherit' - | Stream - | number - | undefined; - - interface CommonOptions { - /** - Kill the spawned process when the parent process exits unless either: - - the spawned process is [`detached`](https://nodejs.org/api/child_process.html#child_process_options_detached) - - the parent process is terminated abruptly, for example, with `SIGKILL` as opposed to `SIGTERM` or a normal exit - - @default true - */ - readonly cleanup?: boolean; - - /** - Prefer locally installed binaries when looking for a binary to execute. - - If you `$ npm install foo`, you can then `execa('foo')`. - - @default false - */ - readonly preferLocal?: boolean; - - /** - Preferred path to find locally installed binaries in (use with `preferLocal`). - - @default process.cwd() - */ - readonly localDir?: string; - - /** - Path to the Node.js executable to use in child processes. - - This can be either an absolute path or a path relative to the `cwd` option. - - Requires `preferLocal` to be `true`. - - For example, this can be used together with [`get-node`](https://github.com/ehmicky/get-node) to run a specific Node.js version in a child process. - - @default process.execPath - */ - readonly execPath?: string; - - /** - Buffer the output from the spawned process. When set to `false`, you must read the output of `stdout` and `stderr` (or `all` if the `all` option is `true`). Otherwise the returned promise will not be resolved/rejected. - - If the spawned process fails, `error.stdout`, `error.stderr`, and `error.all` will contain the buffered data. - - @default true - */ - readonly buffer?: boolean; - - /** - Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - - @default 'pipe' - */ - readonly stdin?: StdioOption; - - /** - Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - - @default 'pipe' - */ - readonly stdout?: StdioOption; - - /** - Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - - @default 'pipe' - */ - readonly stderr?: StdioOption; - - /** - Setting this to `false` resolves the promise with the error instead of rejecting it. - - @default true - */ - readonly reject?: boolean; - - /** - Add an `.all` property on the promise and the resolved value. The property contains the output of the process with `stdout` and `stderr` interleaved. - - @default false - */ - readonly all?: boolean; - - /** - Strip the final [newline character](https://en.wikipedia.org/wiki/Newline) from the output. - - @default true - */ - readonly stripFinalNewline?: boolean; - - /** - Set to `false` if you don't want to extend the environment variables when providing the `env` property. - - @default true - */ - readonly extendEnv?: boolean; - - /** - Current working directory of the child process. - - @default process.cwd() - */ - readonly cwd?: string; - - /** - Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this. - - @default process.env - */ - readonly env?: NodeJS.ProcessEnv; - - /** - Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified. - */ - readonly argv0?: string; - - /** - Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration. - - @default 'pipe' - */ - readonly stdio?: 'pipe' | 'ignore' | 'inherit' | readonly StdioOption[]; - - /** - Specify the kind of serialization used for sending messages between processes when using the `stdio: 'ipc'` option or `execa.node()`: - - `json`: Uses `JSON.stringify()` and `JSON.parse()`. - - `advanced`: Uses [`v8.serialize()`](https://nodejs.org/api/v8.html#v8_v8_serialize_value) - - Requires Node.js `13.2.0` or later. - - [More info.](https://nodejs.org/api/child_process.html#child_process_advanced_serialization) - - @default 'json' - */ - readonly serialization?: 'json' | 'advanced'; - - /** - Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached). - - @default false - */ - readonly detached?: boolean; - - /** - Sets the user identity of the process. - */ - readonly uid?: number; - - /** - Sets the group identity of the process. - */ - readonly gid?: number; - - /** - If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows. - - We recommend against using this option since it is: - - not cross-platform, encouraging shell-specific syntax. - - slower, because of the additional shell interpretation. - - unsafe, potentially allowing command injection. - - @default false - */ - readonly shell?: boolean | string; - - /** - Specify the character encoding used to decode the `stdout` and `stderr` output. If set to `null`, then `stdout` and `stderr` will be a `Buffer` instead of a string. - - @default 'utf8' - */ - readonly encoding?: EncodingType; - - /** - If `timeout` is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than `timeout` milliseconds. - - @default 0 - */ - readonly timeout?: number; - - /** - Largest amount of data in bytes allowed on `stdout` or `stderr`. Default: 100 MB. - - @default 100_000_000 - */ - readonly maxBuffer?: number; - - /** - Signal value to be used when the spawned process will be killed. - - @default 'SIGTERM' - */ - readonly killSignal?: string | number; - - /** - If `true`, no quoting or escaping of arguments is done on Windows. Ignored on other platforms. This is set to `true` automatically when the `shell` option is `true`. - - @default false - */ - readonly windowsVerbatimArguments?: boolean; - - /** - On Windows, do not create a new console window. Please note this also prevents `CTRL-C` [from working](https://github.com/nodejs/node/issues/29837) on Windows. - - @default true - */ - readonly windowsHide?: boolean; - } - - interface Options extends CommonOptions { - /** - Write some input to the `stdin` of your binary. - */ - readonly input?: string | Buffer | ReadableStream; - } - - interface SyncOptions extends CommonOptions { - /** - Write some input to the `stdin` of your binary. - */ - readonly input?: string | Buffer; - } - - interface NodeOptions extends Options { - /** - The Node.js executable to use. - - @default process.execPath - */ - readonly nodePath?: string; - - /** - List of [CLI options](https://nodejs.org/api/cli.html#cli_options) passed to the Node.js executable. - - @default process.execArgv - */ - readonly nodeOptions?: string[]; - } - - interface ExecaReturnBase { - /** - The file and arguments that were run, for logging purposes. - - This is not escaped and should not be executed directly as a process, including using `execa()` or `execa.command()`. - */ - command: string; - - /** - Same as `command` but escaped. - - This is meant to be copy and pasted into a shell, for debugging purposes. - Since the escaping is fairly basic, this should not be executed directly as a process, including using `execa()` or `execa.command()`. - */ - escapedCommand: string; - - /** - The numeric exit code of the process that was run. - */ - exitCode: number; - - /** - The output of the process on stdout. - */ - stdout: StdoutStderrType; - - /** - The output of the process on stderr. - */ - stderr: StdoutStderrType; - - /** - Whether the process failed to run. - */ - failed: boolean; - - /** - Whether the process timed out. - */ - timedOut: boolean; - - /** - Whether the process was killed. - */ - killed: boolean; - - /** - The name of the signal that was used to terminate the process. For example, `SIGFPE`. - - If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. - */ - signal?: string; - - /** - A human-friendly description of the signal that was used to terminate the process. For example, `Floating point arithmetic error`. - - If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. It is also `undefined` when the signal is very uncommon which should seldomly happen. - */ - signalDescription?: string; - } - - interface ExecaSyncReturnValue - extends ExecaReturnBase { - } - - /** - Result of a child process execution. On success this is a plain object. On failure this is also an `Error` instance. - - The child process fails when: - - its exit code is not `0` - - it was killed with a signal - - timing out - - being canceled - - there's not enough memory or there are already too many child processes - */ - interface ExecaReturnValue - extends ExecaSyncReturnValue { - /** - The output of the process with `stdout` and `stderr` interleaved. - - This is `undefined` if either: - - the `all` option is `false` (default value) - - `execa.sync()` was used - */ - all?: StdoutErrorType; - - /** - Whether the process was canceled. - */ - isCanceled: boolean; - } - - interface ExecaSyncError - extends Error, - ExecaReturnBase { - /** - Error message when the child process failed to run. In addition to the underlying error message, it also contains some information related to why the child process errored. - - The child process stderr then stdout are appended to the end, separated with newlines and not interleaved. - */ - message: string; - - /** - This is the same as the `message` property except it does not include the child process stdout/stderr. - */ - shortMessage: string; - - /** - Original error message. This is the same as the `message` property except it includes neither the child process stdout/stderr nor some additional information added by Execa. - - This is `undefined` unless the child process exited due to an `error` event or a timeout. - */ - originalMessage?: string; - } - - interface ExecaError - extends ExecaSyncError { - /** - The output of the process with `stdout` and `stderr` interleaved. - - This is `undefined` if either: - - the `all` option is `false` (default value) - - `execa.sync()` was used - */ - all?: StdoutErrorType; - - /** - Whether the process was canceled. - */ - isCanceled: boolean; - } - - interface KillOptions { - /** - Milliseconds to wait for the child process to terminate before sending `SIGKILL`. - - Can be disabled with `false`. - - @default 5000 - */ - forceKillAfterTimeout?: number | false; - } - - interface ExecaChildPromise { - /** - Stream combining/interleaving [`stdout`](https://nodejs.org/api/child_process.html#child_process_subprocess_stdout) and [`stderr`](https://nodejs.org/api/child_process.html#child_process_subprocess_stderr). - - This is `undefined` if either: - - the `all` option is `false` (the default value) - - both `stdout` and `stderr` options are set to [`'inherit'`, `'ipc'`, `Stream` or `integer`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio) - */ - all?: ReadableStream; - - catch( - onRejected?: (reason: ExecaError) => ResultType | PromiseLike - ): Promise | ResultType>; - - /** - Same as the original [`child_process#kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal), except if `signal` is `SIGTERM` (the default value) and the child process is not terminated after 5 seconds, force it by sending `SIGKILL`. - */ - kill(signal?: string, options?: KillOptions): void; - - /** - Similar to [`childProcess.kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal). This is preferred when cancelling the child process execution as the error is more descriptive and [`childProcessResult.isCanceled`](#iscanceled) is set to `true`. - */ - cancel(): void; - } - - type ExecaChildProcess = ChildProcess & - ExecaChildPromise & - Promise>; -} - -declare const execa: { - /** - Execute a file. - - Think of this as a mix of `child_process.execFile` and `child_process.spawn`. - - @param file - The program/script to execute. - @param arguments - Arguments to pass to `file` on execution. - @returns A [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. - - @example - ``` - import execa = require('execa'); - - (async () => { - const {stdout} = await execa('echo', ['unicorns']); - console.log(stdout); - //=> 'unicorns' - - // Cancelling a spawned process - - const subprocess = execa('node'); - - setTimeout(() => { - subprocess.cancel() - }, 1000); - - try { - await subprocess; - } catch (error) { - console.log(subprocess.killed); // true - console.log(error.isCanceled); // true - } - })(); - - // Pipe the child process stdout to the current stdout - execa('echo', ['unicorns']).stdout.pipe(process.stdout); - ``` - */ - ( - file: string, - arguments?: readonly string[], - options?: execa.Options - ): execa.ExecaChildProcess; - ( - file: string, - arguments?: readonly string[], - options?: execa.Options - ): execa.ExecaChildProcess; - (file: string, options?: execa.Options): execa.ExecaChildProcess; - (file: string, options?: execa.Options): execa.ExecaChildProcess< - Buffer - >; - - /** - Execute a file synchronously. - - This method throws an `Error` if the command fails. - - @param file - The program/script to execute. - @param arguments - Arguments to pass to `file` on execution. - @returns A result `Object` with `stdout` and `stderr` properties. - */ - sync( - file: string, - arguments?: readonly string[], - options?: execa.SyncOptions - ): execa.ExecaSyncReturnValue; - sync( - file: string, - arguments?: readonly string[], - options?: execa.SyncOptions - ): execa.ExecaSyncReturnValue; - sync(file: string, options?: execa.SyncOptions): execa.ExecaSyncReturnValue; - sync( - file: string, - options?: execa.SyncOptions - ): execa.ExecaSyncReturnValue; - - /** - Same as `execa()` except both file and arguments are specified in a single `command` string. For example, `execa('echo', ['unicorns'])` is the same as `execa.command('echo unicorns')`. - - If the file or an argument contains spaces, they must be escaped with backslashes. This matters especially if `command` is not a constant but a variable, for example with `__dirname` or `process.cwd()`. Except for spaces, no escaping/quoting is needed. - - The `shell` option must be used if the `command` uses shell-specific features (for example, `&&` or `||`), as opposed to being a simple `file` followed by its `arguments`. - - @param command - The program/script to execute and its arguments. - @returns A [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. - - @example - ``` - import execa = require('execa'); - - (async () => { - const {stdout} = await execa.command('echo unicorns'); - console.log(stdout); - //=> 'unicorns' - })(); - ``` - */ - command(command: string, options?: execa.Options): execa.ExecaChildProcess; - command(command: string, options?: execa.Options): execa.ExecaChildProcess; - - /** - Same as `execa.command()` but synchronous. - - @param command - The program/script to execute and its arguments. - @returns A result `Object` with `stdout` and `stderr` properties. - */ - commandSync(command: string, options?: execa.SyncOptions): execa.ExecaSyncReturnValue; - commandSync(command: string, options?: execa.SyncOptions): execa.ExecaSyncReturnValue; - - /** - Execute a Node.js script as a child process. - - Same as `execa('node', [scriptPath, ...arguments], options)` except (like [`child_process#fork()`](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options)): - - the current Node version and options are used. This can be overridden using the `nodePath` and `nodeArguments` options. - - the `shell` option cannot be used - - an extra channel [`ipc`](https://nodejs.org/api/child_process.html#child_process_options_stdio) is passed to [`stdio`](#stdio) - - @param scriptPath - Node.js script to execute. - @param arguments - Arguments to pass to `scriptPath` on execution. - @returns A [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. - */ - node( - scriptPath: string, - arguments?: readonly string[], - options?: execa.NodeOptions - ): execa.ExecaChildProcess; - node( - scriptPath: string, - arguments?: readonly string[], - options?: execa.Options - ): execa.ExecaChildProcess; - node(scriptPath: string, options?: execa.Options): execa.ExecaChildProcess; - node(scriptPath: string, options?: execa.Options): execa.ExecaChildProcess; -}; - -export = execa; diff --git a/build/node_modules/execa/index.js b/build/node_modules/execa/index.js deleted file mode 100644 index 6fc9f129..00000000 --- a/build/node_modules/execa/index.js +++ /dev/null @@ -1,268 +0,0 @@ -'use strict'; -const path = require('path'); -const childProcess = require('child_process'); -const crossSpawn = require('cross-spawn'); -const stripFinalNewline = require('strip-final-newline'); -const npmRunPath = require('npm-run-path'); -const onetime = require('onetime'); -const makeError = require('./lib/error'); -const normalizeStdio = require('./lib/stdio'); -const {spawnedKill, spawnedCancel, setupTimeout, validateTimeout, setExitHandler} = require('./lib/kill'); -const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = require('./lib/stream'); -const {mergePromise, getSpawnedPromise} = require('./lib/promise'); -const {joinCommand, parseCommand, getEscapedCommand} = require('./lib/command'); - -const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; - -const getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => { - const env = extendEnv ? {...process.env, ...envOption} : envOption; - - if (preferLocal) { - return npmRunPath.env({env, cwd: localDir, execPath}); - } - - return env; -}; - -const handleArguments = (file, args, options = {}) => { - const parsed = crossSpawn._parse(file, args, options); - file = parsed.command; - args = parsed.args; - options = parsed.options; - - options = { - maxBuffer: DEFAULT_MAX_BUFFER, - buffer: true, - stripFinalNewline: true, - extendEnv: true, - preferLocal: false, - localDir: options.cwd || process.cwd(), - execPath: process.execPath, - encoding: 'utf8', - reject: true, - cleanup: true, - all: false, - windowsHide: true, - ...options - }; - - options.env = getEnv(options); - - options.stdio = normalizeStdio(options); - - if (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') { - // #116 - args.unshift('/q'); - } - - return {file, args, options, parsed}; -}; - -const handleOutput = (options, value, error) => { - if (typeof value !== 'string' && !Buffer.isBuffer(value)) { - // When `execa.sync()` errors, we normalize it to '' to mimic `execa()` - return error === undefined ? undefined : ''; - } - - if (options.stripFinalNewline) { - return stripFinalNewline(value); - } - - return value; -}; - -const execa = (file, args, options) => { - const parsed = handleArguments(file, args, options); - const command = joinCommand(file, args); - const escapedCommand = getEscapedCommand(file, args); - - validateTimeout(parsed.options); - - let spawned; - try { - spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options); - } catch (error) { - // Ensure the returned error is always both a promise and a child process - const dummySpawned = new childProcess.ChildProcess(); - const errorPromise = Promise.reject(makeError({ - error, - stdout: '', - stderr: '', - all: '', - command, - escapedCommand, - parsed, - timedOut: false, - isCanceled: false, - killed: false - })); - return mergePromise(dummySpawned, errorPromise); - } - - const spawnedPromise = getSpawnedPromise(spawned); - const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise); - const processDone = setExitHandler(spawned, parsed.options, timedPromise); - - const context = {isCanceled: false}; - - spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned)); - spawned.cancel = spawnedCancel.bind(null, spawned, context); - - const handlePromise = async () => { - const [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone); - const stdout = handleOutput(parsed.options, stdoutResult); - const stderr = handleOutput(parsed.options, stderrResult); - const all = handleOutput(parsed.options, allResult); - - if (error || exitCode !== 0 || signal !== null) { - const returnedError = makeError({ - error, - exitCode, - signal, - stdout, - stderr, - all, - command, - escapedCommand, - parsed, - timedOut, - isCanceled: context.isCanceled, - killed: spawned.killed - }); - - if (!parsed.options.reject) { - return returnedError; - } - - throw returnedError; - } - - return { - command, - escapedCommand, - exitCode: 0, - stdout, - stderr, - all, - failed: false, - timedOut: false, - isCanceled: false, - killed: false - }; - }; - - const handlePromiseOnce = onetime(handlePromise); - - handleInput(spawned, parsed.options.input); - - spawned.all = makeAllStream(spawned, parsed.options); - - return mergePromise(spawned, handlePromiseOnce); -}; - -module.exports = execa; - -module.exports.sync = (file, args, options) => { - const parsed = handleArguments(file, args, options); - const command = joinCommand(file, args); - const escapedCommand = getEscapedCommand(file, args); - - validateInputSync(parsed.options); - - let result; - try { - result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options); - } catch (error) { - throw makeError({ - error, - stdout: '', - stderr: '', - all: '', - command, - escapedCommand, - parsed, - timedOut: false, - isCanceled: false, - killed: false - }); - } - - const stdout = handleOutput(parsed.options, result.stdout, result.error); - const stderr = handleOutput(parsed.options, result.stderr, result.error); - - if (result.error || result.status !== 0 || result.signal !== null) { - const error = makeError({ - stdout, - stderr, - error: result.error, - signal: result.signal, - exitCode: result.status, - command, - escapedCommand, - parsed, - timedOut: result.error && result.error.code === 'ETIMEDOUT', - isCanceled: false, - killed: result.signal !== null - }); - - if (!parsed.options.reject) { - return error; - } - - throw error; - } - - return { - command, - escapedCommand, - exitCode: 0, - stdout, - stderr, - failed: false, - timedOut: false, - isCanceled: false, - killed: false - }; -}; - -module.exports.command = (command, options) => { - const [file, ...args] = parseCommand(command); - return execa(file, args, options); -}; - -module.exports.commandSync = (command, options) => { - const [file, ...args] = parseCommand(command); - return execa.sync(file, args, options); -}; - -module.exports.node = (scriptPath, args, options = {}) => { - if (args && !Array.isArray(args) && typeof args === 'object') { - options = args; - args = []; - } - - const stdio = normalizeStdio.node(options); - const defaultExecArgv = process.execArgv.filter(arg => !arg.startsWith('--inspect')); - - const { - nodePath = process.execPath, - nodeOptions = defaultExecArgv - } = options; - - return execa( - nodePath, - [ - ...nodeOptions, - scriptPath, - ...(Array.isArray(args) ? args : []) - ], - { - ...options, - stdin: undefined, - stdout: undefined, - stderr: undefined, - stdio, - shell: false - } - ); -}; diff --git a/build/node_modules/execa/license b/build/node_modules/execa/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/execa/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/execa/package.json b/build/node_modules/execa/package.json deleted file mode 100644 index 22556f28..00000000 --- a/build/node_modules/execa/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "execa", - "version": "5.1.1", - "description": "Process execution for humans", - "license": "MIT", - "repository": "sindresorhus/execa", - "funding": "https://github.com/sindresorhus/execa?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && nyc ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "lib" - ], - "keywords": [ - "exec", - "child", - "process", - "execute", - "fork", - "execfile", - "spawn", - "file", - "shell", - "bin", - "binary", - "binaries", - "npm", - "path", - "local" - ], - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "devDependencies": { - "@types/node": "^14.14.10", - "ava": "^2.4.0", - "get-node": "^11.0.1", - "is-running": "^2.1.0", - "nyc": "^15.1.0", - "p-event": "^4.2.0", - "tempfile": "^3.0.0", - "tsd": "^0.13.1", - "xo": "^0.35.0" - }, - "nyc": { - "reporter": [ - "text", - "lcov" - ], - "exclude": [ - "**/fixtures/**", - "**/test.js", - "**/test/**" - ] - } -} diff --git a/build/node_modules/execa/readme.md b/build/node_modules/execa/readme.md deleted file mode 100644 index 843edbc7..00000000 --- a/build/node_modules/execa/readme.md +++ /dev/null @@ -1,663 +0,0 @@ - -
- -[![Coverage Status](https://codecov.io/gh/sindresorhus/execa/branch/main/graph/badge.svg)](https://codecov.io/gh/sindresorhus/execa) - -> Process execution for humans - -## Why - -This package improves [`child_process`](https://nodejs.org/api/child_process.html) methods with: - -- Promise interface. -- [Strips the final newline](#stripfinalnewline) from the output so you don't have to do `stdout.trim()`. -- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform. -- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why) -- Higher max buffer. 100 MB instead of 200 KB. -- [Executes locally installed binaries by name.](#preferlocal) -- [Cleans up spawned processes when the parent process dies.](#cleanup) -- [Get interleaved output](#all) from `stdout` and `stderr` similar to what is printed on the terminal. [*(Async only)*](#execasyncfile-arguments-options) -- [Can specify file and arguments as a single string without a shell](#execacommandcommand-options) -- More descriptive errors. - -## Install - -``` -$ npm install execa -``` - -## Usage - -```js -const execa = require('execa'); - -(async () => { - const {stdout} = await execa('echo', ['unicorns']); - console.log(stdout); - //=> 'unicorns' -})(); -``` - -### Pipe the child process stdout to the parent - -```js -const execa = require('execa'); - -execa('echo', ['unicorns']).stdout.pipe(process.stdout); -``` - -### Handling Errors - -```js -const execa = require('execa'); - -(async () => { - // Catching an error - try { - await execa('unknown', ['command']); - } catch (error) { - console.log(error); - /* - { - message: 'Command failed with ENOENT: unknown command spawn unknown ENOENT', - errno: -2, - code: 'ENOENT', - syscall: 'spawn unknown', - path: 'unknown', - spawnargs: ['command'], - originalMessage: 'spawn unknown ENOENT', - shortMessage: 'Command failed with ENOENT: unknown command spawn unknown ENOENT', - command: 'unknown command', - escapedCommand: 'unknown command', - stdout: '', - stderr: '', - all: '', - failed: true, - timedOut: false, - isCanceled: false, - killed: false - } - */ - } - -})(); -``` - -### Cancelling a spawned process - -```js -const execa = require('execa'); - -(async () => { - const subprocess = execa('node'); - - setTimeout(() => { - subprocess.cancel(); - }, 1000); - - try { - await subprocess; - } catch (error) { - console.log(subprocess.killed); // true - console.log(error.isCanceled); // true - } -})() -``` - -### Catching an error with the sync method - -```js -try { - execa.sync('unknown', ['command']); -} catch (error) { - console.log(error); - /* - { - message: 'Command failed with ENOENT: unknown command spawnSync unknown ENOENT', - errno: -2, - code: 'ENOENT', - syscall: 'spawnSync unknown', - path: 'unknown', - spawnargs: ['command'], - originalMessage: 'spawnSync unknown ENOENT', - shortMessage: 'Command failed with ENOENT: unknown command spawnSync unknown ENOENT', - command: 'unknown command', - escapedCommand: 'unknown command', - stdout: '', - stderr: '', - all: '', - failed: true, - timedOut: false, - isCanceled: false, - killed: false - } - */ -} -``` - -### Kill a process - -Using SIGTERM, and after 2 seconds, kill it with SIGKILL. - -```js -const subprocess = execa('node'); - -setTimeout(() => { - subprocess.kill('SIGTERM', { - forceKillAfterTimeout: 2000 - }); -}, 1000); -``` - -## API - -### execa(file, arguments, options?) - -Execute a file. Think of this as a mix of [`child_process.execFile()`](https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback) and [`child_process.spawn()`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options). - -No escaping/quoting is needed. - -Unless the [`shell`](#shell) option is used, no shell interpreter (Bash, `cmd.exe`, etc.) is used, so shell features such as variables substitution (`echo $PATH`) are not allowed. - -Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess) which: - - is also a `Promise` resolving or rejecting with a [`childProcessResult`](#childProcessResult). - - exposes the following additional methods and properties. - -#### kill(signal?, options?) - -Same as the original [`child_process#kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal) except: if `signal` is `SIGTERM` (the default value) and the child process is not terminated after 5 seconds, force it by sending `SIGKILL`. - -##### options.forceKillAfterTimeout - -Type: `number | false`\ -Default: `5000` - -Milliseconds to wait for the child process to terminate before sending `SIGKILL`. - -Can be disabled with `false`. - -#### cancel() - -Similar to [`childProcess.kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal). This is preferred when cancelling the child process execution as the error is more descriptive and [`childProcessResult.isCanceled`](#iscanceled) is set to `true`. - -#### all - -Type: `ReadableStream | undefined` - -Stream combining/interleaving [`stdout`](https://nodejs.org/api/child_process.html#child_process_subprocess_stdout) and [`stderr`](https://nodejs.org/api/child_process.html#child_process_subprocess_stderr). - -This is `undefined` if either: - - the [`all` option](#all-2) is `false` (the default value) - - both [`stdout`](#stdout-1) and [`stderr`](#stderr-1) options are set to [`'inherit'`, `'ipc'`, `Stream` or `integer`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio) - -### execa.sync(file, arguments?, options?) - -Execute a file synchronously. - -Returns or throws a [`childProcessResult`](#childProcessResult). - -### execa.command(command, options?) - -Same as [`execa()`](#execafile-arguments-options) except both file and arguments are specified in a single `command` string. For example, `execa('echo', ['unicorns'])` is the same as `execa.command('echo unicorns')`. - -If the file or an argument contains spaces, they must be escaped with backslashes. This matters especially if `command` is not a constant but a variable, for example with `__dirname` or `process.cwd()`. Except for spaces, no escaping/quoting is needed. - -The [`shell` option](#shell) must be used if the `command` uses shell-specific features (for example, `&&` or `||`), as opposed to being a simple `file` followed by its `arguments`. - -### execa.commandSync(command, options?) - -Same as [`execa.command()`](#execacommand-command-options) but synchronous. - -Returns or throws a [`childProcessResult`](#childProcessResult). - -### execa.node(scriptPath, arguments?, options?) - -Execute a Node.js script as a child process. - -Same as `execa('node', [scriptPath, ...arguments], options)` except (like [`child_process#fork()`](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options)): - - the current Node version and options are used. This can be overridden using the [`nodePath`](#nodepath-for-node-only) and [`nodeOptions`](#nodeoptions-for-node-only) options. - - the [`shell`](#shell) option cannot be used - - an extra channel [`ipc`](https://nodejs.org/api/child_process.html#child_process_options_stdio) is passed to [`stdio`](#stdio) - -### childProcessResult - -Type: `object` - -Result of a child process execution. On success this is a plain object. On failure this is also an `Error` instance. - -The child process [fails](#failed) when: -- its [exit code](#exitcode) is not `0` -- it was [killed](#killed) with a [signal](#signal) -- [timing out](#timedout) -- [being canceled](#iscanceled) -- there's not enough memory or there are already too many child processes - -#### command - -Type: `string` - -The file and arguments that were run, for logging purposes. - -This is not escaped and should not be executed directly as a process, including using [`execa()`](#execafile-arguments-options) or [`execa.command()`](#execacommandcommand-options). - -#### escapedCommand - -Type: `string` - -Same as [`command`](#command) but escaped. - -This is meant to be copy and pasted into a shell, for debugging purposes. -Since the escaping is fairly basic, this should not be executed directly as a process, including using [`execa()`](#execafile-arguments-options) or [`execa.command()`](#execacommandcommand-options). - -#### exitCode - -Type: `number` - -The numeric exit code of the process that was run. - -#### stdout - -Type: `string | Buffer` - -The output of the process on stdout. - -#### stderr - -Type: `string | Buffer` - -The output of the process on stderr. - -#### all - -Type: `string | Buffer | undefined` - -The output of the process with `stdout` and `stderr` interleaved. - -This is `undefined` if either: - - the [`all` option](#all-2) is `false` (the default value) - - `execa.sync()` was used - -#### failed - -Type: `boolean` - -Whether the process failed to run. - -#### timedOut - -Type: `boolean` - -Whether the process timed out. - -#### isCanceled - -Type: `boolean` - -Whether the process was canceled. - -#### killed - -Type: `boolean` - -Whether the process was killed. - -#### signal - -Type: `string | undefined` - -The name of the signal that was used to terminate the process. For example, `SIGFPE`. - -If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. - -#### signalDescription - -Type: `string | undefined` - -A human-friendly description of the signal that was used to terminate the process. For example, `Floating point arithmetic error`. - -If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. It is also `undefined` when the signal is very uncommon which should seldomly happen. - -#### message - -Type: `string` - -Error message when the child process failed to run. In addition to the [underlying error message](#originalMessage), it also contains some information related to why the child process errored. - -The child process [stderr](#stderr) then [stdout](#stdout) are appended to the end, separated with newlines and not interleaved. - -#### shortMessage - -Type: `string` - -This is the same as the [`message` property](#message) except it does not include the child process stdout/stderr. - -#### originalMessage - -Type: `string | undefined` - -Original error message. This is the same as the `message` property except it includes neither the child process stdout/stderr nor some additional information added by Execa. - -This is `undefined` unless the child process exited due to an `error` event or a timeout. - -### options - -Type: `object` - -#### cleanup - -Type: `boolean`\ -Default: `true` - -Kill the spawned process when the parent process exits unless either: - - the spawned process is [`detached`](https://nodejs.org/api/child_process.html#child_process_options_detached) - - the parent process is terminated abruptly, for example, with `SIGKILL` as opposed to `SIGTERM` or a normal exit - -#### preferLocal - -Type: `boolean`\ -Default: `false` - -Prefer locally installed binaries when looking for a binary to execute.\ -If you `$ npm install foo`, you can then `execa('foo')`. - -#### localDir - -Type: `string`\ -Default: `process.cwd()` - -Preferred path to find locally installed binaries in (use with `preferLocal`). - -#### execPath - -Type: `string`\ -Default: `process.execPath` (Current Node.js executable) - -Path to the Node.js executable to use in child processes. - -This can be either an absolute path or a path relative to the [`cwd` option](#cwd). - -Requires [`preferLocal`](#preferlocal) to be `true`. - -For example, this can be used together with [`get-node`](https://github.com/ehmicky/get-node) to run a specific Node.js version in a child process. - -#### buffer - -Type: `boolean`\ -Default: `true` - -Buffer the output from the spawned process. When set to `false`, you must read the output of [`stdout`](#stdout-1) and [`stderr`](#stderr-1) (or [`all`](#all) if the [`all`](#all-2) option is `true`). Otherwise the returned promise will not be resolved/rejected. - -If the spawned process fails, [`error.stdout`](#stdout), [`error.stderr`](#stderr), and [`error.all`](#all) will contain the buffered data. - -#### input - -Type: `string | Buffer | stream.Readable` - -Write some input to the `stdin` of your binary.\ -Streams are not allowed when using the synchronous methods. - -#### stdin - -Type: `string | number | Stream | undefined`\ -Default: `pipe` - -Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - -#### stdout - -Type: `string | number | Stream | undefined`\ -Default: `pipe` - -Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - -#### stderr - -Type: `string | number | Stream | undefined`\ -Default: `pipe` - -Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - -#### all - -Type: `boolean`\ -Default: `false` - -Add an `.all` property on the [promise](#all) and the [resolved value](#all-1). The property contains the output of the process with `stdout` and `stderr` interleaved. - -#### reject - -Type: `boolean`\ -Default: `true` - -Setting this to `false` resolves the promise with the error instead of rejecting it. - -#### stripFinalNewline - -Type: `boolean`\ -Default: `true` - -Strip the final [newline character](https://en.wikipedia.org/wiki/Newline) from the output. - -#### extendEnv - -Type: `boolean`\ -Default: `true` - -Set to `false` if you don't want to extend the environment variables when providing the `env` property. - ---- - -Execa also accepts the below options which are the same as the options for [`child_process#spawn()`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options)/[`child_process#exec()`](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback) - -#### cwd - -Type: `string`\ -Default: `process.cwd()` - -Current working directory of the child process. - -#### env - -Type: `object`\ -Default: `process.env` - -Environment key-value pairs. Extends automatically from `process.env`. Set [`extendEnv`](#extendenv) to `false` if you don't want this. - -#### argv0 - -Type: `string` - -Explicitly set the value of `argv[0]` sent to the child process. This will be set to `file` if not specified. - -#### stdio - -Type: `string | string[]`\ -Default: `pipe` - -Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration. - -#### serialization - -Type: `string`\ -Default: `'json'` - -Specify the kind of serialization used for sending messages between processes when using the [`stdio: 'ipc'`](#stdio) option or [`execa.node()`](#execanodescriptpath-arguments-options): - - `json`: Uses `JSON.stringify()` and `JSON.parse()`. - - `advanced`: Uses [`v8.serialize()`](https://nodejs.org/api/v8.html#v8_v8_serialize_value) - -Requires Node.js `13.2.0` or later. - -[More info.](https://nodejs.org/api/child_process.html#child_process_advanced_serialization) - -#### detached - -Type: `boolean` - -Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached). - -#### uid - -Type: `number` - -Sets the user identity of the process. - -#### gid - -Type: `number` - -Sets the group identity of the process. - -#### shell - -Type: `boolean | string`\ -Default: `false` - -If `true`, runs `file` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows. - -We recommend against using this option since it is: -- not cross-platform, encouraging shell-specific syntax. -- slower, because of the additional shell interpretation. -- unsafe, potentially allowing command injection. - -#### encoding - -Type: `string | null`\ -Default: `utf8` - -Specify the character encoding used to decode the `stdout` and `stderr` output. If set to `null`, then `stdout` and `stderr` will be a `Buffer` instead of a string. - -#### timeout - -Type: `number`\ -Default: `0` - -If timeout is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than timeout milliseconds. - -#### maxBuffer - -Type: `number`\ -Default: `100_000_000` (100 MB) - -Largest amount of data in bytes allowed on `stdout` or `stderr`. - -#### killSignal - -Type: `string | number`\ -Default: `SIGTERM` - -Signal value to be used when the spawned process will be killed. - -#### windowsVerbatimArguments - -Type: `boolean`\ -Default: `false` - -If `true`, no quoting or escaping of arguments is done on Windows. Ignored on other platforms. This is set to `true` automatically when the `shell` option is `true`. - -#### windowsHide - -Type: `boolean`\ -Default: `true` - -On Windows, do not create a new console window. Please note this also prevents `CTRL-C` [from working](https://github.com/nodejs/node/issues/29837) on Windows. - -#### nodePath *(For `.node()` only)* - -Type: `string`\ -Default: [`process.execPath`](https://nodejs.org/api/process.html#process_process_execpath) - -Node.js executable used to create the child process. - -#### nodeOptions *(For `.node()` only)* - -Type: `string[]`\ -Default: [`process.execArgv`](https://nodejs.org/api/process.html#process_process_execargv) - -List of [CLI options](https://nodejs.org/api/cli.html#cli_options) passed to the Node.js executable. - -## Tips - -### Retry on error - -Gracefully handle failures by using automatic retries and exponential backoff with the [`p-retry`](https://github.com/sindresorhus/p-retry) package: - -```js -const pRetry = require('p-retry'); - -const run = async () => { - const results = await execa('curl', ['-sSL', 'https://sindresorhus.com/unicorn']); - return results; -}; - -(async () => { - console.log(await pRetry(run, {retries: 5})); -})(); -``` - -### Save and pipe output from a child process - -Let's say you want to show the output of a child process in real-time while also saving it to a variable. - -```js -const execa = require('execa'); - -const subprocess = execa('echo', ['foo']); -subprocess.stdout.pipe(process.stdout); - -(async () => { - const {stdout} = await subprocess; - console.log('child output:', stdout); -})(); -``` - -### Redirect output to a file - -```js -const execa = require('execa'); - -const subprocess = execa('echo', ['foo']) -subprocess.stdout.pipe(fs.createWriteStream('stdout.txt')) -``` - -### Redirect input from a file - -```js -const execa = require('execa'); - -const subprocess = execa('cat') -fs.createReadStream('stdin.txt').pipe(subprocess.stdin) -``` - -### Execute the current package's binary - -```js -const {getBinPathSync} = require('get-bin-path'); - -const binPath = getBinPathSync(); -const subprocess = execa(binPath); -``` - -`execa` can be combined with [`get-bin-path`](https://github.com/ehmicky/get-bin-path) to test the current package's binary. As opposed to hard-coding the path to the binary, this validates that the `package.json` `bin` field is correctly set up. - -## Related - -- [gulp-execa](https://github.com/ehmicky/gulp-execa) - Gulp plugin for `execa` -- [nvexeca](https://github.com/ehmicky/nvexeca) - Run `execa` using any Node.js version -- [sudo-prompt](https://github.com/jorangreef/sudo-prompt) - Run commands with elevated privileges. - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [@ehmicky](https://github.com/ehmicky) - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/expand-brackets/LICENSE b/build/node_modules/expand-brackets/LICENSE deleted file mode 100644 index 65251717..00000000 --- a/build/node_modules/expand-brackets/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2016, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/expand-brackets/README.md b/build/node_modules/expand-brackets/README.md deleted file mode 100644 index c0e33d08..00000000 --- a/build/node_modules/expand-brackets/README.md +++ /dev/null @@ -1,302 +0,0 @@ -# expand-brackets [![NPM version](https://img.shields.io/npm/v/expand-brackets.svg?style=flat)](https://www.npmjs.com/package/expand-brackets) [![NPM monthly downloads](https://img.shields.io/npm/dm/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![NPM total downloads](https://img.shields.io/npm/dt/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/expand-brackets.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/expand-brackets) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/expand-brackets.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/expand-brackets) - -> Expand POSIX bracket expressions (character classes) in glob patterns. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save expand-brackets -``` - -## Usage - -```js -var brackets = require('expand-brackets'); -brackets(string[, options]); -``` - -**Params** - -The main export is a function that takes the following parameters: - -* `pattern` **{String}**: the pattern to convert -* `options` **{Object}**: optionally supply an options object -* `returns` **{String}**: returns a string that can be used to create a regex - -**Example** - -```js -console.log(brackets('[![:lower:]]')); -//=> '[^a-z]' -``` - -## API - -### [brackets](index.js#L29) - -Parses the given POSIX character class `pattern` and returns a -string that can be used for creating regular expressions for matching. - -**Params** - -* `pattern` **{String}** -* `options` **{Object}** -* `returns` **{Object}** - -### [.match](index.js#L54) - -Takes an array of strings and a POSIX character class pattern, and returns a new array with only the strings that matched the pattern. - -**Example** - -```js -var brackets = require('expand-brackets'); -console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]')); -//=> ['a'] - -console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+')); -//=> ['a', 'ab'] -``` - -**Params** - -* `arr` **{Array}**: Array of strings to match -* `pattern` **{String}**: POSIX character class pattern(s) -* `options` **{Object}** -* `returns` **{Array}** - -### [.isMatch](index.js#L100) - -Returns true if the specified `string` matches the given brackets `pattern`. - -**Example** - -```js -var brackets = require('expand-brackets'); - -console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]')); -//=> true -console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]')); -//=> false -``` - -**Params** - -* `string` **{String}**: String to match -* `pattern` **{String}**: Poxis pattern -* `options` **{String}** -* `returns` **{Boolean}** - -### [.matcher](index.js#L123) - -Takes a POSIX character class pattern and returns a matcher function. The returned function takes the string to match as its only argument. - -**Example** - -```js -var brackets = require('expand-brackets'); -var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]'); - -console.log(isMatch('a.a')); -//=> false -console.log(isMatch('a.A')); -//=> true -``` - -**Params** - -* `pattern` **{String}**: Poxis pattern -* `options` **{String}** -* `returns` **{Boolean}** - -### [.makeRe](index.js#L145) - -Create a regular expression from the given `pattern`. - -**Example** - -```js -var brackets = require('expand-brackets'); -var re = brackets.makeRe('[[:alpha:]]'); -console.log(re); -//=> /^(?:[a-zA-Z])$/ -``` - -**Params** - -* `pattern` **{String}**: The pattern to convert to regex. -* `options` **{Object}** -* `returns` **{RegExp}** - -### [.create](index.js#L187) - -Parses the given POSIX character class `pattern` and returns an object with the compiled `output` and optional source `map`. - -**Example** - -```js -var brackets = require('expand-brackets'); -console.log(brackets('[[:alpha:]]')); -// { options: { source: 'string' }, -// input: '[[:alpha:]]', -// state: {}, -// compilers: -// { eos: [Function], -// noop: [Function], -// bos: [Function], -// not: [Function], -// escape: [Function], -// text: [Function], -// posix: [Function], -// bracket: [Function], -// 'bracket.open': [Function], -// 'bracket.inner': [Function], -// 'bracket.literal': [Function], -// 'bracket.close': [Function] }, -// output: '[a-zA-Z]', -// ast: -// { type: 'root', -// errors: [], -// nodes: [ [Object], [Object], [Object] ] }, -// parsingErrors: [] } -``` - -**Params** - -* `pattern` **{String}** -* `options` **{Object}** -* `returns` **{Object}** - -## Options - -### options.sourcemap - -Generate a source map for the given pattern. - -**Example** - -```js -var res = brackets('[:alpha:]', {sourcemap: true}); - -console.log(res.map); -// { version: 3, -// sources: [ 'brackets' ], -// names: [], -// mappings: 'AAAA,MAAS', -// sourcesContent: [ '[:alpha:]' ] } -``` - -### POSIX Character classes - -The following named POSIX bracket expressions are supported: - -* `[:alnum:]`: Alphanumeric characters (`a-zA-Z0-9]`) -* `[:alpha:]`: Alphabetic characters (`a-zA-Z]`) -* `[:blank:]`: Space and tab (`[ t]`) -* `[:digit:]`: Digits (`[0-9]`) -* `[:lower:]`: Lowercase letters (`[a-z]`) -* `[:punct:]`: Punctuation and symbols. (`[!"#$%&'()*+, -./:;<=>?@ [\]^_``{|}~]`) -* `[:upper:]`: Uppercase letters (`[A-Z]`) -* `[:word:]`: Word characters (letters, numbers and underscores) (`[A-Za-z0-9_]`) -* `[:xdigit:]`: Hexadecimal digits (`[A-Fa-f0-9]`) - -See [posix-character-classes](https://github.com/jonschlinkert/posix-character-classes) for more details. - -**Not supported** - -* [equivalence classes](https://www.gnu.org/software/gawk/manual/html_node/Bracket-Expressions.html) are not supported -* [POSIX.2 collating symbols](https://www.gnu.org/software/gawk/manual/html_node/Bracket-Expressions.html) are not supported - -## Changelog - -### v2.0.0 - -**Breaking changes** - -* The main export now returns the compiled string, instead of the object returned from the compiler - -**Added features** - -* Adds a `.create` method to do what the main function did before v2.0.0 - -### v0.2.0 - -In addition to performance and matching improvements, the v0.2.0 refactor adds complete POSIX character class support, with the exception of equivalence classes and POSIX.2 collating symbols which are not relevant to node.js usage. - -**Added features** - -* parser is exposed, so that expand-brackets parsers can be used by upstream parsers (like [micromatch](https://github.com/jonschlinkert/micromatch)) -* compiler is exposed, so that expand-brackets compilers can be used by upstream compilers -* source maps - -**source map example** - -```js -var brackets = require('expand-brackets'); -var res = brackets('[:alpha:]'); -console.log(res.map); - -{ version: 3, - sources: [ 'brackets' ], - names: [], - mappings: 'AAAA,MAAS', - sourcesContent: [ '[:alpha:]' ] } -``` - -## About - -### Related projects - -* [braces](https://www.npmjs.com/package/braces): Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces… [more](https://github.com/jonschlinkert/braces) | [homepage](https://github.com/jonschlinkert/braces "Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces specification, without sacrificing speed.") -* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/jonschlinkert/extglob) | [homepage](https://github.com/jonschlinkert/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.") -* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") -* [nanomatch](https://www.npmjs.com/package/nanomatch): Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash… [more](https://github.com/jonschlinkert/nanomatch) | [homepage](https://github.com/jonschlinkert/nanomatch "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor**
| -| --- | --- | -| 66 | [jonschlinkert](https://github.com/jonschlinkert) | -| 2 | [MartinKolarik](https://github.com/MartinKolarik) | -| 2 | [es128](https://github.com/es128) | -| 1 | [eush77](https://github.com/eush77) | - -### Building docs - -_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ - -To generate the readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm install -g verb verb-generate-readme && verb -``` - -### Running tests - -Install dev dependencies: - -```sh -$ npm install -d && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -### License - -Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT license](https://github.com/jonschlinkert/expand-brackets/blob/master/LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on December 12, 2016._ \ No newline at end of file diff --git a/build/node_modules/expand-brackets/changelog.md b/build/node_modules/expand-brackets/changelog.md deleted file mode 100644 index 0c0723ab..00000000 --- a/build/node_modules/expand-brackets/changelog.md +++ /dev/null @@ -1,35 +0,0 @@ -## Changelog - -### v2.0.0 - -**Breaking changes** - -- The main export now returns the compiled string, instead of the object returned from the compiler - -**Added features** - -- Adds a `.create` method to do what the main function did before v2.0.0 - -### v0.2.0 - -In addition to performance and matching improvements, the v0.2.0 refactor adds complete POSIX character class support, with the exception of equivalence classes and POSIX.2 collating symbols which are not relevant to node.js usage. - -**Added features** - -- parser is exposed, so that expand-brackets parsers can be used by upstream parsers (like [micromatch][]) -- compiler is exposed, so that expand-brackets compilers can be used by upstream compilers -- source maps - -**source map example** - -```js -var brackets = require('expand-brackets'); -var res = brackets('[:alpha:]'); -console.log(res.map); - -{ version: 3, - sources: [ 'brackets' ], - names: [], - mappings: 'AAAA,MAAS', - sourcesContent: [ '[:alpha:]' ] } -``` diff --git a/build/node_modules/expand-brackets/index.js b/build/node_modules/expand-brackets/index.js deleted file mode 100644 index 74b8b155..00000000 --- a/build/node_modules/expand-brackets/index.js +++ /dev/null @@ -1,211 +0,0 @@ -'use strict'; - -/** - * Local dependencies - */ - -var compilers = require('./lib/compilers'); -var parsers = require('./lib/parsers'); - -/** - * Module dependencies - */ - -var debug = require('debug')('expand-brackets'); -var extend = require('extend-shallow'); -var Snapdragon = require('snapdragon'); -var toRegex = require('to-regex'); - -/** - * Parses the given POSIX character class `pattern` and returns a - * string that can be used for creating regular expressions for matching. - * - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} - * @api public - */ - -function brackets(pattern, options) { - debug('initializing from <%s>', __filename); - var res = brackets.create(pattern, options); - return res.output; -} - -/** - * Takes an array of strings and a POSIX character class pattern, and returns a new - * array with only the strings that matched the pattern. - * - * ```js - * var brackets = require('expand-brackets'); - * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]')); - * //=> ['a'] - * - * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+')); - * //=> ['a', 'ab'] - * ``` - * @param {Array} `arr` Array of strings to match - * @param {String} `pattern` POSIX character class pattern(s) - * @param {Object} `options` - * @return {Array} - * @api public - */ - -brackets.match = function(arr, pattern, options) { - arr = [].concat(arr); - var opts = extend({}, options); - var isMatch = brackets.matcher(pattern, opts); - var len = arr.length; - var idx = -1; - var res = []; - - while (++idx < len) { - var ele = arr[idx]; - if (isMatch(ele)) { - res.push(ele); - } - } - - if (res.length === 0) { - if (opts.failglob === true) { - throw new Error('no matches found for "' + pattern + '"'); - } - - if (opts.nonull === true || opts.nullglob === true) { - return [pattern.split('\\').join('')]; - } - } - return res; -}; - -/** - * Returns true if the specified `string` matches the given - * brackets `pattern`. - * - * ```js - * var brackets = require('expand-brackets'); - * - * console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]')); - * //=> true - * console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]')); - * //=> false - * ``` - * @param {String} `string` String to match - * @param {String} `pattern` Poxis pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -brackets.isMatch = function(str, pattern, options) { - return brackets.matcher(pattern, options)(str); -}; - -/** - * Takes a POSIX character class pattern and returns a matcher function. The returned - * function takes the string to match as its only argument. - * - * ```js - * var brackets = require('expand-brackets'); - * var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]'); - * - * console.log(isMatch('a.a')); - * //=> false - * console.log(isMatch('a.A')); - * //=> true - * ``` - * @param {String} `pattern` Poxis pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -brackets.matcher = function(pattern, options) { - var re = brackets.makeRe(pattern, options); - return function(str) { - return re.test(str); - }; -}; - -/** - * Create a regular expression from the given `pattern`. - * - * ```js - * var brackets = require('expand-brackets'); - * var re = brackets.makeRe('[[:alpha:]]'); - * console.log(re); - * //=> /^(?:[a-zA-Z])$/ - * ``` - * @param {String} `pattern` The pattern to convert to regex. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ - -brackets.makeRe = function(pattern, options) { - var res = brackets.create(pattern, options); - var opts = extend({strictErrors: false}, options); - return toRegex(res.output, opts); -}; - -/** - * Parses the given POSIX character class `pattern` and returns an object - * with the compiled `output` and optional source `map`. - * - * ```js - * var brackets = require('expand-brackets'); - * console.log(brackets('[[:alpha:]]')); - * // { options: { source: 'string' }, - * // input: '[[:alpha:]]', - * // state: {}, - * // compilers: - * // { eos: [Function], - * // noop: [Function], - * // bos: [Function], - * // not: [Function], - * // escape: [Function], - * // text: [Function], - * // posix: [Function], - * // bracket: [Function], - * // 'bracket.open': [Function], - * // 'bracket.inner': [Function], - * // 'bracket.literal': [Function], - * // 'bracket.close': [Function] }, - * // output: '[a-zA-Z]', - * // ast: - * // { type: 'root', - * // errors: [], - * // nodes: [ [Object], [Object], [Object] ] }, - * // parsingErrors: [] } - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} - * @api public - */ - -brackets.create = function(pattern, options) { - var snapdragon = (options && options.snapdragon) || new Snapdragon(options); - compilers(snapdragon); - parsers(snapdragon); - - var ast = snapdragon.parse(pattern, options); - ast.input = pattern; - var res = snapdragon.compile(ast, options); - res.input = pattern; - return res; -}; - -/** - * Expose `brackets` constructor, parsers and compilers - */ - -brackets.compilers = compilers; -brackets.parsers = parsers; - -/** - * Expose `brackets` - * @type {Function} - */ - -module.exports = brackets; diff --git a/build/node_modules/expand-brackets/package.json b/build/node_modules/expand-brackets/package.json deleted file mode 100644 index 1c5233cf..00000000 --- a/build/node_modules/expand-brackets/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "expand-brackets", - "description": "Expand POSIX bracket expressions (character classes) in glob patterns.", - "version": "2.1.4", - "homepage": "https://github.com/jonschlinkert/expand-brackets", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Elan Shanker (https://github.com/es128)", - "Eugene Sharygin (https://github.com/eush77)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Martin Kolárik (http://kolarik.sk)" - ], - "repository": "jonschlinkert/expand-brackets", - "bugs": { - "url": "https://github.com/jonschlinkert/expand-brackets/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "lib" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "devDependencies": { - "bash-match": "^0.1.1", - "gulp-format-md": "^0.1.10", - "helper-changelog": "^0.3.0", - "minimatch": "^3.0.3", - "mocha": "^3.0.2", - "multimatch": "^2.1.0", - "yargs-parser": "^4.0.0" - }, - "keywords": [ - "bracket", - "brackets", - "character class", - "expand", - "expression", - "posix" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "helpers": [ - "helper-changelog" - ], - "related": { - "list": [ - "braces", - "extglob", - "micromatch", - "nanomatch" - ] - }, - "reflinks": [ - "micromatch", - "verb", - "verb-generate-readme" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/express/History.md b/build/node_modules/express/History.md deleted file mode 100644 index e49870fe..00000000 --- a/build/node_modules/express/History.md +++ /dev/null @@ -1,3588 +0,0 @@ -4.18.2 / 2022-10-08 -=================== - - * Fix regression routing a large stack in a single route - * deps: body-parser@1.20.1 - - deps: qs@6.11.0 - - perf: remove unnecessary object clone - * deps: qs@6.11.0 - -4.18.1 / 2022-04-29 -=================== - - * Fix hanging on large stack of sync routes - -4.18.0 / 2022-04-25 -=================== - - * Add "root" option to `res.download` - * Allow `options` without `filename` in `res.download` - * Deprecate string and non-integer arguments to `res.status` - * Fix behavior of `null`/`undefined` as `maxAge` in `res.cookie` - * Fix handling very large stacks of sync middleware - * Ignore `Object.prototype` values in settings through `app.set`/`app.get` - * Invoke `default` with same arguments as types in `res.format` - * Support proper 205 responses using `res.send` - * Use `http-errors` for `res.format` error - * deps: body-parser@1.20.0 - - Fix error message for json parse whitespace in `strict` - - Fix internal error when inflated body exceeds limit - - Prevent loss of async hooks context - - Prevent hanging when request already read - - deps: depd@2.0.0 - - deps: http-errors@2.0.0 - - deps: on-finished@2.4.1 - - deps: qs@6.10.3 - - deps: raw-body@2.5.1 - * deps: cookie@0.5.0 - - Add `priority` option - - Fix `expires` option to reject invalid dates - * deps: depd@2.0.0 - - Replace internal `eval` usage with `Function` constructor - - Use instance methods on `process` to check for listeners - * deps: finalhandler@1.2.0 - - Remove set content headers that break response - - deps: on-finished@2.4.1 - - deps: statuses@2.0.1 - * deps: on-finished@2.4.1 - - Prevent loss of async hooks context - * deps: qs@6.10.3 - * deps: send@0.18.0 - - Fix emitted 416 error missing headers property - - Limit the headers removed for 304 response - - deps: depd@2.0.0 - - deps: destroy@1.2.0 - - deps: http-errors@2.0.0 - - deps: on-finished@2.4.1 - - deps: statuses@2.0.1 - * deps: serve-static@1.15.0 - - deps: send@0.18.0 - * deps: statuses@2.0.1 - - Remove code 306 - - Rename `425 Unordered Collection` to standard `425 Too Early` - -4.17.3 / 2022-02-16 -=================== - - * deps: accepts@~1.3.8 - - deps: mime-types@~2.1.34 - - deps: negotiator@0.6.3 - * deps: body-parser@1.19.2 - - deps: bytes@3.1.2 - - deps: qs@6.9.7 - - deps: raw-body@2.4.3 - * deps: cookie@0.4.2 - * deps: qs@6.9.7 - * Fix handling of `__proto__` keys - * pref: remove unnecessary regexp for trust proxy - -4.17.2 / 2021-12-16 -=================== - - * Fix handling of `undefined` in `res.jsonp` - * Fix handling of `undefined` when `"json escape"` is enabled - * Fix incorrect middleware execution with unanchored `RegExp`s - * Fix `res.jsonp(obj, status)` deprecation message - * Fix typo in `res.is` JSDoc - * deps: body-parser@1.19.1 - - deps: bytes@3.1.1 - - deps: http-errors@1.8.1 - - deps: qs@6.9.6 - - deps: raw-body@2.4.2 - - deps: safe-buffer@5.2.1 - - deps: type-is@~1.6.18 - * deps: content-disposition@0.5.4 - - deps: safe-buffer@5.2.1 - * deps: cookie@0.4.1 - - Fix `maxAge` option to reject invalid values - * deps: proxy-addr@~2.0.7 - - Use `req.socket` over deprecated `req.connection` - - deps: forwarded@0.2.0 - - deps: ipaddr.js@1.9.1 - * deps: qs@6.9.6 - * deps: safe-buffer@5.2.1 - * deps: send@0.17.2 - - deps: http-errors@1.8.1 - - deps: ms@2.1.3 - - pref: ignore empty http tokens - * deps: serve-static@1.14.2 - - deps: send@0.17.2 - * deps: setprototypeof@1.2.0 - -4.17.1 / 2019-05-25 -=================== - - * Revert "Improve error message for `null`/`undefined` to `res.status`" - -4.17.0 / 2019-05-16 -=================== - - * Add `express.raw` to parse bodies into `Buffer` - * Add `express.text` to parse bodies into string - * Improve error message for non-strings to `res.sendFile` - * Improve error message for `null`/`undefined` to `res.status` - * Support multiple hosts in `X-Forwarded-Host` - * deps: accepts@~1.3.7 - * deps: body-parser@1.19.0 - - Add encoding MIK - - Add petabyte (`pb`) support - - Fix parsing array brackets after index - - deps: bytes@3.1.0 - - deps: http-errors@1.7.2 - - deps: iconv-lite@0.4.24 - - deps: qs@6.7.0 - - deps: raw-body@2.4.0 - - deps: type-is@~1.6.17 - * deps: content-disposition@0.5.3 - * deps: cookie@0.4.0 - - Add `SameSite=None` support - * deps: finalhandler@~1.1.2 - - Set stricter `Content-Security-Policy` header - - deps: parseurl@~1.3.3 - - deps: statuses@~1.5.0 - * deps: parseurl@~1.3.3 - * deps: proxy-addr@~2.0.5 - - deps: ipaddr.js@1.9.0 - * deps: qs@6.7.0 - - Fix parsing array brackets after index - * deps: range-parser@~1.2.1 - * deps: send@0.17.1 - - Set stricter CSP header in redirect & error responses - - deps: http-errors@~1.7.2 - - deps: mime@1.6.0 - - deps: ms@2.1.1 - - deps: range-parser@~1.2.1 - - deps: statuses@~1.5.0 - - perf: remove redundant `path.normalize` call - * deps: serve-static@1.14.1 - - Set stricter CSP header in redirect response - - deps: parseurl@~1.3.3 - - deps: send@0.17.1 - * deps: setprototypeof@1.1.1 - * deps: statuses@~1.5.0 - - Add `103 Early Hints` - * deps: type-is@~1.6.18 - - deps: mime-types@~2.1.24 - - perf: prevent internal `throw` on invalid type - -4.16.4 / 2018-10-10 -=================== - - * Fix issue where `"Request aborted"` may be logged in `res.sendfile` - * Fix JSDoc for `Router` constructor - * deps: body-parser@1.18.3 - - Fix deprecation warnings on Node.js 10+ - - Fix stack trace for strict json parse error - - deps: depd@~1.1.2 - - deps: http-errors@~1.6.3 - - deps: iconv-lite@0.4.23 - - deps: qs@6.5.2 - - deps: raw-body@2.3.3 - - deps: type-is@~1.6.16 - * deps: proxy-addr@~2.0.4 - - deps: ipaddr.js@1.8.0 - * deps: qs@6.5.2 - * deps: safe-buffer@5.1.2 - -4.16.3 / 2018-03-12 -=================== - - * deps: accepts@~1.3.5 - - deps: mime-types@~2.1.18 - * deps: depd@~1.1.2 - - perf: remove argument reassignment - * deps: encodeurl@~1.0.2 - - Fix encoding `%` as last character - * deps: finalhandler@1.1.1 - - Fix 404 output for bad / missing pathnames - - deps: encodeurl@~1.0.2 - - deps: statuses@~1.4.0 - * deps: proxy-addr@~2.0.3 - - deps: ipaddr.js@1.6.0 - * deps: send@0.16.2 - - Fix incorrect end tag in default error & redirects - - deps: depd@~1.1.2 - - deps: encodeurl@~1.0.2 - - deps: statuses@~1.4.0 - * deps: serve-static@1.13.2 - - Fix incorrect end tag in redirects - - deps: encodeurl@~1.0.2 - - deps: send@0.16.2 - * deps: statuses@~1.4.0 - * deps: type-is@~1.6.16 - - deps: mime-types@~2.1.18 - -4.16.2 / 2017-10-09 -=================== - - * Fix `TypeError` in `res.send` when given `Buffer` and `ETag` header set - * perf: skip parsing of entire `X-Forwarded-Proto` header - -4.16.1 / 2017-09-29 -=================== - - * deps: send@0.16.1 - * deps: serve-static@1.13.1 - - Fix regression when `root` is incorrectly set to a file - - deps: send@0.16.1 - -4.16.0 / 2017-09-28 -=================== - - * Add `"json escape"` setting for `res.json` and `res.jsonp` - * Add `express.json` and `express.urlencoded` to parse bodies - * Add `options` argument to `res.download` - * Improve error message when autoloading invalid view engine - * Improve error messages when non-function provided as middleware - * Skip `Buffer` encoding when not generating ETag for small response - * Use `safe-buffer` for improved Buffer API - * deps: accepts@~1.3.4 - - deps: mime-types@~2.1.16 - * deps: content-type@~1.0.4 - - perf: remove argument reassignment - - perf: skip parameter parsing when no parameters - * deps: etag@~1.8.1 - - perf: replace regular expression with substring - * deps: finalhandler@1.1.0 - - Use `res.headersSent` when available - * deps: parseurl@~1.3.2 - - perf: reduce overhead for full URLs - - perf: unroll the "fast-path" `RegExp` - * deps: proxy-addr@~2.0.2 - - Fix trimming leading / trailing OWS in `X-Forwarded-For` - - deps: forwarded@~0.1.2 - - deps: ipaddr.js@1.5.2 - - perf: reduce overhead when no `X-Forwarded-For` header - * deps: qs@6.5.1 - - Fix parsing & compacting very deep objects - * deps: send@0.16.0 - - Add 70 new types for file extensions - - Add `immutable` option - - Fix missing `` in default error & redirects - - Set charset as "UTF-8" for .js and .json - - Use instance methods on steam to check for listeners - - deps: mime@1.4.1 - - perf: improve path validation speed - * deps: serve-static@1.13.0 - - Add 70 new types for file extensions - - Add `immutable` option - - Set charset as "UTF-8" for .js and .json - - deps: send@0.16.0 - * deps: setprototypeof@1.1.0 - * deps: utils-merge@1.0.1 - * deps: vary@~1.1.2 - - perf: improve header token parsing speed - * perf: re-use options object when generating ETags - * perf: remove dead `.charset` set in `res.jsonp` - -4.15.5 / 2017-09-24 -=================== - - * deps: debug@2.6.9 - * deps: finalhandler@~1.0.6 - - deps: debug@2.6.9 - - deps: parseurl@~1.3.2 - * deps: fresh@0.5.2 - - Fix handling of modified headers with invalid dates - - perf: improve ETag match loop - - perf: improve `If-None-Match` token parsing - * deps: send@0.15.6 - - Fix handling of modified headers with invalid dates - - deps: debug@2.6.9 - - deps: etag@~1.8.1 - - deps: fresh@0.5.2 - - perf: improve `If-Match` token parsing - * deps: serve-static@1.12.6 - - deps: parseurl@~1.3.2 - - deps: send@0.15.6 - - perf: improve slash collapsing - -4.15.4 / 2017-08-06 -=================== - - * deps: debug@2.6.8 - * deps: depd@~1.1.1 - - Remove unnecessary `Buffer` loading - * deps: finalhandler@~1.0.4 - - deps: debug@2.6.8 - * deps: proxy-addr@~1.1.5 - - Fix array argument being altered - - deps: ipaddr.js@1.4.0 - * deps: qs@6.5.0 - * deps: send@0.15.4 - - deps: debug@2.6.8 - - deps: depd@~1.1.1 - - deps: http-errors@~1.6.2 - * deps: serve-static@1.12.4 - - deps: send@0.15.4 - -4.15.3 / 2017-05-16 -=================== - - * Fix error when `res.set` cannot add charset to `Content-Type` - * deps: debug@2.6.7 - - Fix `DEBUG_MAX_ARRAY_LENGTH` - - deps: ms@2.0.0 - * deps: finalhandler@~1.0.3 - - Fix missing `` in HTML document - - deps: debug@2.6.7 - * deps: proxy-addr@~1.1.4 - - deps: ipaddr.js@1.3.0 - * deps: send@0.15.3 - - deps: debug@2.6.7 - - deps: ms@2.0.0 - * deps: serve-static@1.12.3 - - deps: send@0.15.3 - * deps: type-is@~1.6.15 - - deps: mime-types@~2.1.15 - * deps: vary@~1.1.1 - - perf: hoist regular expression - -4.15.2 / 2017-03-06 -=================== - - * deps: qs@6.4.0 - - Fix regression parsing keys starting with `[` - -4.15.1 / 2017-03-05 -=================== - - * deps: send@0.15.1 - - Fix issue when `Date.parse` does not return `NaN` on invalid date - - Fix strict violation in broken environments - * deps: serve-static@1.12.1 - - Fix issue when `Date.parse` does not return `NaN` on invalid date - - deps: send@0.15.1 - -4.15.0 / 2017-03-01 -=================== - - * Add debug message when loading view engine - * Add `next("router")` to exit from router - * Fix case where `router.use` skipped requests routes did not - * Remove usage of `res._headers` private field - - Improves compatibility with Node.js 8 nightly - * Skip routing when `req.url` is not set - * Use `%o` in path debug to tell types apart - * Use `Object.create` to setup request & response prototypes - * Use `setprototypeof` module to replace `__proto__` setting - * Use `statuses` instead of `http` module for status messages - * deps: debug@2.6.1 - - Allow colors in workers - - Deprecated `DEBUG_FD` environment variable set to `3` or higher - - Fix error when running under React Native - - Use same color for same namespace - - deps: ms@0.7.2 - * deps: etag@~1.8.0 - - Use SHA1 instead of MD5 for ETag hashing - - Works with FIPS 140-2 OpenSSL configuration - * deps: finalhandler@~1.0.0 - - Fix exception when `err` cannot be converted to a string - - Fully URL-encode the pathname in the 404 - - Only include the pathname in the 404 message - - Send complete HTML document - - Set `Content-Security-Policy: default-src 'self'` header - - deps: debug@2.6.1 - * deps: fresh@0.5.0 - - Fix false detection of `no-cache` request directive - - Fix incorrect result when `If-None-Match` has both `*` and ETags - - Fix weak `ETag` matching to match spec - - perf: delay reading header values until needed - - perf: enable strict mode - - perf: hoist regular expressions - - perf: remove duplicate conditional - - perf: remove unnecessary boolean coercions - - perf: skip checking modified time if ETag check failed - - perf: skip parsing `If-None-Match` when no `ETag` header - - perf: use `Date.parse` instead of `new Date` - * deps: qs@6.3.1 - - Fix array parsing from skipping empty values - - Fix compacting nested arrays - * deps: send@0.15.0 - - Fix false detection of `no-cache` request directive - - Fix incorrect result when `If-None-Match` has both `*` and ETags - - Fix weak `ETag` matching to match spec - - Remove usage of `res._headers` private field - - Support `If-Match` and `If-Unmodified-Since` headers - - Use `res.getHeaderNames()` when available - - Use `res.headersSent` when available - - deps: debug@2.6.1 - - deps: etag@~1.8.0 - - deps: fresh@0.5.0 - - deps: http-errors@~1.6.1 - * deps: serve-static@1.12.0 - - Fix false detection of `no-cache` request directive - - Fix incorrect result when `If-None-Match` has both `*` and ETags - - Fix weak `ETag` matching to match spec - - Remove usage of `res._headers` private field - - Send complete HTML document in redirect response - - Set default CSP header in redirect response - - Support `If-Match` and `If-Unmodified-Since` headers - - Use `res.getHeaderNames()` when available - - Use `res.headersSent` when available - - deps: send@0.15.0 - * perf: add fast match path for `*` route - * perf: improve `req.ips` performance - -4.14.1 / 2017-01-28 -=================== - - * deps: content-disposition@0.5.2 - * deps: finalhandler@0.5.1 - - Fix exception when `err.headers` is not an object - - deps: statuses@~1.3.1 - - perf: hoist regular expressions - - perf: remove duplicate validation path - * deps: proxy-addr@~1.1.3 - - deps: ipaddr.js@1.2.0 - * deps: send@0.14.2 - - deps: http-errors@~1.5.1 - - deps: ms@0.7.2 - - deps: statuses@~1.3.1 - * deps: serve-static@~1.11.2 - - deps: send@0.14.2 - * deps: type-is@~1.6.14 - - deps: mime-types@~2.1.13 - -4.14.0 / 2016-06-16 -=================== - - * Add `acceptRanges` option to `res.sendFile`/`res.sendfile` - * Add `cacheControl` option to `res.sendFile`/`res.sendfile` - * Add `options` argument to `req.range` - - Includes the `combine` option - * Encode URL in `res.location`/`res.redirect` if not already encoded - * Fix some redirect handling in `res.sendFile`/`res.sendfile` - * Fix Windows absolute path check using forward slashes - * Improve error with invalid arguments to `req.get()` - * Improve performance for `res.json`/`res.jsonp` in most cases - * Improve `Range` header handling in `res.sendFile`/`res.sendfile` - * deps: accepts@~1.3.3 - - Fix including type extensions in parameters in `Accept` parsing - - Fix parsing `Accept` parameters with quoted equals - - Fix parsing `Accept` parameters with quoted semicolons - - Many performance improvements - - deps: mime-types@~2.1.11 - - deps: negotiator@0.6.1 - * deps: content-type@~1.0.2 - - perf: enable strict mode - * deps: cookie@0.3.1 - - Add `sameSite` option - - Fix cookie `Max-Age` to never be a floating point number - - Improve error message when `encode` is not a function - - Improve error message when `expires` is not a `Date` - - Throw better error for invalid argument to parse - - Throw on invalid values provided to `serialize` - - perf: enable strict mode - - perf: hoist regular expression - - perf: use for loop in parse - - perf: use string concatenation for serialization - * deps: finalhandler@0.5.0 - - Change invalid or non-numeric status code to 500 - - Overwrite status message to match set status code - - Prefer `err.statusCode` if `err.status` is invalid - - Set response headers from `err.headers` object - - Use `statuses` instead of `http` module for status messages - * deps: proxy-addr@~1.1.2 - - Fix accepting various invalid netmasks - - Fix IPv6-mapped IPv4 validation edge cases - - IPv4 netmasks must be contiguous - - IPv6 addresses cannot be used as a netmask - - deps: ipaddr.js@1.1.1 - * deps: qs@6.2.0 - - Add `decoder` option in `parse` function - * deps: range-parser@~1.2.0 - - Add `combine` option to combine overlapping ranges - - Fix incorrectly returning -1 when there is at least one valid range - - perf: remove internal function - * deps: send@0.14.1 - - Add `acceptRanges` option - - Add `cacheControl` option - - Attempt to combine multiple ranges into single range - - Correctly inherit from `Stream` class - - Fix `Content-Range` header in 416 responses when using `start`/`end` options - - Fix `Content-Range` header missing from default 416 responses - - Fix redirect error when `path` contains raw non-URL characters - - Fix redirect when `path` starts with multiple forward slashes - - Ignore non-byte `Range` headers - - deps: http-errors@~1.5.0 - - deps: range-parser@~1.2.0 - - deps: statuses@~1.3.0 - - perf: remove argument reassignment - * deps: serve-static@~1.11.1 - - Add `acceptRanges` option - - Add `cacheControl` option - - Attempt to combine multiple ranges into single range - - Fix redirect error when `req.url` contains raw non-URL characters - - Ignore non-byte `Range` headers - - Use status code 301 for redirects - - deps: send@0.14.1 - * deps: type-is@~1.6.13 - - Fix type error when given invalid type to match against - - deps: mime-types@~2.1.11 - * deps: vary@~1.1.0 - - Only accept valid field names in the `field` argument - * perf: use strict equality when possible - -4.13.4 / 2016-01-21 -=================== - - * deps: content-disposition@0.5.1 - - perf: enable strict mode - * deps: cookie@0.1.5 - - Throw on invalid values provided to `serialize` - * deps: depd@~1.1.0 - - Support web browser loading - - perf: enable strict mode - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - * deps: finalhandler@0.4.1 - - deps: escape-html@~1.0.3 - * deps: merge-descriptors@1.0.1 - - perf: enable strict mode - * deps: methods@~1.1.2 - - perf: enable strict mode - * deps: parseurl@~1.3.1 - - perf: enable strict mode - * deps: proxy-addr@~1.0.10 - - deps: ipaddr.js@1.0.5 - - perf: enable strict mode - * deps: range-parser@~1.0.3 - - perf: enable strict mode - * deps: send@0.13.1 - - deps: depd@~1.1.0 - - deps: destroy@~1.0.4 - - deps: escape-html@~1.0.3 - - deps: range-parser@~1.0.3 - * deps: serve-static@~1.10.2 - - deps: escape-html@~1.0.3 - - deps: parseurl@~1.3.0 - - deps: send@0.13.1 - -4.13.3 / 2015-08-02 -=================== - - * Fix infinite loop condition using `mergeParams: true` - * Fix inner numeric indices incorrectly altering parent `req.params` - -4.13.2 / 2015-07-31 -=================== - - * deps: accepts@~1.2.12 - - deps: mime-types@~2.1.4 - * deps: array-flatten@1.1.1 - - perf: enable strict mode - * deps: path-to-regexp@0.1.7 - - Fix regression with escaped round brackets and matching groups - * deps: type-is@~1.6.6 - - deps: mime-types@~2.1.4 - -4.13.1 / 2015-07-05 -=================== - - * deps: accepts@~1.2.10 - - deps: mime-types@~2.1.2 - * deps: qs@4.0.0 - - Fix dropping parameters like `hasOwnProperty` - - Fix various parsing edge cases - * deps: type-is@~1.6.4 - - deps: mime-types@~2.1.2 - - perf: enable strict mode - - perf: remove argument reassignment - -4.13.0 / 2015-06-20 -=================== - - * Add settings to debug output - * Fix `res.format` error when only `default` provided - * Fix issue where `next('route')` in `app.param` would incorrectly skip values - * Fix hiding platform issues with `decodeURIComponent` - - Only `URIError`s are a 400 - * Fix using `*` before params in routes - * Fix using capture groups before params in routes - * Simplify `res.cookie` to call `res.append` - * Use `array-flatten` module for flattening arrays - * deps: accepts@~1.2.9 - - deps: mime-types@~2.1.1 - - perf: avoid argument reassignment & argument slice - - perf: avoid negotiator recursive construction - - perf: enable strict mode - - perf: remove unnecessary bitwise operator - * deps: cookie@0.1.3 - - perf: deduce the scope of try-catch deopt - - perf: remove argument reassignments - * deps: escape-html@1.0.2 - * deps: etag@~1.7.0 - - Always include entity length in ETags for hash length extensions - - Generate non-Stats ETags using MD5 only (no longer CRC32) - - Improve stat performance by removing hashing - - Improve support for JXcore - - Remove base64 padding in ETags to shorten - - Support "fake" stats objects in environments without fs - - Use MD5 instead of MD4 in weak ETags over 1KB - * deps: finalhandler@0.4.0 - - Fix a false-positive when unpiping in Node.js 0.8 - - Support `statusCode` property on `Error` objects - - Use `unpipe` module for unpiping requests - - deps: escape-html@1.0.2 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove argument reassignment - * deps: fresh@0.3.0 - - Add weak `ETag` matching support - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * deps: path-to-regexp@0.1.6 - * deps: send@0.13.0 - - Allow Node.js HTTP server to set `Date` response header - - Fix incorrectly removing `Content-Location` on 304 response - - Improve the default redirect response headers - - Send appropriate headers on default error response - - Use `http-errors` for standard emitted errors - - Use `statuses` instead of `http` module for status messages - - deps: escape-html@1.0.2 - - deps: etag@~1.7.0 - - deps: fresh@0.3.0 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove unnecessary array allocations - * deps: serve-static@~1.10.0 - - Add `fallthrough` option - - Fix reading options from options prototype - - Improve the default redirect response headers - - Malformed URLs now `next()` instead of 400 - - deps: escape-html@1.0.2 - - deps: send@0.13.0 - - perf: enable strict mode - - perf: remove argument reassignment - * deps: type-is@~1.6.3 - - deps: mime-types@~2.1.1 - - perf: reduce try block size - - perf: remove bitwise operations - * perf: enable strict mode - * perf: isolate `app.render` try block - * perf: remove argument reassignments in application - * perf: remove argument reassignments in request prototype - * perf: remove argument reassignments in response prototype - * perf: remove argument reassignments in routing - * perf: remove argument reassignments in `View` - * perf: skip attempting to decode zero length string - * perf: use saved reference to `http.STATUS_CODES` - -4.12.4 / 2015-05-17 -=================== - - * deps: accepts@~1.2.7 - - deps: mime-types@~2.0.11 - - deps: negotiator@0.5.3 - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: depd@~1.0.1 - * deps: etag@~1.6.0 - - Improve support for JXcore - - Support "fake" stats objects in environments without `fs` - * deps: finalhandler@0.3.6 - - deps: debug@~2.2.0 - - deps: on-finished@~2.2.1 - * deps: on-finished@~2.2.1 - - Fix `isFinished(req)` when data buffered - * deps: proxy-addr@~1.0.8 - - deps: ipaddr.js@1.0.1 - * deps: qs@2.4.2 - - Fix allowing parameters like `constructor` - * deps: send@0.12.3 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: etag@~1.6.0 - - deps: ms@0.7.1 - - deps: on-finished@~2.2.1 - * deps: serve-static@~1.9.3 - - deps: send@0.12.3 - * deps: type-is@~1.6.2 - - deps: mime-types@~2.0.11 - -4.12.3 / 2015-03-17 -=================== - - * deps: accepts@~1.2.5 - - deps: mime-types@~2.0.10 - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: finalhandler@0.3.4 - - deps: debug@~2.1.3 - * deps: proxy-addr@~1.0.7 - - deps: ipaddr.js@0.1.9 - * deps: qs@2.4.1 - - Fix error when parameter `hasOwnProperty` is present - * deps: send@0.12.2 - - Throw errors early for invalid `extensions` or `index` options - - deps: debug@~2.1.3 - * deps: serve-static@~1.9.2 - - deps: send@0.12.2 - * deps: type-is@~1.6.1 - - deps: mime-types@~2.0.10 - -4.12.2 / 2015-03-02 -=================== - - * Fix regression where `"Request aborted"` is logged using `res.sendFile` - -4.12.1 / 2015-03-01 -=================== - - * Fix constructing application with non-configurable prototype properties - * Fix `ECONNRESET` errors from `res.sendFile` usage - * Fix `req.host` when using "trust proxy" hops count - * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count - * Fix wrong `code` on aborted connections from `res.sendFile` - * deps: merge-descriptors@1.0.0 - -4.12.0 / 2015-02-23 -=================== - - * Fix `"trust proxy"` setting to inherit when app is mounted - * Generate `ETag`s for all request responses - - No longer restricted to only responses for `GET` and `HEAD` requests - * Use `content-type` to parse `Content-Type` headers - * deps: accepts@~1.2.4 - - Fix preference sorting to be stable for long acceptable lists - - deps: mime-types@~2.0.9 - - deps: negotiator@0.5.1 - * deps: cookie-signature@1.0.6 - * deps: send@0.12.1 - - Always read the stat size from the file - - Fix mutating passed-in `options` - - deps: mime@1.3.4 - * deps: serve-static@~1.9.1 - - deps: send@0.12.1 - * deps: type-is@~1.6.0 - - fix argument reassignment - - fix false-positives in `hasBody` `Transfer-Encoding` check - - support wildcard for both type and subtype (`*/*`) - - deps: mime-types@~2.0.9 - -4.11.2 / 2015-02-01 -=================== - - * Fix `res.redirect` double-calling `res.end` for `HEAD` requests - * deps: accepts@~1.2.3 - - deps: mime-types@~2.0.8 - * deps: proxy-addr@~1.0.6 - - deps: ipaddr.js@0.1.8 - * deps: type-is@~1.5.6 - - deps: mime-types@~2.0.8 - -4.11.1 / 2015-01-20 -=================== - - * deps: send@0.11.1 - - Fix root path disclosure - * deps: serve-static@~1.8.1 - - Fix redirect loop in Node.js 0.11.14 - - Fix root path disclosure - - deps: send@0.11.1 - -4.11.0 / 2015-01-13 -=================== - - * Add `res.append(field, val)` to append headers - * Deprecate leading `:` in `name` for `app.param(name, fn)` - * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead - * Deprecate `app.param(fn)` - * Fix `OPTIONS` responses to include the `HEAD` method properly - * Fix `res.sendFile` not always detecting aborted connection - * Match routes iteratively to prevent stack overflows - * deps: accepts@~1.2.2 - - deps: mime-types@~2.0.7 - - deps: negotiator@0.5.0 - * deps: send@0.11.0 - - deps: debug@~2.1.1 - - deps: etag@~1.5.1 - - deps: ms@0.7.0 - - deps: on-finished@~2.2.0 - * deps: serve-static@~1.8.0 - - deps: send@0.11.0 - -4.10.8 / 2015-01-13 -=================== - - * Fix crash from error within `OPTIONS` response handler - * deps: proxy-addr@~1.0.5 - - deps: ipaddr.js@0.1.6 - -4.10.7 / 2015-01-04 -=================== - - * Fix `Allow` header for `OPTIONS` to not contain duplicate methods - * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304 - * deps: debug@~2.1.1 - * deps: finalhandler@0.3.3 - - deps: debug@~2.1.1 - - deps: on-finished@~2.2.0 - * deps: methods@~1.1.1 - * deps: on-finished@~2.2.0 - * deps: serve-static@~1.7.2 - - Fix potential open redirect when mounted at root - * deps: type-is@~1.5.5 - - deps: mime-types@~2.0.7 - -4.10.6 / 2014-12-12 -=================== - - * Fix exception in `req.fresh`/`req.stale` without response headers - -4.10.5 / 2014-12-10 -=================== - - * Fix `res.send` double-calling `res.end` for `HEAD` requests - * deps: accepts@~1.1.4 - - deps: mime-types@~2.0.4 - * deps: type-is@~1.5.4 - - deps: mime-types@~2.0.4 - -4.10.4 / 2014-11-24 -=================== - - * Fix `res.sendfile` logging standard write errors - -4.10.3 / 2014-11-23 -=================== - - * Fix `res.sendFile` logging standard write errors - * deps: etag@~1.5.1 - * deps: proxy-addr@~1.0.4 - - deps: ipaddr.js@0.1.5 - * deps: qs@2.3.3 - - Fix `arrayLimit` behavior - -4.10.2 / 2014-11-09 -=================== - - * Correctly invoke async router callback asynchronously - * deps: accepts@~1.1.3 - - deps: mime-types@~2.0.3 - * deps: type-is@~1.5.3 - - deps: mime-types@~2.0.3 - -4.10.1 / 2014-10-28 -=================== - - * Fix handling of URLs containing `://` in the path - * deps: qs@2.3.2 - - Fix parsing of mixed objects and values - -4.10.0 / 2014-10-23 -=================== - - * Add support for `app.set('views', array)` - - Views are looked up in sequence in array of directories - * Fix `res.send(status)` to mention `res.sendStatus(status)` - * Fix handling of invalid empty URLs - * Use `content-disposition` module for `res.attachment`/`res.download` - - Sends standards-compliant `Content-Disposition` header - - Full Unicode support - * Use `path.resolve` in view lookup - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - * deps: etag@~1.5.0 - - Improve string performance - - Slightly improve speed for weak ETags over 1KB - * deps: finalhandler@0.3.2 - - Terminate in progress response only on error - - Use `on-finished` to determine request status - - deps: debug@~2.1.0 - - deps: on-finished@~2.1.1 - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - * deps: qs@2.3.0 - - Fix parsing of mixed implicit and explicit arrays - * deps: send@0.10.1 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: etag@~1.5.0 - - deps: on-finished@~2.1.1 - * deps: serve-static@~1.7.1 - - deps: send@0.10.1 - -4.9.8 / 2014-10-17 -================== - - * Fix `res.redirect` body when redirect status specified - * deps: accepts@~1.1.2 - - Fix error when media type has invalid parameter - - deps: negotiator@0.4.9 - -4.9.7 / 2014-10-10 -================== - - * Fix using same param name in array of paths - -4.9.6 / 2014-10-08 -================== - - * deps: accepts@~1.1.1 - - deps: mime-types@~2.0.2 - - deps: negotiator@0.4.8 - * deps: serve-static@~1.6.4 - - Fix redirect loop when index file serving disabled - * deps: type-is@~1.5.2 - - deps: mime-types@~2.0.2 - -4.9.5 / 2014-09-24 -================== - - * deps: etag@~1.4.0 - * deps: proxy-addr@~1.0.3 - - Use `forwarded` npm module - * deps: send@0.9.3 - - deps: etag@~1.4.0 - * deps: serve-static@~1.6.3 - - deps: send@0.9.3 - -4.9.4 / 2014-09-19 -================== - - * deps: qs@2.2.4 - - Fix issue with object keys starting with numbers truncated - -4.9.3 / 2014-09-18 -================== - - * deps: proxy-addr@~1.0.2 - - Fix a global leak when multiple subnets are trusted - - deps: ipaddr.js@0.1.3 - -4.9.2 / 2014-09-17 -================== - - * Fix regression for empty string `path` in `app.use` - * Fix `router.use` to accept array of middleware without path - * Improve error message for bad `app.use` arguments - -4.9.1 / 2014-09-16 -================== - - * Fix `app.use` to accept array of middleware without path - * deps: depd@0.4.5 - * deps: etag@~1.3.1 - * deps: send@0.9.2 - - deps: depd@0.4.5 - - deps: etag@~1.3.1 - - deps: range-parser@~1.0.2 - * deps: serve-static@~1.6.2 - - deps: send@0.9.2 - -4.9.0 / 2014-09-08 -================== - - * Add `res.sendStatus` - * Invoke callback for sendfile when client aborts - - Applies to `res.sendFile`, `res.sendfile`, and `res.download` - - `err` will be populated with request aborted error - * Support IP address host in `req.subdomains` - * Use `etag` to generate `ETag` headers - * deps: accepts@~1.1.0 - - update `mime-types` - * deps: cookie-signature@1.0.5 - * deps: debug@~2.0.0 - * deps: finalhandler@0.2.0 - - Set `X-Content-Type-Options: nosniff` header - - deps: debug@~2.0.0 - * deps: fresh@0.2.4 - * deps: media-typer@0.3.0 - - Throw error when parameter format invalid on parse - * deps: qs@2.2.3 - - Fix issue where first empty value in array is discarded - * deps: range-parser@~1.0.2 - * deps: send@0.9.1 - - Add `lastModified` option - - Use `etag` to generate `ETag` header - - deps: debug@~2.0.0 - - deps: fresh@0.2.4 - * deps: serve-static@~1.6.1 - - Add `lastModified` option - - deps: send@0.9.1 - * deps: type-is@~1.5.1 - - fix `hasbody` to be true for `content-length: 0` - - deps: media-typer@0.3.0 - - deps: mime-types@~2.0.1 - * deps: vary@~1.0.0 - - Accept valid `Vary` header string as `field` - -4.8.8 / 2014-09-04 -================== - - * deps: send@0.8.5 - - Fix a path traversal issue when using `root` - - Fix malicious path detection for empty string path - * deps: serve-static@~1.5.4 - - deps: send@0.8.5 - -4.8.7 / 2014-08-29 -================== - - * deps: qs@2.2.2 - - Remove unnecessary cloning - -4.8.6 / 2014-08-27 -================== - - * deps: qs@2.2.0 - - Array parsing fix - - Performance improvements - -4.8.5 / 2014-08-18 -================== - - * deps: send@0.8.3 - - deps: destroy@1.0.3 - - deps: on-finished@2.1.0 - * deps: serve-static@~1.5.3 - - deps: send@0.8.3 - -4.8.4 / 2014-08-14 -================== - - * deps: qs@1.2.2 - * deps: send@0.8.2 - - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - * deps: serve-static@~1.5.2 - - deps: send@0.8.2 - -4.8.3 / 2014-08-10 -================== - - * deps: parseurl@~1.3.0 - * deps: qs@1.2.1 - * deps: serve-static@~1.5.1 - - Fix parsing of weird `req.originalUrl` values - - deps: parseurl@~1.3.0 - - deps: utils-merge@1.0.0 - -4.8.2 / 2014-08-07 -================== - - * deps: qs@1.2.0 - - Fix parsing array of objects - -4.8.1 / 2014-08-06 -================== - - * fix incorrect deprecation warnings on `res.download` - * deps: qs@1.1.0 - - Accept urlencoded square brackets - - Accept empty values in implicit array notation - -4.8.0 / 2014-08-05 -================== - - * add `res.sendFile` - - accepts a file system path instead of a URL - - requires an absolute path or `root` option specified - * deprecate `res.sendfile` -- use `res.sendFile` instead - * support mounted app as any argument to `app.use()` - * deps: qs@1.0.2 - - Complete rewrite - - Limits array length to 20 - - Limits object depth to 5 - - Limits parameters to 1,000 - * deps: send@0.8.1 - - Add `extensions` option - * deps: serve-static@~1.5.0 - - Add `extensions` option - - deps: send@0.8.1 - -4.7.4 / 2014-08-04 -================== - - * fix `res.sendfile` regression for serving directory index files - * deps: send@0.7.4 - - Fix incorrect 403 on Windows and Node.js 0.11 - - Fix serving index files without root dir - * deps: serve-static@~1.4.4 - - deps: send@0.7.4 - -4.7.3 / 2014-08-04 -================== - - * deps: send@0.7.3 - - Fix incorrect 403 on Windows and Node.js 0.11 - * deps: serve-static@~1.4.3 - - Fix incorrect 403 on Windows and Node.js 0.11 - - deps: send@0.7.3 - -4.7.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - * deps: send@0.7.2 - - deps: depd@0.4.4 - * deps: serve-static@~1.4.2 - -4.7.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - * deps: send@0.7.1 - - deps: depd@0.4.3 - * deps: serve-static@~1.4.1 - -4.7.0 / 2014-07-25 -================== - - * fix `req.protocol` for proxy-direct connections - * configurable query parser with `app.set('query parser', parser)` - - `app.set('query parser', 'extended')` parse with "qs" module - - `app.set('query parser', 'simple')` parse with "querystring" core module - - `app.set('query parser', false)` disable query string parsing - - `app.set('query parser', true)` enable simple parsing - * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead - * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead - * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: finalhandler@0.1.0 - - Respond after request fully read - - deps: debug@1.0.4 - * deps: parseurl@~1.2.0 - - Cache URLs based on original value - - Remove no-longer-needed URL mis-parse work-around - - Simplify the "fast-path" `RegExp` - * deps: send@0.7.0 - - Add `dotfiles` option - - Cap `maxAge` value to 1 year - - deps: debug@1.0.4 - - deps: depd@0.4.2 - * deps: serve-static@~1.4.0 - - deps: parseurl@~1.2.0 - - deps: send@0.7.0 - * perf: prevent multiple `Buffer` creation in `res.send` - -4.6.1 / 2014-07-12 -================== - - * fix `subapp.mountpath` regression for `app.use(subapp)` - -4.6.0 / 2014-07-11 -================== - - * accept multiple callbacks to `app.use()` - * add explicit "Rosetta Flash JSONP abuse" protection - - previous versions are not vulnerable; this is just explicit protection - * catch errors in multiple `req.param(name, fn)` handlers - * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead - * fix `res.send(status, num)` to send `num` as json (not error) - * remove unnecessary escaping when `res.jsonp` returns JSON response - * support non-string `path` in `app.use(path, fn)` - - supports array of paths - - supports `RegExp` - * router: fix optimization on router exit - * router: refactor location of `try` blocks - * router: speed up standard `app.use(fn)` - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - * deps: finalhandler@0.0.3 - - deps: debug@1.0.3 - * deps: methods@1.1.0 - - add `CONNECT` - * deps: parseurl@~1.1.3 - - faster parsing of href-only URLs - * deps: path-to-regexp@0.1.3 - * deps: send@0.6.0 - - deps: debug@1.0.3 - * deps: serve-static@~1.3.2 - - deps: parseurl@~1.1.3 - - deps: send@0.6.0 - * perf: fix arguments reassign deopt in some `res` methods - -4.5.1 / 2014-07-06 -================== - - * fix routing regression when altering `req.method` - -4.5.0 / 2014-07-04 -================== - - * add deprecation message to non-plural `req.accepts*` - * add deprecation message to `res.send(body, status)` - * add deprecation message to `res.vary()` - * add `headers` option to `res.sendfile` - - use to set headers on successful file transfer - * add `mergeParams` option to `Router` - - merges `req.params` from parent routes - * add `req.hostname` -- correct name for what `req.host` returns - * deprecate things with `depd` module - * deprecate `req.host` -- use `req.hostname` instead - * fix behavior when handling request without routes - * fix handling when `route.all` is only route - * invoke `router.param()` only when route matches - * restore `req.params` after invoking router - * use `finalhandler` for final response handling - * use `media-typer` to alter content-type charset - * deps: accepts@~1.0.7 - * deps: send@0.5.0 - - Accept string for `maxage` (converted by `ms`) - - Include link in default redirect response - * deps: serve-static@~1.3.0 - - Accept string for `maxAge` (converted by `ms`) - - Add `setHeaders` option - - Include HTML link in redirect response - - deps: send@0.5.0 - * deps: type-is@~1.3.2 - -4.4.5 / 2014-06-26 -================== - - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -4.4.4 / 2014-06-20 -================== - - * fix `res.attachment` Unicode filenames in Safari - * fix "trim prefix" debug message in `express:router` - * deps: accepts@~1.0.5 - * deps: buffer-crc32@0.2.3 - -4.4.3 / 2014-06-11 -================== - - * fix persistence of modified `req.params[name]` from `app.param()` - * deps: accepts@1.0.3 - - deps: negotiator@0.4.6 - * deps: debug@1.0.2 - * deps: send@0.4.3 - - Do not throw uncatchable error on file open race condition - - Use `escape-html` for HTML escaping - - deps: debug@1.0.2 - - deps: finished@1.2.2 - - deps: fresh@0.2.2 - * deps: serve-static@1.2.3 - - Do not throw uncatchable error on file open race condition - - deps: send@0.4.3 - -4.4.2 / 2014-06-09 -================== - - * fix catching errors from top-level handlers - * use `vary` module for `res.vary` - * deps: debug@1.0.1 - * deps: proxy-addr@1.0.1 - * deps: send@0.4.2 - - fix "event emitter leak" warnings - - deps: debug@1.0.1 - - deps: finished@1.2.1 - * deps: serve-static@1.2.2 - - fix "event emitter leak" warnings - - deps: send@0.4.2 - * deps: type-is@1.2.1 - -4.4.1 / 2014-06-02 -================== - - * deps: methods@1.0.1 - * deps: send@0.4.1 - - Send `max-age` in `Cache-Control` in correct format - * deps: serve-static@1.2.1 - - use `escape-html` for escaping - - deps: send@0.4.1 - -4.4.0 / 2014-05-30 -================== - - * custom etag control with `app.set('etag', val)` - - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation - - `app.set('etag', 'weak')` weak tag - - `app.set('etag', 'strong')` strong etag - - `app.set('etag', false)` turn off - - `app.set('etag', true)` standard etag - * mark `res.send` ETag as weak and reduce collisions - * update accepts to 1.0.2 - - Fix interpretation when header not in request - * update send to 0.4.0 - - Calculate ETag with md5 for reduced collisions - - Ignore stream errors after request ends - - deps: debug@0.8.1 - * update serve-static to 1.2.0 - - Calculate ETag with md5 for reduced collisions - - Ignore stream errors after request ends - - deps: send@0.4.0 - -4.3.2 / 2014-05-28 -================== - - * fix handling of errors from `router.param()` callbacks - -4.3.1 / 2014-05-23 -================== - - * revert "fix behavior of multiple `app.VERB` for the same path" - - this caused a regression in the order of route execution - -4.3.0 / 2014-05-21 -================== - - * add `req.baseUrl` to access the path stripped from `req.url` in routes - * fix behavior of multiple `app.VERB` for the same path - * fix issue routing requests among sub routers - * invoke `router.param()` only when necessary instead of every match - * proper proxy trust with `app.set('trust proxy', trust)` - - `app.set('trust proxy', 1)` trust first hop - - `app.set('trust proxy', 'loopback')` trust loopback addresses - - `app.set('trust proxy', '10.0.0.1')` trust single IP - - `app.set('trust proxy', '10.0.0.1/16')` trust subnet - - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list - - `app.set('trust proxy', false)` turn off - - `app.set('trust proxy', true)` trust everything - * set proper `charset` in `Content-Type` for `res.send` - * update type-is to 1.2.0 - - support suffix matching - -4.2.0 / 2014-05-11 -================== - - * deprecate `app.del()` -- use `app.delete()` instead - * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead - - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` - * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead - - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` - * fix `req.next` when inside router instance - * include `ETag` header in `HEAD` requests - * keep previous `Content-Type` for `res.jsonp` - * support PURGE method - - add `app.purge` - - add `router.purge` - - include PURGE in `app.all` - * update debug to 0.8.0 - - add `enable()` method - - change from stderr to stdout - * update methods to 1.0.0 - - add PURGE - -4.1.2 / 2014-05-08 -================== - - * fix `req.host` for IPv6 literals - * fix `res.jsonp` error if callback param is object - -4.1.1 / 2014-04-27 -================== - - * fix package.json to reflect supported node version - -4.1.0 / 2014-04-24 -================== - - * pass options from `res.sendfile` to `send` - * preserve casing of headers in `res.header` and `res.set` - * support unicode file names in `res.attachment` and `res.download` - * update accepts to 1.0.1 - - deps: negotiator@0.4.0 - * update cookie to 0.1.2 - - Fix for maxAge == 0 - - made compat with expires field - * update send to 0.3.0 - - Accept API options in options object - - Coerce option types - - Control whether to generate etags - - Default directory access to 403 when index disabled - - Fix sending files with dots without root set - - Include file path in etag - - Make "Can't set headers after they are sent." catchable - - Send full entity-body for multi range requests - - Set etags to "weak" - - Support "If-Range" header - - Support multiple index paths - - deps: mime@1.2.11 - * update serve-static to 1.1.0 - - Accept options directly to `send` module - - Resolve relative paths at middleware setup - - Use parseurl to parse the URL from request - - deps: send@0.3.0 - * update type-is to 1.1.0 - - add non-array values support - - add `multipart` as a shorthand - -4.0.0 / 2014-04-09 -================== - - * remove: - - node 0.8 support - - connect and connect's patches except for charset handling - - express(1) - moved to [express-generator](https://github.com/expressjs/generator) - - `express.createServer()` - it has been deprecated for a long time. Use `express()` - - `app.configure` - use logic in your own app code - - `app.router` - is removed - - `req.auth` - use `basic-auth` instead - - `req.accepted*` - use `req.accepts*()` instead - - `res.location` - relative URL resolution is removed - - `res.charset` - include the charset in the content type when using `res.set()` - - all bundled middleware except `static` - * change: - - `app.route` -> `app.mountpath` when mounting an express app in another express app - - `json spaces` no longer enabled by default in development - - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings` - - `req.params` is now an object instead of an array - - `res.locals` is no longer a function. It is a plain js object. Treat it as such. - - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object - * refactor: - - `req.accepts*` with [accepts](https://github.com/expressjs/accepts) - - `req.is` with [type-is](https://github.com/expressjs/type-is) - - [path-to-regexp](https://github.com/component/path-to-regexp) - * add: - - `app.router()` - returns the app Router instance - - `app.route()` - Proxy to the app's `Router#route()` method to create a new route - - Router & Route - public API - -3.21.2 / 2015-07-31 -=================== - - * deps: connect@2.30.2 - - deps: body-parser@~1.13.3 - - deps: compression@~1.5.2 - - deps: errorhandler@~1.4.2 - - deps: method-override@~2.3.5 - - deps: serve-index@~1.7.2 - - deps: type-is@~1.6.6 - - deps: vhost@~3.0.1 - * deps: vary@~1.0.1 - - Fix setting empty header from empty `field` - - perf: enable strict mode - - perf: remove argument reassignments - -3.21.1 / 2015-07-05 -=================== - - * deps: basic-auth@~1.0.3 - * deps: connect@2.30.1 - - deps: body-parser@~1.13.2 - - deps: compression@~1.5.1 - - deps: errorhandler@~1.4.1 - - deps: morgan@~1.6.1 - - deps: pause@0.1.0 - - deps: qs@4.0.0 - - deps: serve-index@~1.7.1 - - deps: type-is@~1.6.4 - -3.21.0 / 2015-06-18 -=================== - - * deps: basic-auth@1.0.2 - - perf: enable strict mode - - perf: hoist regular expression - - perf: parse with regular expressions - - perf: remove argument reassignment - * deps: connect@2.30.0 - - deps: body-parser@~1.13.1 - - deps: bytes@2.1.0 - - deps: compression@~1.5.0 - - deps: cookie@0.1.3 - - deps: cookie-parser@~1.3.5 - - deps: csurf@~1.8.3 - - deps: errorhandler@~1.4.0 - - deps: express-session@~1.11.3 - - deps: finalhandler@0.4.0 - - deps: fresh@0.3.0 - - deps: morgan@~1.6.0 - - deps: serve-favicon@~2.3.0 - - deps: serve-index@~1.7.0 - - deps: serve-static@~1.10.0 - - deps: type-is@~1.6.3 - * deps: cookie@0.1.3 - - perf: deduce the scope of try-catch deopt - - perf: remove argument reassignments - * deps: escape-html@1.0.2 - * deps: etag@~1.7.0 - - Always include entity length in ETags for hash length extensions - - Generate non-Stats ETags using MD5 only (no longer CRC32) - - Improve stat performance by removing hashing - - Improve support for JXcore - - Remove base64 padding in ETags to shorten - - Support "fake" stats objects in environments without fs - - Use MD5 instead of MD4 in weak ETags over 1KB - * deps: fresh@0.3.0 - - Add weak `ETag` matching support - * deps: mkdirp@0.5.1 - - Work in global strict mode - * deps: send@0.13.0 - - Allow Node.js HTTP server to set `Date` response header - - Fix incorrectly removing `Content-Location` on 304 response - - Improve the default redirect response headers - - Send appropriate headers on default error response - - Use `http-errors` for standard emitted errors - - Use `statuses` instead of `http` module for status messages - - deps: escape-html@1.0.2 - - deps: etag@~1.7.0 - - deps: fresh@0.3.0 - - deps: on-finished@~2.3.0 - - perf: enable strict mode - - perf: remove unnecessary array allocations - -3.20.3 / 2015-05-17 -=================== - - * deps: connect@2.29.2 - - deps: body-parser@~1.12.4 - - deps: compression@~1.4.4 - - deps: connect-timeout@~1.6.2 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: errorhandler@~1.3.6 - - deps: finalhandler@0.3.6 - - deps: method-override@~2.3.3 - - deps: morgan@~1.5.3 - - deps: qs@2.4.2 - - deps: response-time@~2.3.1 - - deps: serve-favicon@~2.2.1 - - deps: serve-index@~1.6.4 - - deps: serve-static@~1.9.3 - - deps: type-is@~1.6.2 - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: depd@~1.0.1 - * deps: proxy-addr@~1.0.8 - - deps: ipaddr.js@1.0.1 - * deps: send@0.12.3 - - deps: debug@~2.2.0 - - deps: depd@~1.0.1 - - deps: etag@~1.6.0 - - deps: ms@0.7.1 - - deps: on-finished@~2.2.1 - -3.20.2 / 2015-03-16 -=================== - - * deps: connect@2.29.1 - - deps: body-parser@~1.12.2 - - deps: compression@~1.4.3 - - deps: connect-timeout@~1.6.1 - - deps: debug@~2.1.3 - - deps: errorhandler@~1.3.5 - - deps: express-session@~1.10.4 - - deps: finalhandler@0.3.4 - - deps: method-override@~2.3.2 - - deps: morgan@~1.5.2 - - deps: qs@2.4.1 - - deps: serve-index@~1.6.3 - - deps: serve-static@~1.9.2 - - deps: type-is@~1.6.1 - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - * deps: merge-descriptors@1.0.0 - * deps: proxy-addr@~1.0.7 - - deps: ipaddr.js@0.1.9 - * deps: send@0.12.2 - - Throw errors early for invalid `extensions` or `index` options - - deps: debug@~2.1.3 - -3.20.1 / 2015-02-28 -=================== - - * Fix `req.host` when using "trust proxy" hops count - * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count - -3.20.0 / 2015-02-18 -=================== - - * Fix `"trust proxy"` setting to inherit when app is mounted - * Generate `ETag`s for all request responses - - No longer restricted to only responses for `GET` and `HEAD` requests - * Use `content-type` to parse `Content-Type` headers - * deps: connect@2.29.0 - - Use `content-type` to parse `Content-Type` headers - - deps: body-parser@~1.12.0 - - deps: compression@~1.4.1 - - deps: connect-timeout@~1.6.0 - - deps: cookie-parser@~1.3.4 - - deps: cookie-signature@1.0.6 - - deps: csurf@~1.7.0 - - deps: errorhandler@~1.3.4 - - deps: express-session@~1.10.3 - - deps: http-errors@~1.3.1 - - deps: response-time@~2.3.0 - - deps: serve-index@~1.6.2 - - deps: serve-static@~1.9.1 - - deps: type-is@~1.6.0 - * deps: cookie-signature@1.0.6 - * deps: send@0.12.1 - - Always read the stat size from the file - - Fix mutating passed-in `options` - - deps: mime@1.3.4 - -3.19.2 / 2015-02-01 -=================== - - * deps: connect@2.28.3 - - deps: compression@~1.3.1 - - deps: csurf@~1.6.6 - - deps: errorhandler@~1.3.3 - - deps: express-session@~1.10.2 - - deps: serve-index@~1.6.1 - - deps: type-is@~1.5.6 - * deps: proxy-addr@~1.0.6 - - deps: ipaddr.js@0.1.8 - -3.19.1 / 2015-01-20 -=================== - - * deps: connect@2.28.2 - - deps: body-parser@~1.10.2 - - deps: serve-static@~1.8.1 - * deps: send@0.11.1 - - Fix root path disclosure - -3.19.0 / 2015-01-09 -=================== - - * Fix `OPTIONS` responses to include the `HEAD` method property - * Use `readline` for prompt in `express(1)` - * deps: commander@2.6.0 - * deps: connect@2.28.1 - - deps: body-parser@~1.10.1 - - deps: compression@~1.3.0 - - deps: connect-timeout@~1.5.0 - - deps: csurf@~1.6.4 - - deps: debug@~2.1.1 - - deps: errorhandler@~1.3.2 - - deps: express-session@~1.10.1 - - deps: finalhandler@0.3.3 - - deps: method-override@~2.3.1 - - deps: morgan@~1.5.1 - - deps: serve-favicon@~2.2.0 - - deps: serve-index@~1.6.0 - - deps: serve-static@~1.8.0 - - deps: type-is@~1.5.5 - * deps: debug@~2.1.1 - * deps: methods@~1.1.1 - * deps: proxy-addr@~1.0.5 - - deps: ipaddr.js@0.1.6 - * deps: send@0.11.0 - - deps: debug@~2.1.1 - - deps: etag@~1.5.1 - - deps: ms@0.7.0 - - deps: on-finished@~2.2.0 - -3.18.6 / 2014-12-12 -=================== - - * Fix exception in `req.fresh`/`req.stale` without response headers - -3.18.5 / 2014-12-11 -=================== - - * deps: connect@2.27.6 - - deps: compression@~1.2.2 - - deps: express-session@~1.9.3 - - deps: http-errors@~1.2.8 - - deps: serve-index@~1.5.3 - - deps: type-is@~1.5.4 - -3.18.4 / 2014-11-23 -=================== - - * deps: connect@2.27.4 - - deps: body-parser@~1.9.3 - - deps: compression@~1.2.1 - - deps: errorhandler@~1.2.3 - - deps: express-session@~1.9.2 - - deps: qs@2.3.3 - - deps: serve-favicon@~2.1.7 - - deps: serve-static@~1.5.1 - - deps: type-is@~1.5.3 - * deps: etag@~1.5.1 - * deps: proxy-addr@~1.0.4 - - deps: ipaddr.js@0.1.5 - -3.18.3 / 2014-11-09 -=================== - - * deps: connect@2.27.3 - - Correctly invoke async callback asynchronously - - deps: csurf@~1.6.3 - -3.18.2 / 2014-10-28 -=================== - - * deps: connect@2.27.2 - - Fix handling of URLs containing `://` in the path - - deps: body-parser@~1.9.2 - - deps: qs@2.3.2 - -3.18.1 / 2014-10-22 -=================== - - * Fix internal `utils.merge` deprecation warnings - * deps: connect@2.27.1 - - deps: body-parser@~1.9.1 - - deps: express-session@~1.9.1 - - deps: finalhandler@0.3.2 - - deps: morgan@~1.4.1 - - deps: qs@2.3.0 - - deps: serve-static@~1.7.1 - * deps: send@0.10.1 - - deps: on-finished@~2.1.1 - -3.18.0 / 2014-10-17 -=================== - - * Use `content-disposition` module for `res.attachment`/`res.download` - - Sends standards-compliant `Content-Disposition` header - - Full Unicode support - * Use `etag` module to generate `ETag` headers - * deps: connect@2.27.0 - - Use `http-errors` module for creating errors - - Use `utils-merge` module for merging objects - - deps: body-parser@~1.9.0 - - deps: compression@~1.2.0 - - deps: connect-timeout@~1.4.0 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: express-session@~1.9.0 - - deps: finalhandler@0.3.1 - - deps: method-override@~2.3.0 - - deps: morgan@~1.4.0 - - deps: response-time@~2.2.0 - - deps: serve-favicon@~2.1.6 - - deps: serve-index@~1.5.0 - - deps: serve-static@~1.7.0 - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - * deps: send@0.10.0 - - deps: debug@~2.1.0 - - deps: depd@~1.0.0 - - deps: etag@~1.5.0 - -3.17.8 / 2014-10-15 -=================== - - * deps: connect@2.26.6 - - deps: compression@~1.1.2 - - deps: csurf@~1.6.2 - - deps: errorhandler@~1.2.2 - -3.17.7 / 2014-10-08 -=================== - - * deps: connect@2.26.5 - - Fix accepting non-object arguments to `logger` - - deps: serve-static@~1.6.4 - -3.17.6 / 2014-10-02 -=================== - - * deps: connect@2.26.4 - - deps: morgan@~1.3.2 - - deps: type-is@~1.5.2 - -3.17.5 / 2014-09-24 -=================== - - * deps: connect@2.26.3 - - deps: body-parser@~1.8.4 - - deps: serve-favicon@~2.1.5 - - deps: serve-static@~1.6.3 - * deps: proxy-addr@~1.0.3 - - Use `forwarded` npm module - * deps: send@0.9.3 - - deps: etag@~1.4.0 - -3.17.4 / 2014-09-19 -=================== - - * deps: connect@2.26.2 - - deps: body-parser@~1.8.3 - - deps: qs@2.2.4 - -3.17.3 / 2014-09-18 -=================== - - * deps: proxy-addr@~1.0.2 - - Fix a global leak when multiple subnets are trusted - - deps: ipaddr.js@0.1.3 - -3.17.2 / 2014-09-15 -=================== - - * Use `crc` instead of `buffer-crc32` for speed - * deps: connect@2.26.1 - - deps: body-parser@~1.8.2 - - deps: depd@0.4.5 - - deps: express-session@~1.8.2 - - deps: morgan@~1.3.1 - - deps: serve-favicon@~2.1.3 - - deps: serve-static@~1.6.2 - * deps: depd@0.4.5 - * deps: send@0.9.2 - - deps: depd@0.4.5 - - deps: etag@~1.3.1 - - deps: range-parser@~1.0.2 - -3.17.1 / 2014-09-08 -=================== - - * Fix error in `req.subdomains` on empty host - -3.17.0 / 2014-09-08 -=================== - - * Support `X-Forwarded-Host` in `req.subdomains` - * Support IP address host in `req.subdomains` - * deps: connect@2.26.0 - - deps: body-parser@~1.8.1 - - deps: compression@~1.1.0 - - deps: connect-timeout@~1.3.0 - - deps: cookie-parser@~1.3.3 - - deps: cookie-signature@1.0.5 - - deps: csurf@~1.6.1 - - deps: debug@~2.0.0 - - deps: errorhandler@~1.2.0 - - deps: express-session@~1.8.1 - - deps: finalhandler@0.2.0 - - deps: fresh@0.2.4 - - deps: media-typer@0.3.0 - - deps: method-override@~2.2.0 - - deps: morgan@~1.3.0 - - deps: qs@2.2.3 - - deps: serve-favicon@~2.1.3 - - deps: serve-index@~1.2.1 - - deps: serve-static@~1.6.1 - - deps: type-is@~1.5.1 - - deps: vhost@~3.0.0 - * deps: cookie-signature@1.0.5 - * deps: debug@~2.0.0 - * deps: fresh@0.2.4 - * deps: media-typer@0.3.0 - - Throw error when parameter format invalid on parse - * deps: range-parser@~1.0.2 - * deps: send@0.9.1 - - Add `lastModified` option - - Use `etag` to generate `ETag` header - - deps: debug@~2.0.0 - - deps: fresh@0.2.4 - * deps: vary@~1.0.0 - - Accept valid `Vary` header string as `field` - -3.16.10 / 2014-09-04 -==================== - - * deps: connect@2.25.10 - - deps: serve-static@~1.5.4 - * deps: send@0.8.5 - - Fix a path traversal issue when using `root` - - Fix malicious path detection for empty string path - -3.16.9 / 2014-08-29 -=================== - - * deps: connect@2.25.9 - - deps: body-parser@~1.6.7 - - deps: qs@2.2.2 - -3.16.8 / 2014-08-27 -=================== - - * deps: connect@2.25.8 - - deps: body-parser@~1.6.6 - - deps: csurf@~1.4.1 - - deps: qs@2.2.0 - -3.16.7 / 2014-08-18 -=================== - - * deps: connect@2.25.7 - - deps: body-parser@~1.6.5 - - deps: express-session@~1.7.6 - - deps: morgan@~1.2.3 - - deps: serve-static@~1.5.3 - * deps: send@0.8.3 - - deps: destroy@1.0.3 - - deps: on-finished@2.1.0 - -3.16.6 / 2014-08-14 -=================== - - * deps: connect@2.25.6 - - deps: body-parser@~1.6.4 - - deps: qs@1.2.2 - - deps: serve-static@~1.5.2 - * deps: send@0.8.2 - - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` - -3.16.5 / 2014-08-11 -=================== - - * deps: connect@2.25.5 - - Fix backwards compatibility in `logger` - -3.16.4 / 2014-08-10 -=================== - - * Fix original URL parsing in `res.location` - * deps: connect@2.25.4 - - Fix `query` middleware breaking with argument - - deps: body-parser@~1.6.3 - - deps: compression@~1.0.11 - - deps: connect-timeout@~1.2.2 - - deps: express-session@~1.7.5 - - deps: method-override@~2.1.3 - - deps: on-headers@~1.0.0 - - deps: parseurl@~1.3.0 - - deps: qs@1.2.1 - - deps: response-time@~2.0.1 - - deps: serve-index@~1.1.6 - - deps: serve-static@~1.5.1 - * deps: parseurl@~1.3.0 - -3.16.3 / 2014-08-07 -=================== - - * deps: connect@2.25.3 - - deps: multiparty@3.3.2 - -3.16.2 / 2014-08-07 -=================== - - * deps: connect@2.25.2 - - deps: body-parser@~1.6.2 - - deps: qs@1.2.0 - -3.16.1 / 2014-08-06 -=================== - - * deps: connect@2.25.1 - - deps: body-parser@~1.6.1 - - deps: qs@1.1.0 - -3.16.0 / 2014-08-05 -=================== - - * deps: connect@2.25.0 - - deps: body-parser@~1.6.0 - - deps: compression@~1.0.10 - - deps: csurf@~1.4.0 - - deps: express-session@~1.7.4 - - deps: qs@1.0.2 - - deps: serve-static@~1.5.0 - * deps: send@0.8.1 - - Add `extensions` option - -3.15.3 / 2014-08-04 -=================== - - * fix `res.sendfile` regression for serving directory index files - * deps: connect@2.24.3 - - deps: serve-index@~1.1.5 - - deps: serve-static@~1.4.4 - * deps: send@0.7.4 - - Fix incorrect 403 on Windows and Node.js 0.11 - - Fix serving index files without root dir - -3.15.2 / 2014-07-27 -=================== - - * deps: connect@2.24.2 - - deps: body-parser@~1.5.2 - - deps: depd@0.4.4 - - deps: express-session@~1.7.2 - - deps: morgan@~1.2.2 - - deps: serve-static@~1.4.2 - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - * deps: send@0.7.2 - - deps: depd@0.4.4 - -3.15.1 / 2014-07-26 -=================== - - * deps: connect@2.24.1 - - deps: body-parser@~1.5.1 - - deps: depd@0.4.3 - - deps: express-session@~1.7.1 - - deps: morgan@~1.2.1 - - deps: serve-index@~1.1.4 - - deps: serve-static@~1.4.1 - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - * deps: send@0.7.1 - - deps: depd@0.4.3 - -3.15.0 / 2014-07-22 -=================== - - * Fix `req.protocol` for proxy-direct connections - * Pass options from `res.sendfile` to `send` - * deps: connect@2.24.0 - - deps: body-parser@~1.5.0 - - deps: compression@~1.0.9 - - deps: connect-timeout@~1.2.1 - - deps: debug@1.0.4 - - deps: depd@0.4.2 - - deps: express-session@~1.7.0 - - deps: finalhandler@0.1.0 - - deps: method-override@~2.1.2 - - deps: morgan@~1.2.0 - - deps: multiparty@3.3.1 - - deps: parseurl@~1.2.0 - - deps: serve-static@~1.4.0 - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - * deps: parseurl@~1.2.0 - - Cache URLs based on original value - - Remove no-longer-needed URL mis-parse work-around - - Simplify the "fast-path" `RegExp` - * deps: send@0.7.0 - - Add `dotfiles` option - - Cap `maxAge` value to 1 year - - deps: debug@1.0.4 - - deps: depd@0.4.2 - -3.14.0 / 2014-07-11 -=================== - - * add explicit "Rosetta Flash JSONP abuse" protection - - previous versions are not vulnerable; this is just explicit protection - * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead - * fix `res.send(status, num)` to send `num` as json (not error) - * remove unnecessary escaping when `res.jsonp` returns JSON response - * deps: basic-auth@1.0.0 - - support empty password - - support empty username - * deps: connect@2.23.0 - - deps: debug@1.0.3 - - deps: express-session@~1.6.4 - - deps: method-override@~2.1.0 - - deps: parseurl@~1.1.3 - - deps: serve-static@~1.3.1 - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - * deps: methods@1.1.0 - - add `CONNECT` - * deps: parseurl@~1.1.3 - - faster parsing of href-only URLs - -3.13.0 / 2014-07-03 -=================== - - * add deprecation message to `app.configure` - * add deprecation message to `req.auth` - * use `basic-auth` to parse `Authorization` header - * deps: connect@2.22.0 - - deps: csurf@~1.3.0 - - deps: express-session@~1.6.1 - - deps: multiparty@3.3.0 - - deps: serve-static@~1.3.0 - * deps: send@0.5.0 - - Accept string for `maxage` (converted by `ms`) - - Include link in default redirect response - -3.12.1 / 2014-06-26 -=================== - - * deps: connect@2.21.1 - - deps: cookie-parser@1.3.2 - - deps: cookie-signature@1.0.4 - - deps: express-session@~1.5.2 - - deps: type-is@~1.3.2 - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -3.12.0 / 2014-06-21 -=================== - - * use `media-typer` to alter content-type charset - * deps: connect@2.21.0 - - deprecate `connect(middleware)` -- use `app.use(middleware)` instead - - deprecate `connect.createServer()` -- use `connect()` instead - - fix `res.setHeader()` patch to work with with get -> append -> set pattern - - deps: compression@~1.0.8 - - deps: errorhandler@~1.1.1 - - deps: express-session@~1.5.0 - - deps: serve-index@~1.1.3 - -3.11.0 / 2014-06-19 -=================== - - * deprecate things with `depd` module - * deps: buffer-crc32@0.2.3 - * deps: connect@2.20.2 - - deprecate `verify` option to `json` -- use `body-parser` npm module instead - - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead - - deprecate things with `depd` module - - use `finalhandler` for final response handling - - use `media-typer` to parse `content-type` for charset - - deps: body-parser@1.4.3 - - deps: connect-timeout@1.1.1 - - deps: cookie-parser@1.3.1 - - deps: csurf@1.2.2 - - deps: errorhandler@1.1.0 - - deps: express-session@1.4.0 - - deps: multiparty@3.2.9 - - deps: serve-index@1.1.2 - - deps: type-is@1.3.1 - - deps: vhost@2.0.0 - -3.10.5 / 2014-06-11 -=================== - - * deps: connect@2.19.6 - - deps: body-parser@1.3.1 - - deps: compression@1.0.7 - - deps: debug@1.0.2 - - deps: serve-index@1.1.1 - - deps: serve-static@1.2.3 - * deps: debug@1.0.2 - * deps: send@0.4.3 - - Do not throw uncatchable error on file open race condition - - Use `escape-html` for HTML escaping - - deps: debug@1.0.2 - - deps: finished@1.2.2 - - deps: fresh@0.2.2 - -3.10.4 / 2014-06-09 -=================== - - * deps: connect@2.19.5 - - fix "event emitter leak" warnings - - deps: csurf@1.2.1 - - deps: debug@1.0.1 - - deps: serve-static@1.2.2 - - deps: type-is@1.2.1 - * deps: debug@1.0.1 - * deps: send@0.4.2 - - fix "event emitter leak" warnings - - deps: finished@1.2.1 - - deps: debug@1.0.1 - -3.10.3 / 2014-06-05 -=================== - - * use `vary` module for `res.vary` - * deps: connect@2.19.4 - - deps: errorhandler@1.0.2 - - deps: method-override@2.0.2 - - deps: serve-favicon@2.0.1 - * deps: debug@1.0.0 - -3.10.2 / 2014-06-03 -=================== - - * deps: connect@2.19.3 - - deps: compression@1.0.6 - -3.10.1 / 2014-06-03 -=================== - - * deps: connect@2.19.2 - - deps: compression@1.0.4 - * deps: proxy-addr@1.0.1 - -3.10.0 / 2014-06-02 -=================== - - * deps: connect@2.19.1 - - deprecate `methodOverride()` -- use `method-override` npm module instead - - deps: body-parser@1.3.0 - - deps: method-override@2.0.1 - - deps: multiparty@3.2.8 - - deps: response-time@2.0.0 - - deps: serve-static@1.2.1 - * deps: methods@1.0.1 - * deps: send@0.4.1 - - Send `max-age` in `Cache-Control` in correct format - -3.9.0 / 2014-05-30 -================== - - * custom etag control with `app.set('etag', val)` - - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation - - `app.set('etag', 'weak')` weak tag - - `app.set('etag', 'strong')` strong etag - - `app.set('etag', false)` turn off - - `app.set('etag', true)` standard etag - * Include ETag in HEAD requests - * mark `res.send` ETag as weak and reduce collisions - * update connect to 2.18.0 - - deps: compression@1.0.3 - - deps: serve-index@1.1.0 - - deps: serve-static@1.2.0 - * update send to 0.4.0 - - Calculate ETag with md5 for reduced collisions - - Ignore stream errors after request ends - - deps: debug@0.8.1 - -3.8.1 / 2014-05-27 -================== - - * update connect to 2.17.3 - - deps: body-parser@1.2.2 - - deps: express-session@1.2.1 - - deps: method-override@1.0.2 - -3.8.0 / 2014-05-21 -================== - - * keep previous `Content-Type` for `res.jsonp` - * set proper `charset` in `Content-Type` for `res.send` - * update connect to 2.17.1 - - fix `res.charset` appending charset when `content-type` has one - - deps: express-session@1.2.0 - - deps: morgan@1.1.1 - - deps: serve-index@1.0.3 - -3.7.0 / 2014-05-18 -================== - - * proper proxy trust with `app.set('trust proxy', trust)` - - `app.set('trust proxy', 1)` trust first hop - - `app.set('trust proxy', 'loopback')` trust loopback addresses - - `app.set('trust proxy', '10.0.0.1')` trust single IP - - `app.set('trust proxy', '10.0.0.1/16')` trust subnet - - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list - - `app.set('trust proxy', false)` turn off - - `app.set('trust proxy', true)` trust everything - * update connect to 2.16.2 - - deprecate `res.headerSent` -- use `res.headersSent` - - deprecate `res.on("header")` -- use on-headers module instead - - fix edge-case in `res.appendHeader` that would append in wrong order - - json: use body-parser - - urlencoded: use body-parser - - dep: bytes@1.0.0 - - dep: cookie-parser@1.1.0 - - dep: csurf@1.2.0 - - dep: express-session@1.1.0 - - dep: method-override@1.0.1 - -3.6.0 / 2014-05-09 -================== - - * deprecate `app.del()` -- use `app.delete()` instead - * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead - - the edge-case `res.json(status, num)` requires `res.status(status).json(num)` - * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead - - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)` - * support PURGE method - - add `app.purge` - - add `router.purge` - - include PURGE in `app.all` - * update connect to 2.15.0 - * Add `res.appendHeader` - * Call error stack even when response has been sent - * Patch `res.headerSent` to return Boolean - * Patch `res.headersSent` for node.js 0.8 - * Prevent default 404 handler after response sent - * dep: compression@1.0.2 - * dep: connect-timeout@1.1.0 - * dep: debug@^0.8.0 - * dep: errorhandler@1.0.1 - * dep: express-session@1.0.4 - * dep: morgan@1.0.1 - * dep: serve-favicon@2.0.0 - * dep: serve-index@1.0.2 - * update debug to 0.8.0 - * add `enable()` method - * change from stderr to stdout - * update methods to 1.0.0 - - add PURGE - * update mkdirp to 0.5.0 - -3.5.3 / 2014-05-08 -================== - - * fix `req.host` for IPv6 literals - * fix `res.jsonp` error if callback param is object - -3.5.2 / 2014-04-24 -================== - - * update connect to 2.14.5 - * update cookie to 0.1.2 - * update mkdirp to 0.4.0 - * update send to 0.3.0 - -3.5.1 / 2014-03-25 -================== - - * pin less-middleware in generated app - -3.5.0 / 2014-03-06 -================== - - * bump deps - -3.4.8 / 2014-01-13 -================== - - * prevent incorrect automatic OPTIONS responses #1868 @dpatti - * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi - * throw 400 in case of malformed paths @rlidwka - -3.4.7 / 2013-12-10 -================== - - * update connect - -3.4.6 / 2013-12-01 -================== - - * update connect (raw-body) - -3.4.5 / 2013-11-27 -================== - - * update connect - * res.location: remove leading ./ #1802 @kapouer - * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra - * res.send: always send ETag when content-length > 0 - * router: add Router.all() method - -3.4.4 / 2013-10-29 -================== - - * update connect - * update supertest - * update methods - * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04 - -3.4.3 / 2013-10-23 -================== - - * update connect - -3.4.2 / 2013-10-18 -================== - - * update connect - * downgrade commander - -3.4.1 / 2013-10-15 -================== - - * update connect - * update commander - * jsonp: check if callback is a function - * router: wrap encodeURIComponent in a try/catch #1735 (@lxe) - * res.format: now includes charset @1747 (@sorribas) - * res.links: allow multiple calls @1746 (@sorribas) - -3.4.0 / 2013-09-07 -================== - - * add res.vary(). Closes #1682 - * update connect - -3.3.8 / 2013-09-02 -================== - - * update connect - -3.3.7 / 2013-08-28 -================== - - * update connect - -3.3.6 / 2013-08-27 -================== - - * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients) - * add: req.accepts take an argument list - -3.3.4 / 2013-07-08 -================== - - * update send and connect - -3.3.3 / 2013-07-04 -================== - - * update connect - -3.3.2 / 2013-07-03 -================== - - * update connect - * update send - * remove .version export - -3.3.1 / 2013-06-27 -================== - - * update connect - -3.3.0 / 2013-06-26 -================== - - * update connect - * add support for multiple X-Forwarded-Proto values. Closes #1646 - * change: remove charset from json responses. Closes #1631 - * change: return actual booleans from req.accept* functions - * fix jsonp callback array throw - -3.2.6 / 2013-06-02 -================== - - * update connect - -3.2.5 / 2013-05-21 -================== - - * update connect - * update node-cookie - * add: throw a meaningful error when there is no default engine - * change generation of ETags with res.send() to GET requests only. Closes #1619 - -3.2.4 / 2013-05-09 -================== - - * fix `req.subdomains` when no Host is present - * fix `req.host` when no Host is present, return undefined - -3.2.3 / 2013-05-07 -================== - - * update connect / qs - -3.2.2 / 2013-05-03 -================== - - * update qs - -3.2.1 / 2013-04-29 -================== - - * add app.VERB() paths array deprecation warning - * update connect - * update qs and remove all ~ semver crap - * fix: accept number as value of Signed Cookie - -3.2.0 / 2013-04-15 -================== - - * add "view" constructor setting to override view behaviour - * add req.acceptsEncoding(name) - * add req.acceptedEncodings - * revert cookie signature change causing session race conditions - * fix sorting of Accept values of the same quality - -3.1.2 / 2013-04-12 -================== - - * add support for custom Accept parameters - * update cookie-signature - -3.1.1 / 2013-04-01 -================== - - * add X-Forwarded-Host support to `req.host` - * fix relative redirects - * update mkdirp - * update buffer-crc32 - * remove legacy app.configure() method from app template. - -3.1.0 / 2013-01-25 -================== - - * add support for leading "." in "view engine" setting - * add array support to `res.set()` - * add node 0.8.x to travis.yml - * add "subdomain offset" setting for tweaking `req.subdomains` - * add `res.location(url)` implementing `res.redirect()`-like setting of Location - * use app.get() for x-powered-by setting for inheritance - * fix colons in passwords for `req.auth` - -3.0.6 / 2013-01-04 -================== - - * add http verb methods to Router - * update connect - * fix mangling of the `res.cookie()` options object - * fix jsonp whitespace escape. Closes #1132 - -3.0.5 / 2012-12-19 -================== - - * add throwing when a non-function is passed to a route - * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses - * revert "add 'etag' option" - -3.0.4 / 2012-12-05 -================== - - * add 'etag' option to disable `res.send()` Etags - * add escaping of urls in text/plain in `res.redirect()` - for old browsers interpreting as html - * change crc32 module for a more liberal license - * update connect - -3.0.3 / 2012-11-13 -================== - - * update connect - * update cookie module - * fix cookie max-age - -3.0.2 / 2012-11-08 -================== - - * add OPTIONS to cors example. Closes #1398 - * fix route chaining regression. Closes #1397 - -3.0.1 / 2012-11-01 -================== - - * update connect - -3.0.0 / 2012-10-23 -================== - - * add `make clean` - * add "Basic" check to req.auth - * add `req.auth` test coverage - * add cb && cb(payload) to `res.jsonp()`. Closes #1374 - * add backwards compat for `res.redirect()` status. Closes #1336 - * add support for `res.json()` to retain previously defined Content-Types. Closes #1349 - * update connect - * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382 - * remove non-primitive string support for `res.send()` - * fix view-locals example. Closes #1370 - * fix route-separation example - -3.0.0rc5 / 2012-09-18 -================== - - * update connect - * add redis search example - * add static-files example - * add "x-powered-by" setting (`app.disable('x-powered-by')`) - * add "application/octet-stream" redirect Accept test case. Closes #1317 - -3.0.0rc4 / 2012-08-30 -================== - - * add `res.jsonp()`. Closes #1307 - * add "verbose errors" option to error-pages example - * add another route example to express(1) so people are not so confused - * add redis online user activity tracking example - * update connect dep - * fix etag quoting. Closes #1310 - * fix error-pages 404 status - * fix jsonp callback char restrictions - * remove old OPTIONS default response - -3.0.0rc3 / 2012-08-13 -================== - - * update connect dep - * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds] - * fix `res.render()` clobbering of "locals" - -3.0.0rc2 / 2012-08-03 -================== - - * add CORS example - * update connect dep - * deprecate `.createServer()` & remove old stale examples - * fix: escape `res.redirect()` link - * fix vhost example - -3.0.0rc1 / 2012-07-24 -================== - - * add more examples to view-locals - * add scheme-relative redirects (`res.redirect("//foo.com")`) support - * update cookie dep - * update connect dep - * update send dep - * fix `express(1)` -h flag, use -H for hogan. Closes #1245 - * fix `res.sendfile()` socket error handling regression - -3.0.0beta7 / 2012-07-16 -================== - - * update connect dep for `send()` root normalization regression - -3.0.0beta6 / 2012-07-13 -================== - - * add `err.view` property for view errors. Closes #1226 - * add "jsonp callback name" setting - * add support for "/foo/:bar*" non-greedy matches - * change `res.sendfile()` to use `send()` module - * change `res.send` to use "response-send" module - * remove `app.locals.use` and `res.locals.use`, use regular middleware - -3.0.0beta5 / 2012-07-03 -================== - - * add "make check" support - * add route-map example - * add `res.json(obj, status)` support back for BC - * add "methods" dep, remove internal methods module - * update connect dep - * update auth example to utilize cores pbkdf2 - * updated tests to use "supertest" - -3.0.0beta4 / 2012-06-25 -================== - - * Added `req.auth` - * Added `req.range(size)` - * Added `res.links(obj)` - * Added `res.send(body, status)` support back for backwards compat - * Added `.default()` support to `res.format()` - * Added 2xx / 304 check to `req.fresh` - * Revert "Added + support to the router" - * Fixed `res.send()` freshness check, respect res.statusCode - -3.0.0beta3 / 2012-06-15 -================== - - * Added hogan `--hjs` to express(1) [nullfirm] - * Added another example to content-negotiation - * Added `fresh` dep - * Changed: `res.send()` always checks freshness - * Fixed: expose connects mime module. Closes #1165 - -3.0.0beta2 / 2012-06-06 -================== - - * Added `+` support to the router - * Added `req.host` - * Changed `req.param()` to check route first - * Update connect dep - -3.0.0beta1 / 2012-06-01 -================== - - * Added `res.format()` callback to override default 406 behaviour - * Fixed `res.redirect()` 406. Closes #1154 - -3.0.0alpha5 / 2012-05-30 -================== - - * Added `req.ip` - * Added `{ signed: true }` option to `res.cookie()` - * Removed `res.signedCookie()` - * Changed: dont reverse `req.ips` - * Fixed "trust proxy" setting check for `req.ips` - -3.0.0alpha4 / 2012-05-09 -================== - - * Added: allow `[]` in jsonp callback. Closes #1128 - * Added `PORT` env var support in generated template. Closes #1118 [benatkin] - * Updated: connect 2.2.2 - -3.0.0alpha3 / 2012-05-04 -================== - - * Added public `app.routes`. Closes #887 - * Added _view-locals_ example - * Added _mvc_ example - * Added `res.locals.use()`. Closes #1120 - * Added conditional-GET support to `res.send()` - * Added: coerce `res.set()` values to strings - * Changed: moved `static()` in generated apps below router - * Changed: `res.send()` only set ETag when not previously set - * Changed connect 2.2.1 dep - * Changed: `make test` now runs unit / acceptance tests - * Fixed req/res proto inheritance - -3.0.0alpha2 / 2012-04-26 -================== - - * Added `make benchmark` back - * Added `res.send()` support for `String` objects - * Added client-side data exposing example - * Added `res.header()` and `req.header()` aliases for BC - * Added `express.createServer()` for BC - * Perf: memoize parsed urls - * Perf: connect 2.2.0 dep - * Changed: make `expressInit()` middleware self-aware - * Fixed: use app.get() for all core settings - * Fixed redis session example - * Fixed session example. Closes #1105 - * Fixed generated express dep. Closes #1078 - -3.0.0alpha1 / 2012-04-15 -================== - - * Added `app.locals.use(callback)` - * Added `app.locals` object - * Added `app.locals(obj)` - * Added `res.locals` object - * Added `res.locals(obj)` - * Added `res.format()` for content-negotiation - * Added `app.engine()` - * Added `res.cookie()` JSON cookie support - * Added "trust proxy" setting - * Added `req.subdomains` - * Added `req.protocol` - * Added `req.secure` - * Added `req.path` - * Added `req.ips` - * Added `req.fresh` - * Added `req.stale` - * Added comma-delimited / array support for `req.accepts()` - * Added debug instrumentation - * Added `res.set(obj)` - * Added `res.set(field, value)` - * Added `res.get(field)` - * Added `app.get(setting)`. Closes #842 - * Added `req.acceptsLanguage()` - * Added `req.acceptsCharset()` - * Added `req.accepted` - * Added `req.acceptedLanguages` - * Added `req.acceptedCharsets` - * Added "json replacer" setting - * Added "json spaces" setting - * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92 - * Added `--less` support to express(1) - * Added `express.response` prototype - * Added `express.request` prototype - * Added `express.application` prototype - * Added `app.path()` - * Added `app.render()` - * Added `res.type()` to replace `res.contentType()` - * Changed: `res.redirect()` to add relative support - * Changed: enable "jsonp callback" by default - * Changed: renamed "case sensitive routes" to "case sensitive routing" - * Rewrite of all tests with mocha - * Removed "root" setting - * Removed `res.redirect('home')` support - * Removed `req.notify()` - * Removed `app.register()` - * Removed `app.redirect()` - * Removed `app.is()` - * Removed `app.helpers()` - * Removed `app.dynamicHelpers()` - * Fixed `res.sendfile()` with non-GET. Closes #723 - * Fixed express(1) public dir for windows. Closes #866 - -2.5.9/ 2012-04-02 -================== - - * Added support for PURGE request method [pbuyle] - * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki] - -2.5.8 / 2012-02-08 -================== - - * Update mkdirp dep. Closes #991 - -2.5.7 / 2012-02-06 -================== - - * Fixed `app.all` duplicate DELETE requests [mscdex] - -2.5.6 / 2012-01-13 -================== - - * Updated hamljs dev dep. Closes #953 - -2.5.5 / 2012-01-08 -================== - - * Fixed: set `filename` on cached templates [matthewleon] - -2.5.4 / 2012-01-02 -================== - - * Fixed `express(1)` eol on 0.4.x. Closes #947 - -2.5.3 / 2011-12-30 -================== - - * Fixed `req.is()` when a charset is present - -2.5.2 / 2011-12-10 -================== - - * Fixed: express(1) LF -> CRLF for windows - -2.5.1 / 2011-11-17 -================== - - * Changed: updated connect to 1.8.x - * Removed sass.js support from express(1) - -2.5.0 / 2011-10-24 -================== - - * Added ./routes dir for generated app by default - * Added npm install reminder to express(1) app gen - * Added 0.5.x support - * Removed `make test-cov` since it wont work with node 0.5.x - * Fixed express(1) public dir for windows. Closes #866 - -2.4.7 / 2011-10-05 -================== - - * Added mkdirp to express(1). Closes #795 - * Added simple _json-config_ example - * Added shorthand for the parsed request's pathname via `req.path` - * Changed connect dep to 1.7.x to fix npm issue... - * Fixed `res.redirect()` __HEAD__ support. [reported by xerox] - * Fixed `req.flash()`, only escape args - * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie] - -2.4.6 / 2011-08-22 -================== - - * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode] - -2.4.5 / 2011-08-19 -================== - - * Added support for routes to handle errors. Closes #809 - * Added `app.routes.all()`. Closes #803 - * Added "basepath" setting to work in conjunction with reverse proxies etc. - * Refactored `Route` to use a single array of callbacks - * Added support for multiple callbacks for `app.param()`. Closes #801 -Closes #805 - * Changed: removed .call(self) for route callbacks - * Dependency: `qs >= 0.3.1` - * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808 - -2.4.4 / 2011-08-05 -================== - - * Fixed `res.header()` intention of a set, even when `undefined` - * Fixed `*`, value no longer required - * Fixed `res.send(204)` support. Closes #771 - -2.4.3 / 2011-07-14 -================== - - * Added docs for `status` option special-case. Closes #739 - * Fixed `options.filename`, exposing the view path to template engines - -2.4.2. / 2011-07-06 -================== - - * Revert "removed jsonp stripping" for XSS - -2.4.1 / 2011-07-06 -================== - - * Added `res.json()` JSONP support. Closes #737 - * Added _extending-templates_ example. Closes #730 - * Added "strict routing" setting for trailing slashes - * Added support for multiple envs in `app.configure()` calls. Closes #735 - * Changed: `res.send()` using `res.json()` - * Changed: when cookie `path === null` don't default it - * Changed; default cookie path to "home" setting. Closes #731 - * Removed _pids/logs_ creation from express(1) - -2.4.0 / 2011-06-28 -================== - - * Added chainable `res.status(code)` - * Added `res.json()`, an explicit version of `res.send(obj)` - * Added simple web-service example - -2.3.12 / 2011-06-22 -================== - - * \#express is now on freenode! come join! - * Added `req.get(field, param)` - * Added links to Japanese documentation, thanks @hideyukisaito! - * Added; the `express(1)` generated app outputs the env - * Added `content-negotiation` example - * Dependency: connect >= 1.5.1 < 2.0.0 - * Fixed view layout bug. Closes #720 - * Fixed; ignore body on 304. Closes #701 - -2.3.11 / 2011-06-04 -================== - - * Added `npm test` - * Removed generation of dummy test file from `express(1)` - * Fixed; `express(1)` adds express as a dep - * Fixed; prune on `prepublish` - -2.3.10 / 2011-05-27 -================== - - * Added `req.route`, exposing the current route - * Added _package.json_ generation support to `express(1)` - * Fixed call to `app.param()` function for optional params. Closes #682 - -2.3.9 / 2011-05-25 -================== - - * Fixed bug-ish with `../' in `res.partial()` calls - -2.3.8 / 2011-05-24 -================== - - * Fixed `app.options()` - -2.3.7 / 2011-05-23 -================== - - * Added route `Collection`, ex: `app.get('/user/:id').remove();` - * Added support for `app.param(fn)` to define param logic - * Removed `app.param()` support for callback with return value - * Removed module.parent check from express(1) generated app. Closes #670 - * Refactored router. Closes #639 - -2.3.6 / 2011-05-20 -================== - - * Changed; using devDependencies instead of git submodules - * Fixed redis session example - * Fixed markdown example - * Fixed view caching, should not be enabled in development - -2.3.5 / 2011-05-20 -================== - - * Added export `.view` as alias for `.View` - -2.3.4 / 2011-05-08 -================== - - * Added `./examples/say` - * Fixed `res.sendfile()` bug preventing the transfer of files with spaces - -2.3.3 / 2011-05-03 -================== - - * Added "case sensitive routes" option. - * Changed; split methods supported per rfc [slaskis] - * Fixed route-specific middleware when using the same callback function several times - -2.3.2 / 2011-04-27 -================== - - * Fixed view hints - -2.3.1 / 2011-04-26 -================== - - * Added `app.match()` as `app.match.all()` - * Added `app.lookup()` as `app.lookup.all()` - * Added `app.remove()` for `app.remove.all()` - * Added `app.remove.VERB()` - * Fixed template caching collision issue. Closes #644 - * Moved router over from connect and started refactor - -2.3.0 / 2011-04-25 -================== - - * Added options support to `res.clearCookie()` - * Added `res.helpers()` as alias of `res.locals()` - * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0` - * Changed; auto set Content-Type in res.attachement [Aaron Heckmann] - * Renamed "cache views" to "view cache". Closes #628 - * Fixed caching of views when using several apps. Closes #637 - * Fixed gotcha invoking `app.param()` callbacks once per route middleware. -Closes #638 - * Fixed partial lookup precedence. Closes #631 -Shaw] - -2.2.2 / 2011-04-12 -================== - - * Added second callback support for `res.download()` connection errors - * Fixed `filename` option passing to template engine - -2.2.1 / 2011-04-04 -================== - - * Added `layout(path)` helper to change the layout within a view. Closes #610 - * Fixed `partial()` collection object support. - Previously only anything with `.length` would work. - When `.length` is present one must still be aware of holes, - however now `{ collection: {foo: 'bar'}}` is valid, exposes - `keyInCollection` and `keysInCollection`. - - * Performance improved with better view caching - * Removed `request` and `response` locals - * Changed; errorHandler page title is now `Express` instead of `Connect` - -2.2.0 / 2011-03-30 -================== - - * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606 - * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606 - * Added `app.VERB(path)` as alias of `app.lookup.VERB()`. - * Dependency `connect >= 1.2.0` - -2.1.1 / 2011-03-29 -================== - - * Added; expose `err.view` object when failing to locate a view - * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann] - * Fixed; `res.send(undefined)` responds with 204 [aheckmann] - -2.1.0 / 2011-03-24 -================== - - * Added `/_?` partial lookup support. Closes #447 - * Added `request`, `response`, and `app` local variables - * Added `settings` local variable, containing the app's settings - * Added `req.flash()` exception if `req.session` is not available - * Added `res.send(bool)` support (json response) - * Fixed stylus example for latest version - * Fixed; wrap try/catch around `res.render()` - -2.0.0 / 2011-03-17 -================== - - * Fixed up index view path alternative. - * Changed; `res.locals()` without object returns the locals - -2.0.0rc3 / 2011-03-17 -================== - - * Added `res.locals(obj)` to compliment `res.local(key, val)` - * Added `res.partial()` callback support - * Fixed recursive error reporting issue in `res.render()` - -2.0.0rc2 / 2011-03-17 -================== - - * Changed; `partial()` "locals" are now optional - * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01] - * Fixed .filename view engine option [reported by drudge] - * Fixed blog example - * Fixed `{req,res}.app` reference when mounting [Ben Weaver] - -2.0.0rc / 2011-03-14 -================== - - * Fixed; expose `HTTPSServer` constructor - * Fixed express(1) default test charset. Closes #579 [reported by secoif] - * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP] - -2.0.0beta3 / 2011-03-09 -================== - - * Added support for `res.contentType()` literal - The original `res.contentType('.json')`, - `res.contentType('application/json')`, and `res.contentType('json')` - will work now. - * Added `res.render()` status option support back - * Added charset option for `res.render()` - * Added `.charset` support (via connect 1.0.4) - * Added view resolution hints when in development and a lookup fails - * Added layout lookup support relative to the page view. - For example while rendering `./views/user/index.jade` if you create - `./views/user/layout.jade` it will be used in favour of the root layout. - * Fixed `res.redirect()`. RFC states absolute url [reported by unlink] - * Fixed; default `res.send()` string charset to utf8 - * Removed `Partial` constructor (not currently used) - -2.0.0beta2 / 2011-03-07 -================== - - * Added res.render() `.locals` support back to aid in migration process - * Fixed flash example - -2.0.0beta / 2011-03-03 -================== - - * Added HTTPS support - * Added `res.cookie()` maxAge support - * Added `req.header()` _Referrer_ / _Referer_ special-case, either works - * Added mount support for `res.redirect()`, now respects the mount-point - * Added `union()` util, taking place of `merge(clone())` combo - * Added stylus support to express(1) generated app - * Added secret to session middleware used in examples and generated app - * Added `res.local(name, val)` for progressive view locals - * Added default param support to `req.param(name, default)` - * Added `app.disabled()` and `app.enabled()` - * Added `app.register()` support for omitting leading ".", either works - * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539 - * Added `app.param()` to map route params to async/sync logic - * Added; aliased `app.helpers()` as `app.locals()`. Closes #481 - * Added extname with no leading "." support to `res.contentType()` - * Added `cache views` setting, defaulting to enabled in "production" env - * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_. - * Added `req.accepts()` support for extensions - * Changed; `res.download()` and `res.sendfile()` now utilize Connect's - static file server `connect.static.send()`. - * Changed; replaced `connect.utils.mime()` with npm _mime_ module - * Changed; allow `req.query` to be pre-defined (via middleware or other parent - * Changed view partial resolution, now relative to parent view - * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`. - * Fixed `req.param()` bug returning Array.prototype methods. Closes #552 - * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()` - * Fixed; using _qs_ module instead of _querystring_ - * Fixed; strip unsafe chars from jsonp callbacks - * Removed "stream threshold" setting - -1.0.8 / 2011-03-01 -================== - - * Allow `req.query` to be pre-defined (via middleware or other parent app) - * "connect": ">= 0.5.0 < 1.0.0". Closes #547 - * Removed the long deprecated __EXPRESS_ENV__ support - -1.0.7 / 2011-02-07 -================== - - * Fixed `render()` setting inheritance. - Mounted apps would not inherit "view engine" - -1.0.6 / 2011-02-07 -================== - - * Fixed `view engine` setting bug when period is in dirname - -1.0.5 / 2011-02-05 -================== - - * Added secret to generated app `session()` call - -1.0.4 / 2011-02-05 -================== - - * Added `qs` dependency to _package.json_ - * Fixed namespaced `require()`s for latest connect support - -1.0.3 / 2011-01-13 -================== - - * Remove unsafe characters from JSONP callback names [Ryan Grove] - -1.0.2 / 2011-01-10 -================== - - * Removed nested require, using `connect.router` - -1.0.1 / 2010-12-29 -================== - - * Fixed for middleware stacked via `createServer()` - previously the `foo` middleware passed to `createServer(foo)` - would not have access to Express methods such as `res.send()` - or props like `req.query` etc. - -1.0.0 / 2010-11-16 -================== - - * Added; deduce partial object names from the last segment. - For example by default `partial('forum/post', postObject)` will - give you the _post_ object, providing a meaningful default. - * Added http status code string representation to `res.redirect()` body - * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__. - * Added `req.is()` to aid in content negotiation - * Added partial local inheritance [suggested by masylum]. Closes #102 - providing access to parent template locals. - * Added _-s, --session[s]_ flag to express(1) to add session related middleware - * Added _--template_ flag to express(1) to specify the - template engine to use. - * Added _--css_ flag to express(1) to specify the - stylesheet engine to use (or just plain css by default). - * Added `app.all()` support [thanks aheckmann] - * Added partial direct object support. - You may now `partial('user', user)` providing the "user" local, - vs previously `partial('user', { object: user })`. - * Added _route-separation_ example since many people question ways - to do this with CommonJS modules. Also view the _blog_ example for - an alternative. - * Performance; caching view path derived partial object names - * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454 - * Fixed jsonp support; _text/javascript_ as per mailinglist discussion - -1.0.0rc4 / 2010-10-14 -================== - - * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0 - * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware)) - * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass] - * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass] - * Added `partial()` support for array-like collections. Closes #434 - * Added support for swappable querystring parsers - * Added session usage docs. Closes #443 - * Added dynamic helper caching. Closes #439 [suggested by maritz] - * Added authentication example - * Added basic Range support to `res.sendfile()` (and `res.download()` etc) - * Changed; `express(1)` generated app using 2 spaces instead of 4 - * Default env to "development" again [aheckmann] - * Removed _context_ option is no more, use "scope" - * Fixed; exposing _./support_ libs to examples so they can run without installs - * Fixed mvc example - -1.0.0rc3 / 2010-09-20 -================== - - * Added confirmation for `express(1)` app generation. Closes #391 - * Added extending of flash formatters via `app.flashFormatters` - * Added flash formatter support. Closes #411 - * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold" - * Added _stream threshold_ setting for `res.sendfile()` - * Added `res.send()` __HEAD__ support - * Added `res.clearCookie()` - * Added `res.cookie()` - * Added `res.render()` headers option - * Added `res.redirect()` response bodies - * Added `res.render()` status option support. Closes #425 [thanks aheckmann] - * Fixed `res.sendfile()` responding with 403 on malicious path - * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_ - * Fixed; mounted apps settings now inherit from parent app [aheckmann] - * Fixed; stripping Content-Length / Content-Type when 204 - * Fixed `res.send()` 204. Closes #419 - * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402 - * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo] - - -1.0.0rc2 / 2010-08-17 -================== - - * Added `app.register()` for template engine mapping. Closes #390 - * Added `res.render()` callback support as second argument (no options) - * Added callback support to `res.download()` - * Added callback support for `res.sendfile()` - * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()` - * Added "partials" setting to docs - * Added default expresso tests to `express(1)` generated app. Closes #384 - * Fixed `res.sendfile()` error handling, defer via `next()` - * Fixed `res.render()` callback when a layout is used [thanks guillermo] - * Fixed; `make install` creating ~/.node_libraries when not present - * Fixed issue preventing error handlers from being defined anywhere. Closes #387 - -1.0.0rc / 2010-07-28 -================== - - * Added mounted hook. Closes #369 - * Added connect dependency to _package.json_ - - * Removed "reload views" setting and support code - development env never caches, production always caches. - - * Removed _param_ in route callbacks, signature is now - simply (req, res, next), previously (req, res, params, next). - Use _req.params_ for path captures, _req.query_ for GET params. - - * Fixed "home" setting - * Fixed middleware/router precedence issue. Closes #366 - * Fixed; _configure()_ callbacks called immediately. Closes #368 - -1.0.0beta2 / 2010-07-23 -================== - - * Added more examples - * Added; exporting `Server` constructor - * Added `Server#helpers()` for view locals - * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349 - * Added support for absolute view paths - * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363 - * Added Guillermo Rauch to the contributor list - * Added support for "as" for non-collection partials. Closes #341 - * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf] - * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo] - * Fixed instanceof `Array` checks, now `Array.isArray()` - * Fixed express(1) expansion of public dirs. Closes #348 - * Fixed middleware precedence. Closes #345 - * Fixed view watcher, now async [thanks aheckmann] - -1.0.0beta / 2010-07-15 -================== - - * Re-write - - much faster - - much lighter - - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs - -0.14.0 / 2010-06-15 -================== - - * Utilize relative requires - * Added Static bufferSize option [aheckmann] - * Fixed caching of view and partial subdirectories [aheckmann] - * Fixed mime.type() comments now that ".ext" is not supported - * Updated haml submodule - * Updated class submodule - * Removed bin/express - -0.13.0 / 2010-06-01 -================== - - * Added node v0.1.97 compatibility - * Added support for deleting cookies via Request#cookie('key', null) - * Updated haml submodule - * Fixed not-found page, now using using charset utf-8 - * Fixed show-exceptions page, now using using charset utf-8 - * Fixed view support due to fs.readFile Buffers - * Changed; mime.type() no longer accepts ".type" due to node extname() changes - -0.12.0 / 2010-05-22 -================== - - * Added node v0.1.96 compatibility - * Added view `helpers` export which act as additional local variables - * Updated haml submodule - * Changed ETag; removed inode, modified time only - * Fixed LF to CRLF for setting multiple cookies - * Fixed cookie compilation; values are now urlencoded - * Fixed cookies parsing; accepts quoted values and url escaped cookies - -0.11.0 / 2010-05-06 -================== - - * Added support for layouts using different engines - - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' }) - - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml' - - this.render('page.html.haml', { layout: false }) // no layout - * Updated ext submodule - * Updated haml submodule - * Fixed EJS partial support by passing along the context. Issue #307 - -0.10.1 / 2010-05-03 -================== - - * Fixed binary uploads. - -0.10.0 / 2010-04-30 -================== - - * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s - encoding is set to 'utf8' or 'utf-8'. - * Added "encoding" option to Request#render(). Closes #299 - * Added "dump exceptions" setting, which is enabled by default. - * Added simple ejs template engine support - * Added error response support for text/plain, application/json. Closes #297 - * Added callback function param to Request#error() - * Added Request#sendHead() - * Added Request#stream() - * Added support for Request#respond(304, null) for empty response bodies - * Added ETag support to Request#sendfile() - * Added options to Request#sendfile(), passed to fs.createReadStream() - * Added filename arg to Request#download() - * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request - * Performance enhanced by preventing several calls to toLowerCase() in Router#match() - * Changed; Request#sendfile() now streams - * Changed; Renamed Request#halt() to Request#respond(). Closes #289 - * Changed; Using sys.inspect() instead of JSON.encode() for error output - * Changed; run() returns the http.Server instance. Closes #298 - * Changed; Defaulting Server#host to null (INADDR_ANY) - * Changed; Logger "common" format scale of 0.4f - * Removed Logger "request" format - * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found - * Fixed several issues with http client - * Fixed Logger Content-Length output - * Fixed bug preventing Opera from retaining the generated session id. Closes #292 - -0.9.0 / 2010-04-14 -================== - - * Added DSL level error() route support - * Added DSL level notFound() route support - * Added Request#error() - * Added Request#notFound() - * Added Request#render() callback function. Closes #258 - * Added "max upload size" setting - * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254 - * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js - * Added callback function support to Request#halt() as 3rd/4th arg - * Added preprocessing of route param wildcards using param(). Closes #251 - * Added view partial support (with collections etc) - * Fixed bug preventing falsey params (such as ?page=0). Closes #286 - * Fixed setting of multiple cookies. Closes #199 - * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml) - * Changed; session cookie is now httpOnly - * Changed; Request is no longer global - * Changed; Event is no longer global - * Changed; "sys" module is no longer global - * Changed; moved Request#download to Static plugin where it belongs - * Changed; Request instance created before body parsing. Closes #262 - * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253 - * Changed; Pre-caching view partials in memory when "cache view partials" is enabled - * Updated support to node --version 0.1.90 - * Updated dependencies - * Removed set("session cookie") in favour of use(Session, { cookie: { ... }}) - * Removed utils.mixin(); use Object#mergeDeep() - -0.8.0 / 2010-03-19 -================== - - * Added coffeescript example app. Closes #242 - * Changed; cache api now async friendly. Closes #240 - * Removed deprecated 'express/static' support. Use 'express/plugins/static' - -0.7.6 / 2010-03-19 -================== - - * Added Request#isXHR. Closes #229 - * Added `make install` (for the executable) - * Added `express` executable for setting up simple app templates - * Added "GET /public/*" to Static plugin, defaulting to /public - * Added Static plugin - * Fixed; Request#render() only calls cache.get() once - * Fixed; Namespacing View caches with "view:" - * Fixed; Namespacing Static caches with "static:" - * Fixed; Both example apps now use the Static plugin - * Fixed set("views"). Closes #239 - * Fixed missing space for combined log format - * Deprecated Request#sendfile() and 'express/static' - * Removed Server#running - -0.7.5 / 2010-03-16 -================== - - * Added Request#flash() support without args, now returns all flashes - * Updated ext submodule - -0.7.4 / 2010-03-16 -================== - - * Fixed session reaper - * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft) - -0.7.3 / 2010-03-16 -================== - - * Added package.json - * Fixed requiring of haml / sass due to kiwi removal - -0.7.2 / 2010-03-16 -================== - - * Fixed GIT submodules (HAH!) - -0.7.1 / 2010-03-16 -================== - - * Changed; Express now using submodules again until a PM is adopted - * Changed; chat example using millisecond conversions from ext - -0.7.0 / 2010-03-15 -================== - - * Added Request#pass() support (finds the next matching route, or the given path) - * Added Logger plugin (default "common" format replaces CommonLogger) - * Removed Profiler plugin - * Removed CommonLogger plugin - -0.6.0 / 2010-03-11 -================== - - * Added seed.yml for kiwi package management support - * Added HTTP client query string support when method is GET. Closes #205 - - * Added support for arbitrary view engines. - For example "foo.engine.html" will now require('engine'), - the exports from this module are cached after the first require(). - - * Added async plugin support - - * Removed usage of RESTful route funcs as http client - get() etc, use http.get() and friends - - * Removed custom exceptions - -0.5.0 / 2010-03-10 -================== - - * Added ext dependency (library of js extensions) - * Removed extname() / basename() utils. Use path module - * Removed toArray() util. Use arguments.values - * Removed escapeRegexp() util. Use RegExp.escape() - * Removed process.mixin() dependency. Use utils.mixin() - * Removed Collection - * Removed ElementCollection - * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;) - -0.4.0 / 2010-02-11 -================== - - * Added flash() example to sample upload app - * Added high level restful http client module (express/http) - * Changed; RESTful route functions double as HTTP clients. Closes #69 - * Changed; throwing error when routes are added at runtime - * Changed; defaulting render() context to the current Request. Closes #197 - * Updated haml submodule - -0.3.0 / 2010-02-11 -================== - - * Updated haml / sass submodules. Closes #200 - * Added flash message support. Closes #64 - * Added accepts() now allows multiple args. fixes #117 - * Added support for plugins to halt. Closes #189 - * Added alternate layout support. Closes #119 - * Removed Route#run(). Closes #188 - * Fixed broken specs due to use(Cookie) missing - -0.2.1 / 2010-02-05 -================== - - * Added "plot" format option for Profiler (for gnuplot processing) - * Added request number to Profiler plugin - * Fixed binary encoding for multipart file uploads, was previously defaulting to UTF8 - * Fixed issue with routes not firing when not files are present. Closes #184 - * Fixed process.Promise -> events.Promise - -0.2.0 / 2010-02-03 -================== - - * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180 - * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174 - * Added expiration support to cache api with reaper. Closes #133 - * Added cache Store.Memory#reap() - * Added Cache; cache api now uses first class Cache instances - * Added abstract session Store. Closes #172 - * Changed; cache Memory.Store#get() utilizing Collection - * Renamed MemoryStore -> Store.Memory - * Fixed use() of the same plugin several time will always use latest options. Closes #176 - -0.1.0 / 2010-02-03 -================== - - * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context - * Updated node support to 0.1.27 Closes #169 - * Updated dirname(__filename) -> __dirname - * Updated libxmljs support to v0.2.0 - * Added session support with memory store / reaping - * Added quick uid() helper - * Added multi-part upload support - * Added Sass.js support / submodule - * Added production env caching view contents and static files - * Added static file caching. Closes #136 - * Added cache plugin with memory stores - * Added support to StaticFile so that it works with non-textual files. - * Removed dirname() helper - * Removed several globals (now their modules must be required) - -0.0.2 / 2010-01-10 -================== - - * Added view benchmarks; currently haml vs ejs - * Added Request#attachment() specs. Closes #116 - * Added use of node's parseQuery() util. Closes #123 - * Added `make init` for submodules - * Updated Haml - * Updated sample chat app to show messages on load - * Updated libxmljs parseString -> parseHtmlString - * Fixed `make init` to work with older versions of git - * Fixed specs can now run independent specs for those who can't build deps. Closes #127 - * Fixed issues introduced by the node url module changes. Closes 126. - * Fixed two assertions failing due to Collection#keys() returning strings - * Fixed faulty Collection#toArray() spec due to keys() returning strings - * Fixed `make test` now builds libxmljs.node before testing - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/build/node_modules/express/LICENSE b/build/node_modules/express/LICENSE deleted file mode 100644 index aa927e44..00000000 --- a/build/node_modules/express/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2009-2014 TJ Holowaychuk -Copyright (c) 2013-2014 Roman Shtylman -Copyright (c) 2014-2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/express/Readme.md b/build/node_modules/express/Readme.md deleted file mode 100644 index 0936816b..00000000 --- a/build/node_modules/express/Readme.md +++ /dev/null @@ -1,166 +0,0 @@ -[![Express Logo](https://i.cloudup.com/zfY6lL7eFa-3000x3000.png)](http://expressjs.com/) - - Fast, unopinionated, minimalist web framework for [Node.js](http://nodejs.org). - - [![NPM Version][npm-version-image]][npm-url] - [![NPM Install Size][npm-install-size-image]][npm-install-size-url] - [![NPM Downloads][npm-downloads-image]][npm-downloads-url] - -```js -const express = require('express') -const app = express() - -app.get('/', function (req, res) { - res.send('Hello World') -}) - -app.listen(3000) -``` - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). - -Before installing, [download and install Node.js](https://nodejs.org/en/download/). -Node.js 0.10 or higher is required. - -If this is a brand new project, make sure to create a `package.json` first with -the [`npm init` command](https://docs.npmjs.com/creating-a-package-json-file). - -Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```console -$ npm install express -``` - -Follow [our installing guide](http://expressjs.com/en/starter/installing.html) -for more information. - -## Features - - * Robust routing - * Focus on high performance - * Super-high test coverage - * HTTP helpers (redirection, caching, etc) - * View system supporting 14+ template engines - * Content negotiation - * Executable for generating applications quickly - -## Docs & Community - - * [Website and Documentation](http://expressjs.com/) - [[website repo](https://github.com/expressjs/expressjs.com)] - * [#express](https://web.libera.chat/#express) on [Libera Chat](https://libera.chat) IRC - * [GitHub Organization](https://github.com/expressjs) for Official Middleware & Modules - * Visit the [Wiki](https://github.com/expressjs/express/wiki) - * [Google Group](https://groups.google.com/group/express-js) for discussion - * [Gitter](https://gitter.im/expressjs/express) for support and discussion - -**PROTIP** Be sure to read [Migrating from 3.x to 4.x](https://github.com/expressjs/express/wiki/Migrating-from-3.x-to-4.x) as well as [New features in 4.x](https://github.com/expressjs/express/wiki/New-features-in-4.x). - -## Quick Start - - The quickest way to get started with express is to utilize the executable [`express(1)`](https://github.com/expressjs/generator) to generate an application as shown below: - - Install the executable. The executable's major version will match Express's: - -```console -$ npm install -g express-generator@4 -``` - - Create the app: - -```console -$ express /tmp/foo && cd /tmp/foo -``` - - Install dependencies: - -```console -$ npm install -``` - - Start the server: - -```console -$ npm start -``` - - View the website at: http://localhost:3000 - -## Philosophy - - The Express philosophy is to provide small, robust tooling for HTTP servers, making - it a great solution for single page applications, websites, hybrids, or public - HTTP APIs. - - Express does not force you to use any specific ORM or template engine. With support for over - 14 template engines via [Consolidate.js](https://github.com/tj/consolidate.js), - you can quickly craft your perfect framework. - -## Examples - - To view the examples, clone the Express repo and install the dependencies: - -```console -$ git clone git://github.com/expressjs/express.git --depth 1 -$ cd express -$ npm install -``` - - Then run whichever example you want: - -```console -$ node examples/content-negotiation -``` - -## Contributing - - [![Linux Build][github-actions-ci-image]][github-actions-ci-url] - [![Windows Build][appveyor-image]][appveyor-url] - [![Test Coverage][coveralls-image]][coveralls-url] - -The Express.js project welcomes all constructive contributions. Contributions take many forms, -from code for bug fixes and enhancements, to additions and fixes to documentation, additional -tests, triaging incoming pull requests and issues, and more! - -See the [Contributing Guide](Contributing.md) for more technical details on contributing. - -### Security Issues - -If you discover a security vulnerability in Express, please see [Security Policies and Procedures](Security.md). - -### Running Tests - -To run the test suite, first install the dependencies, then run `npm test`: - -```console -$ npm install -$ npm test -``` - -## People - -The original author of Express is [TJ Holowaychuk](https://github.com/tj) - -The current lead maintainer is [Douglas Christopher Wilson](https://github.com/dougwilson) - -[List of all contributors](https://github.com/expressjs/express/graphs/contributors) - -## License - - [MIT](LICENSE) - -[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/express/master?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/express -[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/express/master -[coveralls-url]: https://coveralls.io/r/expressjs/express?branch=master -[github-actions-ci-image]: https://badgen.net/github/checks/expressjs/express/master?label=linux -[github-actions-ci-url]: https://github.com/expressjs/express/actions/workflows/ci.yml -[npm-downloads-image]: https://badgen.net/npm/dm/express -[npm-downloads-url]: https://npmcharts.com/compare/express?minimal=true -[npm-install-size-image]: https://badgen.net/packagephobia/install/express -[npm-install-size-url]: https://packagephobia.com/result?p=express -[npm-url]: https://npmjs.org/package/express -[npm-version-image]: https://badgen.net/npm/v/express diff --git a/build/node_modules/express/index.js b/build/node_modules/express/index.js deleted file mode 100644 index d219b0c8..00000000 --- a/build/node_modules/express/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * express - * Copyright(c) 2009-2013 TJ Holowaychuk - * Copyright(c) 2013 Roman Shtylman - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -module.exports = require('./lib/express'); diff --git a/build/node_modules/express/package.json b/build/node_modules/express/package.json deleted file mode 100644 index 0996637d..00000000 --- a/build/node_modules/express/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "express", - "description": "Fast, unopinionated, minimalist web framework", - "version": "4.18.2", - "author": "TJ Holowaychuk ", - "contributors": [ - "Aaron Heckmann ", - "Ciaran Jessup ", - "Douglas Christopher Wilson ", - "Guillermo Rauch ", - "Jonathan Ong ", - "Roman Shtylman ", - "Young Jae Sim " - ], - "license": "MIT", - "repository": "expressjs/express", - "homepage": "http://expressjs.com/", - "keywords": [ - "express", - "framework", - "sinatra", - "web", - "http", - "rest", - "restful", - "router", - "app", - "api" - ], - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "devDependencies": { - "after": "0.8.2", - "connect-redis": "3.4.2", - "cookie-parser": "1.4.6", - "cookie-session": "2.0.0", - "ejs": "3.1.8", - "eslint": "8.24.0", - "express-session": "1.17.2", - "hbs": "4.2.0", - "marked": "0.7.0", - "method-override": "3.0.0", - "mocha": "10.0.0", - "morgan": "1.10.0", - "multiparty": "4.2.3", - "nyc": "15.1.0", - "pbkdf2-password": "1.2.1", - "supertest": "6.3.0", - "vhost": "~3.0.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "files": [ - "LICENSE", - "History.md", - "Readme.md", - "index.js", - "lib/" - ], - "scripts": { - "lint": "eslint .", - "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", - "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test", - "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" - } -} diff --git a/build/node_modules/extend-shallow/LICENSE b/build/node_modules/extend-shallow/LICENSE deleted file mode 100644 index 99c93691..00000000 --- a/build/node_modules/extend-shallow/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2015, 2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/extend-shallow/README.md b/build/node_modules/extend-shallow/README.md deleted file mode 100644 index dee226f4..00000000 --- a/build/node_modules/extend-shallow/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# extend-shallow [![NPM version](https://img.shields.io/npm/v/extend-shallow.svg?style=flat)](https://www.npmjs.com/package/extend-shallow) [![NPM monthly downloads](https://img.shields.io/npm/dm/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![NPM total downloads](https://img.shields.io/npm/dt/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/extend-shallow.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/extend-shallow) - -> Extend an object with the properties of additional objects. node.js/javascript util. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save extend-shallow -``` - -## Usage - -```js -var extend = require('extend-shallow'); - -extend({a: 'b'}, {c: 'd'}) -//=> {a: 'b', c: 'd'} -``` - -Pass an empty object to shallow clone: - -```js -var obj = {}; -extend(obj, {a: 'b'}, {c: 'd'}) -//=> {a: 'b', c: 'd'} -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Related projects - -You might also be interested in these projects: - -* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.") -* [for-in](https://www.npmjs.com/package/for-in): Iterate over the own and inherited enumerable properties of an object, and return an object… [more](https://github.com/jonschlinkert/for-in) | [homepage](https://github.com/jonschlinkert/for-in "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js") -* [for-own](https://www.npmjs.com/package/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own) | [homepage](https://github.com/jonschlinkert/for-own "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.") -* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") -* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") -* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 33 | [jonschlinkert](https://github.com/jonschlinkert) | -| 1 | [pdehaan](https://github.com/pdehaan) | - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 19, 2017._ \ No newline at end of file diff --git a/build/node_modules/extend-shallow/index.js b/build/node_modules/extend-shallow/index.js deleted file mode 100644 index c9582f8f..00000000 --- a/build/node_modules/extend-shallow/index.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -var isExtendable = require('is-extendable'); -var assignSymbols = require('assign-symbols'); - -module.exports = Object.assign || function(obj/*, objects*/) { - if (obj === null || typeof obj === 'undefined') { - throw new TypeError('Cannot convert undefined or null to object'); - } - if (!isObject(obj)) { - obj = {}; - } - for (var i = 1; i < arguments.length; i++) { - var val = arguments[i]; - if (isString(val)) { - val = toObject(val); - } - if (isObject(val)) { - assign(obj, val); - assignSymbols(obj, val); - } - } - return obj; -}; - -function assign(a, b) { - for (var key in b) { - if (hasOwn(b, key)) { - a[key] = b[key]; - } - } -} - -function isString(val) { - return (val && typeof val === 'string'); -} - -function toObject(str) { - var obj = {}; - for (var i in str) { - obj[i] = str[i]; - } - return obj; -} - -function isObject(val) { - return (val && typeof val === 'object') || isExtendable(val); -} - -/** - * Returns true if the given `key` is an own property of `obj`. - */ - -function hasOwn(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function isEnum(obj, key) { - return Object.prototype.propertyIsEnumerable.call(obj, key); -} diff --git a/build/node_modules/extend-shallow/package.json b/build/node_modules/extend-shallow/package.json deleted file mode 100644 index e5e91053..00000000 --- a/build/node_modules/extend-shallow/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "extend-shallow", - "description": "Extend an object with the properties of additional objects. node.js/javascript util.", - "version": "3.0.2", - "homepage": "https://github.com/jonschlinkert/extend-shallow", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Peter deHaan (http://about.me/peterdehaan)" - ], - "repository": "jonschlinkert/extend-shallow", - "bugs": { - "url": "https://github.com/jonschlinkert/extend-shallow/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "devDependencies": { - "array-slice": "^1.0.0", - "benchmarked": "^2.0.0", - "for-own": "^1.0.0", - "gulp-format-md": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.1", - "minimist": "^1.2.0", - "mocha": "^3.5.3", - "object-assign": "^4.1.1" - }, - "keywords": [ - "assign", - "clone", - "extend", - "merge", - "obj", - "object", - "object-assign", - "object.assign", - "prop", - "properties", - "property", - "props", - "shallow", - "util", - "utility", - "utils", - "value" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "related": { - "list": [ - "extend-shallow", - "for-in", - "for-own", - "is-plain-object", - "isobject", - "kind-of" - ] - }, - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/extend/.editorconfig b/build/node_modules/extend/.editorconfig deleted file mode 100644 index bc228f82..00000000 --- a/build/node_modules/extend/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/build/node_modules/extend/.eslintrc b/build/node_modules/extend/.eslintrc deleted file mode 100644 index a34cf283..00000000 --- a/build/node_modules/extend/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 20], - "eqeqeq": [2, "allow-null"], - "func-name-matching": [1], - "max-depth": [1, 4], - "max-statements": [2, 26], - "no-extra-parens": [1], - "no-magic-numbers": [0], - "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"], - "sort-keys": [0], - } -} diff --git a/build/node_modules/extend/.jscs.json b/build/node_modules/extend/.jscs.json deleted file mode 100644 index 3cce01d7..00000000 --- a/build/node_modules/extend/.jscs.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "es3": true, - - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": { - "allExcept": [], - "keywords": ["if", "else", "for", "while", "do", "try", "catch"] - }, - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "disallowSpaceBeforeComma": true, - "disallowSpaceAfterComma": false, - "disallowSpaceBeforeSemicolon": true, - - "disallowNodeTypes": [ - "DebuggerStatement", - "LabeledStatement", - "SwitchCase", - "SwitchStatement", - "WithStatement" - ], - - "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] }, - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] }, - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": { "allExcept": ["keywords"] }, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 6 - }, - - "requirePaddingNewLinesAfterUseStrict": true, - - "disallowArrowFunctions": true, - - "disallowMultiLineTernary": true, - - "validateOrderInObjectKeys": false, - - "disallowIdenticalDestructuringNames": true, - - "disallowNestedTernaries": { "maxLevel": 1 }, - - "requireSpaceAfterComma": { "allExcept": ["trailing"] }, - "requireAlignedMultilineParams": false, - - "requireSpacesInGenerator": { - "afterStar": true - }, - - "disallowSpacesInGenerator": { - "beforeStar": true - }, - - "disallowVar": false, - - "requireArrayDestructuring": false, - - "requireEnhancedObjectLiterals": false, - - "requireObjectDestructuring": false, - - "requireEarlyReturn": false, - - "requireCapitalizedConstructorsNew": { - "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"] - }, - - "requireImportAlphabetized": false, - - "requireSpaceBeforeObjectValues": true, - "requireSpaceBeforeDestructuredValues": true, - - "disallowSpacesInsideTemplateStringPlaceholders": true, - - "disallowArrayDestructuringReturn": false, - - "requireNewlineBeforeSingleStatementsInIf": false, - - "disallowUnusedVariables": true, - - "requireSpacesInsideImportedObjectBraces": true, - - "requireUseStrict": true -} - diff --git a/build/node_modules/extend/.travis.yml b/build/node_modules/extend/.travis.yml deleted file mode 100644 index 5ccdfc49..00000000 --- a/build/node_modules/extend/.travis.yml +++ /dev/null @@ -1,230 +0,0 @@ -language: node_js -os: - - linux -node_js: - - "10.7" - - "9.11" - - "8.11" - - "7.10" - - "6.14" - - "5.12" - - "4.9" - - "iojs-v3.3" - - "iojs-v2.5" - - "iojs-v1.8" - - "0.12" - - "0.10" - - "0.8" -before_install: - - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac' - - 'nvm install-latest-npm' -install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' -script: - - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' - - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' -sudo: false -env: - - TEST=true -matrix: - fast_finish: true - include: - - node_js: "lts/*" - env: PRETEST=true - - node_js: "lts/*" - env: POSTTEST=true - - node_js: "4" - env: COVERAGE=true - - node_js: "10.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.4" - env: TEST=true ALLOW_FAILURE=true - allow_failures: - - os: osx - - env: TEST=true ALLOW_FAILURE=true diff --git a/build/node_modules/extend/CHANGELOG.md b/build/node_modules/extend/CHANGELOG.md deleted file mode 100644 index 2cf7de6f..00000000 --- a/build/node_modules/extend/CHANGELOG.md +++ /dev/null @@ -1,83 +0,0 @@ -3.0.2 / 2018-07-19 -================== - * [Fix] Prevent merging `__proto__` property (#48) - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` - * [Tests] up to `node` `v10.7`, `v9.11`, `v8.11`, `v7.10`, `v6.14`, `v4.9`; use `nvm install-latest-npm` - -3.0.1 / 2017-04-27 -================== - * [Fix] deep extending should work with a non-object (#46) - * [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config` - * [Tests] up to `node` `v7.9`, `v6.10`, `v4.8`; improve matrix - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. - * [Docs] Add example to readme (#34) - -3.0.0 / 2015-07-01 -================== - * [Possible breaking change] Use global "strict" directive (#32) - * [Tests] `int` is an ES3 reserved word - * [Tests] Test up to `io.js` `v2.3` - * [Tests] Add `npm run eslint` - * [Dev Deps] Update `covert`, `jscs` - -2.0.1 / 2015-04-25 -================== - * Use an inline `isArray` check, for ES3 browsers. (#27) - * Some old browsers fail when an identifier is `toString` - * Test latest `node` and `io.js` versions on `travis-ci`; speed up builds - * Add license info to package.json (#25) - * Update `tape`, `jscs` - * Adding a CHANGELOG - -2.0.0 / 2014-10-01 -================== - * Increase code coverage to 100%; run code coverage as part of tests - * Add `npm run lint`; Run linter as part of tests - * Remove nodeType and setInterval checks in isPlainObject - * Updating `tape`, `jscs`, `covert` - * General style and README cleanup - -1.3.0 / 2014-06-20 -================== - * Add component.json for browser support (#18) - * Use SVG for badges in README (#16) - * Updating `tape`, `covert` - * Updating travis-ci to work with multiple node versions - * Fix `deep === false` bug (returning target as {}) (#14) - * Fixing constructor checks in isPlainObject - * Adding additional test coverage - * Adding `npm run coverage` - * Add LICENSE (#13) - * Adding a warning about `false`, per #11 - * General style and whitespace cleanup - -1.2.1 / 2013-09-14 -================== - * Fixing hasOwnProperty bugs that would only have shown up in specific browsers. Fixes #8 - * Updating `tape` - -1.2.0 / 2013-09-02 -================== - * Updating the README: add badges - * Adding a missing variable reference. - * Using `tape` instead of `buster` for tests; add more tests (#7) - * Adding node 0.10 to Travis CI (#6) - * Enabling "npm test" and cleaning up package.json (#5) - * Add Travis CI. - -1.1.3 / 2012-12-06 -================== - * Added unit tests. - * Ensure extend function is named. (Looks nicer in a stack trace.) - * README cleanup. - -1.1.1 / 2012-11-07 -================== - * README cleanup. - * Added installation instructions. - * Added a missing semicolon - -1.0.0 / 2012-04-08 -================== - * Initial commit - diff --git a/build/node_modules/extend/LICENSE b/build/node_modules/extend/LICENSE deleted file mode 100644 index e16d6a56..00000000 --- a/build/node_modules/extend/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Stefan Thomas - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/build/node_modules/extend/README.md b/build/node_modules/extend/README.md deleted file mode 100644 index 5b8249aa..00000000 --- a/build/node_modules/extend/README.md +++ /dev/null @@ -1,81 +0,0 @@ -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] - -# extend() for Node.js [![Version Badge][npm-version-png]][npm-url] - -`node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true. - -Notes: - -* Since Node.js >= 4, - [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) - now offers the same functionality natively (but without the "deep copy" option). - See [ECMAScript 2015 (ES6) in Node.js](https://nodejs.org/en/docs/es6). -* Some native implementations of `Object.assign` in both Node.js and many - browsers (since NPM modules are for the browser too) may not be fully - spec-compliant. - Check [`object.assign`](https://www.npmjs.com/package/object.assign) module for - a compliant candidate. - -## Installation - -This package is available on [npm][npm-url] as: `extend` - -``` sh -npm install extend -``` - -## Usage - -**Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)** - -*Extend one object with one or more others, returning the modified object.* - -**Example:** - -``` js -var extend = require('extend'); -extend(targetObject, object1, object2); -``` - -Keep in mind that the target object will be modified, and will be returned from extend(). - -If a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s). -Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over. -Warning: passing `false` as the first argument is not supported. - -### Arguments - -* `deep` *Boolean* (optional) -If set, the merge becomes recursive (i.e. deep copy). -* `target` *Object* -The object to extend. -* `object1` *Object* -The object that will be merged into the first. -* `objectN` *Object* (Optional) -More objects to merge into the first. - -## License - -`node-extend` is licensed under the [MIT License][mit-license-url]. - -## Acknowledgements - -All credit to the jQuery authors for perfecting this amazing utility. - -Ported to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb]. - -[travis-svg]: https://travis-ci.org/justmoon/node-extend.svg -[travis-url]: https://travis-ci.org/justmoon/node-extend -[npm-url]: https://npmjs.org/package/extend -[mit-license-url]: http://opensource.org/licenses/MIT -[github-justmoon]: https://github.com/justmoon -[github-insin]: https://github.com/insin -[github-ljharb]: https://github.com/ljharb -[npm-version-png]: http://versionbadg.es/justmoon/node-extend.svg -[deps-svg]: https://david-dm.org/justmoon/node-extend.svg -[deps-url]: https://david-dm.org/justmoon/node-extend -[dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg -[dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies - diff --git a/build/node_modules/extend/component.json b/build/node_modules/extend/component.json deleted file mode 100644 index 1500a2f3..00000000 --- a/build/node_modules/extend/component.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "extend", - "author": "Stefan Thomas (http://www.justmoon.net)", - "version": "3.0.0", - "description": "Port of jQuery.extend for node.js and the browser.", - "scripts": [ - "index.js" - ], - "contributors": [ - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository" : { - "type": "git", - "url": "https://github.com/justmoon/node-extend.git" - }, - "dependencies": { - }, - "devDependencies": { - "tape" : "~3.0.0", - "covert": "~0.4.0", - "jscs": "~1.6.2" - } -} - diff --git a/build/node_modules/extend/index.js b/build/node_modules/extend/index.js deleted file mode 100644 index 2aa3faae..00000000 --- a/build/node_modules/extend/index.js +++ /dev/null @@ -1,117 +0,0 @@ -'use strict'; - -var hasOwn = Object.prototype.hasOwnProperty; -var toStr = Object.prototype.toString; -var defineProperty = Object.defineProperty; -var gOPD = Object.getOwnPropertyDescriptor; - -var isArray = function isArray(arr) { - if (typeof Array.isArray === 'function') { - return Array.isArray(arr); - } - - return toStr.call(arr) === '[object Array]'; -}; - -var isPlainObject = function isPlainObject(obj) { - if (!obj || toStr.call(obj) !== '[object Object]') { - return false; - } - - var hasOwnConstructor = hasOwn.call(obj, 'constructor'); - var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); - // Not own constructor property must be Object - if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - var key; - for (key in obj) { /**/ } - - return typeof key === 'undefined' || hasOwn.call(obj, key); -}; - -// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target -var setProperty = function setProperty(target, options) { - if (defineProperty && options.name === '__proto__') { - defineProperty(target, options.name, { - enumerable: true, - configurable: true, - value: options.newValue, - writable: true - }); - } else { - target[options.name] = options.newValue; - } -}; - -// Return undefined instead of __proto__ if '__proto__' is not an own property -var getProperty = function getProperty(obj, name) { - if (name === '__proto__') { - if (!hasOwn.call(obj, name)) { - return void 0; - } else if (gOPD) { - // In early versions of node, obj['__proto__'] is buggy when obj has - // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. - return gOPD(obj, name).value; - } - } - - return obj[name]; -}; - -module.exports = function extend() { - var options, name, src, copy, copyIsArray, clone; - var target = arguments[0]; - var i = 1; - var length = arguments.length; - var deep = false; - - // Handle a deep copy situation - if (typeof target === 'boolean') { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { - target = {}; - } - - for (; i < length; ++i) { - options = arguments[i]; - // Only deal with non-null/undefined values - if (options != null) { - // Extend the base object - for (name in options) { - src = getProperty(target, name); - copy = getProperty(options, name); - - // Prevent never-ending loop - if (target !== copy) { - // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && isArray(src) ? src : []; - } else { - clone = src && isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); - - // Don't bring in undefined values - } else if (typeof copy !== 'undefined') { - setProperty(target, { name: name, newValue: copy }); - } - } - } - } - } - - // Return the modified object - return target; -}; diff --git a/build/node_modules/extend/package.json b/build/node_modules/extend/package.json deleted file mode 100644 index 85279f78..00000000 --- a/build/node_modules/extend/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "extend", - "author": "Stefan Thomas (http://www.justmoon.net)", - "version": "3.0.2", - "description": "Port of jQuery.extend for node.js and the browser", - "main": "index", - "scripts": { - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "npm run coverage-quiet", - "tests-only": "node test", - "coverage": "covert test/index.js", - "coverage-quiet": "covert test/index.js --quiet", - "lint": "npm run jscs && npm run eslint", - "jscs": "jscs *.js */*.js", - "eslint": "eslint *.js */*.js" - }, - "contributors": [ - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository": { - "type": "git", - "url": "https://github.com/justmoon/node-extend.git" - }, - "dependencies": {}, - "devDependencies": { - "@ljharb/eslint-config": "^12.2.1", - "covert": "^1.1.0", - "eslint": "^4.19.1", - "jscs": "^3.0.7", - "tape": "^4.9.1" - }, - "license": "MIT" -} diff --git a/build/node_modules/extglob/LICENSE b/build/node_modules/extglob/LICENSE deleted file mode 100644 index e33d14b7..00000000 --- a/build/node_modules/extglob/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/extglob/README.md b/build/node_modules/extglob/README.md deleted file mode 100644 index 3255ea2b..00000000 --- a/build/node_modules/extglob/README.md +++ /dev/null @@ -1,362 +0,0 @@ -# extglob [![NPM version](https://img.shields.io/npm/v/extglob.svg?style=flat)](https://www.npmjs.com/package/extglob) [![NPM monthly downloads](https://img.shields.io/npm/dm/extglob.svg?style=flat)](https://npmjs.org/package/extglob) [![NPM total downloads](https://img.shields.io/npm/dt/extglob.svg?style=flat)](https://npmjs.org/package/extglob) [![Linux Build Status](https://img.shields.io/travis/micromatch/extglob.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/extglob) [![Windows Build Status](https://img.shields.io/appveyor/ci/micromatch/extglob.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/micromatch/extglob) - -> Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save extglob -``` - -* Convert an extglob string to a regex-compatible string. -* More complete (and correct) support than [minimatch](https://github.com/isaacs/minimatch) (minimatch fails a large percentage of the extglob tests) -* Handles [negation patterns](#extglob-patterns) -* Handles [nested patterns](#extglob-patterns) -* Organized code base, easy to maintain and make changes when edge cases arise -* As you can see by the [benchmarks](#benchmarks), extglob doesn't pay with speed for it's completeness, accuracy and quality. - -**Heads up!**: This library only supports extglobs, to handle full glob patterns and other extended globbing features use [micromatch](https://github.com/jonschlinkert/micromatch) instead. - -## Usage - -The main export is a function that takes a string and options, and returns an object with the parsed AST and the compiled `.output`, which is a regex-compatible string that can be used for matching. - -```js -var extglob = require('extglob'); -console.log(extglob('!(xyz)*.js')); -``` - -## Extglob cheatsheet - -Extended globbing patterns can be defined as follows (as described by the [bash man page](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html)): - -| **pattern** | **regex equivalent** | **description** | -| --- | --- | --- | -| `?(pattern-list)` | `(...|...)?` | Matches zero or one occurrence of the given pattern(s) | -| `*(pattern-list)` | `(...|...)*` | Matches zero or more occurrences of the given pattern(s) | -| `+(pattern-list)` | `(...|...)+` | Matches one or more occurrences of the given pattern(s) | -| `@(pattern-list)` | `(...|...)` [1] | Matches one of the given pattern(s) | -| `!(pattern-list)` | N/A | Matches anything except one of the given pattern(s) | - -## API - -### [extglob](index.js#L36) - -Convert the given `extglob` pattern into a regex-compatible string. Returns an object with the compiled result and the parsed AST. - -**Params** - -* `pattern` **{String}** -* `options` **{Object}** -* `returns` **{String}** - -**Example** - -```js -var extglob = require('extglob'); -console.log(extglob('*.!(*a)')); -//=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' -``` - -### [.match](index.js#L56) - -Takes an array of strings and an extglob pattern and returns a new array that contains only the strings that match the pattern. - -**Params** - -* `list` **{Array}**: Array of strings to match -* `pattern` **{String}**: Extglob pattern -* `options` **{Object}** -* `returns` **{Array}**: Returns an array of matches - -**Example** - -```js -var extglob = require('extglob'); -console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)')); -//=> ['a.b', 'a.c'] -``` - -### [.isMatch](index.js#L111) - -Returns true if the specified `string` matches the given extglob `pattern`. - -**Params** - -* `string` **{String}**: String to match -* `pattern` **{String}**: Extglob pattern -* `options` **{String}** -* `returns` **{Boolean}** - -**Example** - -```js -var extglob = require('extglob'); - -console.log(extglob.isMatch('a.a', '*.!(*a)')); -//=> false -console.log(extglob.isMatch('a.b', '*.!(*a)')); -//=> true -``` - -### [.contains](index.js#L150) - -Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but the pattern can match any part of the string. - -**Params** - -* `str` **{String}**: The string to match. -* `pattern` **{String}**: Glob pattern to use for matching. -* `options` **{Object}** -* `returns` **{Boolean}**: Returns true if the patter matches any part of `str`. - -**Example** - -```js -var extglob = require('extglob'); -console.log(extglob.contains('aa/bb/cc', '*b')); -//=> true -console.log(extglob.contains('aa/bb/cc', '*d')); -//=> false -``` - -### [.matcher](index.js#L184) - -Takes an extglob pattern and returns a matcher function. The returned function takes the string to match as its only argument. - -**Params** - -* `pattern` **{String}**: Extglob pattern -* `options` **{String}** -* `returns` **{Boolean}** - -**Example** - -```js -var extglob = require('extglob'); -var isMatch = extglob.matcher('*.!(*a)'); - -console.log(isMatch('a.a')); -//=> false -console.log(isMatch('a.b')); -//=> true -``` - -### [.create](index.js#L214) - -Convert the given `extglob` pattern into a regex-compatible string. Returns an object with the compiled result and the parsed AST. - -**Params** - -* `str` **{String}** -* `options` **{Object}** -* `returns` **{String}** - -**Example** - -```js -var extglob = require('extglob'); -console.log(extglob.create('*.!(*a)').output); -//=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' -``` - -### [.capture](index.js#L248) - -Returns an array of matches captured by `pattern` in `string`, or `null` if the pattern did not match. - -**Params** - -* `pattern` **{String}**: Glob pattern to use for matching. -* `string` **{String}**: String to match -* `options` **{Object}**: See available [options](#options) for changing how matches are performed -* `returns` **{Boolean}**: Returns an array of captures if the string matches the glob pattern, otherwise `null`. - -**Example** - -```js -var extglob = require('extglob'); -extglob.capture(pattern, string[, options]); - -console.log(extglob.capture('test/*.js', 'test/foo.js')); -//=> ['foo'] -console.log(extglob.capture('test/*.js', 'foo/bar.css')); -//=> null -``` - -### [.makeRe](index.js#L281) - -Create a regular expression from the given `pattern` and `options`. - -**Params** - -* `pattern` **{String}**: The pattern to convert to regex. -* `options` **{Object}** -* `returns` **{RegExp}** - -**Example** - -```js -var extglob = require('extglob'); -var re = extglob.makeRe('*.!(*a)'); -console.log(re); -//=> /^[^\/]*?\.(?![^\/]*?a)[^\/]*?$/ -``` - -## Options - -Available options are based on the options from Bash (and the option names used in bash). - -### options.nullglob - -**Type**: `boolean` - -**Default**: `undefined` - -When enabled, the pattern itself will be returned when no matches are found. - -### options.nonull - -Alias for [options.nullglob](#optionsnullglob), included for parity with minimatch. - -### options.cache - -**Type**: `boolean` - -**Default**: `undefined` - -Functions are memoized based on the given glob patterns and options. Disable memoization by setting `options.cache` to false. - -### options.failglob - -**Type**: `boolean` - -**Default**: `undefined` - -Throw an error is no matches are found. - -## Benchmarks - -Last run on December 21, 2017 - -```sh -# negation-nested (49 bytes) - extglob x 2,228,255 ops/sec ±0.98% (89 runs sampled) - minimatch x 207,875 ops/sec ±0.61% (91 runs sampled) - - fastest is extglob (by 1072% avg) - -# negation-simple (43 bytes) - extglob x 2,205,668 ops/sec ±1.00% (91 runs sampled) - minimatch x 311,923 ops/sec ±1.25% (91 runs sampled) - - fastest is extglob (by 707% avg) - -# range-false (57 bytes) - extglob x 2,263,877 ops/sec ±0.40% (94 runs sampled) - minimatch x 271,372 ops/sec ±1.02% (91 runs sampled) - - fastest is extglob (by 834% avg) - -# range-true (56 bytes) - extglob x 2,161,891 ops/sec ±0.41% (92 runs sampled) - minimatch x 268,265 ops/sec ±1.17% (91 runs sampled) - - fastest is extglob (by 806% avg) - -# star-simple (46 bytes) - extglob x 2,211,081 ops/sec ±0.49% (92 runs sampled) - minimatch x 343,319 ops/sec ±0.59% (91 runs sampled) - - fastest is extglob (by 644% avg) - -``` - -## Differences from Bash - -This library has complete parity with Bash 4.3 with only a couple of minor differences. - -* In some cases Bash returns true if the given string "contains" the pattern, whereas this library returns true if the string is an exact match for the pattern. You can relax this by setting `options.contains` to true. -* This library is more accurate than Bash and thus does not fail some of the tests that Bash 4.3 still lists as failing in their unit tests - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
-
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Related projects - -You might also be interested in these projects: - -* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.") -* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/jonschlinkert/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.") -* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by [micromatch].") -* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") -* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 49 | [jonschlinkert](https://github.com/jonschlinkert) | -| 2 | [isiahmeadows](https://github.com/isiahmeadows) | -| 1 | [doowb](https://github.com/doowb) | -| 1 | [devongovett](https://github.com/devongovett) | -| 1 | [mjbvz](https://github.com/mjbvz) | -| 1 | [shinnn](https://github.com/shinnn) | - -### Author - -**Jon Schlinkert** - -* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert) -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on December 21, 2017._ - -
-
-
    -
  1. `@` isn "'t a RegEx character." - -
  2. -
-
\ No newline at end of file diff --git a/build/node_modules/extglob/changelog.md b/build/node_modules/extglob/changelog.md deleted file mode 100644 index c9fc4fcd..00000000 --- a/build/node_modules/extglob/changelog.md +++ /dev/null @@ -1,25 +0,0 @@ -## Changelog - -### v2.0.0 - -**Added features** - -- Adds [.capture](readme.md#capture) method for capturing matches, thanks to [devongovett](https://github.com/devongovett) - - -### v1.0.0 - -**Breaking changes** - -- The main export now returns the compiled string, instead of the object returned from the compiler - -**Added features** - -- Adds a `.create` method to do what the main function did before v1.0.0 - -**Other changes** - -- adds `expand-brackets` parsers/compilers to handle nested brackets and extglobs -- uses `to-regex` to build regex for `makeRe` method -- improves coverage -- optimizations \ No newline at end of file diff --git a/build/node_modules/extglob/index.js b/build/node_modules/extglob/index.js deleted file mode 100644 index 116e6d5c..00000000 --- a/build/node_modules/extglob/index.js +++ /dev/null @@ -1,331 +0,0 @@ -'use strict'; - -/** - * Module dependencies - */ - -var extend = require('extend-shallow'); -var unique = require('array-unique'); -var toRegex = require('to-regex'); - -/** - * Local dependencies - */ - -var compilers = require('./lib/compilers'); -var parsers = require('./lib/parsers'); -var Extglob = require('./lib/extglob'); -var utils = require('./lib/utils'); -var MAX_LENGTH = 1024 * 64; - -/** - * Convert the given `extglob` pattern into a regex-compatible string. Returns - * an object with the compiled result and the parsed AST. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob('*.!(*a)')); - * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {String} - * @api public - */ - -function extglob(pattern, options) { - return extglob.create(pattern, options).output; -} - -/** - * Takes an array of strings and an extglob pattern and returns a new - * array that contains only the strings that match the pattern. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)')); - * //=> ['a.b', 'a.c'] - * ``` - * @param {Array} `list` Array of strings to match - * @param {String} `pattern` Extglob pattern - * @param {Object} `options` - * @return {Array} Returns an array of matches - * @api public - */ - -extglob.match = function(list, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - list = utils.arrayify(list); - var isMatch = extglob.matcher(pattern, options); - var len = list.length; - var idx = -1; - var matches = []; - - while (++idx < len) { - var ele = list[idx]; - - if (isMatch(ele)) { - matches.push(ele); - } - } - - // if no options were passed, uniquify results and return - if (typeof options === 'undefined') { - return unique(matches); - } - - if (matches.length === 0) { - if (options.failglob === true) { - throw new Error('no matches found for "' + pattern + '"'); - } - if (options.nonull === true || options.nullglob === true) { - return [pattern.split('\\').join('')]; - } - } - - return options.nodupes !== false ? unique(matches) : matches; -}; - -/** - * Returns true if the specified `string` matches the given - * extglob `pattern`. - * - * ```js - * var extglob = require('extglob'); - * - * console.log(extglob.isMatch('a.a', '*.!(*a)')); - * //=> false - * console.log(extglob.isMatch('a.b', '*.!(*a)')); - * //=> true - * ``` - * @param {String} `string` String to match - * @param {String} `pattern` Extglob pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -extglob.isMatch = function(str, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } - - if (pattern === str) { - return true; - } - - if (pattern === '' || pattern === ' ' || pattern === '.') { - return pattern === str; - } - - var isMatch = utils.memoize('isMatch', pattern, options, extglob.matcher); - return isMatch(str); -}; - -/** - * Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but - * the pattern can match any part of the string. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob.contains('aa/bb/cc', '*b')); - * //=> true - * console.log(extglob.contains('aa/bb/cc', '*d')); - * //=> false - * ``` - * @param {String} `str` The string to match. - * @param {String} `pattern` Glob pattern to use for matching. - * @param {Object} `options` - * @return {Boolean} Returns true if the patter matches any part of `str`. - * @api public - */ - -extglob.contains = function(str, pattern, options) { - if (typeof str !== 'string') { - throw new TypeError('expected a string'); - } - - if (pattern === '' || pattern === ' ' || pattern === '.') { - return pattern === str; - } - - var opts = extend({}, options, {contains: true}); - opts.strictClose = false; - opts.strictOpen = false; - return extglob.isMatch(str, pattern, opts); -}; - -/** - * Takes an extglob pattern and returns a matcher function. The returned - * function takes the string to match as its only argument. - * - * ```js - * var extglob = require('extglob'); - * var isMatch = extglob.matcher('*.!(*a)'); - * - * console.log(isMatch('a.a')); - * //=> false - * console.log(isMatch('a.b')); - * //=> true - * ``` - * @param {String} `pattern` Extglob pattern - * @param {String} `options` - * @return {Boolean} - * @api public - */ - -extglob.matcher = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - function matcher() { - var re = extglob.makeRe(pattern, options); - return function(str) { - return re.test(str); - }; - } - - return utils.memoize('matcher', pattern, options, matcher); -}; - -/** - * Convert the given `extglob` pattern into a regex-compatible string. Returns - * an object with the compiled result and the parsed AST. - * - * ```js - * var extglob = require('extglob'); - * console.log(extglob.create('*.!(*a)').output); - * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?' - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ - -extglob.create = function(pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - function create() { - var ext = new Extglob(options); - var ast = ext.parse(pattern, options); - return ext.compile(ast, options); - } - - return utils.memoize('create', pattern, options, create); -}; - -/** - * Returns an array of matches captured by `pattern` in `string`, or `null` - * if the pattern did not match. - * - * ```js - * var extglob = require('extglob'); - * extglob.capture(pattern, string[, options]); - * - * console.log(extglob.capture('test/*.js', 'test/foo.js')); - * //=> ['foo'] - * console.log(extglob.capture('test/*.js', 'foo/bar.css')); - * //=> null - * ``` - * @param {String} `pattern` Glob pattern to use for matching. - * @param {String} `string` String to match - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`. - * @api public - */ - -extglob.capture = function(pattern, str, options) { - var re = extglob.makeRe(pattern, extend({capture: true}, options)); - - function match() { - return function(string) { - var match = re.exec(string); - if (!match) { - return null; - } - - return match.slice(1); - }; - } - - var capture = utils.memoize('capture', pattern, options, match); - return capture(str); -}; - -/** - * Create a regular expression from the given `pattern` and `options`. - * - * ```js - * var extglob = require('extglob'); - * var re = extglob.makeRe('*.!(*a)'); - * console.log(re); - * //=> /^[^\/]*?\.(?![^\/]*?a)[^\/]*?$/ - * ``` - * @param {String} `pattern` The pattern to convert to regex. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ - -extglob.makeRe = function(pattern, options) { - if (pattern instanceof RegExp) { - return pattern; - } - - if (typeof pattern !== 'string') { - throw new TypeError('expected pattern to be a string'); - } - - if (pattern.length > MAX_LENGTH) { - throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters'); - } - - function makeRe() { - var opts = extend({strictErrors: false}, options); - if (opts.strictErrors === true) opts.strict = true; - var res = extglob.create(pattern, opts); - return toRegex(res.output, opts); - } - - var regex = utils.memoize('makeRe', pattern, options, makeRe); - if (regex.source.length > MAX_LENGTH) { - throw new SyntaxError('potentially malicious regex detected'); - } - - return regex; -}; - -/** - * Cache - */ - -extglob.cache = utils.cache; -extglob.clearCache = function() { - extglob.cache.__data__ = {}; -}; - -/** - * Expose `Extglob` constructor, parsers and compilers - */ - -extglob.Extglob = Extglob; -extglob.compilers = compilers; -extglob.parsers = parsers; - -/** - * Expose `extglob` - * @type {Function} - */ - -module.exports = extglob; diff --git a/build/node_modules/extglob/package.json b/build/node_modules/extglob/package.json deleted file mode 100644 index afe51573..00000000 --- a/build/node_modules/extglob/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "name": "extglob", - "description": "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.", - "version": "2.0.4", - "homepage": "https://github.com/micromatch/extglob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Devon Govett (http://badassjs.com)", - "Isiah Meadows (https://www.isiahmeadows.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Matt Bierner (http://mattbierner.com)", - "Shinnosuke Watanabe (https://shinnn.github.io)" - ], - "repository": "micromatch/extglob", - "bugs": { - "url": "https://github.com/micromatch/extglob/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "lib" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "devDependencies": { - "bash-match": "^1.0.2", - "for-own": "^1.0.0", - "gulp": "^3.9.1", - "gulp-eslint": "^4.0.0", - "gulp-format-md": "^1.0.0", - "gulp-istanbul": "^1.1.2", - "gulp-mocha": "^3.0.1", - "gulp-unused": "^0.2.1", - "helper-changelog": "^0.3.0", - "is-windows": "^1.0.1", - "micromatch": "^3.0.4", - "minimatch": "^3.0.4", - "minimist": "^1.2.0", - "mocha": "^3.5.0", - "multimatch": "^2.1.0" - }, - "keywords": [ - "bash", - "extended", - "extglob", - "glob", - "globbing", - "ksh", - "match", - "pattern", - "patterns", - "regex", - "test", - "wildcard" - ], - "lintDeps": { - "devDependencies": { - "files": { - "options": { - "ignore": [ - "benchmark/**/*.js" - ] - } - } - } - }, - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "related": { - "list": [ - "braces", - "expand-brackets", - "expand-range", - "fill-range", - "micromatch" - ] - }, - "helpers": [ - "helper-changelog" - ], - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/fast-copy/.release-it.beta.json b/build/node_modules/fast-copy/.release-it.beta.json deleted file mode 100644 index 9088fa8e..00000000 --- a/build/node_modules/fast-copy/.release-it.beta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "github": { - "release": true - }, - "npm": { - "tag": "next" - }, - "preReleaseId": "beta" -} diff --git a/build/node_modules/fast-copy/.release-it.json b/build/node_modules/fast-copy/.release-it.json deleted file mode 100644 index 1acdb0b7..00000000 --- a/build/node_modules/fast-copy/.release-it.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "github": { - "release": true, - "tagName": "v${version}" - } -} diff --git a/build/node_modules/fast-copy/CHANGELOG.md b/build/node_modules/fast-copy/CHANGELOG.md deleted file mode 100644 index 1ecb69d4..00000000 --- a/build/node_modules/fast-copy/CHANGELOG.md +++ /dev/null @@ -1,135 +0,0 @@ -# fast-copy CHANGELOG - -## 3.0.1 - -- [#78](https://github.com/planttheidea/fast-copy/pull/78) - Work when running Node process with `--disable-proto=throw` (thanks [@castarco](https://github.com/castarco)) - -## 3.0.0 - -**Breaking changes** - -- Exports are now always named, so the `.default` suffix is required when accessing - - CommonJS in Node => `const copy = require('fast-copy').default;` - - UMD global via CDN => `const copy = globalThis['fast-copy'].default;` -- `copy.strict` is no longer available; it is now available as the explicit `copyStrict` named import -- Options have been removed - - `isStrict` option has been replaced with importing the separate `copyStrict` method - - `realm` has been removed entirely, as `instanceof` is no longer used internally -- The `FastCopy` namespace in typings has been removed in favor of explicit import of available types - -**Enhancements** - -- Support `exports` option, to have bettern handling for different environments (ESM vs CJS vs UMD) and improve tree-shaking when supported -- Can now create a custom copier (either standard or strict), allowing maximum performance for specific use-cases -- Small speed improvements when handling certain object types - -**Bug fixes** - -- Correctly handle primitive wrappers, e.g. `new String('foo')` - -## 2.1.7 - -- Republish of [`2.1.6`](#216), as the release process failed mid-publish - -## 2.1.6 - -- Revert [#69](https://github.com/planttheidea/fast-copy/pull/69) and [#71](https://github.com/planttheidea/fast-copy/pull/71), as they broke the package for NodeJS consumption (will be reintroduced in v3, as breaking changes are required) - -## 2.1.5 - DO NOT USE - -- Ensure `"type": "module"` is set to allow ESM in NodeJS to work [#71](https://github.com/planttheidea/fast-copy/pull/71) - -## 2.1.4 - DO NOT USE - -- Provide `"exports"` definition in `package.json` [#69](https://github.com/planttheidea/fast-copy/pull/69) (thanks [@liteoood](https://github.com/ilteoood)) - -## 2.1.3 - -- Fix source maps not referencing source code [#65](https://github.com/planttheidea/fast-copy/pull/65) - -## 2.1.2 - -- Support `constructor` property override on object [#60](https://github.com/planttheidea/fast-copy/pull/60) -- Provide better support for `constructor` override on non-plain object types [#61](https://github.com/planttheidea/fast-copy/pull/61) -- Remove `tslint` in favor of `@typescript-eslint` [#62](https://github.com/planttheidea/fast-copy/pull/62) - -## 2.1.1 - -- Fix ESM-to-CommonJS issue when using TSC to consume [#37](https://github.com/planttheidea/fast-copy/issues/37) -- Modify `Blob` cloning to use `blob.slice()` instead of `new Blob()` for speed - -## 2.1.0 - -- Support cloning `Blob` [#31](https://github.com/planttheidea/fast-copy/pull/31) (thanks [@fratzigner](https://github.com/fratzinger)) -- Fix cloning descriptors that only are getters / setters in strict mode -- Handle errors when defining properties in strict mode - -## 2.0.5 - -- Fix issue copying objects referenced multiple times in source [#28](https://github.com/planttheidea/fast-copy/pull/28) (thanks [@darkowic](https://github.com/darkowic)) - -## 2.0.4 - -- Cache length of arrays for faster iteration [#22](https://github.com/planttheidea/fast-copy/pull/22) -- Update dev dependencies and types - -## 2.0.3 - -- Add safety to constructing native objects (fixes #19) - -## 2.0.2 - -- Manually coalesce options instead of use destructuring (performance) - -## 2.0.1 - -- Fix typings declarations - [#17](https://github.com/planttheidea/fast-copy/pull/17) - -## 2.0.0 - -- Rewrite in TypeScript -- Add strict mode (for more accurate and thorough copying, at the expense of less performance) - -#### BREAKING CHANGES - -- Second parameter is now an object of [options](README.md#options) - -## 1.2.4 - -- Ensure `Date` copy uses realm-specific constructor - -## 1.2.3 - -- Support custom prototype applied to plain object via `Object.create()` - -## 1.2.2 - -- Support copy of extensions of native `Array` with alternative `push()` method - -## 1.2.1 - -- Under-the-hood optimizations per recommendations from #7 - -## 1.2.0 - -- Add support for multiple realms - -## 1.1.2 - -- Optimize order of operations for common use cases - -## 1.1.1 - -- Fix cache using `WeakSet` when there was support for `WeakMap`s instead of `WeakSet`s (in case one was polyfilled but not the other) - -## 1.1.0 - -- Add TypeScript and FlowType bindings - -## 1.0.1 - -- Activate tree-shaking - -## 1.0.0 - -- Initial release diff --git a/build/node_modules/fast-copy/LICENSE b/build/node_modules/fast-copy/LICENSE deleted file mode 100644 index 63cea3f8..00000000 --- a/build/node_modules/fast-copy/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Tony Quetano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/fast-copy/README.md b/build/node_modules/fast-copy/README.md deleted file mode 100644 index d08a6f76..00000000 --- a/build/node_modules/fast-copy/README.md +++ /dev/null @@ -1,395 +0,0 @@ -# fast-copy - - - - - -A [blazing fast](#benchmarks) deep object copier - -## Table of contents - -- [fast-copy](#fast-copy) - - [Table of contents](#table-of-contents) - - [Usage](#usage) - - [API](#api) - - [`copy`](#copy) - - [`copyStrict`](#copystrict) - - [`createCopier`](#createcopier) - - [Copier methods](#copier-methods) - - [Copier state](#copier-state) - - [`cache`](#cache) - - [`copier`](#copier) - - [`Constructor` / `prototype`](#constructor--prototype) - - [`createStrictCopier`](#createstrictcopier) - - [Types supported](#types-supported) - - [Aspects of default copiers](#aspects-of-default-copiers) - - [Error references are copied directly, instead of creating a new `*Error` object](#error-references-are-copied-directly-instead-of-creating-a-new-error-object) - - [The constructor of the original object is used, instead of using known globals](#the-constructor-of-the-original-object-is-used-instead-of-using-known-globals) - - [Generator objects are copied, but still reference the original generator's state](#generator-objects-are-copied-but-still-reference-the-original-generators-state) - - [Benchmarks](#benchmarks) - - [Simple objects](#simple-objects) - - [Complex objects](#complex-objects) - - [Big data](#big-data) - - [Circular objects](#circular-objects) - - [Special objects](#special-objects) - - [Development](#development) - -## Usage - -```js -import copy from 'fast-copy'; -import { deepEqual } from 'fast-equals'; - -const object = { - array: [123, { deep: 'value' }], - map: new Map([ - ['foo', {}], - [{ bar: 'baz' }, 'quz'], - ]), -}; - -const copiedObject = copy(object); - -console.log(copiedObject === object); // false -console.log(deepEqual(copiedObject, object)); // true -``` - -## API - -### `copy` - -Deeply copy the object passed. - -```js -import copy from 'fast-copy'; - -const copied = copy({ foo: 'bar' }); -``` - -### `copyStrict` - -Deeply copy the object passed, but with additional strictness when replicating the original object: - -- Properties retain their original property descriptor -- Non-enumerable keys are copied -- Non-standard properties (e.g., keys on arrays / maps / sets) are copied - -```js -import { copyStrict } from 'fast-copy'; - -const object = { foo: 'bar' }; -object.nonEnumerable = Object.defineProperty(object, 'bar', { - enumerable: false, - value: 'baz', -}); - -const copied = copy(object); -``` - -**NOTE**: This method is significantly slower than [`copy`](#copy), so it is recommended to only use this when you have specific use-cases that require it. - -### `createCopier` - -Create a custom copier based on the type-specific methods passed. This is useful if you want to squeeze out maximum performance, or perform something other than a standard deep copy. - -```js -import { createCopier } from 'fast-copy'; - -const copyShallow = createCopier({ - array: (array) => [...array], - map: (map) => new Map(map.entries()), - object: (object) => ({ ...object }), - set: (set) => new Set(set.values()), -}); -``` - -Each internal copier method has the following contract: - -```js -type InternalCopier = (value: Value, state: State) => Value; - -interface State { - Constructor: any; - cache: WeakMap; - copier: InternalCopier; - prototype: any; -} -``` - -Any method overriding the defaults must maintain this contract. - -#### Copier methods - -- `array` => `Array` -- `arrayBuffer`=> `ArrayBuffer`, `Float32Array`, `Float64Array`, `Int8Array`, `Int16Array`, `Int32Array`, `Uint8Array`, `Uint8ClampedArray`, `Uint16Array`, `Uint32Array`, `Uint64Array` -- `blob` => `Blob` -- `dataView` => `DataView` -- `date` => `Date` -- `error` => `Error`, `AggregateError`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, `URIError` -- `map` => `Map` -- `object` => `Object`, or any custom constructor -- `regExp` => `RegExp` -- `set` => `Set` - -#### Copier state - -##### `cache` - -If you want to maintain circular reference handling, then you'll need the methods to handle cache population for future lookups: - -```js -function shallowlyCloneArray( - value: Value, - state: State -): Value { - const clone = [...value]; - - state.cache.set(value, clone); - - return clone; -} -``` - -##### `copier` - -`copier` is provided for recursive calls with deeply-nested objects. - -```js -function deeplyCloneArray( - value: Value, - state: State -): Value { - const clone = []; - - state.cache.set(value, clone); - - value.forEach((item) => state.copier(item, state)); - - return clone; -} -``` - -Note above I am using `forEach` instead of a simple `map`. This is because it is highly recommended to store the clone in [`cache`](#cache) eagerly when deeply copying, so that nested circular references are handled correctly. - -##### `Constructor` / `prototype` - -Both `Constructor` and `prototype` properties are only populated with complex objects that are not standard objects or arrays. This is mainly useful for custom subclasses of these globals, or maintaining custom prototypes of objects. - -```js -function deeplyCloneSubclassArray( - value: Value, - state: State -): Value { - const clone = new state.Constructor(); - - state.cache.set(value, clone); - - value.forEach((item) => clone.push(item)); - - return clone; -} - -function deeplyCloneCustomObject( - value: Value, - state: State -): Value { - const clone = Object.create(state.prototype); - - state.cache.set(value, clone); - - Object.entries(value).forEach(([k, v]) => (clone[k] = v)); - - return clone; -} -``` - -### `createStrictCopier` - -Create a custom copier based on the type-specific methods passed, but defaulting to the same functions normally used for `copyStrict`. This is useful if you want to squeeze out better performance while maintaining strict requirements, or perform something other than a strict deep copy. - -```js -const createStrictClone = (value, clone) => - Object.getOwnPropertyNames(value).reduce( - (clone, property) => - Object.defineProperty( - clone, - property, - Object.getOwnPropertyDescriptor(value, property) || { - configurable: true, - enumerable: true, - value: clone[property], - writable: true, - } - ), - clone - ); - -const copyStrictShallow = createStrictCopier({ - array: (array) => createStrictClone(array, []), - map: (map) => createStrictClone(map, new Map(map.entries())), - object: (object) => createStrictClone(object, {}), - set: (set) => createStrictClone(set, new Set(set.values())), -}); -``` - -**NOTE**: This method creates a copier that is significantly slower than [`copy`](#copy), as well as likely a copier created by [`createCopier`](#createcopier), so it is recommended to only use this when you have specific use-cases that require it. - -## Types supported - -The following object types are deeply cloned when they are either properties on the object passed, or the object itself: - -- `Array` -- `ArrayBuffer` -- `Boolean` primitive wrappers (e.g., `new Boolean(true)`) -- `Blob` -- `Buffer` -- `DataView` -- `Date` -- `Float32Array` -- `Float64Array` -- `Int8Array` -- `Int16Array` -- `Int32Array` -- `Map` -- `Number` primitive wrappers (e.g., `new Number(123)`) -- `Object` -- `RegExp` -- `Set` -- `String` primitive wrappers (e.g., `new String('foo')`) -- `Uint8Array` -- `Uint8ClampedArray` -- `Uint16Array` -- `Uint32Array` -- `React` components -- Custom constructors - -The following object types are copied directly, as they are either primitives, cannot be cloned, or the common use-case implementation does not expect cloning: - -- `AsyncFunction` -- `Boolean` primitives -- `Error` -- `Function` -- `GeneratorFunction` -- `Number` primitives -- `Null` -- `Promise` -- `String` primitives -- `Symbol` -- `Undefined` -- `WeakMap` -- `WeakSet` - -Circular objects are supported out of the box. By default, a cache based on `WeakSet` is used, but if `WeakSet` is not available then a fallback is used. The benchmarks quoted below are based on use of `WeakSet`. - -## Aspects of default copiers - -Inherently, what is considered a valid copy is subjective because of different requirements and use-cases. For this library, some decisions were explicitly made for the default copiers of specific object types, and those decisions are detailed below. If your use-cases require different handling, you can always create your own custom copier with [`createCopier`](#createcopier) or [`createStrictCopier`](#createstrictcopier). - -### Error references are copied directly, instead of creating a new `*Error` object - -While it would be relatively trivial to copy over the message and stack to a new object of the same `Error` subclass, it is a common practice to "override" the message or stack, and copies would not retain this mutation. As such, the original reference is copied. - -### The constructor of the original object is used, instead of using known globals - -Starting in ES2015, native globals can be subclassed like any custom class. When copying, we explicitly reuse the constructor of the original object. However, the expectation is that these subclasses would have the same constructur signature as their native base class. This is a common community practice, but there is the possibility of inaccuracy if the contract differs. - -### Generator objects are copied, but still reference the original generator's state - -[Generator objects](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator) are specific types of iterators, but appear like standard objects that just have a few methods (`next`, `throw`, `return`). These methods are bound to the internal state of the generator, which cannot be copied effectively. Normally this would be treated like other "uncopiable" objects and simply pass the reference through, however the "validation" of whether it is a generator object or a standard object is not guaranteed (duck-typing) and there is a runtime cost associated with. Therefore, the simplest path of treating it like a standard object (copying methods to a new object) was taken. - -## Benchmarks - -#### Simple objects - -_Small number of properties, all values are primitives_ - -| | Operations / second | -| ------------------ | ------------------- | -| **fast-copy** | **5,880,312** | -| lodash.cloneDeep | 2,706,261 | -| clone | 2,207,231 | -| deepclone | 1,274,810 | -| fast-clone | 1,239,952 | -| ramda | 1,146,152 | -| fast-copy (strict) | 852,382 | - -#### Complex objects - -_Large number of properties, values are a combination of primitives and complex objects_ - -| | Operations / second | -| ------------------ | ------------------- | -| **fast-copy** | **162,858** | -| ramda | 142,104 | -| deepclone | 133,607 | -| fast-clone | 101,143 | -| clone | 70,872 | -| fast-copy (strict) | 62,961 | -| lodash.cloneDeep | 62,060 | - -#### Big data - -_Very large number of properties with high amount of nesting, mainly objects and arrays_ - -| | Operations / second | -| ------------------ | ------------------- | -| **fast-copy** | **303** | -| fast-clone | 245 | -| deepclone | 151 | -| lodash.cloneDeep | 150 | -| clone | 93 | -| fast-copy (strict) | 90 | -| ramda | 42 | - -#### Circular objects - -_Objects that deeply reference themselves_ - -| | Operations / second | -| ------------------ | ------------------- | -| **fast-copy** | **2,420,466** | -| deepclone | 1,386,896 | -| ramda | 1,024,108 | -| lodash.cloneDeep | 989,796 | -| clone | 987,721 | -| fast-copy (strict) | 617,602 | -| fast-clone | 0 (not supported) | - -#### Special objects - -_Custom constructors, React components, etc_ - -| | Operations / second | -| ------------------ | ------------------- | -| **fast-copy** | **152,792** | -| clone | 74,347 | -| fast-clone | 66,576 | -| lodash.cloneDeep | 64,760 | -| ramda | 53,542 | -| deepclone | 28,823 | -| fast-copy (strict) | 21,362 | - -## Development - -Standard practice, clone the repo and `yarn` (or `npm i`) to get the dependencies. The following npm scripts are available: - -- benchmark => run benchmark tests against other equality libraries -- build => run `build:esm`, `build:cjs`, `build:umd`, and `build:min` scripts -- build:cjs => build CJS files and types -- build:esm => build ESM files and types -- build:min => build minified files and types -- build:umd => build UMD files and types -- clean => run `rimraf` on the `dist` folder -- dev => start webpack playground App -- dist => run `clean` and `build` scripts -- lint => run ESLint on all files in `src` folder (also runs on `dev` script) -- lint:fix => run `lint` script, but with auto-fixer -- prepublishOnly => run `lint`, `test:coverage`, and `dist` scripts -- release => run `prepublishOnly` and release with new version -- release:beta => run `prepublishOnly` and release with new beta version -- release:dry => run `prepublishOnly` and simulate a new release -- start => run `dev` -- test => run AVA with NODE_ENV=test on all files in `test` folder -- test:coverage => run same script as `test` with code coverage calculation via `nyc` -- test:watch => run same script as `test` but keep persistent watcher -- typecheck => run `tsc` on the codebase diff --git a/build/node_modules/fast-copy/index.d.ts b/build/node_modules/fast-copy/index.d.ts deleted file mode 100644 index b06f3f47..00000000 --- a/build/node_modules/fast-copy/index.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -interface Cache { - _keys?: any[]; - _values?: any[]; - has: (value: any) => boolean; - set: (key: any, value: any) => void; - get: (key: any) => any; -} - -export interface CreateCopierOptions { - array?: InternalCopier; - arrayBuffer?: InternalCopier; - blob?: InternalCopier; - dataView?: InternalCopier; - date?: InternalCopier; - map?: InternalCopier>; - object?: InternalCopier>; - regExp?: InternalCopier; - set?: InternalCopier>; -} - -type InternalCopier = (value: Value, state: State) => Value; - -export interface State { - Constructor: any; - cache: Cache; - copier: InternalCopier; - prototype: any; -} - -/** - * Copy an value deeply as much as possible. - */ -export default function copy(value: Value): Value; - -/** - * Copy an value deeply as much as possible, where strict recreation of object properties - * are maintained. All properties (including non-enumerable ones) are copied with their - * original property descriptors on both objects and arrays. - */ -export function copyStrict(value: Value): Value; - -/** - * Create a custom copier based on the object-specific copy methods passed. - */ -export function createCopier( - options: CreateCopierOptions -): (value: Value) => Value; - -/** - * Create a custom copier based on the object-specific copy methods passed, defaulting to the - * same internals as `copyStrict`. - */ -export function createStrictCopier( - options: CreateCopierOptions -): (value: Value) => Value; diff --git a/build/node_modules/fast-copy/package.json b/build/node_modules/fast-copy/package.json deleted file mode 100644 index 63f45312..00000000 --- a/build/node_modules/fast-copy/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "author": "tony_quetano@planttheidea.com", - "contributors": [ - "Dariusz Rzepka " - ], - "browser": "dist/umd/index.js", - "bugs": { - "url": "https://github.com/planttheidea/fast-copy/issues" - }, - "description": "A blazing fast deep object copier", - "devDependencies": { - "@rollup/plugin-node-resolve": "^15.0.1", - "@rollup/plugin-typescript": "^11.0.0", - "@types/eslint": "^8.21.1", - "@types/jest": "^29.4.0", - "@types/lodash": "^4.14.191", - "@types/node": "^18.14.0", - "@types/ramda": "^0.28.23", - "@types/react": "^18.0.28", - "@typescript-eslint/eslint-plugin": "^5.52.0", - "@typescript-eslint/parser": "^5.52.0", - "benchee": "^1.0.3", - "cli-table3": "^0.6.3", - "clone": "^2.1.2", - "deepclone": "^1.0.2", - "eslint": "^8.34.0", - "eslint-webpack-plugin": "^4.0.0", - "fast-clone": "^1.5.3", - "html-webpack-plugin": "^5.5.0", - "in-publish": "^2.0.1", - "jest": "^29.4.3", - "lodash": "^4.17.11", - "nyc": "^15.1.0", - "ramda": "^0.28.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "release-it": "15.6.0", - "rollup": "^3.16.0", - "rollup-plugin-terser": "^7.0.2", - "ts-jest": "^29.0.5", - "ts-loader": "^9.4.2", - "typescript": "^4.9.5", - "webpack": "^5.75.0", - "webpack-cli": "^5.0.1", - "webpack-dev-server": "^4.11.1" - }, - "exports": { - ".": { - "import": { - "types": "./dist/esm/types/index.d.ts", - "default": "./dist/esm/index.mjs" - }, - "require": { - "types": "./dist/cjs/types/index.d.ts", - "default": "./dist/cjs/index.cjs" - }, - "default": { - "types": "./dist/umd/types/index.d.ts", - "default": "./dist/umd/index.js" - } - } - }, - "homepage": "https://github.com/planttheidea/fast-copy#readme", - "keywords": [ - "clone", - "deep", - "copy", - "fast" - ], - "license": "MIT", - "main": "dist/cjs/index.cjs", - "module": "dist/esm/index.mjs", - "name": "fast-copy", - "repository": { - "type": "git", - "url": "git+https://github.com/planttheidea/fast-copy.git" - }, - "scripts": { - "benchmark": "npm run clean && npm run build:cjs && node benchmark/index.cjs", - "build": "npm run build:esm && npm run build:cjs && npm run build:umd && npm run build:min", - "build:cjs": "NODE_ENV=production rollup -c rollup/config.cjs.js && tsc -p ./tsconfig/cjs.json", - "build:esm": "NODE_ENV=production rollup -c rollup/config.esm.js && tsc -p ./tsconfig/esm.json", - "build:min": "NODE_ENV=production rollup -c rollup/config.min.js && tsc -p ./tsconfig/min.json", - "build:umd": "NODE_ENV=production rollup -c rollup/config.umd.js && tsc -p ./tsconfig/umd.json", - "clean": "rimraf dist", - "dev": "NODE_ENV=development webpack-dev-server --config=webpack/webpack.config.js", - "dist": "npm run clean && npm run build", - "lint": "eslint 'src/*.ts' '__tests__/*.ts' 'DEV_ONLY/*.ts'", - "lint:fix": "npm run lint -- --fix", - "prepublishOnly": "npm run lint && npm run typecheck && npm run test && npm run dist", - "release": "release-it", - "release:beta": "release-it --config=.release-it.beta.json", - "release:dry": "release-it --dry-run", - "start": "npm run dev", - "test": "NODE_PATH=. jest", - "test:coverage": "npm run test -- --coverage", - "test:watch": "npm run test -- --watch", - "typecheck": "tsc --noEmit" - }, - "type": "module", - "types": "index.d.ts", - "version": "3.0.1" -} diff --git a/build/node_modules/fast-deep-equal/LICENSE b/build/node_modules/fast-deep-equal/LICENSE deleted file mode 100644 index 7f154356..00000000 --- a/build/node_modules/fast-deep-equal/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Evgeny Poberezkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/fast-deep-equal/README.md b/build/node_modules/fast-deep-equal/README.md deleted file mode 100644 index d3f4ffcc..00000000 --- a/build/node_modules/fast-deep-equal/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# fast-deep-equal -The fastest deep equal with ES6 Map, Set and Typed arrays support. - -[![Build Status](https://travis-ci.org/epoberezkin/fast-deep-equal.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-deep-equal) -[![npm](https://img.shields.io/npm/v/fast-deep-equal.svg)](https://www.npmjs.com/package/fast-deep-equal) -[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-deep-equal/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-deep-equal?branch=master) - - -## Install - -```bash -npm install fast-deep-equal -``` - - -## Features - -- ES5 compatible -- works in node.js (8+) and browsers (IE9+) -- checks equality of Date and RegExp objects by value. - -ES6 equal (`require('fast-deep-equal/es6')`) also supports: -- Maps -- Sets -- Typed arrays - - -## Usage - -```javascript -var equal = require('fast-deep-equal'); -console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true -``` - -To support ES6 Maps, Sets and Typed arrays equality use: - -```javascript -var equal = require('fast-deep-equal/es6'); -console.log(equal(Int16Array([1, 2]), Int16Array([1, 2]))); // true -``` - -To use with React (avoiding the traversal of React elements' _owner -property that contains circular references and is not needed when -comparing the elements - borrowed from [react-fast-compare](https://github.com/FormidableLabs/react-fast-compare)): - -```javascript -var equal = require('fast-deep-equal/react'); -var equal = require('fast-deep-equal/es6/react'); -``` - - -## Performance benchmark - -Node.js v12.6.0: - -``` -fast-deep-equal x 261,950 ops/sec ±0.52% (89 runs sampled) -fast-deep-equal/es6 x 212,991 ops/sec ±0.34% (92 runs sampled) -fast-equals x 230,957 ops/sec ±0.83% (85 runs sampled) -nano-equal x 187,995 ops/sec ±0.53% (88 runs sampled) -shallow-equal-fuzzy x 138,302 ops/sec ±0.49% (90 runs sampled) -underscore.isEqual x 74,423 ops/sec ±0.38% (89 runs sampled) -lodash.isEqual x 36,637 ops/sec ±0.72% (90 runs sampled) -deep-equal x 2,310 ops/sec ±0.37% (90 runs sampled) -deep-eql x 35,312 ops/sec ±0.67% (91 runs sampled) -ramda.equals x 12,054 ops/sec ±0.40% (91 runs sampled) -util.isDeepStrictEqual x 46,440 ops/sec ±0.43% (90 runs sampled) -assert.deepStrictEqual x 456 ops/sec ±0.71% (88 runs sampled) - -The fastest is fast-deep-equal -``` - -To run benchmark (requires node.js 6+): - -```bash -npm run benchmark -``` - -__Please note__: this benchmark runs against the available test cases. To choose the most performant library for your application, it is recommended to benchmark against your data and to NOT expect this benchmark to reflect the performance difference in your application. - - -## Enterprise support - -fast-deep-equal package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-deep-equal?utm_source=npm-fast-deep-equal&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers. - - -## Security contact - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues. - - -## License - -[MIT](https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE) diff --git a/build/node_modules/fast-deep-equal/index.d.ts b/build/node_modules/fast-deep-equal/index.d.ts deleted file mode 100644 index 3c042caa..00000000 --- a/build/node_modules/fast-deep-equal/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module 'fast-deep-equal' { - const equal: (a: any, b: any) => boolean; - export = equal; -} diff --git a/build/node_modules/fast-deep-equal/index.js b/build/node_modules/fast-deep-equal/index.js deleted file mode 100644 index 30dd1ba7..00000000 --- a/build/node_modules/fast-deep-equal/index.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -// do not edit .js files directly - edit src/index.jst - - - -module.exports = function equal(a, b) { - if (a === b) return true; - - if (a && b && typeof a == 'object' && typeof b == 'object') { - if (a.constructor !== b.constructor) return false; - - var length, i, keys; - if (Array.isArray(a)) { - length = a.length; - if (length != b.length) return false; - for (i = length; i-- !== 0;) - if (!equal(a[i], b[i])) return false; - return true; - } - - - - if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; - if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); - if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - - keys = Object.keys(a); - length = keys.length; - if (length !== Object.keys(b).length) return false; - - for (i = length; i-- !== 0;) - if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; - - for (i = length; i-- !== 0;) { - var key = keys[i]; - - if (!equal(a[key], b[key])) return false; - } - - return true; - } - - // true if both NaN, false otherwise - return a!==a && b!==b; -}; diff --git a/build/node_modules/fast-deep-equal/package.json b/build/node_modules/fast-deep-equal/package.json deleted file mode 100644 index 3cfe66c6..00000000 --- a/build/node_modules/fast-deep-equal/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "fast-deep-equal", - "version": "3.1.3", - "description": "Fast deep equal", - "main": "index.js", - "scripts": { - "eslint": "eslint *.js benchmark/*.js spec/*.js", - "build": "node build", - "benchmark": "npm i && npm run build && cd ./benchmark && npm i && node ./", - "test-spec": "mocha spec/*.spec.js -R spec", - "test-cov": "nyc npm run test-spec", - "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts", - "test": "npm run build && npm run eslint && npm run test-ts && npm run test-cov", - "prepublish": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" - }, - "keywords": [ - "fast", - "equal", - "deep-equal" - ], - "author": "Evgeny Poberezkin", - "license": "MIT", - "bugs": { - "url": "https://github.com/epoberezkin/fast-deep-equal/issues" - }, - "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", - "devDependencies": { - "coveralls": "^3.1.0", - "dot": "^1.1.2", - "eslint": "^7.2.0", - "mocha": "^7.2.0", - "nyc": "^15.1.0", - "pre-commit": "^1.2.2", - "react": "^16.12.0", - "react-test-renderer": "^16.12.0", - "sinon": "^9.0.2", - "typescript": "^3.9.5" - }, - "nyc": { - "exclude": [ - "**/spec/**", - "node_modules" - ], - "reporter": [ - "lcov", - "text-summary" - ] - }, - "files": [ - "index.js", - "index.d.ts", - "react.js", - "react.d.ts", - "es6/" - ], - "types": "index.d.ts" -} diff --git a/build/node_modules/fast-deep-equal/react.d.ts b/build/node_modules/fast-deep-equal/react.d.ts deleted file mode 100644 index c7eb9c79..00000000 --- a/build/node_modules/fast-deep-equal/react.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const equal: (a: any, b: any) => boolean; -export = equal; diff --git a/build/node_modules/fast-deep-equal/react.js b/build/node_modules/fast-deep-equal/react.js deleted file mode 100644 index 3489b983..00000000 --- a/build/node_modules/fast-deep-equal/react.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -// do not edit .js files directly - edit src/index.jst - - - -module.exports = function equal(a, b) { - if (a === b) return true; - - if (a && b && typeof a == 'object' && typeof b == 'object') { - if (a.constructor !== b.constructor) return false; - - var length, i, keys; - if (Array.isArray(a)) { - length = a.length; - if (length != b.length) return false; - for (i = length; i-- !== 0;) - if (!equal(a[i], b[i])) return false; - return true; - } - - - - if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; - if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); - if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - - keys = Object.keys(a); - length = keys.length; - if (length !== Object.keys(b).length) return false; - - for (i = length; i-- !== 0;) - if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; - - for (i = length; i-- !== 0;) { - var key = keys[i]; - - if (key === '_owner' && a.$$typeof) { - // React-specific: avoid traversing React elements' _owner. - // _owner contains circular references - // and is not needed when comparing the actual elements (and not their owners) - continue; - } - - if (!equal(a[key], b[key])) return false; - } - - return true; - } - - // true if both NaN, false otherwise - return a!==a && b!==b; -}; diff --git a/build/node_modules/fast-diff/LICENSE b/build/node_modules/fast-diff/LICENSE deleted file mode 100644 index 922de7e8..00000000 --- a/build/node_modules/fast-diff/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2014-2023 Jason Chen - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/build/node_modules/fast-diff/README.md b/build/node_modules/fast-diff/README.md deleted file mode 100644 index cec0b4d6..00000000 --- a/build/node_modules/fast-diff/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Fast Diff ![Build Status](https://github.com/jhchen/fast-diff/actions/workflows/test.yml/badge.svg) - -This is a simplified import of the excellent [diff-match-patch](https://code.google.com/p/google-diff-match-patch/) library by [Neil Fraser](https://neil.fraser.name/) into the Node.js environment. The match and patch parts are removed, as well as all the extra diff options. What remains is incredibly fast diffing between two strings. - - The diff function is an implementation of ["An O(ND) Difference Algorithm and its Variations" (Myers, 1986)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.4.6927&rep=rep1&type=pdf) with the suggested divide and conquer strategy along with several [optimizations](http://neil.fraser.name/news/2007/10/09/) Neil added. - -```js -var diff = require('fast-diff'); - -var good = 'Good dog'; -var bad = 'Bad dog'; - -var result = diff(good, bad); -// [[-1, "Goo"], [1, "Ba"], [0, "d dog"]] - -// Respect suggested edit location (cursor position), added in v1.1 -diff('aaa', 'aaaa', 1) -// [[0, "a"], [1, "a"], [0, "aa"]] - -// For convenience -diff.INSERT === 1; -diff.EQUAL === 0; -diff.DELETE === -1; -``` diff --git a/build/node_modules/fast-diff/diff.d.ts b/build/node_modules/fast-diff/diff.d.ts deleted file mode 100644 index 14343311..00000000 --- a/build/node_modules/fast-diff/diff.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -declare function diff( - text1: string, - text2: string, - cursorPos?: number | diff.CursorInfo, - cleanup?: boolean -): diff.Diff[]; - -declare namespace diff { - type Diff = [-1 | 0 | 1, string]; - - const DELETE: -1; - const INSERT: 1; - const EQUAL: 0; - - interface CursorInfo { - oldRange: { index: number; length: number }; - newRange: { index: number; length: number }; - } -} - -export = diff; diff --git a/build/node_modules/fast-diff/diff.js b/build/node_modules/fast-diff/diff.js deleted file mode 100644 index b28e7dfa..00000000 --- a/build/node_modules/fast-diff/diff.js +++ /dev/null @@ -1,1138 +0,0 @@ -/** - * This library modifies the diff-patch-match library by Neil Fraser - * by removing the patch and match functionality and certain advanced - * options in the diff function. The original license is as follows: - * - * === - * - * Diff Match and Patch - * - * Copyright 2006 Google Inc. - * http://code.google.com/p/google-diff-match-patch/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * The data structure representing a diff is an array of tuples: - * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] - * which means: delete 'Hello', add 'Goodbye' and keep ' world.' - */ -var DIFF_DELETE = -1; -var DIFF_INSERT = 1; -var DIFF_EQUAL = 0; - -/** - * Find the differences between two texts. Simplifies the problem by stripping - * any common prefix or suffix off the texts before diffing. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info - * @param {boolean} [cleanup] Apply semantic cleanup before returning. - * @return {Array} Array of diff tuples. - */ -function diff_main(text1, text2, cursor_pos, cleanup, _fix_unicode) { - // Check for equality - if (text1 === text2) { - if (text1) { - return [[DIFF_EQUAL, text1]]; - } - return []; - } - - if (cursor_pos != null) { - var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos); - if (editdiff) { - return editdiff; - } - } - - // Trim off common prefix (speedup). - var commonlength = diff_commonPrefix(text1, text2); - var commonprefix = text1.substring(0, commonlength); - text1 = text1.substring(commonlength); - text2 = text2.substring(commonlength); - - // Trim off common suffix (speedup). - commonlength = diff_commonSuffix(text1, text2); - var commonsuffix = text1.substring(text1.length - commonlength); - text1 = text1.substring(0, text1.length - commonlength); - text2 = text2.substring(0, text2.length - commonlength); - - // Compute the diff on the middle block. - var diffs = diff_compute_(text1, text2); - - // Restore the prefix and suffix. - if (commonprefix) { - diffs.unshift([DIFF_EQUAL, commonprefix]); - } - if (commonsuffix) { - diffs.push([DIFF_EQUAL, commonsuffix]); - } - diff_cleanupMerge(diffs, _fix_unicode); - if (cleanup) { - diff_cleanupSemantic(diffs); - } - return diffs; -} - -/** - * Find the differences between two texts. Assumes that the texts do not - * have any common prefix or suffix. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @return {Array} Array of diff tuples. - */ -function diff_compute_(text1, text2) { - var diffs; - - if (!text1) { - // Just add some text (speedup). - return [[DIFF_INSERT, text2]]; - } - - if (!text2) { - // Just delete some text (speedup). - return [[DIFF_DELETE, text1]]; - } - - var longtext = text1.length > text2.length ? text1 : text2; - var shorttext = text1.length > text2.length ? text2 : text1; - var i = longtext.indexOf(shorttext); - if (i !== -1) { - // Shorter text is inside the longer text (speedup). - diffs = [ - [DIFF_INSERT, longtext.substring(0, i)], - [DIFF_EQUAL, shorttext], - [DIFF_INSERT, longtext.substring(i + shorttext.length)], - ]; - // Swap insertions for deletions if diff is reversed. - if (text1.length > text2.length) { - diffs[0][0] = diffs[2][0] = DIFF_DELETE; - } - return diffs; - } - - if (shorttext.length === 1) { - // Single character string. - // After the previous speedup, the character can't be an equality. - return [ - [DIFF_DELETE, text1], - [DIFF_INSERT, text2], - ]; - } - - // Check to see if the problem can be split in two. - var hm = diff_halfMatch_(text1, text2); - if (hm) { - // A half-match was found, sort out the return data. - var text1_a = hm[0]; - var text1_b = hm[1]; - var text2_a = hm[2]; - var text2_b = hm[3]; - var mid_common = hm[4]; - // Send both pairs off for separate processing. - var diffs_a = diff_main(text1_a, text2_a); - var diffs_b = diff_main(text1_b, text2_b); - // Merge the results. - return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b); - } - - return diff_bisect_(text1, text2); -} - -/** - * Find the 'middle snake' of a diff, split the problem in two - * and return the recursively constructed diff. - * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @return {Array} Array of diff tuples. - * @private - */ -function diff_bisect_(text1, text2) { - // Cache the text lengths to prevent multiple calls. - var text1_length = text1.length; - var text2_length = text2.length; - var max_d = Math.ceil((text1_length + text2_length) / 2); - var v_offset = max_d; - var v_length = 2 * max_d; - var v1 = new Array(v_length); - var v2 = new Array(v_length); - // Setting all elements to -1 is faster in Chrome & Firefox than mixing - // integers and undefined. - for (var x = 0; x < v_length; x++) { - v1[x] = -1; - v2[x] = -1; - } - v1[v_offset + 1] = 0; - v2[v_offset + 1] = 0; - var delta = text1_length - text2_length; - // If the total number of characters is odd, then the front path will collide - // with the reverse path. - var front = delta % 2 !== 0; - // Offsets for start and end of k loop. - // Prevents mapping of space beyond the grid. - var k1start = 0; - var k1end = 0; - var k2start = 0; - var k2end = 0; - for (var d = 0; d < max_d; d++) { - // Walk the front path one step. - for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { - var k1_offset = v_offset + k1; - var x1; - if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) { - x1 = v1[k1_offset + 1]; - } else { - x1 = v1[k1_offset - 1] + 1; - } - var y1 = x1 - k1; - while ( - x1 < text1_length && - y1 < text2_length && - text1.charAt(x1) === text2.charAt(y1) - ) { - x1++; - y1++; - } - v1[k1_offset] = x1; - if (x1 > text1_length) { - // Ran off the right of the graph. - k1end += 2; - } else if (y1 > text2_length) { - // Ran off the bottom of the graph. - k1start += 2; - } else if (front) { - var k2_offset = v_offset + delta - k1; - if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) { - // Mirror x2 onto top-left coordinate system. - var x2 = text1_length - v2[k2_offset]; - if (x1 >= x2) { - // Overlap detected. - return diff_bisectSplit_(text1, text2, x1, y1); - } - } - } - } - - // Walk the reverse path one step. - for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { - var k2_offset = v_offset + k2; - var x2; - if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) { - x2 = v2[k2_offset + 1]; - } else { - x2 = v2[k2_offset - 1] + 1; - } - var y2 = x2 - k2; - while ( - x2 < text1_length && - y2 < text2_length && - text1.charAt(text1_length - x2 - 1) === - text2.charAt(text2_length - y2 - 1) - ) { - x2++; - y2++; - } - v2[k2_offset] = x2; - if (x2 > text1_length) { - // Ran off the left of the graph. - k2end += 2; - } else if (y2 > text2_length) { - // Ran off the top of the graph. - k2start += 2; - } else if (!front) { - var k1_offset = v_offset + delta - k2; - if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) { - var x1 = v1[k1_offset]; - var y1 = v_offset + x1 - k1_offset; - // Mirror x2 onto top-left coordinate system. - x2 = text1_length - x2; - if (x1 >= x2) { - // Overlap detected. - return diff_bisectSplit_(text1, text2, x1, y1); - } - } - } - } - } - // Diff took too long and hit the deadline or - // number of diffs equals number of characters, no commonality at all. - return [ - [DIFF_DELETE, text1], - [DIFF_INSERT, text2], - ]; -} - -/** - * Given the location of the 'middle snake', split the diff in two parts - * and recurse. - * @param {string} text1 Old string to be diffed. - * @param {string} text2 New string to be diffed. - * @param {number} x Index of split point in text1. - * @param {number} y Index of split point in text2. - * @return {Array} Array of diff tuples. - */ -function diff_bisectSplit_(text1, text2, x, y) { - var text1a = text1.substring(0, x); - var text2a = text2.substring(0, y); - var text1b = text1.substring(x); - var text2b = text2.substring(y); - - // Compute both diffs serially. - var diffs = diff_main(text1a, text2a); - var diffsb = diff_main(text1b, text2b); - - return diffs.concat(diffsb); -} - -/** - * Determine the common prefix of two strings. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the start of each - * string. - */ -function diff_commonPrefix(text1, text2) { - // Quick check for common null cases. - if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) { - return 0; - } - // Binary search. - // Performance analysis: http://neil.fraser.name/news/2007/10/09/ - var pointermin = 0; - var pointermax = Math.min(text1.length, text2.length); - var pointermid = pointermax; - var pointerstart = 0; - while (pointermin < pointermid) { - if ( - text1.substring(pointerstart, pointermid) == - text2.substring(pointerstart, pointermid) - ) { - pointermin = pointermid; - pointerstart = pointermin; - } else { - pointermax = pointermid; - } - pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); - } - - if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) { - pointermid--; - } - - return pointermid; -} - -/** - * Determine if the suffix of one string is the prefix of another. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the end of the first - * string and the start of the second string. - * @private - */ -function diff_commonOverlap_(text1, text2) { - // Cache the text lengths to prevent multiple calls. - var text1_length = text1.length; - var text2_length = text2.length; - // Eliminate the null case. - if (text1_length == 0 || text2_length == 0) { - return 0; - } - // Truncate the longer string. - if (text1_length > text2_length) { - text1 = text1.substring(text1_length - text2_length); - } else if (text1_length < text2_length) { - text2 = text2.substring(0, text1_length); - } - var text_length = Math.min(text1_length, text2_length); - // Quick check for the worst case. - if (text1 == text2) { - return text_length; - } - - // Start by looking for a single character match - // and increase length until no match is found. - // Performance analysis: http://neil.fraser.name/news/2010/11/04/ - var best = 0; - var length = 1; - while (true) { - var pattern = text1.substring(text_length - length); - var found = text2.indexOf(pattern); - if (found == -1) { - return best; - } - length += found; - if ( - found == 0 || - text1.substring(text_length - length) == text2.substring(0, length) - ) { - best = length; - length++; - } - } -} - -/** - * Determine the common suffix of two strings. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {number} The number of characters common to the end of each string. - */ -function diff_commonSuffix(text1, text2) { - // Quick check for common null cases. - if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) { - return 0; - } - // Binary search. - // Performance analysis: http://neil.fraser.name/news/2007/10/09/ - var pointermin = 0; - var pointermax = Math.min(text1.length, text2.length); - var pointermid = pointermax; - var pointerend = 0; - while (pointermin < pointermid) { - if ( - text1.substring(text1.length - pointermid, text1.length - pointerend) == - text2.substring(text2.length - pointermid, text2.length - pointerend) - ) { - pointermin = pointermid; - pointerend = pointermin; - } else { - pointermax = pointermid; - } - pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); - } - - if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) { - pointermid--; - } - - return pointermid; -} - -/** - * Do the two texts share a substring which is at least half the length of the - * longer text? - * This speedup can produce non-minimal diffs. - * @param {string} text1 First string. - * @param {string} text2 Second string. - * @return {Array.} Five element Array, containing the prefix of - * text1, the suffix of text1, the prefix of text2, the suffix of - * text2 and the common middle. Or null if there was no match. - */ -function diff_halfMatch_(text1, text2) { - var longtext = text1.length > text2.length ? text1 : text2; - var shorttext = text1.length > text2.length ? text2 : text1; - if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { - return null; // Pointless. - } - - /** - * Does a substring of shorttext exist within longtext such that the substring - * is at least half the length of longtext? - * Closure, but does not reference any external variables. - * @param {string} longtext Longer string. - * @param {string} shorttext Shorter string. - * @param {number} i Start index of quarter length substring within longtext. - * @return {Array.} Five element Array, containing the prefix of - * longtext, the suffix of longtext, the prefix of shorttext, the suffix - * of shorttext and the common middle. Or null if there was no match. - * @private - */ - function diff_halfMatchI_(longtext, shorttext, i) { - // Start with a 1/4 length substring at position i as a seed. - var seed = longtext.substring(i, i + Math.floor(longtext.length / 4)); - var j = -1; - var best_common = ""; - var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; - while ((j = shorttext.indexOf(seed, j + 1)) !== -1) { - var prefixLength = diff_commonPrefix( - longtext.substring(i), - shorttext.substring(j) - ); - var suffixLength = diff_commonSuffix( - longtext.substring(0, i), - shorttext.substring(0, j) - ); - if (best_common.length < suffixLength + prefixLength) { - best_common = - shorttext.substring(j - suffixLength, j) + - shorttext.substring(j, j + prefixLength); - best_longtext_a = longtext.substring(0, i - suffixLength); - best_longtext_b = longtext.substring(i + prefixLength); - best_shorttext_a = shorttext.substring(0, j - suffixLength); - best_shorttext_b = shorttext.substring(j + prefixLength); - } - } - if (best_common.length * 2 >= longtext.length) { - return [ - best_longtext_a, - best_longtext_b, - best_shorttext_a, - best_shorttext_b, - best_common, - ]; - } else { - return null; - } - } - - // First check if the second quarter is the seed for a half-match. - var hm1 = diff_halfMatchI_( - longtext, - shorttext, - Math.ceil(longtext.length / 4) - ); - // Check again based on the third quarter. - var hm2 = diff_halfMatchI_( - longtext, - shorttext, - Math.ceil(longtext.length / 2) - ); - var hm; - if (!hm1 && !hm2) { - return null; - } else if (!hm2) { - hm = hm1; - } else if (!hm1) { - hm = hm2; - } else { - // Both matched. Select the longest. - hm = hm1[4].length > hm2[4].length ? hm1 : hm2; - } - - // A half-match was found, sort out the return data. - var text1_a, text1_b, text2_a, text2_b; - if (text1.length > text2.length) { - text1_a = hm[0]; - text1_b = hm[1]; - text2_a = hm[2]; - text2_b = hm[3]; - } else { - text2_a = hm[0]; - text2_b = hm[1]; - text1_a = hm[2]; - text1_b = hm[3]; - } - var mid_common = hm[4]; - return [text1_a, text1_b, text2_a, text2_b, mid_common]; -} - -/** - * Reduce the number of edits by eliminating semantically trivial equalities. - * @param {!Array.} diffs Array of diff tuples. - */ -function diff_cleanupSemantic(diffs) { - var changes = false; - var equalities = []; // Stack of indices where equalities are found. - var equalitiesLength = 0; // Keeping our own length var is faster in JS. - /** @type {?string} */ - var lastequality = null; - // Always equal to diffs[equalities[equalitiesLength - 1]][1] - var pointer = 0; // Index of current position. - // Number of characters that changed prior to the equality. - var length_insertions1 = 0; - var length_deletions1 = 0; - // Number of characters that changed after the equality. - var length_insertions2 = 0; - var length_deletions2 = 0; - while (pointer < diffs.length) { - if (diffs[pointer][0] == DIFF_EQUAL) { - // Equality found. - equalities[equalitiesLength++] = pointer; - length_insertions1 = length_insertions2; - length_deletions1 = length_deletions2; - length_insertions2 = 0; - length_deletions2 = 0; - lastequality = diffs[pointer][1]; - } else { - // An insertion or deletion. - if (diffs[pointer][0] == DIFF_INSERT) { - length_insertions2 += diffs[pointer][1].length; - } else { - length_deletions2 += diffs[pointer][1].length; - } - // Eliminate an equality that is smaller or equal to the edits on both - // sides of it. - if ( - lastequality && - lastequality.length <= - Math.max(length_insertions1, length_deletions1) && - lastequality.length <= Math.max(length_insertions2, length_deletions2) - ) { - // Duplicate record. - diffs.splice(equalities[equalitiesLength - 1], 0, [ - DIFF_DELETE, - lastequality, - ]); - // Change second copy to insert. - diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT; - // Throw away the equality we just deleted. - equalitiesLength--; - // Throw away the previous equality (it needs to be reevaluated). - equalitiesLength--; - pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1; - length_insertions1 = 0; // Reset the counters. - length_deletions1 = 0; - length_insertions2 = 0; - length_deletions2 = 0; - lastequality = null; - changes = true; - } - } - pointer++; - } - - // Normalize the diff. - if (changes) { - diff_cleanupMerge(diffs); - } - diff_cleanupSemanticLossless(diffs); - - // Find any overlaps between deletions and insertions. - // e.g: abcxxxxxxdef - // -> abcxxxdef - // e.g: xxxabcdefxxx - // -> defxxxabc - // Only extract an overlap if it is as big as the edit ahead or behind it. - pointer = 1; - while (pointer < diffs.length) { - if ( - diffs[pointer - 1][0] == DIFF_DELETE && - diffs[pointer][0] == DIFF_INSERT - ) { - var deletion = diffs[pointer - 1][1]; - var insertion = diffs[pointer][1]; - var overlap_length1 = diff_commonOverlap_(deletion, insertion); - var overlap_length2 = diff_commonOverlap_(insertion, deletion); - if (overlap_length1 >= overlap_length2) { - if ( - overlap_length1 >= deletion.length / 2 || - overlap_length1 >= insertion.length / 2 - ) { - // Overlap found. Insert an equality and trim the surrounding edits. - diffs.splice(pointer, 0, [ - DIFF_EQUAL, - insertion.substring(0, overlap_length1), - ]); - diffs[pointer - 1][1] = deletion.substring( - 0, - deletion.length - overlap_length1 - ); - diffs[pointer + 1][1] = insertion.substring(overlap_length1); - pointer++; - } - } else { - if ( - overlap_length2 >= deletion.length / 2 || - overlap_length2 >= insertion.length / 2 - ) { - // Reverse overlap found. - // Insert an equality and swap and trim the surrounding edits. - diffs.splice(pointer, 0, [ - DIFF_EQUAL, - deletion.substring(0, overlap_length2), - ]); - diffs[pointer - 1][0] = DIFF_INSERT; - diffs[pointer - 1][1] = insertion.substring( - 0, - insertion.length - overlap_length2 - ); - diffs[pointer + 1][0] = DIFF_DELETE; - diffs[pointer + 1][1] = deletion.substring(overlap_length2); - pointer++; - } - } - pointer++; - } - pointer++; - } -} - -var nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/; -var whitespaceRegex_ = /\s/; -var linebreakRegex_ = /[\r\n]/; -var blanklineEndRegex_ = /\n\r?\n$/; -var blanklineStartRegex_ = /^\r?\n\r?\n/; - -/** - * Look for single edits surrounded on both sides by equalities - * which can be shifted sideways to align the edit to a word boundary. - * e.g: The cat came. -> The cat came. - * @param {!Array.} diffs Array of diff tuples. - */ -function diff_cleanupSemanticLossless(diffs) { - /** - * Given two strings, compute a score representing whether the internal - * boundary falls on logical boundaries. - * Scores range from 6 (best) to 0 (worst). - * Closure, but does not reference any external variables. - * @param {string} one First string. - * @param {string} two Second string. - * @return {number} The score. - * @private - */ - function diff_cleanupSemanticScore_(one, two) { - if (!one || !two) { - // Edges are the best. - return 6; - } - - // Each port of this function behaves slightly differently due to - // subtle differences in each language's definition of things like - // 'whitespace'. Since this function's purpose is largely cosmetic, - // the choice has been made to use each language's native features - // rather than force total conformity. - var char1 = one.charAt(one.length - 1); - var char2 = two.charAt(0); - var nonAlphaNumeric1 = char1.match(nonAlphaNumericRegex_); - var nonAlphaNumeric2 = char2.match(nonAlphaNumericRegex_); - var whitespace1 = nonAlphaNumeric1 && char1.match(whitespaceRegex_); - var whitespace2 = nonAlphaNumeric2 && char2.match(whitespaceRegex_); - var lineBreak1 = whitespace1 && char1.match(linebreakRegex_); - var lineBreak2 = whitespace2 && char2.match(linebreakRegex_); - var blankLine1 = lineBreak1 && one.match(blanklineEndRegex_); - var blankLine2 = lineBreak2 && two.match(blanklineStartRegex_); - - if (blankLine1 || blankLine2) { - // Five points for blank lines. - return 5; - } else if (lineBreak1 || lineBreak2) { - // Four points for line breaks. - return 4; - } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) { - // Three points for end of sentences. - return 3; - } else if (whitespace1 || whitespace2) { - // Two points for whitespace. - return 2; - } else if (nonAlphaNumeric1 || nonAlphaNumeric2) { - // One point for non-alphanumeric. - return 1; - } - return 0; - } - - var pointer = 1; - // Intentionally ignore the first and last element (don't need checking). - while (pointer < diffs.length - 1) { - if ( - diffs[pointer - 1][0] == DIFF_EQUAL && - diffs[pointer + 1][0] == DIFF_EQUAL - ) { - // This is a single edit surrounded by equalities. - var equality1 = diffs[pointer - 1][1]; - var edit = diffs[pointer][1]; - var equality2 = diffs[pointer + 1][1]; - - // First, shift the edit as far left as possible. - var commonOffset = diff_commonSuffix(equality1, edit); - if (commonOffset) { - var commonString = edit.substring(edit.length - commonOffset); - equality1 = equality1.substring(0, equality1.length - commonOffset); - edit = commonString + edit.substring(0, edit.length - commonOffset); - equality2 = commonString + equality2; - } - - // Second, step character by character right, looking for the best fit. - var bestEquality1 = equality1; - var bestEdit = edit; - var bestEquality2 = equality2; - var bestScore = - diff_cleanupSemanticScore_(equality1, edit) + - diff_cleanupSemanticScore_(edit, equality2); - while (edit.charAt(0) === equality2.charAt(0)) { - equality1 += edit.charAt(0); - edit = edit.substring(1) + equality2.charAt(0); - equality2 = equality2.substring(1); - var score = - diff_cleanupSemanticScore_(equality1, edit) + - diff_cleanupSemanticScore_(edit, equality2); - // The >= encourages trailing rather than leading whitespace on edits. - if (score >= bestScore) { - bestScore = score; - bestEquality1 = equality1; - bestEdit = edit; - bestEquality2 = equality2; - } - } - - if (diffs[pointer - 1][1] != bestEquality1) { - // We have an improvement, save it back to the diff. - if (bestEquality1) { - diffs[pointer - 1][1] = bestEquality1; - } else { - diffs.splice(pointer - 1, 1); - pointer--; - } - diffs[pointer][1] = bestEdit; - if (bestEquality2) { - diffs[pointer + 1][1] = bestEquality2; - } else { - diffs.splice(pointer + 1, 1); - pointer--; - } - } - } - pointer++; - } -} - -/** - * Reorder and merge like edit sections. Merge equalities. - * Any edit section can move as long as it doesn't cross an equality. - * @param {Array} diffs Array of diff tuples. - * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff - */ -function diff_cleanupMerge(diffs, fix_unicode) { - diffs.push([DIFF_EQUAL, ""]); // Add a dummy entry at the end. - var pointer = 0; - var count_delete = 0; - var count_insert = 0; - var text_delete = ""; - var text_insert = ""; - var commonlength; - while (pointer < diffs.length) { - if (pointer < diffs.length - 1 && !diffs[pointer][1]) { - diffs.splice(pointer, 1); - continue; - } - switch (diffs[pointer][0]) { - case DIFF_INSERT: - count_insert++; - text_insert += diffs[pointer][1]; - pointer++; - break; - case DIFF_DELETE: - count_delete++; - text_delete += diffs[pointer][1]; - pointer++; - break; - case DIFF_EQUAL: - var previous_equality = pointer - count_insert - count_delete - 1; - if (fix_unicode) { - // prevent splitting of unicode surrogate pairs. when fix_unicode is true, - // we assume that the old and new text in the diff are complete and correct - // unicode-encoded JS strings, but the tuple boundaries may fall between - // surrogate pairs. we fix this by shaving off stray surrogates from the end - // of the previous equality and the beginning of this equality. this may create - // empty equalities or a common prefix or suffix. for example, if AB and AC are - // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and - // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this - // particular case, both equalities go away, we absorb any previous inequalities, - // and we keep scanning for the next equality before rewriting the tuples. - if ( - previous_equality >= 0 && - ends_with_pair_start(diffs[previous_equality][1]) - ) { - var stray = diffs[previous_equality][1].slice(-1); - diffs[previous_equality][1] = diffs[previous_equality][1].slice( - 0, - -1 - ); - text_delete = stray + text_delete; - text_insert = stray + text_insert; - if (!diffs[previous_equality][1]) { - // emptied out previous equality, so delete it and include previous delete/insert - diffs.splice(previous_equality, 1); - pointer--; - var k = previous_equality - 1; - if (diffs[k] && diffs[k][0] === DIFF_INSERT) { - count_insert++; - text_insert = diffs[k][1] + text_insert; - k--; - } - if (diffs[k] && diffs[k][0] === DIFF_DELETE) { - count_delete++; - text_delete = diffs[k][1] + text_delete; - k--; - } - previous_equality = k; - } - } - if (starts_with_pair_end(diffs[pointer][1])) { - var stray = diffs[pointer][1].charAt(0); - diffs[pointer][1] = diffs[pointer][1].slice(1); - text_delete += stray; - text_insert += stray; - } - } - if (pointer < diffs.length - 1 && !diffs[pointer][1]) { - // for empty equality not at end, wait for next equality - diffs.splice(pointer, 1); - break; - } - if (text_delete.length > 0 || text_insert.length > 0) { - // note that diff_commonPrefix and diff_commonSuffix are unicode-aware - if (text_delete.length > 0 && text_insert.length > 0) { - // Factor out any common prefixes. - commonlength = diff_commonPrefix(text_insert, text_delete); - if (commonlength !== 0) { - if (previous_equality >= 0) { - diffs[previous_equality][1] += text_insert.substring( - 0, - commonlength - ); - } else { - diffs.splice(0, 0, [ - DIFF_EQUAL, - text_insert.substring(0, commonlength), - ]); - pointer++; - } - text_insert = text_insert.substring(commonlength); - text_delete = text_delete.substring(commonlength); - } - // Factor out any common suffixes. - commonlength = diff_commonSuffix(text_insert, text_delete); - if (commonlength !== 0) { - diffs[pointer][1] = - text_insert.substring(text_insert.length - commonlength) + - diffs[pointer][1]; - text_insert = text_insert.substring( - 0, - text_insert.length - commonlength - ); - text_delete = text_delete.substring( - 0, - text_delete.length - commonlength - ); - } - } - // Delete the offending records and add the merged ones. - var n = count_insert + count_delete; - if (text_delete.length === 0 && text_insert.length === 0) { - diffs.splice(pointer - n, n); - pointer = pointer - n; - } else if (text_delete.length === 0) { - diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]); - pointer = pointer - n + 1; - } else if (text_insert.length === 0) { - diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]); - pointer = pointer - n + 1; - } else { - diffs.splice( - pointer - n, - n, - [DIFF_DELETE, text_delete], - [DIFF_INSERT, text_insert] - ); - pointer = pointer - n + 2; - } - } - if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) { - // Merge this equality with the previous one. - diffs[pointer - 1][1] += diffs[pointer][1]; - diffs.splice(pointer, 1); - } else { - pointer++; - } - count_insert = 0; - count_delete = 0; - text_delete = ""; - text_insert = ""; - break; - } - } - if (diffs[diffs.length - 1][1] === "") { - diffs.pop(); // Remove the dummy entry at the end. - } - - // Second pass: look for single edits surrounded on both sides by equalities - // which can be shifted sideways to eliminate an equality. - // e.g: ABAC -> ABAC - var changes = false; - pointer = 1; - // Intentionally ignore the first and last element (don't need checking). - while (pointer < diffs.length - 1) { - if ( - diffs[pointer - 1][0] === DIFF_EQUAL && - diffs[pointer + 1][0] === DIFF_EQUAL - ) { - // This is a single edit surrounded by equalities. - if ( - diffs[pointer][1].substring( - diffs[pointer][1].length - diffs[pointer - 1][1].length - ) === diffs[pointer - 1][1] - ) { - // Shift the edit over the previous equality. - diffs[pointer][1] = - diffs[pointer - 1][1] + - diffs[pointer][1].substring( - 0, - diffs[pointer][1].length - diffs[pointer - 1][1].length - ); - diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; - diffs.splice(pointer - 1, 1); - changes = true; - } else if ( - diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == - diffs[pointer + 1][1] - ) { - // Shift the edit over the next equality. - diffs[pointer - 1][1] += diffs[pointer + 1][1]; - diffs[pointer][1] = - diffs[pointer][1].substring(diffs[pointer + 1][1].length) + - diffs[pointer + 1][1]; - diffs.splice(pointer + 1, 1); - changes = true; - } - } - pointer++; - } - // If shifts were made, the diff needs reordering and another shift sweep. - if (changes) { - diff_cleanupMerge(diffs, fix_unicode); - } -} - -function is_surrogate_pair_start(charCode) { - return charCode >= 0xd800 && charCode <= 0xdbff; -} - -function is_surrogate_pair_end(charCode) { - return charCode >= 0xdc00 && charCode <= 0xdfff; -} - -function starts_with_pair_end(str) { - return is_surrogate_pair_end(str.charCodeAt(0)); -} - -function ends_with_pair_start(str) { - return is_surrogate_pair_start(str.charCodeAt(str.length - 1)); -} - -function remove_empty_tuples(tuples) { - var ret = []; - for (var i = 0; i < tuples.length; i++) { - if (tuples[i][1].length > 0) { - ret.push(tuples[i]); - } - } - return ret; -} - -function make_edit_splice(before, oldMiddle, newMiddle, after) { - if (ends_with_pair_start(before) || starts_with_pair_end(after)) { - return null; - } - return remove_empty_tuples([ - [DIFF_EQUAL, before], - [DIFF_DELETE, oldMiddle], - [DIFF_INSERT, newMiddle], - [DIFF_EQUAL, after], - ]); -} - -function find_cursor_edit_diff(oldText, newText, cursor_pos) { - // note: this runs after equality check has ruled out exact equality - var oldRange = - typeof cursor_pos === "number" - ? { index: cursor_pos, length: 0 } - : cursor_pos.oldRange; - var newRange = typeof cursor_pos === "number" ? null : cursor_pos.newRange; - // take into account the old and new selection to generate the best diff - // possible for a text edit. for example, a text change from "xxx" to "xx" - // could be a delete or forwards-delete of any one of the x's, or the - // result of selecting two of the x's and typing "x". - var oldLength = oldText.length; - var newLength = newText.length; - if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) { - // see if we have an insert or delete before or after cursor - var oldCursor = oldRange.index; - var oldBefore = oldText.slice(0, oldCursor); - var oldAfter = oldText.slice(oldCursor); - var maybeNewCursor = newRange ? newRange.index : null; - editBefore: { - // is this an insert or delete right before oldCursor? - var newCursor = oldCursor + newLength - oldLength; - if (maybeNewCursor !== null && maybeNewCursor !== newCursor) { - break editBefore; - } - if (newCursor < 0 || newCursor > newLength) { - break editBefore; - } - var newBefore = newText.slice(0, newCursor); - var newAfter = newText.slice(newCursor); - if (newAfter !== oldAfter) { - break editBefore; - } - var prefixLength = Math.min(oldCursor, newCursor); - var oldPrefix = oldBefore.slice(0, prefixLength); - var newPrefix = newBefore.slice(0, prefixLength); - if (oldPrefix !== newPrefix) { - break editBefore; - } - var oldMiddle = oldBefore.slice(prefixLength); - var newMiddle = newBefore.slice(prefixLength); - return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter); - } - editAfter: { - // is this an insert or delete right after oldCursor? - if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) { - break editAfter; - } - var cursor = oldCursor; - var newBefore = newText.slice(0, cursor); - var newAfter = newText.slice(cursor); - if (newBefore !== oldBefore) { - break editAfter; - } - var suffixLength = Math.min(oldLength - cursor, newLength - cursor); - var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength); - var newSuffix = newAfter.slice(newAfter.length - suffixLength); - if (oldSuffix !== newSuffix) { - break editAfter; - } - var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength); - var newMiddle = newAfter.slice(0, newAfter.length - suffixLength); - return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix); - } - } - if (oldRange.length > 0 && newRange && newRange.length === 0) { - replaceRange: { - // see if diff could be a splice of the old selection range - var oldPrefix = oldText.slice(0, oldRange.index); - var oldSuffix = oldText.slice(oldRange.index + oldRange.length); - var prefixLength = oldPrefix.length; - var suffixLength = oldSuffix.length; - if (newLength < prefixLength + suffixLength) { - break replaceRange; - } - var newPrefix = newText.slice(0, prefixLength); - var newSuffix = newText.slice(newLength - suffixLength); - if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) { - break replaceRange; - } - var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength); - var newMiddle = newText.slice(prefixLength, newLength - suffixLength); - return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix); - } - } - - return null; -} - -function diff(text1, text2, cursor_pos, cleanup) { - // only pass fix_unicode=true at the top level, not when diff_main is - // recursively invoked - return diff_main(text1, text2, cursor_pos, cleanup, true); -} - -diff.INSERT = DIFF_INSERT; -diff.DELETE = DIFF_DELETE; -diff.EQUAL = DIFF_EQUAL; - -module.exports = diff; diff --git a/build/node_modules/fast-diff/package.json b/build/node_modules/fast-diff/package.json deleted file mode 100644 index 5a7501a0..00000000 --- a/build/node_modules/fast-diff/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "fast-diff", - "version": "1.3.0", - "description": "Fast Javascript text diff", - "author": "Jason Chen ", - "main": "diff.js", - "types": "diff.d.ts", - "files": [ - "diff.d.ts" - ], - "devDependencies": { - "lodash": "~4.17.21", - "nyc": "~15.1.0", - "seedrandom": "~3.0.5" - }, - "repository": { - "type": "git", - "url": "https://github.com/jhchen/fast-diff" - }, - "bugs": { - "url": "https://github.com/jhchen/fast-diff/issues" - }, - "scripts": { - "test": "nyc node test.js" - }, - "license": "Apache-2.0", - "keywords": [ - "diff" - ] -} diff --git a/build/node_modules/fast-glob/LICENSE b/build/node_modules/fast-glob/LICENSE deleted file mode 100644 index 65a99946..00000000 --- a/build/node_modules/fast-glob/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Denis Malinochkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/fast-glob/README.md b/build/node_modules/fast-glob/README.md deleted file mode 100644 index 268e5da0..00000000 --- a/build/node_modules/fast-glob/README.md +++ /dev/null @@ -1,408 +0,0 @@ -# :rocket: fast-glob - -> Is a faster [`node-glob`](https://github.com/isaacs/node-glob) alternative. - -## :bulb: Highlights - - * :rocket: Fast by using Streams and Promises. Used [readdir-enhanced](https://github.com/BigstickCarpet/readdir-enhanced) and [micromatch](https://github.com/jonschlinkert/micromatch). - * :beginner: User-friendly, since it supports multiple and negated patterns (`['*', '!*.md']`). - * :vertical_traffic_light: Rational, because it doesn't read excluded directories (`!**/node_modules/**`). - * :gear: Universal, because it supports Synchronous, Promise and Stream API. - * :money_with_wings: Economy, because it provides `fs.Stats` for matched path if you wanted. - -## Donate - -If you want to thank me, or promote your Issue. - -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/mrmlnc) - -> Sorry, but I have work and support for packages requires some time after work. I will be glad of your support and PR's. - -## Install - -``` -$ npm install --save fast-glob -``` - -## Usage - -#### Asynchronous - -```js -const fg = require('fast-glob'); - -fg(['src/**/*.js', '!src/**/*.spec.js']).then((entries) => console.log(entries)); -fg.async(['src/**/*.js', '!src/**/*.spec.js']).then((entries) => console.log(entries)); -``` - -#### Synchronous - -```js -const fg = require('fast-glob'); - -const entries = fg.sync(['src/**/*.js', '!src/**/*.spec.js']); -console.log(entries); -``` - -#### Stream - -```js -const fg = require('fast-glob'); - -const stream = fg.stream(['src/**/*.js', '!src/**/*.spec.js']); - -const entries = []; - -stream.on('data', (entry) => entries.push(entry)); -stream.once('error', console.log); -stream.once('end', () => console.log(entries)); -``` - -## API - -### fg(patterns, [options]) -### fg.async(patterns, [options]) - -Returns a `Promise` with an array of matching [entries](#entry). - -### fg.sync(patterns, [options]) - -Returns an array of matching [entries](#entry). - -### fg.stream(patterns, [options]) - -Returns a [`ReadableStream`](https://nodejs.org/api/stream.html#stream_readable_streams) when the `data` event will be emitted with [`Entry`](#entry). - -#### patterns - - * Type: `string|string[]` - -This package does not respect the order of patterns. First, all the negative patterns are applied, and only then the positive patterns. - -#### options - - * Type: `Object` - -See [options](#options-1) section for more detailed information. - -### fg.generateTasks(patterns, [options]) - -Return a set of tasks based on provided patterns. All tasks satisfy the `Task` interface: - -```ts -interface Task { - /** - * Parent directory for all patterns inside this task. - */ - base: string; - /** - * Dynamic or static patterns are in this task. - */ - dynamic: boolean; - /** - * All patterns. - */ - patterns: string[]; - /** - * Only positive patterns. - */ - positive: string[]; - /** - * Only negative patterns without ! symbol. - */ - negative: string[]; -} -``` - -## Entry - -The entry which can be a `string` if the [`stats`](#stats) option is disabled, otherwise `fs.Stats` with two additional `path` and `depth` properties. - -## Options - -#### cwd - - * Type: `string` - * Default: `process.cwd()` - -The current working directory in which to search. - -#### deep - - * Type: `number|boolean` - * Default: `true` - -The deep option can be set to `true` to traverse the entire directory structure, or it can be set to a *number* to only traverse that many levels deep. - -For example, you have the following tree: - -``` -test -└── one - └── two - └── index.js -``` - -> :book: If you specify a pattern with some base directory, this directory will not participate in the calculation of the depth of the found directories. Think of it as a `cwd` option. - -```js -fg('test/**', { onlyFiles: false, deep: 0 }); -// -> ['test/one'] -fg('test/**', { onlyFiles: false, deep: 1 }); -// -> ['test/one', 'test/one/two'] - -fg('**', { onlyFiles: false, cwd: 'test', deep: 0 }); -// -> ['one'] -fg('**', { onlyFiles: false, cwd: 'test', deep: 1 }); -// -> ['one', 'one/two'] -``` - -#### ignore - - * Type: `string[]` - * Default: `[]` - -An array of glob patterns to exclude matches. - -#### dot - - * Type: `boolean` - * Default: `false` - -Allow patterns to match filenames starting with a period (files & directories), even if the pattern does not explicitly have a period in that spot. - -#### stats - - * Type: `boolean` - * Default: `false` - -Return `fs.Stats` with two additional `path` and `depth` properties instead of a `string`. - -#### onlyFiles - - * Type: `boolean` - * Default: `true` - -Return only files. - -#### onlyDirectories - - * Type: `boolean` - * Default: `false` - -Return only directories. - -#### followSymlinkedDirectories - - * Type: `boolean` - * Default: `true` - -Follow symlinked directories when expanding `**` patterns. - -#### unique - - * Type: `boolean` - * Default: `true` - -Prevent duplicate results. - -#### markDirectories - - * Type: `boolean` - * Default: `false` - -Add a `/` character to directory entries. - -#### absolute - - * Type: `boolean` - * Default: `false` - -Return absolute paths for matched entries. - -> :book: Note that you need to use this option if you want to use absolute negative patterns like `${__dirname}/*.md`. - -#### nobrace - - * Type: `boolean` - * Default: `false` - -Disable expansion of brace patterns (`{a,b}`, `{1..3}`). - -#### brace - - * Type: `boolean` - * Default: `true` - -The [`nobrace`](#nobrace) option without double-negation. This option has a higher priority then `nobrace`. - -#### noglobstar - - * Type: `boolean` - * Default: `false` - -Disable matching with globstars (`**`). - -#### globstar - - * Type: `boolean` - * Default: `true` - -The [`noglobstar`](#noglobstar) option without double-negation. This option has a higher priority then `noglobstar`. - -#### noext - - * Type: `boolean` - * Default: `false` - -Disable extglob support (patterns like `+(a|b)`), so that extglobs are regarded as literal characters. - -#### extension - - * Type: `boolean` - * Default: `true` - -The [`noext`](#noext) option without double-negation. This option has a higher priority then `noext`. - -#### nocase - - * Type: `boolean` - * Default: `false` - -Disable a [case-sensitive](https://en.wikipedia.org/wiki/Case_sensitivity) mode for matching files. - -##### Examples - -* File System: `test/file.md`, `test/File.md` -* Case-sensitive for `test/file.*` pattern (`false`): `test/file.md` -* Case-insensitive for `test/file.*` pattern (`true`): `test/file.md`, `test/File.md` - -#### case - - * Type: `boolean` - * Default: `true` - -The [`nocase`](#nocase) option without double-negation. This option has a higher priority then `nocase`. - -#### matchBase - - * Type: `boolean` - * Default: `false` - -Allow glob patterns without slashes to match a file path based on its basename. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. - -#### transform - - * Type: `Function` - * Default: `null` - -Allows you to transform a path or `fs.Stats` object before sending to the array. - -```js -const fg = require('fast-glob'); - -const entries1 = fg.sync(['**/*.scss']); -const entries2 = fg.sync(['**/*.scss'], { transform: (entry) => '_' + entry }); - -console.log(entries1); // ['a.scss', 'b.scss'] -console.log(entries2); // ['_a.scss', '_b.scss'] -``` - -If you are using **TypeScript**, you probably want to specify your own type of the returned array. - -```ts -import * as fg from 'fast-glob'; - -interface IMyOwnEntry { - path: string; -} - -const entries: IMyOwnEntry[] = fg.sync(['*.md'], { - transform: (entry) => typeof entry === 'string' ? { path: entry } : { path: entry.path } - // Will throw compilation error for non-IMyOwnEntry types (boolean, for example) -}); -``` - -## How to exclude directory from reading? - -You can use a negative pattern like this: `!**/node_modules` or `!**/node_modules/**`. Also you can use `ignore` option. Just look at the example below. - -``` -first/ -├── file.md -└── second - └── file.txt -``` - -If you don't want to read the `second` directory, you must write the following pattern: `!**/second` or `!**/second/**`. - -```js -fg.sync(['**/*.md', '!**/second']); // ['first/file.txt'] -fg.sync(['**/*.md'], { ignore: '**/second/**' }); // ['first/file.txt'] -``` - -> :warning: When you write `!**/second/**/*` it means that the directory will be **read**, but all the entries will not be included in the results. - -You have to understand that if you write the pattern to exclude directories, then the directory will not be read under any circumstances. - -## How to use UNC path? - -You cannot use UNC paths as patterns (due to syntax), but you can use them as `cwd` directory. - -```ts -fg.sync('*', { cwd: '\\\\?\\C:\\Python27' /* or //?/C:/Python27 */ }); -fg.sync('Python27/*', { cwd: '\\\\?\\C:\\' /* or //?/C:/ */ }); -``` - -## Compatible with `node-glob`? - -Not fully, because `fast-glob` does not implement all options of `node-glob`. See table below. - -| node-glob | fast-glob | -| :----------: | :-------: | -| `cwd` | [`cwd`](#cwd) | -| `root` | – | -| `dot` | [`dot`](#dot) | -| `nomount` | – | -| `mark` | [`markDirectories`](#markdirectories) | -| `nosort` | – | -| `nounique` | [`unique`](#unique) | -| `nobrace` | [`nobrace`](#nobrace) or [`brace`](#brace) | -| `noglobstar` | [`noglobstar`](#noglobstar) or [`globstar`](#globstar) | -| `noext` | [`noext`](#noext) or [`extension`](#extension) | -| `nocase` | [`nocase`](#nocase) or [`case`](#case) | -| `matchBase` | [`matchbase`](#matchbase) | -| `nodir` | [`onlyFiles`](#onlyfiles) | -| `ignore` | [`ignore`](#ignore) | -| `follow` | [`followSymlinkedDirectories`](#followsymlinkeddirectories) | -| `realpath` | – | -| `absolute` | [`absolute`](#absolute) | - -## Benchmarks - -**Tech specs:** - -Server: [Vultr Bare Metal](https://www.vultr.com/pricing/baremetal) - - * Processor: E3-1270v6 (8 CPU) - * RAM: 32GB - * Disk: SSD - -You can see results [here](https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c) for latest release. - -## Related - - * [readdir-enhanced](https://github.com/BigstickCarpet/readdir-enhanced) – Fast functional replacement for `fs.readdir()`. - * [globby](https://github.com/sindresorhus/globby) – User-friendly glob matching. - * [node-glob](https://github.com/isaacs/node-glob) – «Standard» glob functionality for Node.js - * [bash-glob](https://github.com/micromatch/bash-glob) – Bash-powered globbing for node.js. - * [glob-stream](https://github.com/gulpjs/glob-stream) – A Readable Stream interface over node-glob that used in the [gulpjs](https://github.com/gulpjs/gulp). - * [tiny-glob](https://github.com/terkelg/tiny-glob) – Tiny and extremely fast library to match files and folders using glob patterns. - -## Changelog - -See the [Releases section of our GitHub project](https://github.com/mrmlnc/fast-glob/releases) for changelogs for each release version. - -## License - -This software is released under the terms of the MIT license. diff --git a/build/node_modules/fast-glob/index.d.ts b/build/node_modules/fast-glob/index.d.ts deleted file mode 100644 index e08a6c3d..00000000 --- a/build/node_modules/fast-glob/index.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { TransformFunction as Transform, IPartialOptions } from './out/managers/options'; -import { ITask } from './out/managers/tasks'; -import { Entry, EntryItem } from './out/types/entries'; -import { Pattern } from './out/types/patterns'; - -declare namespace FastGlob { - type Options = IPartialOptions; - type TransformFunction = Transform; - type Task = ITask; - - interface IApi { - (patterns: Pattern | Pattern[], options?: IPartialOptions): Promise; - - async(patterns: Pattern | Pattern[], options?: IPartialOptions): Promise; - sync(patterns: Pattern | Pattern[], options?: IPartialOptions): T[]; - stream(patterns: Pattern | Pattern[], options?: IPartialOptions): NodeJS.ReadableStream; - generateTasks(patterns: Pattern | Pattern[], options?: IPartialOptions): Task[]; - } -} - -declare const FastGlob: FastGlob.IApi; - -export = FastGlob; -export as namespace FastGlob; diff --git a/build/node_modules/fast-glob/index.js b/build/node_modules/fast-glob/index.js deleted file mode 100644 index 7c1ecfff..00000000 --- a/build/node_modules/fast-glob/index.js +++ /dev/null @@ -1,10 +0,0 @@ -const pkg = require('./out/index'); - -module.exports = pkg.async; -module.exports.default = pkg.async; - -module.exports.async = pkg.async; -module.exports.sync = pkg.sync; -module.exports.stream = pkg.stream; - -module.exports.generateTasks = pkg.generateTasks; diff --git a/build/node_modules/fast-glob/package.json b/build/node_modules/fast-glob/package.json deleted file mode 100644 index 210c845b..00000000 --- a/build/node_modules/fast-glob/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "fast-glob", - "version": "2.2.7", - "description": "Is a faster `node-glob` alternative", - "license": "MIT", - "repository": "mrmlnc/fast-glob", - "author": { - "name": "Denis Malinochkin", - "url": "canonium.com" - }, - "engines": { - "node": ">=4.0.0" - }, - "main": "index.js", - "typings": "index.d.ts", - "keywords": [ - "glob", - "patterns", - "fast", - "implementation" - ], - "devDependencies": { - "@types/bash-glob": "^2.0.0", - "@types/compute-stdev": "^1.0.0", - "@types/easy-table": "^0.0.32", - "@types/execa": "^0.9.0", - "@types/glob": "^7.1.1", - "@types/glob-parent": "^3.1.0", - "@types/glob-stream": "^6.1.0", - "@types/globby": "^8.0.0", - "@types/is-glob": "^4.0.0", - "@types/merge2": "^1.1.4", - "@types/micromatch": "^3.1.0", - "@types/minimist": "^1.2.0", - "@types/mocha": "^5.2.5", - "@types/node": "^11.13.5", - "@types/rimraf": "^2.0.2", - "bash-glob": "^2.0.0", - "compute-stdev": "^1.0.0", - "easy-table": "^1.1.1", - "execa": "^0.9.0", - "fast-glob": "^2.2.0", - "glob": "^7.1.2", - "glob-stream": "^6.1.0", - "globby": "^8.0.1", - "minimist": "^1.2.0", - "mocha": "^5.2.0", - "rimraf": "^2.6.2", - "tiny-glob": "^0.2.3", - "tslint": "^5.12.0", - "tslint-config-mrmlnc": "^2.0.1", - "typescript": "^3.1.3" - }, - "dependencies": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "scripts": { - "clean": "rimraf out", - "lint": "tslint \"src/**/*.ts\" -p . -t stylish", - "compile": "tsc", - "test": "mocha \"out/**/*.spec.js\" -s 0", - "smoke": "mocha \"out/**/*.smoke.js\" -s 0", - "build": "npm run clean && npm run compile && npm run lint && npm test", - "watch": "npm run clean && npm run compile -- --sourceMap --watch", - "bench-async-1": "node ./out/benchmark --depth 1", - "bench-async-5": "node ./out/benchmark --depth 5", - "bench-async-10": "node ./out/benchmark --depth 10", - "bench-async-50": "node ./out/benchmark --depth 50", - "bench-async-100": "node ./out/benchmark --depth 100", - "bench-async": "npm run bench-async-1 && npm run bench-async-5 && npm run bench-async-10 && npm run bench-async-50 && npm run bench-async-100", - "bench-sync-1": "node ./out/benchmark --depth 1 --type sync", - "bench-sync-5": "node ./out/benchmark --depth 5 --type sync", - "bench-sync-10": "node ./out/benchmark --depth 10 --type sync", - "bench-sync-50": "node ./out/benchmark --depth 50 --type sync", - "bench-sync-100": "node ./out/benchmark --depth 100 --type sync", - "bench-sync": "npm run bench-sync-1 && npm run bench-sync-5 && npm run bench-sync-10 && npm run bench-sync-50 && npm run bench-sync-100", - "bench": "npm run build && npm run bench-async && npm run bench-sync" - } -} diff --git a/build/node_modules/fast-json-stable-stringify/.eslintrc.yml b/build/node_modules/fast-json-stable-stringify/.eslintrc.yml deleted file mode 100644 index 1c77b0d4..00000000 --- a/build/node_modules/fast-json-stable-stringify/.eslintrc.yml +++ /dev/null @@ -1,26 +0,0 @@ -extends: eslint:recommended -env: - node: true - browser: true -rules: - block-scoped-var: 2 - callback-return: 2 - dot-notation: 2 - indent: 2 - linebreak-style: [2, unix] - new-cap: 2 - no-console: [2, allow: [warn, error]] - no-else-return: 2 - no-eq-null: 2 - no-fallthrough: 2 - no-invalid-this: 2 - no-return-assign: 2 - no-shadow: 1 - no-trailing-spaces: 2 - no-use-before-define: [2, nofunc] - quotes: [2, single, avoid-escape] - semi: [2, always] - strict: [2, global] - valid-jsdoc: [2, requireReturn: false] - no-control-regex: 0 - no-useless-escape: 2 diff --git a/build/node_modules/fast-json-stable-stringify/.travis.yml b/build/node_modules/fast-json-stable-stringify/.travis.yml deleted file mode 100644 index b61e8f0d..00000000 --- a/build/node_modules/fast-json-stable-stringify/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "8" - - "10" - - "12" - - "13" -after_script: - - coveralls < coverage/lcov.info diff --git a/build/node_modules/fast-json-stable-stringify/LICENSE b/build/node_modules/fast-json-stable-stringify/LICENSE deleted file mode 100644 index c932223b..00000000 --- a/build/node_modules/fast-json-stable-stringify/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -This software is released under the MIT license: - -Copyright (c) 2017 Evgeny Poberezkin -Copyright (c) 2013 James Halliday - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/fast-json-stable-stringify/README.md b/build/node_modules/fast-json-stable-stringify/README.md deleted file mode 100644 index 02cf49ff..00000000 --- a/build/node_modules/fast-json-stable-stringify/README.md +++ /dev/null @@ -1,131 +0,0 @@ -# fast-json-stable-stringify - -Deterministic `JSON.stringify()` - a faster version of [@substack](https://github.com/substack)'s json-stable-strigify without [jsonify](https://github.com/substack/jsonify). - -You can also pass in a custom comparison function. - -[![Build Status](https://travis-ci.org/epoberezkin/fast-json-stable-stringify.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-json-stable-stringify) -[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-json-stable-stringify/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-json-stable-stringify?branch=master) - -# example - -``` js -var stringify = require('fast-json-stable-stringify'); -var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; -console.log(stringify(obj)); -``` - -output: - -``` -{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8} -``` - - -# methods - -``` js -var stringify = require('fast-json-stable-stringify') -``` - -## var str = stringify(obj, opts) - -Return a deterministic stringified string `str` from the object `obj`. - - -## options - -### cmp - -If `opts` is given, you can supply an `opts.cmp` to have a custom comparison -function for object keys. Your function `opts.cmp` is called with these -parameters: - -``` js -opts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue }) -``` - -For example, to sort on the object key names in reverse order you could write: - -``` js -var stringify = require('fast-json-stable-stringify'); - -var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 }; -var s = stringify(obj, function (a, b) { - return a.key < b.key ? 1 : -1; -}); -console.log(s); -``` - -which results in the output string: - -``` -{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3} -``` - -Or if you wanted to sort on the object values in reverse order, you could write: - -``` -var stringify = require('fast-json-stable-stringify'); - -var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 }; -var s = stringify(obj, function (a, b) { - return a.value < b.value ? 1 : -1; -}); -console.log(s); -``` - -which outputs: - -``` -{"d":6,"c":5,"b":[{"z":3,"y":2,"x":1},9],"a":10} -``` - -### cycles - -Pass `true` in `opts.cycles` to stringify circular property as `__cycle__` - the result will not be a valid JSON string in this case. - -TypeError will be thrown in case of circular object without this option. - - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install fast-json-stable-stringify -``` - - -# benchmark - -To run benchmark (requires Node.js 6+): -``` -node benchmark -``` - -Results: -``` -fast-json-stable-stringify x 17,189 ops/sec ±1.43% (83 runs sampled) -json-stable-stringify x 13,634 ops/sec ±1.39% (85 runs sampled) -fast-stable-stringify x 20,212 ops/sec ±1.20% (84 runs sampled) -faster-stable-stringify x 15,549 ops/sec ±1.12% (84 runs sampled) -The fastest is fast-stable-stringify -``` - - -## Enterprise support - -fast-json-stable-stringify package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-json-stable-stringify?utm_source=npm-fast-json-stable-stringify&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers. - - -## Security contact - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues. - - -# license - -[MIT](https://github.com/epoberezkin/fast-json-stable-stringify/blob/master/LICENSE) diff --git a/build/node_modules/fast-json-stable-stringify/index.d.ts b/build/node_modules/fast-json-stable-stringify/index.d.ts deleted file mode 100644 index 23e46caf..00000000 --- a/build/node_modules/fast-json-stable-stringify/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module 'fast-json-stable-stringify' { - function stringify(obj: any): string; - export = stringify; -} diff --git a/build/node_modules/fast-json-stable-stringify/index.js b/build/node_modules/fast-json-stable-stringify/index.js deleted file mode 100644 index c44e6a41..00000000 --- a/build/node_modules/fast-json-stable-stringify/index.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -module.exports = function (data, opts) { - if (!opts) opts = {}; - if (typeof opts === 'function') opts = { cmp: opts }; - var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false; - - var cmp = opts.cmp && (function (f) { - return function (node) { - return function (a, b) { - var aobj = { key: a, value: node[a] }; - var bobj = { key: b, value: node[b] }; - return f(aobj, bobj); - }; - }; - })(opts.cmp); - - var seen = []; - return (function stringify (node) { - if (node && node.toJSON && typeof node.toJSON === 'function') { - node = node.toJSON(); - } - - if (node === undefined) return; - if (typeof node == 'number') return isFinite(node) ? '' + node : 'null'; - if (typeof node !== 'object') return JSON.stringify(node); - - var i, out; - if (Array.isArray(node)) { - out = '['; - for (i = 0; i < node.length; i++) { - if (i) out += ','; - out += stringify(node[i]) || 'null'; - } - return out + ']'; - } - - if (node === null) return 'null'; - - if (seen.indexOf(node) !== -1) { - if (cycles) return JSON.stringify('__cycle__'); - throw new TypeError('Converting circular structure to JSON'); - } - - var seenIndex = seen.push(node) - 1; - var keys = Object.keys(node).sort(cmp && cmp(node)); - out = ''; - for (i = 0; i < keys.length; i++) { - var key = keys[i]; - var value = stringify(node[key]); - - if (!value) continue; - if (out) out += ','; - out += JSON.stringify(key) + ':' + value; - } - seen.splice(seenIndex, 1); - return '{' + out + '}'; - })(data); -}; diff --git a/build/node_modules/fast-json-stable-stringify/package.json b/build/node_modules/fast-json-stable-stringify/package.json deleted file mode 100644 index ad2c8bff..00000000 --- a/build/node_modules/fast-json-stable-stringify/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "fast-json-stable-stringify", - "version": "2.1.0", - "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify", - "main": "index.js", - "types": "index.d.ts", - "dependencies": {}, - "devDependencies": { - "benchmark": "^2.1.4", - "coveralls": "^3.0.0", - "eslint": "^6.7.0", - "fast-stable-stringify": "latest", - "faster-stable-stringify": "latest", - "json-stable-stringify": "latest", - "nyc": "^14.1.0", - "pre-commit": "^1.2.2", - "tape": "^4.11.0" - }, - "scripts": { - "eslint": "eslint index.js test", - "test-spec": "tape test/*.js", - "test": "npm run eslint && nyc npm run test-spec" - }, - "repository": { - "type": "git", - "url": "git://github.com/epoberezkin/fast-json-stable-stringify.git" - }, - "homepage": "https://github.com/epoberezkin/fast-json-stable-stringify", - "keywords": [ - "json", - "stringify", - "deterministic", - "hash", - "stable" - ], - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "license": "MIT", - "nyc": { - "exclude": [ - "test", - "node_modules" - ], - "reporter": [ - "lcov", - "text-summary" - ] - } -} diff --git a/build/node_modules/fast-levenshtein/LICENSE.md b/build/node_modules/fast-levenshtein/LICENSE.md deleted file mode 100644 index 6212406b..00000000 --- a/build/node_modules/fast-levenshtein/LICENSE.md +++ /dev/null @@ -1,25 +0,0 @@ -(MIT License) - -Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.com/) - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - diff --git a/build/node_modules/fast-levenshtein/README.md b/build/node_modules/fast-levenshtein/README.md deleted file mode 100644 index a7789953..00000000 --- a/build/node_modules/fast-levenshtein/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# fast-levenshtein - Levenshtein algorithm in Javascript - -[![Build Status](https://secure.travis-ci.org/hiddentao/fast-levenshtein.png)](http://travis-ci.org/hiddentao/fast-levenshtein) -[![NPM module](https://badge.fury.io/js/fast-levenshtein.png)](https://badge.fury.io/js/fast-levenshtein) -[![NPM downloads](https://img.shields.io/npm/dm/fast-levenshtein.svg?maxAge=2592000)](https://www.npmjs.com/package/fast-levenshtein) -[![Follow on Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/hiddentao) - -An efficient Javascript implementation of the [Levenshtein algorithm](http://en.wikipedia.org/wiki/Levenshtein_distance) with locale-specific collator support. - -## Features - -* Works in node.js and in the browser. -* Better performance than other implementations by not needing to store the whole matrix ([more info](http://www.codeproject.com/Articles/13525/Fast-memory-efficient-Levenshtein-algorithm)). -* Locale-sensitive string comparisions if needed. -* Comprehensive test suite and performance benchmark. -* Small: <1 KB minified and gzipped - -## Installation - -### node.js - -Install using [npm](http://npmjs.org/): - -```bash -$ npm install fast-levenshtein -``` - -### Browser - -Using bower: - -```bash -$ bower install fast-levenshtein -``` - -If you are not using any module loader system then the API will then be accessible via the `window.Levenshtein` object. - -## Examples - -**Default usage** - -```javascript -var levenshtein = require('fast-levenshtein'); - -var distance = levenshtein.get('back', 'book'); // 2 -var distance = levenshtein.get('我愛你', '我叫你'); // 1 -``` - -**Locale-sensitive string comparisons** - -It supports using [Intl.Collator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator) for locale-sensitive string comparisons: - -```javascript -var levenshtein = require('fast-levenshtein'); - -levenshtein.get('mikailovitch', 'Mikhaïlovitch', { useCollator: true}); -// 1 -``` - -## Building and Testing - -To build the code and run the tests: - -```bash -$ npm install -g grunt-cli -$ npm install -$ npm run build -``` - -## Performance - -_Thanks to [Titus Wormer](https://github.com/wooorm) for [encouraging me](https://github.com/hiddentao/fast-levenshtein/issues/1) to do this._ - -Benchmarked against other node.js levenshtein distance modules (on Macbook Air 2012, Core i7, 8GB RAM): - -```bash -Running suite Implementation comparison [benchmark/speed.js]... ->> levenshtein-edit-distance x 234 ops/sec ±3.02% (73 runs sampled) ->> levenshtein-component x 422 ops/sec ±4.38% (83 runs sampled) ->> levenshtein-deltas x 283 ops/sec ±3.83% (78 runs sampled) ->> natural x 255 ops/sec ±0.76% (88 runs sampled) ->> levenshtein x 180 ops/sec ±3.55% (86 runs sampled) ->> fast-levenshtein x 1,792 ops/sec ±2.72% (95 runs sampled) -Benchmark done. -Fastest test is fast-levenshtein at 4.2x faster than levenshtein-component -``` - -You can run this benchmark yourself by doing: - -```bash -$ npm install -$ npm run build -$ npm run benchmark -``` - -## Contributing - -If you wish to submit a pull request please update and/or create new tests for any changes you make and ensure the grunt build passes. - -See [CONTRIBUTING.md](https://github.com/hiddentao/fast-levenshtein/blob/master/CONTRIBUTING.md) for details. - -## License - -MIT - see [LICENSE.md](https://github.com/hiddentao/fast-levenshtein/blob/master/LICENSE.md) diff --git a/build/node_modules/fast-levenshtein/levenshtein.js b/build/node_modules/fast-levenshtein/levenshtein.js deleted file mode 100644 index dbe36280..00000000 --- a/build/node_modules/fast-levenshtein/levenshtein.js +++ /dev/null @@ -1,136 +0,0 @@ -(function() { - 'use strict'; - - var collator; - try { - collator = (typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined") ? Intl.Collator("generic", { sensitivity: "base" }) : null; - } catch (err){ - console.log("Collator could not be initialized and wouldn't be used"); - } - // arrays to re-use - var prevRow = [], - str2Char = []; - - /** - * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. - */ - var Levenshtein = { - /** - * Calculate levenshtein distance of the two strings. - * - * @param str1 String the first string. - * @param str2 String the second string. - * @param [options] Additional options. - * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison. - * @return Integer the levenshtein distance (0 and above). - */ - get: function(str1, str2, options) { - var useCollator = (options && collator && options.useCollator); - - var str1Len = str1.length, - str2Len = str2.length; - - // base cases - if (str1Len === 0) return str2Len; - if (str2Len === 0) return str1Len; - - // two rows - var curCol, nextCol, i, j, tmp; - - // initialise previous row - for (i=0; i tmp) { - nextCol = tmp; - } - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - } - else { - // calculate current row distance from previous row without collator - for (i = 0; i < str1Len; ++i) { - nextCol = i + 1; - - for (j = 0; j < str2Len; ++j) { - curCol = nextCol; - - // substution - strCmp = str1.charCodeAt(i) === str2Char[j]; - - nextCol = prevRow[j] + (strCmp ? 0 : 1); - - // insertion - tmp = curCol + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - // deletion - tmp = prevRow[j + 1] + 1; - if (nextCol > tmp) { - nextCol = tmp; - } - - // copy current col value into previous (in preparation for next iteration) - prevRow[j] = curCol; - } - - // copy last col value into previous (in preparation for next iteration) - prevRow[j] = nextCol; - } - } - return nextCol; - } - - }; - - // amd - if (typeof define !== "undefined" && define !== null && define.amd) { - define(function() { - return Levenshtein; - }); - } - // commonjs - else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) { - module.exports = Levenshtein; - } - // web worker - else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') { - self.Levenshtein = Levenshtein; - } - // browser main thread - else if (typeof window !== "undefined" && window !== null) { - window.Levenshtein = Levenshtein; - } -}()); - diff --git a/build/node_modules/fast-levenshtein/package.json b/build/node_modules/fast-levenshtein/package.json deleted file mode 100644 index 5b4736d4..00000000 --- a/build/node_modules/fast-levenshtein/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "fast-levenshtein", - "version": "2.0.6", - "description": "Efficient implementation of Levenshtein algorithm with locale-specific collator support.", - "main": "levenshtein.js", - "files": [ - "levenshtein.js" - ], - "scripts": { - "build": "grunt build", - "prepublish": "npm run build", - "benchmark": "grunt benchmark", - "test": "mocha" - }, - "devDependencies": { - "chai": "~1.5.0", - "grunt": "~0.4.1", - "grunt-benchmark": "~0.2.0", - "grunt-cli": "^1.2.0", - "grunt-contrib-jshint": "~0.4.3", - "grunt-contrib-uglify": "~0.2.0", - "grunt-mocha-test": "~0.2.2", - "grunt-npm-install": "~0.1.0", - "load-grunt-tasks": "~0.6.0", - "lodash": "^4.0.1", - "mocha": "~1.9.0" - }, - "repository": { - "type": "git", - "url": "https://github.com/hiddentao/fast-levenshtein.git" - }, - "keywords": [ - "levenshtein", - "distance", - "string" - ], - "author": "Ramesh Nair (http://www.hiddentao.com/)", - "license": "MIT" -} diff --git a/build/node_modules/fast-redact/LICENSE b/build/node_modules/fast-redact/LICENSE deleted file mode 100644 index e1c643e3..00000000 --- a/build/node_modules/fast-redact/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019-2020 David Mark Clements - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/fast-redact/index.js b/build/node_modules/fast-redact/index.js deleted file mode 100644 index 9a13ac27..00000000 --- a/build/node_modules/fast-redact/index.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict' - -const validator = require('./lib/validator') -const parse = require('./lib/parse') -const redactor = require('./lib/redactor') -const restorer = require('./lib/restorer') -const { groupRedact, nestedRedact } = require('./lib/modifiers') -const state = require('./lib/state') -const rx = require('./lib/rx') -const validate = validator() -const noop = (o) => o -noop.restore = noop - -const DEFAULT_CENSOR = '[REDACTED]' -fastRedact.rx = rx -fastRedact.validator = validator - -module.exports = fastRedact - -function fastRedact (opts = {}) { - const paths = Array.from(new Set(opts.paths || [])) - const serialize = 'serialize' in opts ? ( - opts.serialize === false ? opts.serialize - : (typeof opts.serialize === 'function' ? opts.serialize : JSON.stringify) - ) : JSON.stringify - const remove = opts.remove - if (remove === true && serialize !== JSON.stringify) { - throw Error('fast-redact – remove option may only be set when serializer is JSON.stringify') - } - const censor = remove === true - ? undefined - : 'censor' in opts ? opts.censor : DEFAULT_CENSOR - - const isCensorFct = typeof censor === 'function' - const censorFctTakesPath = isCensorFct && censor.length > 1 - - if (paths.length === 0) return serialize || noop - - validate({ paths, serialize, censor }) - - const { wildcards, wcLen, secret } = parse({ paths, censor }) - - const compileRestore = restorer({ secret, wcLen }) - const strict = 'strict' in opts ? opts.strict : true - - return redactor({ secret, wcLen, serialize, strict, isCensorFct, censorFctTakesPath }, state({ - secret, - censor, - compileRestore, - serialize, - groupRedact, - nestedRedact, - wildcards, - wcLen - })) -} diff --git a/build/node_modules/fast-redact/package.json b/build/node_modules/fast-redact/package.json deleted file mode 100644 index 6b491d4b..00000000 --- a/build/node_modules/fast-redact/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "fast-redact", - "version": "3.3.0", - "description": "very fast object redaction", - "main": "index.js", - "scripts": { - "test": "tap test", - "posttest": "standard index.js 'lib/*.js' 'example/*.js' benchmark/index.js test/index.js | snazzy", - "cov": "tap --cov test", - "cov-ui": "tap --coverage-report=html test", - "ci": "tap --cov --100 test", - "bench": "node benchmark" - }, - "keywords": [ - "redact", - "censor", - "performance", - "performant", - "gdpr", - "fast", - "speed", - "serialize", - "stringify" - ], - "author": "David Mark Clements ", - "license": "MIT", - "devDependencies": { - "fastbench": "^1.0.1", - "pino-noir": "^2.2.1", - "snazzy": "^8.0.0", - "standard": "^12.0.1", - "tap": "^12.5.2" - }, - "engines": { - "node": ">=6" - }, - "directories": { - "example": "example", - "lib": "lib", - "test": "test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/davidmarkclements/fast-redact.git" - }, - "bugs": { - "url": "https://github.com/davidmarkclements/fast-redact/issues" - }, - "homepage": "https://github.com/davidmarkclements/fast-redact#readme" -} diff --git a/build/node_modules/fast-redact/readme.md b/build/node_modules/fast-redact/readme.md deleted file mode 100644 index 4a8ad1fe..00000000 --- a/build/node_modules/fast-redact/readme.md +++ /dev/null @@ -1,282 +0,0 @@ -# fast-redact - -very fast object redaction - -[![Build Status](https://travis-ci.org/davidmarkclements/fast-redact.svg?branch=master)](https://travis-ci.org/davidmarkclements/fast-redact) - -## Default Usage - -By default, `fast-redact` serializes an object with `JSON.stringify`, censoring any -data at paths specified: - -```js -const fastRedact = require('fast-redact') -const fauxRequest = { - headers: { - host: 'http://example.com', - cookie: `oh oh we don't want this exposed in logs in etc.`, - referer: `if we're cool maybe we'll even redact this`, - // Note: headers often contain hyphens and require bracket notation - 'X-Forwarded-For': `192.168.0.1` - } -} -const redact = fastRedact({ - paths: ['headers.cookie', 'headers.referer', 'headers["X-Forwarded-For"]'] -}) - -console.log(redact(fauxRequest)) -// {"headers":{"host":"http://example.com","cookie":"[REDACTED]","referer":"[REDACTED]","X-Forwarded-For": "[REDACTED]"}} -``` - -## API - -### `require('fast-redact')({paths, censor, serialize}) => Function` - -When called without any options, or with a zero length `paths` array, -`fast-redact` will return `JSON.stringify` or the `serialize` option, if set. - -#### `paths` – `Array` - -An array of strings describing the nested location of a key in an object. - -The syntax follows that of the EcmaScript specification, that is any JavaScript -path is accepted – both bracket and dot notation is supported. For instance in -each of the following cases, the `c` property will be redacted: `a.b.c`,`a['b'].c`, -`a["b"].c`, `a[``b``].c`. Since bracket notation is supported, array indices are also -supported `a[0].b` would redact the `b` key in the first object of the `a` array. - -Leading brackets are also allowed, for instance `["a"].b.c` will work. - -##### Wildcards - -In addition to static paths, asterisk wildcards are also supported. - -When an asterisk is place in the final position it will redact all keys within the -parent object. For instance `a.b.*` will redact all keys in the `b` object. Similarly -for arrays `a.b[*]` will redact all elements of an array (in truth it actually doesn't matter -whether `b` is in an object or array in either case, both notation styles will work). - -When an asterisk is in an intermediate or first position, the paths following the asterisk will -be redacted for every object within the parent. - -For example: - -```js -const fastRedact = require('fast-redact') -const redact = fastRedact({paths: ['*.c.d']}) -const obj = { - x: {c: {d: 'hide me', e: 'leave me be'}}, - y: {c: {d: 'and me', f: 'I want to live'}}, - z: {c: {d: 'and also I', g: 'I want to run in a stream'}} -} -console.log(redact(obj)) -// {"x":{"c":{"d":"[REDACTED]","e":"leave me be"}},"y":{"c":{"d":"[REDACTED]","f":"I want to live"}},"z":{"c":{"d":"[REDACTED]","g":"I want to run in a stream"}}} -``` - -Another example with a nested array: - -```js -const fastRedact = require('..') -const redact = fastRedact({paths: ['a[*].c.d']}) -const obj = { - a: [ - {c: {d: 'hide me', e: 'leave me be'}}, - {c: {d: 'and me', f: 'I want to live'}}, - {c: {d: 'and also I', g: 'I want to run in a stream'}} - ] -} -console.log(redact(obj)) -// {"a":[{"c":{"d":"[REDACTED]","e":"leave me be"}},{"c":{"d":"[REDACTED]","f":"I want to live"}},{"c":{"d":"[REDACTED]","g":"I want to run in a stream"}}]} -``` - -#### `remove` - `Boolean` - `[false]` - -The `remove` option, when set to `true` will cause keys to be removed from the -serialized output. - -Since the implementation exploits the fact that `undefined` keys are ignored -by `JSON.stringify` the `remove` option may *only* be used when `JSON.stringify` -is the serializer (this is the default) – otherwise `fast-redact` will throw. - -If supplying a custom serializer that has the same behavior (removing keys -with `undefined` values), this restriction can be bypassed by explicitly setting -the `censor` to `undefined`. - - -#### `censor` – `` – `('[REDACTED]')` - -This is the value which overwrites redacted properties. - -Setting `censor` to `undefined` will cause properties to removed as long as this is -the behavior of the `serializer` – which defaults to `JSON.stringify`, which does -remove `undefined` properties. - -Setting `censor` to a function will cause `fast-redact` to invoke it with the original -value. The output of the `censor` function sets the redacted value. -Please note that asynchronous functions are not supported. - -#### `serialize` – `Function | Boolean` – `(JSON.stringify)` - -The `serialize` option may either be a function or a boolean. If a function is supplied, this -will be used to `serialize` the redacted object. It's important to understand that for -performance reasons `fast-redact` *mutates* the original object, then serializes, then -restores the original values. So the object passed to the serializer is the exact same -object passed to the redacting function. - -The `serialize` option as a function example: - -```js -const fastRedact = require('fast-redact') -const redact = fastRedact({ - paths: ['a'], - serialize: (o) => JSON.stringify(o, 0, 2) -}) -console.log(redact({a: 1, b: 2})) -// { -// "a": "[REDACTED]", -// "b": 2 -// } -``` - -For advanced usage the `serialize` option can be set to `false`. When `serialize` is set to `false`, -instead of the serialized object, the output of the redactor function will be the mutated object -itself (this is the exact same as the object passed in). In addition a `restore` method is supplied -on the redactor function allowing the redacted keys to be restored with the original data. - -```js -const fastRedact = require('fast-redact') -const redact = fastRedact({ - paths: ['a'], - serialize: false -}) -const o = {a: 1, b: 2} -console.log(redact(o) === o) // true -console.log(o) // { a: '[REDACTED]', b: 2 } -console.log(redact.restore(o) === o) // true -console.log(o) // { a: 1, b: 2 } -``` - -#### `strict` – `Boolean` - `[true]` -The `strict` option, when set to `true`, will cause the redactor function to throw if instead -of an object it finds a primitive. When `strict` is set to `false`, the redactor function -will treat the primitive value as having already been redacted, and return it serialized (with -`JSON.stringify` or the user's custom `serialize` function), or as-is if the `serialize` option -was set to false. - -## Approach - -In order to achieve lowest cost/highest performance redaction `fast-redact` -creates and compiles a function (using the `Function` constructor) on initialization. -It's important to distinguish this from the dangers of a runtime eval, no user input -is involved in creating the string that compiles into the function. This is as safe -as writing code normally and having it compiled by V8 in the usual way. - -Thanks to changes in V8 in recent years, state can be injected into compiled functions -using `bind` at very low cost (whereas `bind` used to be expensive, and getting state -into a compiled function by any means was difficult without a performance penalty). - -For static paths, this function simply checks that the path exists and then overwrites -with the censor. Wildcard paths are processed with normal functions that iterate over -the object redacting values as necessary. - -It's important to note, that the original object is mutated – for performance reasons -a copy is not made. See [rfdc](https://github.com/davidmarkclements/rfdc) (Really Fast -Deep Clone) for the fastest known way to clone – it's not nearly close enough in speed -to editing the original object, serializing and then restoring values. - -A `restore` function is also created and compiled to put the original state back on -to the object after redaction. This means that in the default usage case, the operation -is essentially atomic - the object is mutated, serialized and restored internally which -avoids any state management issues. - -## Caveat - -As mentioned in approach, the `paths` array input is dynamically compiled into a function -at initialization time. While the `paths` array is vigourously tested for any developer -errors, it's strongly recommended against allowing user input to directly supply any -paths to redact. It can't be guaranteed that allowing user input for `paths` couldn't -feasibly expose an attack vector. - -## Benchmarks - -The fastest known predecessor to `fast-redact` is the non-generic [`pino-noir`](http://npm.im/pino-noir) -library (which was also written by myself). - -In the direct calling case, `fast-redact` is ~30x faster than `pino-noir`, however a more realistic -comparison is overhead on `JSON.stringify`. - -For a static redaction case (no wildcards) `pino-noir` adds ~25% overhead on top of `JSON.stringify` -whereas `fast-redact` adds ~1% overhead. - -In the basic last-position wildcard case,`fast-redact` is ~12% faster than `pino-noir`. - -The `pino-noir` module does not support intermediate wildcards, but `fast-redact` does, -the cost of an intermediate wildcard that results in two keys over two nested objects -being redacted is about 25% overhead on `JSON.stringify`. The cost of an intermediate -wildcard that results in four keys across two objects being redacted is about 55% overhead -on `JSON.stringify` and ~50% more expensive that explicitly declaring the keys. - -```sh -npm run bench -``` - -``` -benchNoirV2*500: 59.108ms -benchFastRedact*500: 2.483ms -benchFastRedactRestore*500: 10.904ms -benchNoirV2Wild*500: 91.399ms -benchFastRedactWild*500: 21.200ms -benchFastRedactWildRestore*500: 27.304ms -benchFastRedactIntermediateWild*500: 92.304ms -benchFastRedactIntermediateWildRestore*500: 107.047ms -benchJSONStringify*500: 210.573ms -benchNoirV2Serialize*500: 281.148ms -benchFastRedactSerialize*500: 215.845ms -benchNoirV2WildSerialize*500: 281.168ms -benchFastRedactWildSerialize*500: 247.140ms -benchFastRedactIntermediateWildSerialize*500: 333.722ms -benchFastRedactIntermediateWildMatchWildOutcomeSerialize*500: 463.667ms -benchFastRedactStaticMatchWildOutcomeSerialize*500: 239.293ms -``` - -## Tests - -``` -npm test -``` - -``` - 224 passing (499.544ms) -``` - -### Coverage - -``` -npm run cov -``` - -``` ------------------|----------|----------|----------|----------|-------------------| -File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | ------------------|----------|----------|----------|----------|-------------------| -All files | 100 | 100 | 100 | 100 | | - fast-redact | 100 | 100 | 100 | 100 | | - index.js | 100 | 100 | 100 | 100 | | - fast-redact/lib | 100 | 100 | 100 | 100 | | - modifiers.js | 100 | 100 | 100 | 100 | | - parse.js | 100 | 100 | 100 | 100 | | - redactor.js | 100 | 100 | 100 | 100 | | - restorer.js | 100 | 100 | 100 | 100 | | - rx.js | 100 | 100 | 100 | 100 | | - state.js | 100 | 100 | 100 | 100 | | - validator.js | 100 | 100 | 100 | 100 | | ------------------|----------|----------|----------|----------|-------------------| -``` - -## License - -MIT - -## Acknowledgements - -Sponsored by [nearForm](http://www.nearform.com) diff --git a/build/node_modules/fast-safe-stringify/.travis.yml b/build/node_modules/fast-safe-stringify/.travis.yml deleted file mode 100644 index 2b06d253..00000000 --- a/build/node_modules/fast-safe-stringify/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -sudo: false -node_js: -- '4' -- '6' -- '8' -- '9' -- '10' diff --git a/build/node_modules/fast-safe-stringify/CHANGELOG.md b/build/node_modules/fast-safe-stringify/CHANGELOG.md deleted file mode 100644 index 55f2d082..00000000 --- a/build/node_modules/fast-safe-stringify/CHANGELOG.md +++ /dev/null @@ -1,17 +0,0 @@ -# Changelog - -## v.2.0.0 - -Features - -- Added stable-stringify (see documentation) -- Support replacer -- Support spacer -- toJSON support without forceDecirc property -- Improved performance - -Breaking changes - -- Manipulating the input value in a `toJSON` function is not possible anymore in - all cases (see documentation) -- Dropped support for e.g. IE8 and Node.js < 4 diff --git a/build/node_modules/fast-safe-stringify/LICENSE b/build/node_modules/fast-safe-stringify/LICENSE deleted file mode 100644 index d310c2d1..00000000 --- a/build/node_modules/fast-safe-stringify/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 David Mark Clements -Copyright (c) 2017 David Mark Clements & Matteo Collina -Copyright (c) 2018 David Mark Clements, Matteo Collina & Ruben Bridgewater - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/fast-safe-stringify/benchmark.js b/build/node_modules/fast-safe-stringify/benchmark.js deleted file mode 100644 index 7ba5e9f5..00000000 --- a/build/node_modules/fast-safe-stringify/benchmark.js +++ /dev/null @@ -1,137 +0,0 @@ -const Benchmark = require('benchmark') -const suite = new Benchmark.Suite() -const { inspect } = require('util') -const jsonStringifySafe = require('json-stringify-safe') -const fastSafeStringify = require('./') - -const array = new Array(10).fill(0).map((_, i) => i) -const obj = { foo: array } -const circ = JSON.parse(JSON.stringify(obj)) -circ.o = { obj: circ, array } -const circGetters = JSON.parse(JSON.stringify(obj)) -Object.assign(circGetters, { get o () { return { obj: circGetters, array } } }) - -const deep = require('./package.json') -deep.deep = JSON.parse(JSON.stringify(deep)) -deep.deep.deep = JSON.parse(JSON.stringify(deep)) -deep.deep.deep.deep = JSON.parse(JSON.stringify(deep)) -deep.array = array - -const deepCirc = JSON.parse(JSON.stringify(deep)) -deepCirc.deep.deep.deep.circ = deepCirc -deepCirc.deep.deep.circ = deepCirc -deepCirc.deep.circ = deepCirc -deepCirc.array = array - -const deepCircGetters = JSON.parse(JSON.stringify(deep)) -for (let i = 0; i < 10; i++) { - deepCircGetters[i.toString()] = { - deep: { - deep: { - get circ () { return deep.deep }, - deep: { get circ () { return deep.deep.deep } } - }, - get circ () { return deep } - }, - get array () { return array } - } -} - -const deepCircNonCongifurableGetters = JSON.parse(JSON.stringify(deep)) -Object.defineProperty(deepCircNonCongifurableGetters.deep.deep.deep, 'circ', { - get: () => deepCircNonCongifurableGetters, - enumerable: true, - configurable: false -}) -Object.defineProperty(deepCircNonCongifurableGetters.deep.deep, 'circ', { - get: () => deepCircNonCongifurableGetters, - enumerable: true, - configurable: false -}) -Object.defineProperty(deepCircNonCongifurableGetters.deep, 'circ', { - get: () => deepCircNonCongifurableGetters, - enumerable: true, - configurable: false -}) -Object.defineProperty(deepCircNonCongifurableGetters, 'array', { - get: () => array, - enumerable: true, - configurable: false -}) - -suite.add('util.inspect: simple object ', function () { - inspect(obj, { showHidden: false, depth: null }) -}) -suite.add('util.inspect: circular ', function () { - inspect(circ, { showHidden: false, depth: null }) -}) -suite.add('util.inspect: circular getters ', function () { - inspect(circGetters, { showHidden: false, depth: null }) -}) -suite.add('util.inspect: deep ', function () { - inspect(deep, { showHidden: false, depth: null }) -}) -suite.add('util.inspect: deep circular ', function () { - inspect(deepCirc, { showHidden: false, depth: null }) -}) -suite.add('util.inspect: large deep circular getters ', function () { - inspect(deepCircGetters, { showHidden: false, depth: null }) -}) -suite.add('util.inspect: deep non-conf circular getters', function () { - inspect(deepCircNonCongifurableGetters, { showHidden: false, depth: null }) -}) - -suite.add('\njson-stringify-safe: simple object ', function () { - jsonStringifySafe(obj) -}) -suite.add('json-stringify-safe: circular ', function () { - jsonStringifySafe(circ) -}) -suite.add('json-stringify-safe: circular getters ', function () { - jsonStringifySafe(circGetters) -}) -suite.add('json-stringify-safe: deep ', function () { - jsonStringifySafe(deep) -}) -suite.add('json-stringify-safe: deep circular ', function () { - jsonStringifySafe(deepCirc) -}) -suite.add('json-stringify-safe: large deep circular getters ', function () { - jsonStringifySafe(deepCircGetters) -}) -suite.add('json-stringify-safe: deep non-conf circular getters', function () { - jsonStringifySafe(deepCircNonCongifurableGetters) -}) - -suite.add('\nfast-safe-stringify: simple object ', function () { - fastSafeStringify(obj) -}) -suite.add('fast-safe-stringify: circular ', function () { - fastSafeStringify(circ) -}) -suite.add('fast-safe-stringify: circular getters ', function () { - fastSafeStringify(circGetters) -}) -suite.add('fast-safe-stringify: deep ', function () { - fastSafeStringify(deep) -}) -suite.add('fast-safe-stringify: deep circular ', function () { - fastSafeStringify(deepCirc) -}) -suite.add('fast-safe-stringify: large deep circular getters ', function () { - fastSafeStringify(deepCircGetters) -}) -suite.add('fast-safe-stringify: deep non-conf circular getters', function () { - fastSafeStringify(deepCircNonCongifurableGetters) -}) - -// add listeners -suite.on('cycle', function (event) { - console.log(String(event.target)) -}) - -suite.on('complete', function () { - console.log('\nFastest is ' + this.filter('fastest').map('name')) -}) - -suite.run({ delay: 1, minSamples: 150 }) diff --git a/build/node_modules/fast-safe-stringify/index.d.ts b/build/node_modules/fast-safe-stringify/index.d.ts deleted file mode 100644 index 9a9b1f00..00000000 --- a/build/node_modules/fast-safe-stringify/index.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -declare function stringify( - value: any, - replacer?: (key: string, value: any) => any, - space?: string | number, - options?: { depthLimit: number | undefined; edgesLimit: number | undefined } -): string; - -declare namespace stringify { - export function stable( - value: any, - replacer?: (key: string, value: any) => any, - space?: string | number, - options?: { depthLimit: number | undefined; edgesLimit: number | undefined } - ): string; - export function stableStringify( - value: any, - replacer?: (key: string, value: any) => any, - space?: string | number, - options?: { depthLimit: number | undefined; edgesLimit: number | undefined } - ): string; -} - -export default stringify; diff --git a/build/node_modules/fast-safe-stringify/index.js b/build/node_modules/fast-safe-stringify/index.js deleted file mode 100644 index ecf7e519..00000000 --- a/build/node_modules/fast-safe-stringify/index.js +++ /dev/null @@ -1,229 +0,0 @@ -module.exports = stringify -stringify.default = stringify -stringify.stable = deterministicStringify -stringify.stableStringify = deterministicStringify - -var LIMIT_REPLACE_NODE = '[...]' -var CIRCULAR_REPLACE_NODE = '[Circular]' - -var arr = [] -var replacerStack = [] - -function defaultOptions () { - return { - depthLimit: Number.MAX_SAFE_INTEGER, - edgesLimit: Number.MAX_SAFE_INTEGER - } -} - -// Regular stringify -function stringify (obj, replacer, spacer, options) { - if (typeof options === 'undefined') { - options = defaultOptions() - } - - decirc(obj, '', 0, [], undefined, 0, options) - var res - try { - if (replacerStack.length === 0) { - res = JSON.stringify(obj, replacer, spacer) - } else { - res = JSON.stringify(obj, replaceGetterValues(replacer), spacer) - } - } catch (_) { - return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]') - } finally { - while (arr.length !== 0) { - var part = arr.pop() - if (part.length === 4) { - Object.defineProperty(part[0], part[1], part[3]) - } else { - part[0][part[1]] = part[2] - } - } - } - return res -} - -function setReplace (replace, val, k, parent) { - var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k) - if (propertyDescriptor.get !== undefined) { - if (propertyDescriptor.configurable) { - Object.defineProperty(parent, k, { value: replace }) - arr.push([parent, k, val, propertyDescriptor]) - } else { - replacerStack.push([val, k, replace]) - } - } else { - parent[k] = replace - arr.push([parent, k, val]) - } -} - -function decirc (val, k, edgeIndex, stack, parent, depth, options) { - depth += 1 - var i - if (typeof val === 'object' && val !== null) { - for (i = 0; i < stack.length; i++) { - if (stack[i] === val) { - setReplace(CIRCULAR_REPLACE_NODE, val, k, parent) - return - } - } - - if ( - typeof options.depthLimit !== 'undefined' && - depth > options.depthLimit - ) { - setReplace(LIMIT_REPLACE_NODE, val, k, parent) - return - } - - if ( - typeof options.edgesLimit !== 'undefined' && - edgeIndex + 1 > options.edgesLimit - ) { - setReplace(LIMIT_REPLACE_NODE, val, k, parent) - return - } - - stack.push(val) - // Optimize for Arrays. Big arrays could kill the performance otherwise! - if (Array.isArray(val)) { - for (i = 0; i < val.length; i++) { - decirc(val[i], i, i, stack, val, depth, options) - } - } else { - var keys = Object.keys(val) - for (i = 0; i < keys.length; i++) { - var key = keys[i] - decirc(val[key], key, i, stack, val, depth, options) - } - } - stack.pop() - } -} - -// Stable-stringify -function compareFunction (a, b) { - if (a < b) { - return -1 - } - if (a > b) { - return 1 - } - return 0 -} - -function deterministicStringify (obj, replacer, spacer, options) { - if (typeof options === 'undefined') { - options = defaultOptions() - } - - var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj - var res - try { - if (replacerStack.length === 0) { - res = JSON.stringify(tmp, replacer, spacer) - } else { - res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer) - } - } catch (_) { - return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]') - } finally { - // Ensure that we restore the object as it was. - while (arr.length !== 0) { - var part = arr.pop() - if (part.length === 4) { - Object.defineProperty(part[0], part[1], part[3]) - } else { - part[0][part[1]] = part[2] - } - } - } - return res -} - -function deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) { - depth += 1 - var i - if (typeof val === 'object' && val !== null) { - for (i = 0; i < stack.length; i++) { - if (stack[i] === val) { - setReplace(CIRCULAR_REPLACE_NODE, val, k, parent) - return - } - } - try { - if (typeof val.toJSON === 'function') { - return - } - } catch (_) { - return - } - - if ( - typeof options.depthLimit !== 'undefined' && - depth > options.depthLimit - ) { - setReplace(LIMIT_REPLACE_NODE, val, k, parent) - return - } - - if ( - typeof options.edgesLimit !== 'undefined' && - edgeIndex + 1 > options.edgesLimit - ) { - setReplace(LIMIT_REPLACE_NODE, val, k, parent) - return - } - - stack.push(val) - // Optimize for Arrays. Big arrays could kill the performance otherwise! - if (Array.isArray(val)) { - for (i = 0; i < val.length; i++) { - deterministicDecirc(val[i], i, i, stack, val, depth, options) - } - } else { - // Create a temporary object in the required way - var tmp = {} - var keys = Object.keys(val).sort(compareFunction) - for (i = 0; i < keys.length; i++) { - var key = keys[i] - deterministicDecirc(val[key], key, i, stack, val, depth, options) - tmp[key] = val[key] - } - if (typeof parent !== 'undefined') { - arr.push([parent, k, val]) - parent[k] = tmp - } else { - return tmp - } - } - stack.pop() - } -} - -// wraps replacer function to handle values we couldn't replace -// and mark them as replaced value -function replaceGetterValues (replacer) { - replacer = - typeof replacer !== 'undefined' - ? replacer - : function (k, v) { - return v - } - return function (key, val) { - if (replacerStack.length > 0) { - for (var i = 0; i < replacerStack.length; i++) { - var part = replacerStack[i] - if (part[1] === key && part[0] === val) { - val = part[2] - replacerStack.splice(i, 1) - break - } - } - } - return replacer.call(this, key, val) - } -} diff --git a/build/node_modules/fast-safe-stringify/package.json b/build/node_modules/fast-safe-stringify/package.json deleted file mode 100644 index 206a5919..00000000 --- a/build/node_modules/fast-safe-stringify/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "fast-safe-stringify", - "version": "2.1.1", - "description": "Safely and quickly serialize JavaScript objects", - "keywords": [ - "stable", - "stringify", - "JSON", - "JSON.stringify", - "safe", - "serialize" - ], - "main": "index.js", - "scripts": { - "test": "standard && tap --no-esm test.js test-stable.js", - "benchmark": "node benchmark.js" - }, - "author": "David Mark Clements", - "contributors": [ - "Ruben Bridgewater", - "Matteo Collina", - "Ben Gourley", - "Gabriel Lesperance", - "Alex Liu", - "Christoph Walcher", - "Nicholas Young" - ], - "license": "MIT", - "typings": "index", - "devDependencies": { - "benchmark": "^2.1.4", - "clone": "^2.1.0", - "json-stringify-safe": "^5.0.1", - "standard": "^11.0.0", - "tap": "^12.0.0" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/davidmarkclements/fast-safe-stringify.git" - }, - "bugs": { - "url": "https://github.com/davidmarkclements/fast-safe-stringify/issues" - }, - "homepage": "https://github.com/davidmarkclements/fast-safe-stringify#readme", - "dependencies": {} -} diff --git a/build/node_modules/fast-safe-stringify/readme.md b/build/node_modules/fast-safe-stringify/readme.md deleted file mode 100644 index 47179c94..00000000 --- a/build/node_modules/fast-safe-stringify/readme.md +++ /dev/null @@ -1,170 +0,0 @@ -# fast-safe-stringify - -Safe and fast serialization alternative to [JSON.stringify][]. - -Gracefully handles circular structures instead of throwing in most cases. -It could return an error string if the circular object is too complex to analyze, -e.g. in case there are proxies involved. - -Provides a deterministic ("stable") version as well that will also gracefully -handle circular structures. See the example below for further information. - -## Usage - -The same as [JSON.stringify][]. - -`stringify(value[, replacer[, space[, options]]])` - -```js -const safeStringify = require('fast-safe-stringify') -const o = { a: 1 } -o.o = o - -console.log(safeStringify(o)) -// '{"a":1,"o":"[Circular]"}' -console.log(JSON.stringify(o)) -// TypeError: Converting circular structure to JSON - -function replacer(key, value) { - console.log('Key:', JSON.stringify(key), 'Value:', JSON.stringify(value)) - // Remove the circular structure - if (value === '[Circular]') { - return - } - return value -} - -// those are also defaults limits when no options object is passed into safeStringify -// configure it to lower the limit. -const options = { - depthLimit: Number.MAX_SAFE_INTEGER, - edgesLimit: Number.MAX_SAFE_INTEGER -}; - -const serialized = safeStringify(o, replacer, 2, options) -// Key: "" Value: {"a":1,"o":"[Circular]"} -// Key: "a" Value: 1 -// Key: "o" Value: "[Circular]" -console.log(serialized) -// { -// "a": 1 -// } -``` - - -Using the deterministic version also works the same: - -```js -const safeStringify = require('fast-safe-stringify') -const o = { b: 1, a: 0 } -o.o = o - -console.log(safeStringify(o)) -// '{"b":1,"a":0,"o":"[Circular]"}' -console.log(safeStringify.stableStringify(o)) -// '{"a":0,"b":1,"o":"[Circular]"}' -console.log(JSON.stringify(o)) -// TypeError: Converting circular structure to JSON -``` - -A faster and side-effect free implementation is available in the -[safe-stable-stringify][] module. However it is still considered experimental -due to a new and more complex implementation. - -### Replace strings constants - -- `[Circular]` - when same reference is found -- `[...]` - when some limit from options object is reached - -## Differences to JSON.stringify - -In general the behavior is identical to [JSON.stringify][]. The [`replacer`][] -and [`space`][] options are also available. - -A few exceptions exist to [JSON.stringify][] while using [`toJSON`][] or -[`replacer`][]: - -### Regular safe stringify - -- Manipulating a circular structure of the passed in value in a `toJSON` or the - `replacer` is not possible! It is possible for any other value and property. - -- In case a circular structure is detected and the [`replacer`][] is used it - will receive the string `[Circular]` as the argument instead of the circular - object itself. - -### Deterministic ("stable") safe stringify - -- Manipulating the input object either in a [`toJSON`][] or the [`replacer`][] - function will not have any effect on the output. The output entirely relies on - the shape the input value had at the point passed to the stringify function! - -- In case a circular structure is detected and the [`replacer`][] is used it - will receive the string `[Circular]` as the argument instead of the circular - object itself. - -A side effect free variation without these limitations can be found as well -([`safe-stable-stringify`][]). It is also faster than the current -implementation. It is still considered experimental due to a new and more -complex implementation. - -## Benchmarks - -Although not JSON, the Node.js `util.inspect` method can be used for similar -purposes (e.g. logging) and also handles circular references. - -Here we compare `fast-safe-stringify` with some alternatives: -(Lenovo T450s with a i7-5600U CPU using Node.js 8.9.4) - -```md -fast-safe-stringify: simple object x 1,121,497 ops/sec ±0.75% (97 runs sampled) -fast-safe-stringify: circular x 560,126 ops/sec ±0.64% (96 runs sampled) -fast-safe-stringify: deep x 32,472 ops/sec ±0.57% (95 runs sampled) -fast-safe-stringify: deep circular x 32,513 ops/sec ±0.80% (92 runs sampled) - -util.inspect: simple object x 272,837 ops/sec ±1.48% (90 runs sampled) -util.inspect: circular x 116,896 ops/sec ±1.19% (95 runs sampled) -util.inspect: deep x 19,382 ops/sec ±0.66% (92 runs sampled) -util.inspect: deep circular x 18,717 ops/sec ±0.63% (96 runs sampled) - -json-stringify-safe: simple object x 233,621 ops/sec ±0.97% (94 runs sampled) -json-stringify-safe: circular x 110,409 ops/sec ±1.85% (95 runs sampled) -json-stringify-safe: deep x 8,705 ops/sec ±0.87% (96 runs sampled) -json-stringify-safe: deep circular x 8,336 ops/sec ±2.20% (93 runs sampled) -``` - -For stable stringify comparisons, see the performance benchmarks in the -[`safe-stable-stringify`][] readme. - -## Protip - -Whether `fast-safe-stringify` or alternatives are used: if the use case -consists of deeply nested objects without circular references the following -pattern will give best results. -Shallow or one level nested objects on the other hand will slow down with it. -It is entirely dependant on the use case. - -```js -const stringify = require('fast-safe-stringify') - -function tryJSONStringify (obj) { - try { return JSON.stringify(obj) } catch (_) {} -} - -const serializedString = tryJSONStringify(deep) || stringify(deep) -``` - -## Acknowledgements - -Sponsored by [nearForm](http://nearform.com) - -## License - -MIT - -[`replacer`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The%20replacer%20parameter -[`safe-stable-stringify`]: https://github.com/BridgeAR/safe-stable-stringify -[`space`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The%20space%20argument -[`toJSON`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()_behavior -[benchmark]: https://github.com/epoberezkin/fast-json-stable-stringify/blob/67f688f7441010cfef91a6147280cc501701e83b/benchmark -[JSON.stringify]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify diff --git a/build/node_modules/fast-safe-stringify/test-stable.js b/build/node_modules/fast-safe-stringify/test-stable.js deleted file mode 100644 index c55b95ca..00000000 --- a/build/node_modules/fast-safe-stringify/test-stable.js +++ /dev/null @@ -1,404 +0,0 @@ -const test = require('tap').test -const fss = require('./').stable -const clone = require('clone') -const s = JSON.stringify -const stream = require('stream') - -test('circular reference to root', function (assert) { - const fixture = { name: 'Tywin Lannister' } - fixture.circle = fixture - const expected = s({ circle: '[Circular]', name: 'Tywin Lannister' }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('circular getter reference to root', function (assert) { - const fixture = { - name: 'Tywin Lannister', - get circle () { - return fixture - } - } - - const expected = s({ circle: '[Circular]', name: 'Tywin Lannister' }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested circular reference to root', function (assert) { - const fixture = { name: 'Tywin Lannister' } - fixture.id = { circle: fixture } - const expected = s({ id: { circle: '[Circular]' }, name: 'Tywin Lannister' }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('child circular reference', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { name: 'Tyrion Lannister' } - } - fixture.child.dinklage = fixture.child - const expected = s({ - child: { - dinklage: '[Circular]', - name: 'Tyrion Lannister' - }, - name: 'Tywin Lannister' - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested child circular reference', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { name: 'Tyrion Lannister' } - } - fixture.child.actor = { dinklage: fixture.child } - const expected = s({ - child: { - actor: { dinklage: '[Circular]' }, - name: 'Tyrion Lannister' - }, - name: 'Tywin Lannister' - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('circular objects in an array', function (assert) { - const fixture = { name: 'Tywin Lannister' } - fixture.hand = [fixture, fixture] - const expected = s({ - hand: ['[Circular]', '[Circular]'], - name: 'Tywin Lannister' - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested circular references in an array', function (assert) { - const fixture = { - name: 'Tywin Lannister', - offspring: [{ name: 'Tyrion Lannister' }, { name: 'Cersei Lannister' }] - } - fixture.offspring[0].dinklage = fixture.offspring[0] - fixture.offspring[1].headey = fixture.offspring[1] - - const expected = s({ - name: 'Tywin Lannister', - offspring: [ - { dinklage: '[Circular]', name: 'Tyrion Lannister' }, - { headey: '[Circular]', name: 'Cersei Lannister' } - ] - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('circular arrays', function (assert) { - const fixture = [] - fixture.push(fixture, fixture) - const expected = s(['[Circular]', '[Circular]']) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested circular arrays', function (assert) { - const fixture = [] - fixture.push( - { name: 'Jon Snow', bastards: fixture }, - { name: 'Ramsay Bolton', bastards: fixture } - ) - const expected = s([ - { bastards: '[Circular]', name: 'Jon Snow' }, - { bastards: '[Circular]', name: 'Ramsay Bolton' } - ]) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('repeated non-circular references in objects', function (assert) { - const daenerys = { name: 'Daenerys Targaryen' } - const fixture = { - motherOfDragons: daenerys, - queenOfMeereen: daenerys - } - const expected = s(fixture) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('repeated non-circular references in arrays', function (assert) { - const daenerys = { name: 'Daenerys Targaryen' } - const fixture = [daenerys, daenerys] - const expected = s(fixture) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('double child circular reference', function (assert) { - // create circular reference - const child = { name: 'Tyrion Lannister' } - child.dinklage = child - - // include it twice in the fixture - const fixture = { name: 'Tywin Lannister', childA: child, childB: child } - const cloned = clone(fixture) - const expected = s({ - childA: { - dinklage: '[Circular]', - name: 'Tyrion Lannister' - }, - childB: { - dinklage: '[Circular]', - name: 'Tyrion Lannister' - }, - name: 'Tywin Lannister' - }) - const actual = fss(fixture) - assert.equal(actual, expected) - - // check if the fixture has not been modified - assert.same(fixture, cloned) - assert.end() -}) - -test('child circular reference with toJSON', function (assert) { - // Create a test object that has an overridden `toJSON` property - TestObject.prototype.toJSON = function () { - return { special: 'case' } - } - function TestObject (content) {} - - // Creating a simple circular object structure - const parentObject = {} - parentObject.childObject = new TestObject() - parentObject.childObject.parentObject = parentObject - - // Creating a simple circular object structure - const otherParentObject = new TestObject() - otherParentObject.otherChildObject = {} - otherParentObject.otherChildObject.otherParentObject = otherParentObject - - // Making sure our original tests work - assert.same(parentObject.childObject.parentObject, parentObject) - assert.same( - otherParentObject.otherChildObject.otherParentObject, - otherParentObject - ) - - // Should both be idempotent - assert.equal(fss(parentObject), '{"childObject":{"special":"case"}}') - assert.equal(fss(otherParentObject), '{"special":"case"}') - - // Therefore the following assertion should be `true` - assert.same(parentObject.childObject.parentObject, parentObject) - assert.same( - otherParentObject.otherChildObject.otherParentObject, - otherParentObject - ) - - assert.end() -}) - -test('null object', function (assert) { - const expected = s(null) - const actual = fss(null) - assert.equal(actual, expected) - assert.end() -}) - -test('null property', function (assert) { - const expected = s({ f: null }) - const actual = fss({ f: null }) - assert.equal(actual, expected) - assert.end() -}) - -test('nested child circular reference in toJSON', function (assert) { - var circle = { some: 'data' } - circle.circle = circle - var a = { - b: { - toJSON: function () { - a.b = 2 - return '[Redacted]' - } - }, - baz: { - circle, - toJSON: function () { - a.baz = circle - return '[Redacted]' - } - } - } - var o = { - a, - bar: a - } - - const expected = s({ - a: { - b: '[Redacted]', - baz: '[Redacted]' - }, - bar: { - // TODO: This is a known limitation of the current implementation. - // The ideal result would be: - // - // b: 2, - // baz: { - // circle: '[Circular]', - // some: 'data' - // } - // - b: '[Redacted]', - baz: '[Redacted]' - } - }) - const actual = fss(o) - assert.equal(actual, expected) - assert.end() -}) - -test('circular getters are restored when stringified', function (assert) { - const fixture = { - name: 'Tywin Lannister', - get circle () { - return fixture - } - } - fss(fixture) - - assert.equal(fixture.circle, fixture) - assert.end() -}) - -test('non-configurable circular getters use a replacer instead of markers', function (assert) { - const fixture = { name: 'Tywin Lannister' } - Object.defineProperty(fixture, 'circle', { - configurable: false, - get: function () { - return fixture - }, - enumerable: true - }) - - fss(fixture) - - assert.equal(fixture.circle, fixture) - assert.end() -}) - -test('getter child circular reference', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister', - get dinklage () { - return fixture.child - } - }, - get self () { - return fixture - } - } - - const expected = s({ - child: { - dinklage: '[Circular]', - name: 'Tyrion Lannister' - }, - name: 'Tywin Lannister', - self: '[Circular]' - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('Proxy throwing', function (assert) { - assert.plan(1) - const s = new stream.PassThrough() - s.resume() - s.write('', () => { - assert.end() - }) - const actual = fss({ s, p: new Proxy({}, { get () { throw new Error('kaboom') } }) }) - assert.equal(actual, '"[unable to serialize, circular reference is too complex to analyze]"') -}) - -test('depthLimit option - will replace deep objects', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister' - }, - get self () { - return fixture - } - } - - const expected = s({ - child: '[...]', - name: 'Tywin Lannister', - self: '[Circular]' - }) - const actual = fss(fixture, undefined, undefined, { - depthLimit: 1, - edgesLimit: 1 - }) - assert.equal(actual, expected) - assert.end() -}) - -test('edgesLimit option - will replace deep objects', function (assert) { - const fixture = { - object: { - 1: { test: 'test' }, - 2: { test: 'test' }, - 3: { test: 'test' }, - 4: { test: 'test' } - }, - array: [ - { test: 'test' }, - { test: 'test' }, - { test: 'test' }, - { test: 'test' } - ], - get self () { - return fixture - } - } - - const expected = s({ - array: [{ test: 'test' }, { test: 'test' }, { test: 'test' }, '[...]'], - object: { - 1: { test: 'test' }, - 2: { test: 'test' }, - 3: { test: 'test' }, - 4: '[...]' - }, - self: '[Circular]' - }) - const actual = fss(fixture, undefined, undefined, { - depthLimit: 3, - edgesLimit: 3 - }) - assert.equal(actual, expected) - assert.end() -}) diff --git a/build/node_modules/fast-safe-stringify/test.js b/build/node_modules/fast-safe-stringify/test.js deleted file mode 100644 index a4170e96..00000000 --- a/build/node_modules/fast-safe-stringify/test.js +++ /dev/null @@ -1,397 +0,0 @@ -const test = require('tap').test -const fss = require('./') -const clone = require('clone') -const s = JSON.stringify -const stream = require('stream') - -test('circular reference to root', function (assert) { - const fixture = { name: 'Tywin Lannister' } - fixture.circle = fixture - const expected = s({ name: 'Tywin Lannister', circle: '[Circular]' }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('circular getter reference to root', function (assert) { - const fixture = { - name: 'Tywin Lannister', - get circle () { - return fixture - } - } - const expected = s({ name: 'Tywin Lannister', circle: '[Circular]' }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested circular reference to root', function (assert) { - const fixture = { name: 'Tywin Lannister' } - fixture.id = { circle: fixture } - const expected = s({ name: 'Tywin Lannister', id: { circle: '[Circular]' } }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('child circular reference', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { name: 'Tyrion Lannister' } - } - fixture.child.dinklage = fixture.child - const expected = s({ - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister', - dinklage: '[Circular]' - } - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested child circular reference', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { name: 'Tyrion Lannister' } - } - fixture.child.actor = { dinklage: fixture.child } - const expected = s({ - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister', - actor: { dinklage: '[Circular]' } - } - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('circular objects in an array', function (assert) { - const fixture = { name: 'Tywin Lannister' } - fixture.hand = [fixture, fixture] - const expected = s({ - name: 'Tywin Lannister', - hand: ['[Circular]', '[Circular]'] - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested circular references in an array', function (assert) { - const fixture = { - name: 'Tywin Lannister', - offspring: [{ name: 'Tyrion Lannister' }, { name: 'Cersei Lannister' }] - } - fixture.offspring[0].dinklage = fixture.offspring[0] - fixture.offspring[1].headey = fixture.offspring[1] - - const expected = s({ - name: 'Tywin Lannister', - offspring: [ - { name: 'Tyrion Lannister', dinklage: '[Circular]' }, - { name: 'Cersei Lannister', headey: '[Circular]' } - ] - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('circular arrays', function (assert) { - const fixture = [] - fixture.push(fixture, fixture) - const expected = s(['[Circular]', '[Circular]']) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('nested circular arrays', function (assert) { - const fixture = [] - fixture.push( - { name: 'Jon Snow', bastards: fixture }, - { name: 'Ramsay Bolton', bastards: fixture } - ) - const expected = s([ - { name: 'Jon Snow', bastards: '[Circular]' }, - { name: 'Ramsay Bolton', bastards: '[Circular]' } - ]) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('repeated non-circular references in objects', function (assert) { - const daenerys = { name: 'Daenerys Targaryen' } - const fixture = { - motherOfDragons: daenerys, - queenOfMeereen: daenerys - } - const expected = s(fixture) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('repeated non-circular references in arrays', function (assert) { - const daenerys = { name: 'Daenerys Targaryen' } - const fixture = [daenerys, daenerys] - const expected = s(fixture) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('double child circular reference', function (assert) { - // create circular reference - const child = { name: 'Tyrion Lannister' } - child.dinklage = child - - // include it twice in the fixture - const fixture = { name: 'Tywin Lannister', childA: child, childB: child } - const cloned = clone(fixture) - const expected = s({ - name: 'Tywin Lannister', - childA: { - name: 'Tyrion Lannister', - dinklage: '[Circular]' - }, - childB: { - name: 'Tyrion Lannister', - dinklage: '[Circular]' - } - }) - const actual = fss(fixture) - assert.equal(actual, expected) - - // check if the fixture has not been modified - assert.same(fixture, cloned) - assert.end() -}) - -test('child circular reference with toJSON', function (assert) { - // Create a test object that has an overridden `toJSON` property - TestObject.prototype.toJSON = function () { - return { special: 'case' } - } - function TestObject (content) {} - - // Creating a simple circular object structure - const parentObject = {} - parentObject.childObject = new TestObject() - parentObject.childObject.parentObject = parentObject - - // Creating a simple circular object structure - const otherParentObject = new TestObject() - otherParentObject.otherChildObject = {} - otherParentObject.otherChildObject.otherParentObject = otherParentObject - - // Making sure our original tests work - assert.same(parentObject.childObject.parentObject, parentObject) - assert.same( - otherParentObject.otherChildObject.otherParentObject, - otherParentObject - ) - - // Should both be idempotent - assert.equal(fss(parentObject), '{"childObject":{"special":"case"}}') - assert.equal(fss(otherParentObject), '{"special":"case"}') - - // Therefore the following assertion should be `true` - assert.same(parentObject.childObject.parentObject, parentObject) - assert.same( - otherParentObject.otherChildObject.otherParentObject, - otherParentObject - ) - - assert.end() -}) - -test('null object', function (assert) { - const expected = s(null) - const actual = fss(null) - assert.equal(actual, expected) - assert.end() -}) - -test('null property', function (assert) { - const expected = s({ f: null }) - const actual = fss({ f: null }) - assert.equal(actual, expected) - assert.end() -}) - -test('nested child circular reference in toJSON', function (assert) { - const circle = { some: 'data' } - circle.circle = circle - const a = { - b: { - toJSON: function () { - a.b = 2 - return '[Redacted]' - } - }, - baz: { - circle, - toJSON: function () { - a.baz = circle - return '[Redacted]' - } - } - } - const o = { - a, - bar: a - } - - const expected = s({ - a: { - b: '[Redacted]', - baz: '[Redacted]' - }, - bar: { - b: 2, - baz: { - some: 'data', - circle: '[Circular]' - } - } - }) - const actual = fss(o) - assert.equal(actual, expected) - assert.end() -}) - -test('circular getters are restored when stringified', function (assert) { - const fixture = { - name: 'Tywin Lannister', - get circle () { - return fixture - } - } - fss(fixture) - - assert.equal(fixture.circle, fixture) - assert.end() -}) - -test('non-configurable circular getters use a replacer instead of markers', function (assert) { - const fixture = { name: 'Tywin Lannister' } - Object.defineProperty(fixture, 'circle', { - configurable: false, - get: function () { - return fixture - }, - enumerable: true - }) - - fss(fixture) - - assert.equal(fixture.circle, fixture) - assert.end() -}) - -test('getter child circular reference are replaced instead of marked', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister', - get dinklage () { - return fixture.child - } - }, - get self () { - return fixture - } - } - - const expected = s({ - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister', - dinklage: '[Circular]' - }, - self: '[Circular]' - }) - const actual = fss(fixture) - assert.equal(actual, expected) - assert.end() -}) - -test('Proxy throwing', function (assert) { - assert.plan(1) - const s = new stream.PassThrough() - s.resume() - s.write('', () => { - assert.end() - }) - const actual = fss({ s, p: new Proxy({}, { get () { throw new Error('kaboom') } }) }) - assert.equal(actual, '"[unable to serialize, circular reference is too complex to analyze]"') -}) - -test('depthLimit option - will replace deep objects', function (assert) { - const fixture = { - name: 'Tywin Lannister', - child: { - name: 'Tyrion Lannister' - }, - get self () { - return fixture - } - } - - const expected = s({ - name: 'Tywin Lannister', - child: '[...]', - self: '[Circular]' - }) - const actual = fss(fixture, undefined, undefined, { - depthLimit: 1, - edgesLimit: 1 - }) - assert.equal(actual, expected) - assert.end() -}) - -test('edgesLimit option - will replace deep objects', function (assert) { - const fixture = { - object: { - 1: { test: 'test' }, - 2: { test: 'test' }, - 3: { test: 'test' }, - 4: { test: 'test' } - }, - array: [ - { test: 'test' }, - { test: 'test' }, - { test: 'test' }, - { test: 'test' } - ], - get self () { - return fixture - } - } - - const expected = s({ - object: { - 1: { test: 'test' }, - 2: { test: 'test' }, - 3: { test: 'test' }, - 4: '[...]' - }, - array: [{ test: 'test' }, { test: 'test' }, { test: 'test' }, '[...]'], - self: '[Circular]' - }) - const actual = fss(fixture, undefined, undefined, { - depthLimit: 3, - edgesLimit: 3 - }) - assert.equal(actual, expected) - assert.end() -}) diff --git a/build/node_modules/fastest-levenshtein/.eslintrc.json b/build/node_modules/fastest-levenshtein/.eslintrc.json deleted file mode 100644 index 691f81ba..00000000 --- a/build/node_modules/fastest-levenshtein/.eslintrc.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 2020 - }, - "extends": [ - "eslint:all", - "prettier", - "plugin:node/recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint"], - "rules": { - "capitalized-comments": "off", - "camelcase": "off", - "curly": ["error", "all"], - "id-length": "off", - "max-lines-per-function": "off", - "max-statements": "off", - "multiline-comment-style": "off", - "no-bitwise": "off", - "no-magic-numbers": "off", - "no-param-reassign": "off", - "no-plusplus": "off", - "node/no-unsupported-features/es-syntax": "off", - "one-var": "off", - "padded-blocks": "off" - } -} diff --git a/build/node_modules/fastest-levenshtein/.prettierrc b/build/node_modules/fastest-levenshtein/.prettierrc deleted file mode 100644 index 222861c3..00000000 --- a/build/node_modules/fastest-levenshtein/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "tabWidth": 2, - "useTabs": false -} diff --git a/build/node_modules/fastest-levenshtein/.travis.yml b/build/node_modules/fastest-levenshtein/.travis.yml deleted file mode 100644 index 7b2f12d1..00000000 --- a/build/node_modules/fastest-levenshtein/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -sudo: false - -language: node_js - -os: - - linux - - osx - - windows - -arch: amd64 - -node_js: - - 14 - - 13 - - 12 - - 11 - - 10 - -script: - - npm test - - npm run test:coveralls \ No newline at end of file diff --git a/build/node_modules/fastest-levenshtein/LICENSE.md b/build/node_modules/fastest-levenshtein/LICENSE.md deleted file mode 100644 index 0e62da30..00000000 --- a/build/node_modules/fastest-levenshtein/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Kasper Unn Weihe - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/fastest-levenshtein/README.md b/build/node_modules/fastest-levenshtein/README.md deleted file mode 100644 index 4d19e880..00000000 --- a/build/node_modules/fastest-levenshtein/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# fastest-levenshtein :rocket: -> Fastest JS/TS implemenation of [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance).
-> Measure the difference between two strings. - -[![Build Status](https://travis-ci.org/ka-weihe/fastest-levenshtein.svg?branch=master)](https://travis-ci.org/ka-weihe/fastest-levenshtein) -[![Coverage Status](https://coveralls.io/repos/github/ka-weihe/node-levenshtein/badge.svg?branch=master)](https://coveralls.io/github/ka-weihe/node-levenshtein?branch=master) -[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/ka-weihe/fastest-levenshtein.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/ka-weihe/fastest-levenshtein/context:javascript) -![npm](https://img.shields.io/npm/dm/fastest-levenshtein) -```bash -$ npm i fastest-levenshtein -``` - -## Usage -### Node -```javascript -const {distance, closest} = require('fastest-levenshtein') - -// Print levenshtein-distance between 'fast' and 'faster' -console.log(distance('fast', 'faster')) -//=> 2 - -// Print string from array with lowest edit-distance to 'fast' -console.log(closest('fast', ['slow', 'faster', 'fastest'])) -//=> 'faster' -``` - -### Deno -```javascript -import {distance, closest} from 'https://deno.land/x/fastest_levenshtein/mod.ts' - -// Print levenshtein-distance between 'fast' and 'faster' -console.log(distance('fast', 'faster')) -//=> 2 - -// Print string from array with lowest edit-distance to 'fast' -console.log(closest('fast', ['slow', 'faster', 'fastest'])) -//=> 'faster' -``` - -## Benchmark -I generated 500 pairs of strings with length N. I measured the ops/sec each library achieves to process all the given pairs. Higher is better. - -| Test Target | N=4 | N=8 | N=16 | N=32 | N=64 | N=128 | N=256 | N=512 | N=1024 | -|---------------------------|-------|-------|-------|------|-------|-------|-------|-------|--------| -| fastest-levenshtein | 44423 | 23702 | 10764 | 4595 | 1049 | 291.5 | 86.64 | 22.24 | 5.473 | -| js-levenshtein | 21261 | 10030 | 2939 | 824 | 223 | 57.62 | 14.77 | 3.717 | 0.934 | -| leven | 19688 | 6884 | 1606 | 436 | 117 | 30.34 | 7.604 | 1.929 | 0.478 | -| fast-levenshtein | 18577 | 6112 | 1265 | 345 | 89.41 | 22.70 | 5.676 | 1.428 | 0.348 | -| levenshtein-edit-distance | 22968 | 7445 | 1493 | 409 | 109 | 28.07 | 7.095 | 1.789 | 0.445 | - -### Relative Performance -This image shows the relative performance between `fastest-levenshtein` and `js-levenshtein` (the 2nd fastest). `fastest-levenshtein` is always a lot faster. y-axis shows "times faster". - -![Benchmark](/images/relaperf.png) - -## License -This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details diff --git a/build/node_modules/fastest-levenshtein/bench.js b/build/node_modules/fastest-levenshtein/bench.js deleted file mode 100644 index 1fd420bd..00000000 --- a/build/node_modules/fastest-levenshtein/bench.js +++ /dev/null @@ -1,96 +0,0 @@ -"use strict"; -exports.__esModule = true; -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable no-console */ -var Benchmark = require("benchmark"); -var mod_js_1 = require("./mod.js"); -var fast_levenshtein_1 = require("fast-levenshtein"); -var fs = require("fs"); -var jslevenshtein = require("js-levenshtein"); -var leven = require("leven"); -var levenshteinEditDistance = require("levenshtein-edit-distance"); -var suite = new Benchmark.Suite(); -var randomstring = function (length) { - var result = ""; - var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - var charactersLength = characters.length; - for (var i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - return result; -}; -var randomstringArr = function (stringSize, arraySize) { - var i = 0; - var arr = []; - for (i = 0; i < arraySize; i++) { - arr.push(randomstring(stringSize)); - } - return arr; -}; -var arrSize = 1000; -if (!fs.existsSync("data.json")) { - var data_1 = [ - randomstringArr(4, arrSize), - randomstringArr(8, arrSize), - randomstringArr(16, arrSize), - randomstringArr(32, arrSize), - randomstringArr(64, arrSize), - randomstringArr(128, arrSize), - randomstringArr(256, arrSize), - randomstringArr(512, arrSize), - randomstringArr(1024, arrSize), - ]; - fs.writeFileSync("data.json", JSON.stringify(data_1)); -} -var data = JSON.parse(fs.readFileSync("data.json", "utf8")); -var _loop_1 = function (i) { - var datapick = data[i]; - if (process.argv[2] !== "no") { - suite - .add("".concat(i, " - js-levenshtein"), function () { - for (var j = 0; j < arrSize - 1; j += 2) { - jslevenshtein(datapick[j], datapick[j + 1]); - } - }) - .add("".concat(i, " - leven"), function () { - for (var j = 0; j < arrSize - 1; j += 2) { - leven(datapick[j], datapick[j + 1]); - } - }) - .add("".concat(i, " - fast-levenshtein"), function () { - for (var j = 0; j < arrSize - 1; j += 2) { - (0, fast_levenshtein_1.get)(datapick[j], datapick[j + 1]); - } - }) - .add("".concat(i, " - levenshtein-edit-distance"), function () { - for (var j = 0; j < arrSize - 1; j += 2) { - levenshteinEditDistance(datapick[j], datapick[j + 1]); - } - }); - } - suite.add("".concat(i, " - fastest-levenshtein"), function () { - for (var j = 0; j < arrSize - 1; j += 2) { - (0, mod_js_1.distance)(datapick[j], datapick[j + 1]); - } - }); -}; -// BENCHMARKS -for (var i = 0; i < 9; i++) { - _loop_1(i); -} -var results = new Map(); -suite - .on("cycle", function (event) { - console.log(String(event.target)); - if (results.has(event.target.name[0])) { - results.get(event.target.name[0]).push(event.target.hz); - } - else { - results.set(event.target.name[0], [event.target.hz]); - } -}) - .on("complete", function () { - console.log(results); -}) - // run async - .run({ async: true }); diff --git a/build/node_modules/fastest-levenshtein/mod.d.ts b/build/node_modules/fastest-levenshtein/mod.d.ts deleted file mode 100644 index b1b5ce7f..00000000 --- a/build/node_modules/fastest-levenshtein/mod.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const distance: (a: string, b: string) => number; -declare const closest: (str: string, arr: readonly string[]) => string; -export { closest, distance }; diff --git a/build/node_modules/fastest-levenshtein/mod.js b/build/node_modules/fastest-levenshtein/mod.js deleted file mode 100644 index 6bc27459..00000000 --- a/build/node_modules/fastest-levenshtein/mod.js +++ /dev/null @@ -1,142 +0,0 @@ -"use strict"; -exports.__esModule = true; -exports.distance = exports.closest = void 0; -var peq = new Uint32Array(0x10000); -var myers_32 = function (a, b) { - var n = a.length; - var m = b.length; - var lst = 1 << (n - 1); - var pv = -1; - var mv = 0; - var sc = n; - var i = n; - while (i--) { - peq[a.charCodeAt(i)] |= 1 << i; - } - for (i = 0; i < m; i++) { - var eq = peq[b.charCodeAt(i)]; - var xv = eq | mv; - eq |= ((eq & pv) + pv) ^ pv; - mv |= ~(eq | pv); - pv &= eq; - if (mv & lst) { - sc++; - } - if (pv & lst) { - sc--; - } - mv = (mv << 1) | 1; - pv = (pv << 1) | ~(xv | mv); - mv &= xv; - } - i = n; - while (i--) { - peq[a.charCodeAt(i)] = 0; - } - return sc; -}; -var myers_x = function (b, a) { - var n = a.length; - var m = b.length; - var mhc = []; - var phc = []; - var hsize = Math.ceil(n / 32); - var vsize = Math.ceil(m / 32); - for (var i = 0; i < hsize; i++) { - phc[i] = -1; - mhc[i] = 0; - } - var j = 0; - for (; j < vsize - 1; j++) { - var mv_1 = 0; - var pv_1 = -1; - var start_1 = j * 32; - var vlen_1 = Math.min(32, m) + start_1; - for (var k = start_1; k < vlen_1; k++) { - peq[b.charCodeAt(k)] |= 1 << k; - } - for (var i = 0; i < n; i++) { - var eq = peq[a.charCodeAt(i)]; - var pb = (phc[(i / 32) | 0] >>> i) & 1; - var mb = (mhc[(i / 32) | 0] >>> i) & 1; - var xv = eq | mv_1; - var xh = ((((eq | mb) & pv_1) + pv_1) ^ pv_1) | eq | mb; - var ph = mv_1 | ~(xh | pv_1); - var mh = pv_1 & xh; - if ((ph >>> 31) ^ pb) { - phc[(i / 32) | 0] ^= 1 << i; - } - if ((mh >>> 31) ^ mb) { - mhc[(i / 32) | 0] ^= 1 << i; - } - ph = (ph << 1) | pb; - mh = (mh << 1) | mb; - pv_1 = mh | ~(xv | ph); - mv_1 = ph & xv; - } - for (var k = start_1; k < vlen_1; k++) { - peq[b.charCodeAt(k)] = 0; - } - } - var mv = 0; - var pv = -1; - var start = j * 32; - var vlen = Math.min(32, m - start) + start; - for (var k = start; k < vlen; k++) { - peq[b.charCodeAt(k)] |= 1 << k; - } - var score = m; - for (var i = 0; i < n; i++) { - var eq = peq[a.charCodeAt(i)]; - var pb = (phc[(i / 32) | 0] >>> i) & 1; - var mb = (mhc[(i / 32) | 0] >>> i) & 1; - var xv = eq | mv; - var xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb; - var ph = mv | ~(xh | pv); - var mh = pv & xh; - score += (ph >>> (m - 1)) & 1; - score -= (mh >>> (m - 1)) & 1; - if ((ph >>> 31) ^ pb) { - phc[(i / 32) | 0] ^= 1 << i; - } - if ((mh >>> 31) ^ mb) { - mhc[(i / 32) | 0] ^= 1 << i; - } - ph = (ph << 1) | pb; - mh = (mh << 1) | mb; - pv = mh | ~(xv | ph); - mv = ph & xv; - } - for (var k = start; k < vlen; k++) { - peq[b.charCodeAt(k)] = 0; - } - return score; -}; -var distance = function (a, b) { - if (a.length < b.length) { - var tmp = b; - b = a; - a = tmp; - } - if (b.length === 0) { - return a.length; - } - if (a.length <= 32) { - return myers_32(a, b); - } - return myers_x(a, b); -}; -exports.distance = distance; -var closest = function (str, arr) { - var min_distance = Infinity; - var min_index = 0; - for (var i = 0; i < arr.length; i++) { - var dist = distance(str, arr[i]); - if (dist < min_distance) { - min_distance = dist; - min_index = i; - } - } - return arr[min_index]; -}; -exports.closest = closest; diff --git a/build/node_modules/fastest-levenshtein/package.json b/build/node_modules/fastest-levenshtein/package.json deleted file mode 100644 index c395b852..00000000 --- a/build/node_modules/fastest-levenshtein/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "fastest-levenshtein", - "version": "1.0.16", - "description": "Fastest Levenshtein distance implementation in JS.", - "main": "mod.js", - "types": "mod.d.ts", - "module": "./esm/mod.js", - "repository": { - "type": "git", - "url": "git+https://github.com/ka-weihe/fastest-levenshtein.git" - }, - "keywords": [ - "levenshtein", - "distance", - "fast", - "fastest", - "edit", - "string", - "similarity", - "algorithm", - "match", - "comparison", - "fuzzy", - "search", - "string", - "matching", - "similar", - "node", - "difference" - ], - "author": "Kasper U. Weihe", - "license": "MIT", - "bugs": { - "url": "https://github.com/ka-weihe/fastest-levenshtein/issues" - }, - "homepage": "https://github.com/ka-weihe/fastest-levenshtein#README", - "scripts": { - "build": "tsc mod.ts --declaration", - "build:esm": "tsc --declaration -p tsconfig.esm.json", - "prepare": "npm run build && npm run build:esm", - "bench": "npm run build && tsc bench.ts && node bench.js", - "test": "npm run build && tsc test.ts && jest test.js", - "test:coverage": "npm run build && jest --coverage", - "test:coveralls": "npm run build && jest --coverage --coverageReporters=text-lcov | coveralls" - }, - "devDependencies": { - "@types/benchmark": "^1.0.33", - "@types/jest": "^26.0.15", - "@typescript-eslint/eslint-plugin": "^4.7.0", - "@typescript-eslint/parser": "^4.7.0", - "benchmark": "^2.1.4", - "coveralls": "^3.1.0", - "eslint": "^7.13.0", - "eslint-config-node": "^4.1.0", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.1.4", - "fast-levenshtein": "^2.0.6", - "jest": "^26.6.3", - "js-levenshtein": "^1.1.6", - "leven": "^3.1.0", - "levenshtein-edit-distance": "^2.0.5", - "natural": "^2.1.5", - "prettier": "^2.1.2", - "talisman": "^1.1.3", - "typescript": "^4.0.5" - }, - "engines": { - "node": ">= 4.9.1" - } -} diff --git a/build/node_modules/fastest-levenshtein/test.js b/build/node_modules/fastest-levenshtein/test.js deleted file mode 100644 index 47506339..00000000 --- a/build/node_modules/fastest-levenshtein/test.js +++ /dev/null @@ -1,55 +0,0 @@ -var _a = require("./mod.js"), closest = _a.closest, distance = _a.distance; -var levenshtein = function (a, b) { - if (a.length === 0) { - return b.length; - } - if (b.length === 0) { - return a.length; - } - if (a.length > b.length) { - var tmp = a; - a = b; - b = tmp; - } - var row = []; - for (var i = 0; i <= a.length; i++) { - row[i] = i; - } - for (var i = 1; i <= b.length; i++) { - var prev = i; - for (var j = 1; j <= a.length; j++) { - var val = 0; - if (b.charAt(i - 1) === a.charAt(j - 1)) { - val = row[j - 1]; - } - else { - val = Math.min(row[j - 1] + 1, prev + 1, row[j] + 1); - } - row[j - 1] = prev; - prev = val; - } - row[a.length] = prev; - } - return row[a.length]; -}; -var makeid = function (length) { - var result = ""; - var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - var charactersLength = characters.length; - for (var i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - return result; -}; -for (var i = 0; i < 10000; i++) { - var rnd_num1 = (Math.random() * 1000) | 0; - var rnd_num2 = (Math.random() * 1000) | 0; - var rnd_string1 = makeid(rnd_num1); - var rnd_string2 = makeid(rnd_num2); - var actual = distance(rnd_string1, rnd_string2); - var expected = levenshtein(rnd_string1, rnd_string2); - console.log(i); - if (actual !== expected) { - console.log("fail"); - } -} diff --git a/build/node_modules/fastest-levenshtein/test.ts b/build/node_modules/fastest-levenshtein/test.ts deleted file mode 100644 index 41939bcd..00000000 --- a/build/node_modules/fastest-levenshtein/test.ts +++ /dev/null @@ -1,67 +0,0 @@ -const { closest, distance } = require("./mod.js"); - -const levenshtein = (a, b) => { - if (a.length === 0) { - return b.length; - } - if (b.length === 0) { - return a.length; - } - - if (a.length > b.length) { - const tmp = a; - a = b; - b = tmp; - } - - const row = []; - for (let i = 0; i <= a.length; i++) { - row[i] = i; - } - - for (let i = 1; i <= b.length; i++) { - let prev = i; - for (let j = 1; j <= a.length; j++) { - let val = 0; - if (b.charAt(i - 1) === a.charAt(j - 1)) { - val = row[j - 1]; - } else { - val = Math.min(row[j - 1] + 1, prev + 1, row[j] + 1); - } - row[j - 1] = prev; - prev = val; - } - row[a.length] = prev; - } - - return row[a.length]; -}; - -const makeid = (length) => { - let result = ""; - const characters = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - const charactersLength = characters.length; - for (let i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - return result; -}; - -test("test compare", () => { - for (let i = 0; i < 1000; i++) { - const rnd_num1 = (Math.random() * 1000) | 0; - const rnd_num2 = (Math.random() * 1000) | 0; - const rnd_string1 = makeid(rnd_num1); - const rnd_string2 = makeid(rnd_num2); - const actual = distance(rnd_string1, rnd_string2); - const expected = levenshtein(rnd_string1, rnd_string2); - expect(actual).toBe(expected); - } -}); - -test("test find", () => { - const actual = closest("fast", ["slow", "faster", "fastest"]); - const expected = "faster"; - expect(actual).toBe(expected); -}); diff --git a/build/node_modules/fastq/LICENSE b/build/node_modules/fastq/LICENSE deleted file mode 100644 index 27c7bb46..00000000 --- a/build/node_modules/fastq/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2015-2020, Matteo Collina - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/fastq/README.md b/build/node_modules/fastq/README.md deleted file mode 100644 index 8a25fef8..00000000 --- a/build/node_modules/fastq/README.md +++ /dev/null @@ -1,309 +0,0 @@ -# fastq - -![ci][ci-url] -[![npm version][npm-badge]][npm-url] -[![Dependency Status][david-badge]][david-url] - -Fast, in memory work queue. - -Benchmarks (1 million tasks): - -* setImmediate: 812ms -* fastq: 854ms -* async.queue: 1298ms -* neoAsync.queue: 1249ms - -Obtained on node 12.16.1, on a dedicated server. - -If you need zero-overhead series function call, check out -[fastseries](http://npm.im/fastseries). For zero-overhead parallel -function call, check out [fastparallel](http://npm.im/fastparallel). - -[![js-standard-style](https://raw.githubusercontent.com/feross/standard/master/badge.png)](https://github.com/feross/standard) - - * Installation - * Usage - * API - * Licence & copyright - -## Install - -`npm i fastq --save` - -## Usage (callback API) - -```js -'use strict' - -const queue = require('fastq')(worker, 1) - -queue.push(42, function (err, result) { - if (err) { throw err } - console.log('the result is', result) -}) - -function worker (arg, cb) { - cb(null, arg * 2) -} -``` - -## Usage (promise API) - -```js -const queue = require('fastq').promise(worker, 1) - -async function worker (arg) { - return arg * 2 -} - -async function run () { - const result = await queue.push(42) - console.log('the result is', result) -} - -run() -``` - -### Setting "this" - -```js -'use strict' - -const that = { hello: 'world' } -const queue = require('fastq')(that, worker, 1) - -queue.push(42, function (err, result) { - if (err) { throw err } - console.log(this) - console.log('the result is', result) -}) - -function worker (arg, cb) { - console.log(this) - cb(null, arg * 2) -} -``` - -### Using with TypeScript (callback API) - -```ts -'use strict' - -import * as fastq from "fastq"; -import type { queue, done } from "fastq"; - -type Task = { - id: number -} - -const q: queue = fastq(worker, 1) - -q.push({ id: 42}) - -function worker (arg: Task, cb: done) { - console.log(arg.id) - cb(null) -} -``` - -### Using with TypeScript (promise API) - -```ts -'use strict' - -import * as fastq from "fastq"; -import type { queueAsPromised } from "fastq"; - -type Task = { - id: number -} - -const q: queueAsPromised = fastq.promise(asyncWorker, 1) - -q.push({ id: 42}).catch((err) => console.error(err)) - -async function asyncWorker (arg: Task): Promise { - // No need for a try-catch block, fastq handles errors automatically - console.log(arg.id) -} -``` - -## API - -* fastqueue() -* queue#push() -* queue#unshift() -* queue#pause() -* queue#resume() -* queue#idle() -* queue#length() -* queue#getQueue() -* queue#kill() -* queue#killAndDrain() -* queue#error() -* queue#concurrency -* queue#drain -* queue#empty -* queue#saturated -* fastqueue.promise() - -------------------------------------------------------- - -### fastqueue([that], worker, concurrency) - -Creates a new queue. - -Arguments: - -* `that`, optional context of the `worker` function. -* `worker`, worker function, it would be called with `that` as `this`, - if that is specified. -* `concurrency`, number of concurrent tasks that could be executed in - parallel. - -------------------------------------------------------- - -### queue.push(task, done) - -Add a task at the end of the queue. `done(err, result)` will be called -when the task was processed. - -------------------------------------------------------- - -### queue.unshift(task, done) - -Add a task at the beginning of the queue. `done(err, result)` will be called -when the task was processed. - -------------------------------------------------------- - -### queue.pause() - -Pause the processing of tasks. Currently worked tasks are not -stopped. - -------------------------------------------------------- - -### queue.resume() - -Resume the processing of tasks. - -------------------------------------------------------- - -### queue.idle() - -Returns `false` if there are tasks being processed or waiting to be processed. -`true` otherwise. - -------------------------------------------------------- - -### queue.length() - -Returns the number of tasks waiting to be processed (in the queue). - -------------------------------------------------------- - -### queue.getQueue() - -Returns all the tasks be processed (in the queue). Returns empty array when there are no tasks - -------------------------------------------------------- - -### queue.kill() - -Removes all tasks waiting to be processed, and reset `drain` to an empty -function. - -------------------------------------------------------- - -### queue.killAndDrain() - -Same than `kill` but the `drain` function will be called before reset to empty. - -------------------------------------------------------- - -### queue.error(handler) - -Set a global error handler. `handler(err, task)` will be called -each time a task is completed, `err` will be not null if the task has thrown an error. - -------------------------------------------------------- - -### queue.concurrency - -Property that returns the number of concurrent tasks that could be executed in -parallel. It can be altered at runtime. - -------------------------------------------------------- - -### queue.drain - -Function that will be called when the last -item from the queue has been processed by a worker. -It can be altered at runtime. - -------------------------------------------------------- - -### queue.empty - -Function that will be called when the last -item from the queue has been assigned to a worker. -It can be altered at runtime. - -------------------------------------------------------- - -### queue.saturated - -Function that will be called when the queue hits the concurrency -limit. -It can be altered at runtime. - -------------------------------------------------------- - -### fastqueue.promise([that], worker(arg), concurrency) - -Creates a new queue with `Promise` apis. It also offers all the methods -and properties of the object returned by [`fastqueue`](#fastqueue) with the modified -[`push`](#pushPromise) and [`unshift`](#unshiftPromise) methods. - -Node v10+ is required to use the promisified version. - -Arguments: -* `that`, optional context of the `worker` function. -* `worker`, worker function, it would be called with `that` as `this`, - if that is specified. It MUST return a `Promise`. -* `concurrency`, number of concurrent tasks that could be executed in - parallel. - - -#### queue.push(task) => Promise - -Add a task at the end of the queue. The returned `Promise` will be fulfilled (rejected) -when the task is completed successfully (unsuccessfully). - -This promise could be ignored as it will not lead to a `'unhandledRejection'`. - - -#### queue.unshift(task) => Promise - -Add a task at the beginning of the queue. The returned `Promise` will be fulfilled (rejected) -when the task is completed successfully (unsuccessfully). - -This promise could be ignored as it will not lead to a `'unhandledRejection'`. - - -#### queue.drained() => Promise - -Wait for the queue to be drained. The returned `Promise` will be resolved when all tasks in the queue have been processed by a worker. - -This promise could be ignored as it will not lead to a `'unhandledRejection'`. - -## License - -ISC - -[ci-url]: https://github.com/mcollina/fastq/workflows/ci/badge.svg -[npm-badge]: https://badge.fury.io/js/fastq.svg -[npm-url]: https://badge.fury.io/js/fastq -[david-badge]: https://david-dm.org/mcollina/fastq.svg -[david-url]: https://david-dm.org/mcollina/fastq diff --git a/build/node_modules/fastq/bench.js b/build/node_modules/fastq/bench.js deleted file mode 100644 index 4eaa829f..00000000 --- a/build/node_modules/fastq/bench.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict' - -const max = 1000000 -const fastqueue = require('./')(worker, 1) -const { promisify } = require('util') -const immediate = promisify(setImmediate) -const qPromise = require('./').promise(immediate, 1) -const async = require('async') -const neo = require('neo-async') -const asyncqueue = async.queue(worker, 1) -const neoqueue = neo.queue(worker, 1) - -function bench (func, done) { - const key = max + '*' + func.name - let count = -1 - - console.time(key) - end() - - function end () { - if (++count < max) { - func(end) - } else { - console.timeEnd(key) - if (done) { - done() - } - } - } -} - -function benchFastQ (done) { - fastqueue.push(42, done) -} - -function benchAsyncQueue (done) { - asyncqueue.push(42, done) -} - -function benchNeoQueue (done) { - neoqueue.push(42, done) -} - -function worker (arg, cb) { - setImmediate(cb) -} - -function benchSetImmediate (cb) { - worker(42, cb) -} - -function benchFastQPromise (done) { - qPromise.push(42).then(function () { done() }, done) -} - -function runBench (done) { - async.eachSeries([ - benchSetImmediate, - benchFastQ, - benchNeoQueue, - benchAsyncQueue, - benchFastQPromise - ], bench, done) -} - -runBench(runBench) diff --git a/build/node_modules/fastq/example.js b/build/node_modules/fastq/example.js deleted file mode 100644 index 665fdc84..00000000 --- a/build/node_modules/fastq/example.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' - -/* eslint-disable no-var */ - -var queue = require('./')(worker, 1) - -queue.push(42, function (err, result) { - if (err) { throw err } - console.log('the result is', result) -}) - -function worker (arg, cb) { - cb(null, 42 * 2) -} diff --git a/build/node_modules/fastq/example.mjs b/build/node_modules/fastq/example.mjs deleted file mode 100644 index 81be789a..00000000 --- a/build/node_modules/fastq/example.mjs +++ /dev/null @@ -1,11 +0,0 @@ -import { promise as queueAsPromised } from './queue.js' - -/* eslint-disable */ - -const queue = queueAsPromised(worker, 1) - -console.log('the result is', await queue.push(42)) - -async function worker (arg) { - return 42 * 2 -} diff --git a/build/node_modules/fastq/index.d.ts b/build/node_modules/fastq/index.d.ts deleted file mode 100644 index 65ebe658..00000000 --- a/build/node_modules/fastq/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -declare function fastq(context: C, worker: fastq.worker, concurrency: number): fastq.queue -declare function fastq(worker: fastq.worker, concurrency: number): fastq.queue - -declare namespace fastq { - type worker = (this: C, task: T, cb: fastq.done) => void - type asyncWorker = (this: C, task: T) => Promise - type done = (err: Error | null, result?: R) => void - type errorHandler = (err: Error, task: T) => void - - interface queue { - push(task: T, done?: done): void - unshift(task: T, done?: done): void - pause(): any - resume(): any - idle(): boolean - length(): number - getQueue(): T[] - kill(): any - killAndDrain(): any - error(handler: errorHandler): void - concurrency: number - drain(): any - empty: () => void - saturated: () => void - } - - interface queueAsPromised extends queue { - push(task: T): Promise - unshift(task: T): Promise - drained(): Promise - } - - function promise(context: C, worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised - function promise(worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised -} - -export = fastq diff --git a/build/node_modules/fastq/package.json b/build/node_modules/fastq/package.json deleted file mode 100644 index bf572e31..00000000 --- a/build/node_modules/fastq/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "fastq", - "version": "1.15.0", - "description": "Fast, in memory work queue", - "main": "queue.js", - "scripts": { - "lint": "standard --verbose | snazzy", - "unit": "nyc --lines 100 --branches 100 --functions 100 --check-coverage --reporter=text tape test/test.js test/promise.js", - "coverage": "nyc --reporter=html --reporter=cobertura --reporter=text tape test/test.js test/promise.js", - "test:report": "npm run lint && npm run unit:report", - "test": "npm run lint && npm run unit && npm run typescript", - "typescript": "tsc --project ./test/tsconfig.json", - "legacy": "tape test/test.js" - }, - "pre-commit": [ - "test" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/mcollina/fastq.git" - }, - "keywords": [ - "fast", - "queue", - "async", - "worker" - ], - "author": "Matteo Collina ", - "license": "ISC", - "bugs": { - "url": "https://github.com/mcollina/fastq/issues" - }, - "homepage": "https://github.com/mcollina/fastq#readme", - "devDependencies": { - "async": "^3.1.0", - "neo-async": "^2.6.1", - "nyc": "^15.0.0", - "pre-commit": "^1.2.2", - "snazzy": "^9.0.0", - "standard": "^16.0.0", - "tape": "^5.0.0", - "typescript": "^4.0.2" - }, - "dependencies": { - "reusify": "^1.0.4" - }, - "standard": { - "ignore": [ - "example.mjs" - ] - } -} diff --git a/build/node_modules/fastq/queue.js b/build/node_modules/fastq/queue.js deleted file mode 100644 index 03fe1127..00000000 --- a/build/node_modules/fastq/queue.js +++ /dev/null @@ -1,289 +0,0 @@ -'use strict' - -/* eslint-disable no-var */ - -var reusify = require('reusify') - -function fastqueue (context, worker, concurrency) { - if (typeof context === 'function') { - concurrency = worker - worker = context - context = null - } - - if (concurrency < 1) { - throw new Error('fastqueue concurrency must be greater than 1') - } - - var cache = reusify(Task) - var queueHead = null - var queueTail = null - var _running = 0 - var errorHandler = null - - var self = { - push: push, - drain: noop, - saturated: noop, - pause: pause, - paused: false, - concurrency: concurrency, - running: running, - resume: resume, - idle: idle, - length: length, - getQueue: getQueue, - unshift: unshift, - empty: noop, - kill: kill, - killAndDrain: killAndDrain, - error: error - } - - return self - - function running () { - return _running - } - - function pause () { - self.paused = true - } - - function length () { - var current = queueHead - var counter = 0 - - while (current) { - current = current.next - counter++ - } - - return counter - } - - function getQueue () { - var current = queueHead - var tasks = [] - - while (current) { - tasks.push(current.value) - current = current.next - } - - return tasks - } - - function resume () { - if (!self.paused) return - self.paused = false - for (var i = 0; i < self.concurrency; i++) { - _running++ - release() - } - } - - function idle () { - return _running === 0 && self.length() === 0 - } - - function push (value, done) { - var current = cache.get() - - current.context = context - current.release = release - current.value = value - current.callback = done || noop - current.errorHandler = errorHandler - - if (_running === self.concurrency || self.paused) { - if (queueTail) { - queueTail.next = current - queueTail = current - } else { - queueHead = current - queueTail = current - self.saturated() - } - } else { - _running++ - worker.call(context, current.value, current.worked) - } - } - - function unshift (value, done) { - var current = cache.get() - - current.context = context - current.release = release - current.value = value - current.callback = done || noop - - if (_running === self.concurrency || self.paused) { - if (queueHead) { - current.next = queueHead - queueHead = current - } else { - queueHead = current - queueTail = current - self.saturated() - } - } else { - _running++ - worker.call(context, current.value, current.worked) - } - } - - function release (holder) { - if (holder) { - cache.release(holder) - } - var next = queueHead - if (next) { - if (!self.paused) { - if (queueTail === queueHead) { - queueTail = null - } - queueHead = next.next - next.next = null - worker.call(context, next.value, next.worked) - if (queueTail === null) { - self.empty() - } - } else { - _running-- - } - } else if (--_running === 0) { - self.drain() - } - } - - function kill () { - queueHead = null - queueTail = null - self.drain = noop - } - - function killAndDrain () { - queueHead = null - queueTail = null - self.drain() - self.drain = noop - } - - function error (handler) { - errorHandler = handler - } -} - -function noop () {} - -function Task () { - this.value = null - this.callback = noop - this.next = null - this.release = noop - this.context = null - this.errorHandler = null - - var self = this - - this.worked = function worked (err, result) { - var callback = self.callback - var errorHandler = self.errorHandler - var val = self.value - self.value = null - self.callback = noop - if (self.errorHandler) { - errorHandler(err, val) - } - callback.call(self.context, err, result) - self.release(self) - } -} - -function queueAsPromised (context, worker, concurrency) { - if (typeof context === 'function') { - concurrency = worker - worker = context - context = null - } - - function asyncWrapper (arg, cb) { - worker.call(this, arg) - .then(function (res) { - cb(null, res) - }, cb) - } - - var queue = fastqueue(context, asyncWrapper, concurrency) - - var pushCb = queue.push - var unshiftCb = queue.unshift - - queue.push = push - queue.unshift = unshift - queue.drained = drained - - return queue - - function push (value) { - var p = new Promise(function (resolve, reject) { - pushCb(value, function (err, result) { - if (err) { - reject(err) - return - } - resolve(result) - }) - }) - - // Let's fork the promise chain to - // make the error bubble up to the user but - // not lead to a unhandledRejection - p.catch(noop) - - return p - } - - function unshift (value) { - var p = new Promise(function (resolve, reject) { - unshiftCb(value, function (err, result) { - if (err) { - reject(err) - return - } - resolve(result) - }) - }) - - // Let's fork the promise chain to - // make the error bubble up to the user but - // not lead to a unhandledRejection - p.catch(noop) - - return p - } - - function drained () { - if (queue.idle()) { - return new Promise(function (resolve) { - resolve() - }) - } - - var previousDrain = queue.drain - - var p = new Promise(function (resolve) { - queue.drain = function () { - previousDrain() - resolve() - } - }) - - return p - } -} - -module.exports = fastqueue -module.exports.promise = queueAsPromised diff --git a/build/node_modules/faye-websocket/CHANGELOG.md b/build/node_modules/faye-websocket/CHANGELOG.md deleted file mode 100644 index b152afec..00000000 --- a/build/node_modules/faye-websocket/CHANGELOG.md +++ /dev/null @@ -1,139 +0,0 @@ -### 0.11.4 / 2021-05-24 - -- Prevent the client hanging if `close()` is called when already closing - -### 0.11.3 / 2019-06-10 - -- Fix a race condition that caused a timeout not to be cancelled immediately - when the WebSocket is closed -- Change license from MIT to Apache 2.0 - -### 0.11.2 / 2019-06-10 - -(This version was pulled due to an error when publishing) - -### 0.11.1 / 2017-01-22 - -- Forcibly close the I/O stream after a timeout if the peer does not respond - after calling `close()` - -### 0.11.0 / 2016-02-24 - -- Introduce a `net` option to the `Client` class for setting things like, say, - `servername` - -### 0.10.0 / 2015-07-08 - -- Add the standard `code` and `reason` parameters to the `close` method - -### 0.9.4 / 2015-03-08 - -- Don't send input to the driver before `start()` is called - -### 0.9.3 / 2015-02-19 - -- Make sure the TCP socket is not left open when closing the connection - -### 0.9.2 / 2014-12-21 - -- Only emit `error` once, and don't emit it after `close` - -### 0.9.1 / 2014-12-18 - -- Check that all options to the WebSocket constructor are recognized - -### 0.9.0 / 2014-12-13 - -- Allow protocol extensions to be passed into websocket-extensions - -### 0.8.1 / 2014-11-12 - -- Send the correct hostname when upgrading a connection to TLS - -### 0.8.0 / 2014-11-08 - -- Support connections via HTTP proxies -- Close the connection cleanly if we're still waiting for a handshake response - -### 0.7.3 / 2014-10-04 - -- Allow sockets to be closed when they are in any state other than `CLOSED` - -### 0.7.2 / 2013-12-29 - -- Make sure the `close` event is emitted by clients on Node v0.10 - -### 0.7.1 / 2013-12-03 - -- Support the `maxLength` websocket-driver option -- Make the client emit `error` events on network errors - -### 0.7.0 / 2013-09-09 - -- Allow the server to send custom headers with EventSource responses - -### 0.6.1 / 2013-07-05 - -- Add `ca` option to the client for specifying certificate authorities -- Start the server driver asynchronously so that `onopen` handlers can be added - -### 0.6.0 / 2013-05-12 - -- Add support for custom headers - -### 0.5.0 / 2013-05-05 - -- Extract the protocol handlers into the `websocket-driver` library -- Support the Node streaming API - -### 0.4.4 / 2013-02-14 - -- Emit the `close` event if TCP is closed before CLOSE frame is acked - -### 0.4.3 / 2012-07-09 - -- Add `Connection: close` to EventSource response -- Handle situations where `request.socket` is undefined - -### 0.4.2 / 2012-04-06 - -- Add WebSocket error code `1011`. -- Handle URLs with no path correctly by sending `GET /` - -### 0.4.1 / 2012-02-26 - -- Treat anything other than a `Buffer` as a string when calling `send()` - -### 0.4.0 / 2012-02-13 - -- Add `ping()` method to server-side `WebSocket` and `EventSource` -- Buffer `send()` calls until the draft-76 handshake is complete -- Fix HTTPS problems on Node 0.7 - -### 0.3.1 / 2012-01-16 - -- Call `setNoDelay(true)` on `net.Socket` objects to reduce latency - -### 0.3.0 / 2012-01-13 - -- Add support for `EventSource` connections - -### 0.2.0 / 2011-12-21 - -- Add support for `Sec-WebSocket-Protocol` negotiation -- Support `hixie-76` close frames and 75/76 ignored segments -- Improve performance of HyBi parsing/framing functions -- Decouple parsers from TCP and reduce write volume - -### 0.1.2 / 2011-12-05 - -- Detect closed sockets on the server side when TCP connection breaks -- Make `hixie-76` sockets work through HAProxy - -### 0.1.1 / 2011-11-30 - -- Fix `addEventListener()` interface methods - -### 0.1.0 / 2011-11-27 - -- Initial release, based on WebSocket components from Faye diff --git a/build/node_modules/faye-websocket/LICENSE.md b/build/node_modules/faye-websocket/LICENSE.md deleted file mode 100644 index 1b47ee51..00000000 --- a/build/node_modules/faye-websocket/LICENSE.md +++ /dev/null @@ -1,12 +0,0 @@ -Copyright 2010-2021 James Coglan - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. diff --git a/build/node_modules/faye-websocket/README.md b/build/node_modules/faye-websocket/README.md deleted file mode 100644 index f62e1b56..00000000 --- a/build/node_modules/faye-websocket/README.md +++ /dev/null @@ -1,311 +0,0 @@ -# faye-websocket - -This is a general-purpose WebSocket implementation extracted from the -[Faye](http://faye.jcoglan.com) project. It provides classes for easily building -WebSocket servers and clients in Node. It does not provide a server itself, but -rather makes it easy to handle WebSocket connections within an existing -[Node](https://nodejs.org/) application. It does not provide any abstraction -other than the standard [WebSocket -API](https://html.spec.whatwg.org/multipage/comms.html#network). - -It also provides an abstraction for handling -[EventSource](https://html.spec.whatwg.org/multipage/comms.html#server-sent-events) -connections, which are one-way connections that allow the server to push data to -the client. They are based on streaming HTTP responses and can be easier to access -via proxies than WebSockets. - - -## Installation - -``` -$ npm install faye-websocket -``` - - -## Handling WebSocket connections in Node - -You can handle WebSockets on the server side by listening for HTTP Upgrade -requests, and creating a new socket for the request. This socket object exposes -the usual WebSocket methods for receiving and sending messages. For example this -is how you'd implement an echo server: - -```js -var WebSocket = require('faye-websocket'), - http = require('http'); - -var server = http.createServer(); - -server.on('upgrade', function(request, socket, body) { - if (WebSocket.isWebSocket(request)) { - var ws = new WebSocket(request, socket, body); - - ws.on('message', function(event) { - ws.send(event.data); - }); - - ws.on('close', function(event) { - console.log('close', event.code, event.reason); - ws = null; - }); - } -}); - -server.listen(8000); -``` - -`WebSocket` objects are also duplex streams, so you could replace the -`ws.on('message', ...)` line with: - -```js - ws.pipe(ws); -``` - -Note that under certain circumstances (notably a draft-76 client connecting -through an HTTP proxy), the WebSocket handshake will not be complete after you -call `new WebSocket()` because the server will not have received the entire -handshake from the client yet. In this case, calls to `ws.send()` will buffer -the message in memory until the handshake is complete, at which point any -buffered messages will be sent to the client. - -If you need to detect when the WebSocket handshake is complete, you can use the -`onopen` event. - -If the connection's protocol version supports it, you can call `ws.ping()` to -send a ping message and wait for the client's response. This method takes a -message string, and an optional callback that fires when a matching pong message -is received. It returns `true` if and only if a ping message was sent. If the -client does not support ping/pong, this method sends no data and returns -`false`. - -```js -ws.ping('Mic check, one, two', function() { - // fires when pong is received -}); -``` - - -## Using the WebSocket client - -The client supports both the plain-text `ws` protocol and the encrypted `wss` -protocol, and has exactly the same interface as a socket you would use in a web -browser. On the wire it identifies itself as `hybi-13`. - -```js -var WebSocket = require('faye-websocket'), - ws = new WebSocket.Client('ws://www.example.com/'); - -ws.on('open', function(event) { - console.log('open'); - ws.send('Hello, world!'); -}); - -ws.on('message', function(event) { - console.log('message', event.data); -}); - -ws.on('close', function(event) { - console.log('close', event.code, event.reason); - ws = null; -}); -``` - -The WebSocket client also lets you inspect the status and headers of the -handshake response via its `statusCode` and `headers` properties. - -To connect via a proxy, set the `proxy` option to the HTTP origin of the proxy, -including any authorization information, custom headers and TLS config you -require. Only the `origin` setting is required. - -```js -var ws = new WebSocket.Client('ws://www.example.com/', [], { - proxy: { - origin: 'http://username:password@proxy.example.com', - headers: { 'User-Agent': 'node' }, - tls: { cert: fs.readFileSync('client.crt') } - } -}); -``` - -The `tls` value is an object that will be passed to -[`tls.connect()`](https://nodejs.org/api/tls.html#tls_tls_connect_options_callback). - - -## Subprotocol negotiation - -The WebSocket protocol allows peers to select and identify the application -protocol to use over the connection. On the client side, you can set which -protocols the client accepts by passing a list of protocol names when you -construct the socket: - -```js -var ws = new WebSocket.Client('ws://www.example.com/', ['irc', 'amqp']); -``` - -On the server side, you can likewise pass in the list of protocols the server -supports after the other constructor arguments: - -```js -var ws = new WebSocket(request, socket, body, ['irc', 'amqp']); -``` - -If the client and server agree on a protocol, both the client- and server-side -socket objects expose the selected protocol through the `ws.protocol` property. - - -## Protocol extensions - -faye-websocket is based on the -[websocket-extensions](https://github.com/faye/websocket-extensions-node) -framework that allows extensions to be negotiated via the -`Sec-WebSocket-Extensions` header. To add extensions to a connection, pass an -array of extensions to the `:extensions` option. For example, to add -[permessage-deflate](https://github.com/faye/permessage-deflate-node): - -```js -var deflate = require('permessage-deflate'); - -var ws = new WebSocket(request, socket, body, [], { extensions: [deflate] }); -``` - - -## Initialization options - -Both the server- and client-side classes allow an options object to be passed in -at initialization time, for example: - -```js -var ws = new WebSocket(request, socket, body, protocols, options); -var ws = new WebSocket.Client(url, protocols, options); -``` - -`protocols` is an array of subprotocols as described above, or `null`. -`options` is an optional object containing any of these fields: - -- `extensions` - an array of - [websocket-extensions](https://github.com/faye/websocket-extensions-node) - compatible extensions, as described above -- `headers` - an object containing key-value pairs representing HTTP headers to - be sent during the handshake process -- `maxLength` - the maximum allowed size of incoming message frames, in bytes. - The default value is `2^26 - 1`, or 1 byte short of 64 MiB. -- `ping` - an integer that sets how often the WebSocket should send ping frames, - measured in seconds - -The client accepts some additional options: - -- `proxy` - settings for a proxy as described above -- `net` - an object containing settings for the origin server that will be - passed to - [`net.connect()`](https://nodejs.org/api/net.html#net_socket_connect_options_connectlistener) -- `tls` - an object containing TLS settings for the origin server, this will be - passed to - [`tls.connect()`](https://nodejs.org/api/tls.html#tls_tls_connect_options_callback) -- `ca` - (legacy) a shorthand for passing `{ tls: { ca: value } }` - - -## WebSocket API - -Both server- and client-side `WebSocket` objects support the following API. - -- **`on('open', function(event) {})`** fires when the socket connection is - established. Event has no attributes. -- **`on('message', function(event) {})`** fires when the socket receives a - message. Event has one attribute, **`data`**, which is either a `String` (for - text frames) or a `Buffer` (for binary frames). -- **`on('error', function(event) {})`** fires when there is a protocol error due - to bad data sent by the other peer. This event is purely informational, you do - not need to implement error recover. -- **`on('close', function(event) {})`** fires when either the client or the - server closes the connection. Event has two optional attributes, **`code`** - and **`reason`**, that expose the status code and message sent by the peer - that closed the connection. -- **`send(message)`** accepts either a `String` or a `Buffer` and sends a text - or binary message over the connection to the other peer. -- **`ping(message, function() {})`** sends a ping frame with an optional message - and fires the callback when a matching pong is received. -- **`close(code, reason)`** closes the connection, sending the given status code - and reason text, both of which are optional. -- **`version`** is a string containing the version of the `WebSocket` protocol - the connection is using. -- **`protocol`** is a string (which may be empty) identifying the subprotocol - the socket is using. - - -## Handling EventSource connections in Node - -EventSource connections provide a very similar interface, although because they -only allow the server to send data to the client, there is no `onmessage` API. -EventSource allows the server to push text messages to the client, where each -message has an optional event-type and ID. - -```js -var WebSocket = require('faye-websocket'), - EventSource = WebSocket.EventSource, - http = require('http'); - -var server = http.createServer(); - -server.on('request', function(request, response) { - if (EventSource.isEventSource(request)) { - var es = new EventSource(request, response); - console.log('open', es.url, es.lastEventId); - - // Periodically send messages - var loop = setInterval(function() { es.send('Hello') }, 1000); - - es.on('close', function() { - clearInterval(loop); - es = null; - }); - - } else { - // Normal HTTP request - response.writeHead(200, { 'Content-Type': 'text/plain' }); - response.end('Hello'); - } -}); - -server.listen(8000); -``` - -The `send` method takes two optional parameters, `event` and `id`. The default -event-type is `'message'` with no ID. For example, to send a `notification` -event with ID `99`: - -```js -es.send('Breaking News!', { event: 'notification', id: '99' }); -``` - -The `EventSource` object exposes the following properties: - -- **`url`** is a string containing the URL the client used to create the - EventSource. -- **`lastEventId`** is a string containing the last event ID received by the - client. You can use this when the client reconnects after a dropped connection - to determine which messages need resending. - -When you initialize an EventSource with ` new EventSource()`, you can pass -configuration options after the `response` parameter. Available options are: - -- **`headers`** is an object containing custom headers to be set on the - EventSource response. -- **`retry`** is a number that tells the client how long (in seconds) it should - wait after a dropped connection before attempting to reconnect. -- **`ping`** is a number that tells the server how often (in seconds) to send - 'ping' packets to the client to keep the connection open, to defeat timeouts - set by proxies. The client will ignore these messages. - -For example, this creates a connection that allows access from any origin, pings -every 15 seconds and is retryable every 10 seconds if the connection is broken: - -```js -var es = new EventSource(request, response, { - headers: { 'Access-Control-Allow-Origin': '*' }, - ping: 15, - retry: 10 -}); -``` - -You can send a ping message at any time by calling `es.ping()`. Unlike -WebSocket, the client does not send a response to this; it is merely to send -some data over the wire to keep the connection alive. diff --git a/build/node_modules/faye-websocket/package.json b/build/node_modules/faye-websocket/package.json deleted file mode 100644 index 26acc2ae..00000000 --- a/build/node_modules/faye-websocket/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "faye-websocket", - "description": "Standards-compliant WebSocket server and client", - "homepage": "https://github.com/faye/faye-websocket-node", - "author": "James Coglan (http://jcoglan.com/)", - "keywords": [ - "websocket", - "eventsource" - ], - "license": "Apache-2.0", - "version": "0.11.4", - "engines": { - "node": ">=0.8.0" - }, - "files": [ - "lib" - ], - "main": "./lib/faye/websocket", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "devDependencies": { - "jstest": "*", - "pace": "*", - "permessage-deflate": "*" - }, - "scripts": { - "test": "jstest spec/runner.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/faye/faye-websocket-node.git" - }, - "bugs": "https://github.com/faye/faye-websocket-node/issues" -} diff --git a/build/node_modules/file-entry-cache/LICENSE b/build/node_modules/file-entry-cache/LICENSE deleted file mode 100644 index c58c3396..00000000 --- a/build/node_modules/file-entry-cache/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Roy Riojas - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/file-entry-cache/README.md b/build/node_modules/file-entry-cache/README.md deleted file mode 100644 index 854a5123..00000000 --- a/build/node_modules/file-entry-cache/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# file-entry-cache -> Super simple cache for file metadata, useful for process that work o a given series of files -> and that only need to repeat the job on the changed ones since the previous run of the process — Edit - -[![NPM Version](http://img.shields.io/npm/v/file-entry-cache.svg?style=flat)](https://npmjs.org/package/file-entry-cache) -[![Build Status](http://img.shields.io/travis/royriojas/file-entry-cache.svg?style=flat)](https://travis-ci.org/royriojas/file-entry-cache) - -## install - -```bash -npm i --save file-entry-cache -``` - -## Usage - -The module exposes two functions `create` and `createFromFile`. - -## `create(cacheName, [directory, useCheckSum])` -- **cacheName**: the name of the cache to be created -- **directory**: Optional the directory to load the cache from -- **usecheckSum**: Whether to use md5 checksum to verify if file changed. If false the default will be to use the mtime and size of the file. - -## `createFromFile(pathToCache, [useCheckSum])` -- **pathToCache**: the path to the cache file (this combines the cache name and directory) -- **useCheckSum**: Whether to use md5 checksum to verify if file changed. If false the default will be to use the mtime and size of the file. - -```js -// loads the cache, if one does not exists for the given -// Id a new one will be prepared to be created -var fileEntryCache = require('file-entry-cache'); - -var cache = fileEntryCache.create('testCache'); - -var files = expand('../fixtures/*.txt'); - -// the first time this method is called, will return all the files -var oFiles = cache.getUpdatedFiles(files); - -// this will persist this to disk checking each file stats and -// updating the meta attributes `size` and `mtime`. -// custom fields could also be added to the meta object and will be persisted -// in order to retrieve them later -cache.reconcile(); - -// use this if you want the non visited file entries to be kept in the cache -// for more than one execution -// -// cache.reconcile( true /* noPrune */) - -// on a second run -var cache2 = fileEntryCache.create('testCache'); - -// will return now only the files that were modified or none -// if no files were modified previous to the execution of this function -var oFiles = cache.getUpdatedFiles(files); - -// if you want to prevent a file from being considered non modified -// something useful if a file failed some sort of validation -// you can then remove the entry from the cache doing -cache.removeEntry('path/to/file'); // path to file should be the same path of the file received on `getUpdatedFiles` -// that will effectively make the file to appear again as modified until the validation is passed. In that -// case you should not remove it from the cache - -// if you need all the files, so you can determine what to do with the changed ones -// you can call -var oFiles = cache.normalizeEntries(files); - -// oFiles will be an array of objects like the following -entry = { - key: 'some/name/file', the path to the file - changed: true, // if the file was changed since previous run - meta: { - size: 3242, // the size of the file - mtime: 231231231, // the modification time of the file - data: {} // some extra field stored for this file (useful to save the result of a transformation on the file - } -} - -``` - -## Motivation for this module - -I needed a super simple and dumb **in-memory cache** with optional disk persistence (write-back cache) in order to make -a script that will beautify files with `esformatter` to execute only on the files that were changed since the last run. - -In doing so the process of beautifying files was reduced from several seconds to a small fraction of a second. - -This module uses [flat-cache](https://www.npmjs.com/package/flat-cache) a super simple `key/value` cache storage with -optional file persistance. - -The main idea is to read the files when the task begins, apply the transforms required, and if the process succeed, -then store the new state of the files. The next time this module request for `getChangedFiles` will return only -the files that were modified. Making the process to end faster. - -This module could also be used by processes that modify the files applying a transform, in that case the result of the -transform could be stored in the `meta` field, of the entries. Anything added to the meta field will be persisted. -Those processes won't need to call `getChangedFiles` they will instead call `normalizeEntries` that will return the -entries with a `changed` field that can be used to determine if the file was changed or not. If it was not changed -the transformed stored data could be used instead of actually applying the transformation, saving time in case of only -a few files changed. - -In the worst case scenario all the files will be processed. In the best case scenario only a few of them will be processed. - -## Important notes -- The values set on the meta attribute of the entries should be `stringify-able` ones if possible, flat-cache uses `circular-json` to try to persist circular structures, but this should be considered experimental. The best results are always obtained with non circular values -- All the changes to the cache state are done to memory first and only persisted after reconcile. - -## License - -MIT - - diff --git a/build/node_modules/file-entry-cache/cache.js b/build/node_modules/file-entry-cache/cache.js deleted file mode 100644 index 6b15767e..00000000 --- a/build/node_modules/file-entry-cache/cache.js +++ /dev/null @@ -1,291 +0,0 @@ -var path = require('path'); -var crypto = require('crypto'); - -module.exports = { - createFromFile: function (filePath, useChecksum) { - var fname = path.basename(filePath); - var dir = path.dirname(filePath); - return this.create(fname, dir, useChecksum); - }, - - create: function (cacheId, _path, useChecksum) { - var fs = require('fs'); - var flatCache = require('flat-cache'); - var cache = flatCache.load(cacheId, _path); - var normalizedEntries = {}; - - var removeNotFoundFiles = function removeNotFoundFiles() { - const cachedEntries = cache.keys(); - // remove not found entries - cachedEntries.forEach(function remover(fPath) { - try { - fs.statSync(fPath); - } catch (err) { - if (err.code === 'ENOENT') { - cache.removeKey(fPath); - } - } - }); - }; - - removeNotFoundFiles(); - - return { - /** - * the flat cache storage used to persist the metadata of the `files - * @type {Object} - */ - cache: cache, - - /** - * Given a buffer, calculate md5 hash of its content. - * @method getHash - * @param {Buffer} buffer buffer to calculate hash on - * @return {String} content hash digest - */ - getHash: function (buffer) { - return crypto.createHash('md5').update(buffer).digest('hex'); - }, - - /** - * Return whether or not a file has changed since last time reconcile was called. - * @method hasFileChanged - * @param {String} file the filepath to check - * @return {Boolean} wheter or not the file has changed - */ - hasFileChanged: function (file) { - return this.getFileDescriptor(file).changed; - }, - - /** - * given an array of file paths it return and object with three arrays: - * - changedFiles: Files that changed since previous run - * - notChangedFiles: Files that haven't change - * - notFoundFiles: Files that were not found, probably deleted - * - * @param {Array} files the files to analyze and compare to the previous seen files - * @return {[type]} [description] - */ - analyzeFiles: function (files) { - var me = this; - files = files || []; - - var res = { - changedFiles: [], - notFoundFiles: [], - notChangedFiles: [], - }; - - me.normalizeEntries(files).forEach(function (entry) { - if (entry.changed) { - res.changedFiles.push(entry.key); - return; - } - if (entry.notFound) { - res.notFoundFiles.push(entry.key); - return; - } - res.notChangedFiles.push(entry.key); - }); - return res; - }, - - getFileDescriptor: function (file) { - var fstat; - - try { - fstat = fs.statSync(file); - } catch (ex) { - this.removeEntry(file); - return { key: file, notFound: true, err: ex }; - } - - if (useChecksum) { - return this._getFileDescriptorUsingChecksum(file); - } - - return this._getFileDescriptorUsingMtimeAndSize(file, fstat); - }, - - _getFileDescriptorUsingMtimeAndSize: function (file, fstat) { - var meta = cache.getKey(file); - var cacheExists = !!meta; - - var cSize = fstat.size; - var cTime = fstat.mtime.getTime(); - - var isDifferentDate; - var isDifferentSize; - - if (!meta) { - meta = { size: cSize, mtime: cTime }; - } else { - isDifferentDate = cTime !== meta.mtime; - isDifferentSize = cSize !== meta.size; - } - - var nEntry = (normalizedEntries[file] = { - key: file, - changed: !cacheExists || isDifferentDate || isDifferentSize, - meta: meta, - }); - - return nEntry; - }, - - _getFileDescriptorUsingChecksum: function (file) { - var meta = cache.getKey(file); - var cacheExists = !!meta; - - var contentBuffer; - try { - contentBuffer = fs.readFileSync(file); - } catch (ex) { - contentBuffer = ''; - } - - var isDifferent = true; - var hash = this.getHash(contentBuffer); - - if (!meta) { - meta = { hash: hash }; - } else { - isDifferent = hash !== meta.hash; - } - - var nEntry = (normalizedEntries[file] = { - key: file, - changed: !cacheExists || isDifferent, - meta: meta, - }); - - return nEntry; - }, - - /** - * Return the list o the files that changed compared - * against the ones stored in the cache - * - * @method getUpdated - * @param files {Array} the array of files to compare against the ones in the cache - * @returns {Array} - */ - getUpdatedFiles: function (files) { - var me = this; - files = files || []; - - return me - .normalizeEntries(files) - .filter(function (entry) { - return entry.changed; - }) - .map(function (entry) { - return entry.key; - }); - }, - - /** - * return the list of files - * @method normalizeEntries - * @param files - * @returns {*} - */ - normalizeEntries: function (files) { - files = files || []; - - var me = this; - var nEntries = files.map(function (file) { - return me.getFileDescriptor(file); - }); - - //normalizeEntries = nEntries; - return nEntries; - }, - - /** - * Remove an entry from the file-entry-cache. Useful to force the file to still be considered - * modified the next time the process is run - * - * @method removeEntry - * @param entryName - */ - removeEntry: function (entryName) { - delete normalizedEntries[entryName]; - cache.removeKey(entryName); - }, - - /** - * Delete the cache file from the disk - * @method deleteCacheFile - */ - deleteCacheFile: function () { - cache.removeCacheFile(); - }, - - /** - * remove the cache from the file and clear the memory cache - */ - destroy: function () { - normalizedEntries = {}; - cache.destroy(); - }, - - _getMetaForFileUsingCheckSum: function (cacheEntry) { - var contentBuffer = fs.readFileSync(cacheEntry.key); - var hash = this.getHash(contentBuffer); - var meta = Object.assign(cacheEntry.meta, { hash: hash }); - delete meta.size; - delete meta.mtime; - return meta; - }, - - _getMetaForFileUsingMtimeAndSize: function (cacheEntry) { - var stat = fs.statSync(cacheEntry.key); - var meta = Object.assign(cacheEntry.meta, { - size: stat.size, - mtime: stat.mtime.getTime(), - }); - delete meta.hash; - return meta; - }, - - /** - * Sync the files and persist them to the cache - * @method reconcile - */ - reconcile: function (noPrune) { - removeNotFoundFiles(); - - noPrune = typeof noPrune === 'undefined' ? true : noPrune; - - var entries = normalizedEntries; - var keys = Object.keys(entries); - - if (keys.length === 0) { - return; - } - - var me = this; - - keys.forEach(function (entryName) { - var cacheEntry = entries[entryName]; - - try { - var meta = useChecksum - ? me._getMetaForFileUsingCheckSum(cacheEntry) - : me._getMetaForFileUsingMtimeAndSize(cacheEntry); - cache.setKey(entryName, meta); - } catch (err) { - // if the file does not exists we don't save it - // other errors are just thrown - if (err.code !== 'ENOENT') { - throw err; - } - } - }); - - cache.save(noPrune); - }, - }; - }, -}; diff --git a/build/node_modules/file-entry-cache/changelog.md b/build/node_modules/file-entry-cache/changelog.md deleted file mode 100644 index 64d62a08..00000000 --- a/build/node_modules/file-entry-cache/changelog.md +++ /dev/null @@ -1,163 +0,0 @@ - -# file-entry-cache - Changelog -## v6.0.1 -- **Other changes** - - Delete previous mtime when checksum is used and vice versa - [abcf0f9]( https://github.com/royriojas/file-entry-cache/commit/abcf0f9 ), [Milos Djermanovic](https://github.com/Milos Djermanovic), 19/02/2021 18:19:43 - - - - Adds travis jobs on ppc64le - [92e4d4a]( https://github.com/royriojas/file-entry-cache/commit/92e4d4a ), [dineshks1](https://github.com/dineshks1), 25/11/2020 04:52:11 - - -## v6.0.0 -- **Refactoring** - - Align file-entry-cache with latest eslint - [4c6f1fb]( https://github.com/royriojas/file-entry-cache/commit/4c6f1fb ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:43:09 - - - - Upgrade deps - [8ab3257]( https://github.com/royriojas/file-entry-cache/commit/8ab3257 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:41:53 - - - - updated packages - [3dd4231]( https://github.com/royriojas/file-entry-cache/commit/3dd4231 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:29:37 - - - - Upgrade flat-cache to version 3 - [d7c60ef]( https://github.com/royriojas/file-entry-cache/commit/d7c60ef ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:18:04 - - -## v5.0.1 -- **Bug Fixes** - - Fix missing checksum comparison from reconcile since now we use mtime and size by default. - [e858aa9]( https://github.com/royriojas/file-entry-cache/commit/e858aa9 ), [Roy Riojas](https://github.com/Roy Riojas), 04/02/2019 09:30:22 - - Old mode using checkSum can still be used by passing the `useCheckSum` parameter to the `create` or `createFromFile` methods. - -## v5.0.0 -- **Refactoring** - - Make checksum comparison optional - [b0f9ae0]( https://github.com/royriojas/file-entry-cache/commit/b0f9ae0 ), [Roy Riojas](https://github.com/Roy Riojas), 03/02/2019 18:17:39 - - To determine if a file has changed we were using the checksum in the newer versions, but eslint was relying on the old behavior where we use the mtime and file size to determine if a file changed. That's why we decided to make the checksum check optional. - - To use it: - - ```js - // to make the cache use the checkSum check do the following: - var fCache = fileEntryCache.create(cacheName, dir, useCheckSum); // pass the third parameter as true - var otherCache = fileEntryCache.createFromFile(cacheName, useCheckSum); // pass the second parameter as true - ``` - -## v4.0.0 -- **Build Scripts Changes** - - use the same node versions eslint use - [563cfee]( https://github.com/royriojas/file-entry-cache/commit/563cfee ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 20:29:34 - - -- **Other changes** - - Remove object-assign dependency. - [d0f598e]( https://github.com/royriojas/file-entry-cache/commit/d0f598e ), [Corey Farrell](https://github.com/Corey Farrell), 08/01/2019 20:09:51 - - node.js >=4 is required so object-assign is no longer needed, the native - Object.assign can be used instead. - -## v3.0.0 -- **Build Scripts Changes** - - Upgrade flat-cache dep to latest - [078b0df]( https://github.com/royriojas/file-entry-cache/commit/078b0df ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 18:54:40 - - - - Commit new package-lock.json file - [245fe62]( https://github.com/royriojas/file-entry-cache/commit/245fe62 ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 17:56:21 - - -- **Refactoring** - - add eslintrc file - [6dd32d8]( https://github.com/royriojas/file-entry-cache/commit/6dd32d8 ), [Roy Riojas](https://github.com/Roy Riojas), 22/08/2018 09:58:17 - - -- **Other changes** - - Move variable definition out of else block - [ea05441]( https://github.com/royriojas/file-entry-cache/commit/ea05441 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 25/04/2017 11:19:00 - - - - Add script and cmd to test hash/checksum performance - [7f60e0a]( https://github.com/royriojas/file-entry-cache/commit/7f60e0a ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 24/04/2017 14:43:12 - - - - Calculate md5 hexdigest instead of Adler-32 checksum - [f9e5c69]( https://github.com/royriojas/file-entry-cache/commit/f9e5c69 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 24/04/2017 14:43:12 - - - - How to reproduce - [4edc2dc]( https://github.com/royriojas/file-entry-cache/commit/4edc2dc ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 24/04/2017 13:49:32 - - - - Test handling of removed files - [09d9ec5]( https://github.com/royriojas/file-entry-cache/commit/09d9ec5 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 19/04/2017 19:51:50 - - - - Use content checksum instead of mtime and fsize - [343b340]( https://github.com/royriojas/file-entry-cache/commit/343b340 ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 19/04/2017 19:51:47 - - -- **Revert** - - Revert "How to reproduce" - [4b4e54a]( https://github.com/royriojas/file-entry-cache/commit/4b4e54a ), [Zakhar Shapurau](https://github.com/Zakhar Shapurau), 25/04/2017 11:15:36 - - This reverts commit 4edc2dcec01574247bfc2e0a2fe26527332b7df3. - -## v2.0.0 -- **Features** - - do not persist and prune removed files from cache. Relates to [#2](https://github.com/royriojas/file-entry-cache/issues/2) - [408374d]( https://github.com/royriojas/file-entry-cache/commit/408374d ), [Roy Riojas](https://github.com/Roy Riojas), 16/08/2016 13:47:58 - - -## v1.3.1 -- **Build Scripts Changes** - - remove older node version - [0a26ac4]( https://github.com/royriojas/file-entry-cache/commit/0a26ac4 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 04:09:17 - - -## v1.3.0 -- **Features** - - Add an option to not prune non visited keys. Closes [#2](https://github.com/royriojas/file-entry-cache/issues/2) - [b1a64db]( https://github.com/royriojas/file-entry-cache/commit/b1a64db ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 03:52:12 - - -## v1.2.4 -- **Enhancements** - - Expose the flat-cache instance - [f34c557]( https://github.com/royriojas/file-entry-cache/commit/f34c557 ), [royriojas](https://github.com/royriojas), 23/09/2015 18:26:33 - - -## v1.2.3 -- **Build Scripts Changes** - - update flat-cache dep - [cc7b9ce]( https://github.com/royriojas/file-entry-cache/commit/cc7b9ce ), [royriojas](https://github.com/royriojas), 11/09/2015 16:04:44 - - -## v1.2.2 -- **Build Scripts Changes** - - Add changelogx section to package.json - [a3916ff]( https://github.com/royriojas/file-entry-cache/commit/a3916ff ), [royriojas](https://github.com/royriojas), 11/09/2015 16:00:26 - - -## v1.2.1 -- **Build Scripts Changes** - - update flat-cache dep - [e49b0d4]( https://github.com/royriojas/file-entry-cache/commit/e49b0d4 ), [royriojas](https://github.com/royriojas), 11/09/2015 15:55:25 - - -- **Other changes** - - Update dependencies Replaced lodash.assign with smaller object-assign Fixed tests for windows - [0ad3000]( https://github.com/royriojas/file-entry-cache/commit/0ad3000 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 11/09/2015 15:44:18 - - -## v1.2.0 -- **Features** - - analyzeFiles now returns also the files that were removed - [6ac2431]( https://github.com/royriojas/file-entry-cache/commit/6ac2431 ), [royriojas](https://github.com/royriojas), 04/09/2015 12:40:53 - - -## v1.1.1 -- **Features** - - Add method to check if a file hasChanged - [3640e2b]( https://github.com/royriojas/file-entry-cache/commit/3640e2b ), [Roy Riojas](https://github.com/Roy Riojas), 30/08/2015 05:33:32 - - -## v1.1.0 -- **Features** - - Create the cache directly from a file path - [a23de61]( https://github.com/royriojas/file-entry-cache/commit/a23de61 ), [Roy Riojas](https://github.com/Roy Riojas), 30/08/2015 04:41:33 - - - - Add a method to remove an entry from the filecache - [7af29fc]( https://github.com/royriojas/file-entry-cache/commit/7af29fc ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 23:25:32 - - - - cache module finished - [1f95544]( https://github.com/royriojas/file-entry-cache/commit/1f95544 ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 01:08:08 - - -- **Build Scripts Changes** - - set the version for the first release - [7472eaa]( https://github.com/royriojas/file-entry-cache/commit/7472eaa ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 01:29:54 - - -- **Documentation** - - Updated documentation - [557358f]( https://github.com/royriojas/file-entry-cache/commit/557358f ), [Roy Riojas](https://github.com/Roy Riojas), 02/03/2015 01:29:29 - - -- **Other changes** - - Initial commit - [3d5f42b]( https://github.com/royriojas/file-entry-cache/commit/3d5f42b ), [Roy Riojas](https://github.com/Roy Riojas), 01/03/2015 21:58:29 - - diff --git a/build/node_modules/file-entry-cache/package.json b/build/node_modules/file-entry-cache/package.json deleted file mode 100644 index f03ef48c..00000000 --- a/build/node_modules/file-entry-cache/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "file-entry-cache", - "version": "6.0.1", - "description": "Super simple cache for file metadata, useful for process that work o a given series of files and that only need to repeat the job on the changed ones since the previous run of the process", - "repository": "royriojas/file-entry-cache", - "license": "MIT", - "author": { - "name": "Roy Riojas", - "url": "http://royriojas.com" - }, - "main": "cache.js", - "files": [ - "cache.js" - ], - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "scripts": { - "eslint": "eslint --cache --cache-location=node_modules/.cache/ 'cache.js' 'test/**/*.js' 'perf.js'", - "autofix": "npm run eslint -- --fix", - "install-hooks": "prepush install && changelogx install-hook && precommit install", - "changelog": "changelogx -f markdown -o ./changelog.md", - "do-changelog": "npm run changelog && git add ./changelog.md && git commit -m 'DOC: Generate changelog' --no-verify", - "pre-v": "npm run test", - "post-v": "npm run do-changelog && git push --no-verify && git push --tags --no-verify", - "bump-major": "npm run pre-v && npm version major -m 'BLD: Release v%s' && npm run post-v", - "bump-minor": "npm run pre-v && npm version minor -m 'BLD: Release v%s' && npm run post-v", - "bump-patch": "npm run pre-v && npm version patch -m 'BLD: Release v%s' && npm run post-v", - "test": "npm run eslint --silent && mocha -R spec test/specs", - "perf": "node perf.js", - "cover": "istanbul cover test/runner.js html text-summary", - "watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary" - }, - "prepush": [ - "npm run eslint --silent" - ], - "precommit": [ - "npm run eslint --silent" - ], - "keywords": [ - "file cache", - "task cache files", - "file cache", - "key par", - "key value", - "cache" - ], - "changelogx": { - "ignoreRegExp": [ - "BLD: Release", - "DOC: Generate Changelog", - "Generated Changelog" - ], - "issueIDRegExp": "#(\\d+)", - "commitURL": "https://github.com/royriojas/file-entry-cache/commit/{0}", - "authorURL": "https://github.com/{0}", - "issueIDURL": "https://github.com/royriojas/file-entry-cache/issues/{0}", - "projectName": "file-entry-cache" - }, - "devDependencies": { - "chai": "^4.2.0", - "changelogx": "^5.0.6", - "del": "^6.0.0", - "eslint": "^7.13.0", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-prettier": "^3.1.4", - "glob-expand": "^0.2.1", - "istanbul": "^0.4.5", - "mocha": "^8.2.1", - "precommit": "^1.2.2", - "prepush": "^3.1.11", - "prettier": "^2.1.2", - "watch-run": "^1.2.5", - "write": "^2.0.0" - }, - "dependencies": { - "flat-cache": "^3.0.4" - } -} diff --git a/build/node_modules/file-type/browser.d.ts b/build/node_modules/file-type/browser.d.ts deleted file mode 100644 index 5aeacb6e..00000000 --- a/build/node_modules/file-type/browser.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -/// -import * as core from './core'; - -export type FileTypeResult = core.FileTypeResult; -export type FileExtension = core.FileExtension; -export type MimeType = core.MimeType; - -/** -Determine file type from a [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream). - -``` -import FileType = require('file-type/browser'); - -const url = 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg'; - -(async () => { - const response = await fetch(url); - const fileType = await FileType.fromStream(response.body); - - console.log(fileType); - //=> {ext: 'jpg', mime: 'image/jpeg'} -})(); -``` -*/ -export declare function fromStream(stream: ReadableStream): Promise; - -/** -Determine file type from a [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob). - -``` -import FileType = require('file-type/browser'); - -(async () => { - const blob = new Blob([''], { - type: 'plain/text', - endings: 'native' - }); - - console.log(await FileType.fromBlob(blob)); - //=> {ext: 'txt', mime: 'plain/text'} -})(); -``` -*/ -export declare function fromBlob(blob: Blob): Promise; - -export { - fromBuffer, - extensions, - mimeTypes -} from './core'; diff --git a/build/node_modules/file-type/browser.js b/build/node_modules/file-type/browser.js deleted file mode 100644 index 299dd767..00000000 --- a/build/node_modules/file-type/browser.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; -const {ReadableWebToNodeStream} = require('readable-web-to-node-stream'); -const core = require('./core'); - -async function fromStream(stream) { - const readableWebToNodeStream = new ReadableWebToNodeStream(stream); - const fileType = await core.fromStream(readableWebToNodeStream); - await readableWebToNodeStream.close(); - return fileType; -} - -async function fromBlob(blob) { - const buffer = await blobToArrayBuffer(blob); - return core.fromBuffer(Buffer.from(buffer)); -} - -/** -Convert Blobs to ArrayBuffer. -@param {Blob} blob - Web API Blob. -@returns {Promise} -*/ -function blobToArrayBuffer(blob) { - if (blob.arrayBuffer) { - return blob.arrayBuffer(); - } - - // TODO: Remove when stop supporting older environments - return new Promise((resolve, reject) => { - const fileReader = new FileReader(); - fileReader.addEventListener('loadend', event => { - resolve(event.target.result); - }); - - fileReader.addEventListener('error', event => { - reject(new Error(event.message)); - }); - - fileReader.addEventListener('abort', event => { - reject(new Error(event.type)); - }); - - fileReader.readAsArrayBuffer(blob); - }); -} - -Object.assign(module.exports, core, { - fromStream, - fromBlob -}); diff --git a/build/node_modules/file-type/core.d.ts b/build/node_modules/file-type/core.d.ts deleted file mode 100644 index e234094a..00000000 --- a/build/node_modules/file-type/core.d.ts +++ /dev/null @@ -1,386 +0,0 @@ -/// -import {Readable as ReadableStream} from 'stream'; -import {ITokenizer} from 'strtok3/lib/core'; - -declare namespace core { - type FileExtension = - | 'jpg' - | 'png' - | 'apng' - | 'gif' - | 'webp' - | 'flif' - | 'xcf' - | 'cr2' - | 'cr3' - | 'orf' - | 'arw' - | 'dng' - | 'nef' - | 'rw2' - | 'raf' - | 'tif' - | 'bmp' - | 'icns' - | 'jxr' - | 'psd' - | 'indd' - | 'zip' - | 'tar' - | 'rar' - | 'gz' - | 'bz2' - | '7z' - | 'dmg' - | 'mp4' - | 'mid' - | 'mkv' - | 'webm' - | 'mov' - | 'avi' - | 'mpg' - | 'mp2' - | 'mp3' - | 'm4a' - | 'ogg' - | 'opus' - | 'flac' - | 'wav' - | 'qcp' - | 'amr' - | 'pdf' - | 'epub' - | 'mobi' - | 'exe' - | 'swf' - | 'rtf' - | 'woff' - | 'woff2' - | 'eot' - | 'ttf' - | 'otf' - | 'ico' - | 'flv' - | 'ps' - | 'xz' - | 'sqlite' - | 'nes' - | 'crx' - | 'xpi' - | 'cab' - | 'deb' - | 'ar' - | 'rpm' - | 'Z' - | 'lz' - | 'cfb' - | 'mxf' - | 'mts' - | 'wasm' - | 'blend' - | 'bpg' - | 'docx' - | 'pptx' - | 'xlsx' - | '3gp' - | '3g2' - | 'jp2' - | 'jpm' - | 'jpx' - | 'mj2' - | 'aif' - | 'odt' - | 'ods' - | 'odp' - | 'xml' - | 'heic' - | 'cur' - | 'ktx' - | 'ape' - | 'wv' - | 'asf' - | 'dcm' - | 'mpc' - | 'ics' - | 'glb' - | 'pcap' - | 'dsf' - | 'lnk' - | 'alias' - | 'voc' - | 'ac3' - | 'm4b' - | 'm4p' - | 'm4v' - | 'f4a' - | 'f4b' - | 'f4p' - | 'f4v' - | 'mie' - | 'ogv' - | 'ogm' - | 'oga' - | 'spx' - | 'ogx' - | 'arrow' - | 'shp' - | 'aac' - | 'mp1' - | 'it' - | 's3m' - | 'xm' - | 'ai' - | 'skp' - | 'avif' - | 'eps' - | 'lzh' - | 'pgp' - | 'asar' - | 'stl' - | 'chm' - | '3mf' - | 'zst' - | 'jxl' - | 'vcf'; - - type MimeType = - | 'image/jpeg' - | 'image/png' - | 'image/gif' - | 'image/webp' - | 'image/flif' - | 'image/x-xcf' - | 'image/x-canon-cr2' - | 'image/x-canon-cr3' - | 'image/tiff' - | 'image/bmp' - | 'image/icns' - | 'image/vnd.ms-photo' - | 'image/vnd.adobe.photoshop' - | 'application/x-indesign' - | 'application/epub+zip' - | 'application/x-xpinstall' - | 'application/vnd.oasis.opendocument.text' - | 'application/vnd.oasis.opendocument.spreadsheet' - | 'application/vnd.oasis.opendocument.presentation' - | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - | 'application/vnd.openxmlformats-officedocument.presentationml.presentation' - | 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - | 'application/zip' - | 'application/x-tar' - | 'application/x-rar-compressed' - | 'application/gzip' - | 'application/x-bzip2' - | 'application/x-7z-compressed' - | 'application/x-apple-diskimage' - | 'video/mp4' - | 'audio/midi' - | 'video/x-matroska' - | 'video/webm' - | 'video/quicktime' - | 'video/vnd.avi' - | 'audio/vnd.wave' - | 'audio/qcelp' - | 'audio/x-ms-asf' - | 'video/x-ms-asf' - | 'application/vnd.ms-asf' - | 'video/mpeg' - | 'video/3gpp' - | 'audio/mpeg' - | 'audio/mp4' // RFC 4337 - | 'audio/opus' - | 'video/ogg' - | 'audio/ogg' - | 'application/ogg' - | 'audio/x-flac' - | 'audio/ape' - | 'audio/wavpack' - | 'audio/amr' - | 'application/pdf' - | 'application/x-msdownload' - | 'application/x-shockwave-flash' - | 'application/rtf' - | 'application/wasm' - | 'font/woff' - | 'font/woff2' - | 'application/vnd.ms-fontobject' - | 'font/ttf' - | 'font/otf' - | 'image/x-icon' - | 'video/x-flv' - | 'application/postscript' - | 'application/eps' - | 'application/x-xz' - | 'application/x-sqlite3' - | 'application/x-nintendo-nes-rom' - | 'application/x-google-chrome-extension' - | 'application/vnd.ms-cab-compressed' - | 'application/x-deb' - | 'application/x-unix-archive' - | 'application/x-rpm' - | 'application/x-compress' - | 'application/x-lzip' - | 'application/x-cfb' - | 'application/x-mie' - | 'application/x-apache-arrow' - | 'application/mxf' - | 'video/mp2t' - | 'application/x-blender' - | 'image/bpg' - | 'image/jp2' - | 'image/jpx' - | 'image/jpm' - | 'image/mj2' - | 'audio/aiff' - | 'application/xml' - | 'application/x-mobipocket-ebook' - | 'image/heif' - | 'image/heif-sequence' - | 'image/heic' - | 'image/heic-sequence' - | 'image/ktx' - | 'application/dicom' - | 'audio/x-musepack' - | 'text/calendar' - | 'text/vcard' - | 'model/gltf-binary' - | 'application/vnd.tcpdump.pcap' - | 'audio/x-dsf' // Non-standard - | 'application/x.ms.shortcut' // Invented by us - | 'application/x.apple.alias' // Invented by us - | 'audio/x-voc' - | 'audio/vnd.dolby.dd-raw' - | 'audio/x-m4a' - | 'image/apng' - | 'image/x-olympus-orf' - | 'image/x-sony-arw' - | 'image/x-adobe-dng' - | 'image/x-nikon-nef' - | 'image/x-panasonic-rw2' - | 'image/x-fujifilm-raf' - | 'video/x-m4v' - | 'video/3gpp2' - | 'application/x-esri-shape' - | 'audio/aac' - | 'audio/x-it' - | 'audio/x-s3m' - | 'audio/x-xm' - | 'video/MP1S' - | 'video/MP2P' - | 'application/vnd.sketchup.skp' - | 'image/avif' - | 'application/x-lzh-compressed' - | 'application/pgp-encrypted' - | 'application/x-asar' - | 'model/stl' - | 'application/vnd.ms-htmlhelp' - | 'model/3mf' - | 'image/jxl' - | 'application/zstd'; - - interface FileTypeResult { - /** - One of the supported [file types](https://github.com/sindresorhus/file-type#supported-file-types). - */ - readonly ext: FileExtension; - - /** - The detected [MIME type](https://en.wikipedia.org/wiki/Internet_media_type). - */ - readonly mime: MimeType; - } - - type ReadableStreamWithFileType = ReadableStream & { - readonly fileType?: FileTypeResult; - }; - - /** - Detect the file type of a `Buffer`, `Uint8Array`, or `ArrayBuffer`. - - The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - - If file access is available, it is recommended to use `.fromFile()` instead. - - @param buffer - A buffer representing file data. It works best if the buffer contains the entire file, it may work with a smaller portion as well. - @returns The detected file type and MIME type, or `undefined` when there is no match. - */ - function fromBuffer(buffer: Buffer | Uint8Array | ArrayBuffer): Promise; - - /** - Detect the file type of a Node.js [readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable). - - The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - - @param stream - A readable stream representing file data. - @returns The detected file type and MIME type, or `undefined` when there is no match. - */ - function fromStream(stream: ReadableStream): Promise; - - /** - Detect the file type from an [`ITokenizer`](https://github.com/Borewit/strtok3#tokenizer) source. - - This method is used internally, but can also be used for a special "tokenizer" reader. - - A tokenizer propagates the internal read functions, allowing alternative transport mechanisms, to access files, to be implemented and used. - - An example is [`@tokenizer/http`](https://github.com/Borewit/tokenizer-http), which requests data using [HTTP-range-requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests). A difference with a conventional stream and the [*tokenizer*](https://github.com/Borewit/strtok3#tokenizer), is that it is able to *ignore* (seek, fast-forward) in the stream. For example, you may only need and read the first 6 bytes, and the last 128 bytes, which may be an advantage in case reading the entire file would take longer. - - ``` - import {makeTokenizer} = require('@tokenizer/http'); - import FileType = require('file-type'); - - const audioTrackUrl = 'https://test-audio.netlify.com/Various%20Artists%20-%202009%20-%20netBloc%20Vol%2024_%20tiuqottigeloot%20%5BMP3-V2%5D/01%20-%20Diablo%20Swing%20Orchestra%20-%20Heroines.mp3'; - - (async () => { - const httpTokenizer = await makeTokenizer(audioTrackUrl); - const fileType = await FileType.fromTokenizer(httpTokenizer); - - console.log(fileType); - //=> {ext: 'mp3', mime: 'audio/mpeg'} - })(); - ``` - - @param tokenizer - File source implementing the tokenizer interface. - @returns The detected file type and MIME type, or `undefined` when there is no match. - */ - function fromTokenizer(tokenizer: ITokenizer): Promise; - - /** - Supported file extensions. - */ - const extensions: Set; - - /** - Supported MIME types. - */ - const mimeTypes: Set; - - /** - Detect the file type of a readable stream. - - @param readableStream - A [readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable) containing a file to examine. - @returns A `Promise` which resolves to the original readable stream argument, but with an added `fileType` property, which is an object like the one returned from `FileType.fromFile()`. - - @example - ``` - import * as fs from 'fs'; - import * as crypto from 'crypto'; - import fileType = require('file-type'); - - (async () => { - const read = fs.createReadStream('encrypted.enc'); - const decipher = crypto.createDecipheriv(alg, key, iv); - const stream = await fileType.stream(read.pipe(decipher)); - - console.log(stream.fileType); - //=> {ext: 'mov', mime: 'video/quicktime'} - - const write = fs.createWriteStream(`decrypted.${stream.fileType.ext}`); - stream.pipe(write); - })(); - ``` - */ - function stream(readableStream: ReadableStream): Promise -} - -export = core; diff --git a/build/node_modules/file-type/core.js b/build/node_modules/file-type/core.js deleted file mode 100644 index d653e66a..00000000 --- a/build/node_modules/file-type/core.js +++ /dev/null @@ -1,1465 +0,0 @@ -'use strict'; -const Token = require('token-types'); -const strtok3 = require('strtok3/lib/core'); -const { - stringToBytes, - tarHeaderChecksumMatches, - uint32SyncSafeToken -} = require('./util'); -const supported = require('./supported'); - -const minimumBytes = 4100; // A fair amount of file-types are detectable within this range - -async function fromStream(stream) { - const tokenizer = await strtok3.fromStream(stream); - try { - return await fromTokenizer(tokenizer); - } finally { - await tokenizer.close(); - } -} - -async function fromBuffer(input) { - if (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) { - throw new TypeError(`Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof input}\``); - } - - const buffer = input instanceof Buffer ? input : Buffer.from(input); - - if (!(buffer && buffer.length > 1)) { - return; - } - - const tokenizer = strtok3.fromBuffer(buffer); - return fromTokenizer(tokenizer); -} - -function _check(buffer, headers, options) { - options = { - offset: 0, - ...options - }; - - for (const [index, header] of headers.entries()) { - // If a bitmask is set - if (options.mask) { - // If header doesn't equal `buf` with bits masked off - if (header !== (options.mask[index] & buffer[index + options.offset])) { - return false; - } - } else if (header !== buffer[index + options.offset]) { - return false; - } - } - - return true; -} - -async function fromTokenizer(tokenizer) { - try { - return _fromTokenizer(tokenizer); - } catch (error) { - if (!(error instanceof strtok3.EndOfStreamError)) { - throw error; - } - } -} - -async function _fromTokenizer(tokenizer) { - let buffer = Buffer.alloc(minimumBytes); - const bytesRead = 12; - const check = (header, options) => _check(buffer, header, options); - const checkString = (header, options) => check(stringToBytes(header), options); - - // Keep reading until EOF if the file size is unknown. - if (!tokenizer.fileInfo.size) { - tokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER; - } - - await tokenizer.peekBuffer(buffer, {length: bytesRead, mayBeLess: true}); - - // -- 2-byte signatures -- - - if (check([0x42, 0x4D])) { - return { - ext: 'bmp', - mime: 'image/bmp' - }; - } - - if (check([0x0B, 0x77])) { - return { - ext: 'ac3', - mime: 'audio/vnd.dolby.dd-raw' - }; - } - - if (check([0x78, 0x01])) { - return { - ext: 'dmg', - mime: 'application/x-apple-diskimage' - }; - } - - if (check([0x4D, 0x5A])) { - return { - ext: 'exe', - mime: 'application/x-msdownload' - }; - } - - if (check([0x25, 0x21])) { - await tokenizer.peekBuffer(buffer, {length: 24, mayBeLess: true}); - - if (checkString('PS-Adobe-', {offset: 2}) && - checkString(' EPSF-', {offset: 14})) { - return { - ext: 'eps', - mime: 'application/eps' - }; - } - - return { - ext: 'ps', - mime: 'application/postscript' - }; - } - - if ( - check([0x1F, 0xA0]) || - check([0x1F, 0x9D]) - ) { - return { - ext: 'Z', - mime: 'application/x-compress' - }; - } - - // -- 3-byte signatures -- - - if (check([0xFF, 0xD8, 0xFF])) { - return { - ext: 'jpg', - mime: 'image/jpeg' - }; - } - - if (check([0x49, 0x49, 0xBC])) { - return { - ext: 'jxr', - mime: 'image/vnd.ms-photo' - }; - } - - if (check([0x1F, 0x8B, 0x8])) { - return { - ext: 'gz', - mime: 'application/gzip' - }; - } - - if (check([0x42, 0x5A, 0x68])) { - return { - ext: 'bz2', - mime: 'application/x-bzip2' - }; - } - - if (checkString('ID3')) { - await tokenizer.ignore(6); // Skip ID3 header until the header size - const id3HeaderLen = await tokenizer.readToken(uint32SyncSafeToken); - if (tokenizer.position + id3HeaderLen > tokenizer.fileInfo.size) { - // Guess file type based on ID3 header for backward compatibility - return { - ext: 'mp3', - mime: 'audio/mpeg' - }; - } - - await tokenizer.ignore(id3HeaderLen); - return fromTokenizer(tokenizer); // Skip ID3 header, recursion - } - - // Musepack, SV7 - if (checkString('MP+')) { - return { - ext: 'mpc', - mime: 'audio/x-musepack' - }; - } - - if ( - (buffer[0] === 0x43 || buffer[0] === 0x46) && - check([0x57, 0x53], {offset: 1}) - ) { - return { - ext: 'swf', - mime: 'application/x-shockwave-flash' - }; - } - - // -- 4-byte signatures -- - - if (check([0x47, 0x49, 0x46])) { - return { - ext: 'gif', - mime: 'image/gif' - }; - } - - if (checkString('FLIF')) { - return { - ext: 'flif', - mime: 'image/flif' - }; - } - - if (checkString('8BPS')) { - return { - ext: 'psd', - mime: 'image/vnd.adobe.photoshop' - }; - } - - if (checkString('WEBP', {offset: 8})) { - return { - ext: 'webp', - mime: 'image/webp' - }; - } - - // Musepack, SV8 - if (checkString('MPCK')) { - return { - ext: 'mpc', - mime: 'audio/x-musepack' - }; - } - - if (checkString('FORM')) { - return { - ext: 'aif', - mime: 'audio/aiff' - }; - } - - if (checkString('icns', {offset: 0})) { - return { - ext: 'icns', - mime: 'image/icns' - }; - } - - // Zip-based file formats - // Need to be before the `zip` check - if (check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature - try { - while (tokenizer.position + 30 < tokenizer.fileInfo.size) { - await tokenizer.readBuffer(buffer, {length: 30}); - - // https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers - const zipHeader = { - compressedSize: buffer.readUInt32LE(18), - uncompressedSize: buffer.readUInt32LE(22), - filenameLength: buffer.readUInt16LE(26), - extraFieldLength: buffer.readUInt16LE(28) - }; - - zipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, 'utf-8')); - await tokenizer.ignore(zipHeader.extraFieldLength); - - // Assumes signed `.xpi` from addons.mozilla.org - if (zipHeader.filename === 'META-INF/mozilla.rsa') { - return { - ext: 'xpi', - mime: 'application/x-xpinstall' - }; - } - - if (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) { - const type = zipHeader.filename.split('/')[0]; - switch (type) { - case '_rels': - break; - case 'word': - return { - ext: 'docx', - mime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - }; - case 'ppt': - return { - ext: 'pptx', - mime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation' - }; - case 'xl': - return { - ext: 'xlsx', - mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - }; - default: - break; - } - } - - if (zipHeader.filename.startsWith('xl/')) { - return { - ext: 'xlsx', - mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - }; - } - - if (zipHeader.filename.startsWith('3D/') && zipHeader.filename.endsWith('.model')) { - return { - ext: '3mf', - mime: 'model/3mf' - }; - } - - // The docx, xlsx and pptx file types extend the Office Open XML file format: - // https://en.wikipedia.org/wiki/Office_Open_XML_file_formats - // We look for: - // - one entry named '[Content_Types].xml' or '_rels/.rels', - // - one entry indicating specific type of file. - // MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it. - if (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) { - const mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, 'utf-8')); - - switch (mimeType) { - case 'application/epub+zip': - return { - ext: 'epub', - mime: 'application/epub+zip' - }; - case 'application/vnd.oasis.opendocument.text': - return { - ext: 'odt', - mime: 'application/vnd.oasis.opendocument.text' - }; - case 'application/vnd.oasis.opendocument.spreadsheet': - return { - ext: 'ods', - mime: 'application/vnd.oasis.opendocument.spreadsheet' - }; - case 'application/vnd.oasis.opendocument.presentation': - return { - ext: 'odp', - mime: 'application/vnd.oasis.opendocument.presentation' - }; - default: - } - } - - // Try to find next header manually when current one is corrupted - if (zipHeader.compressedSize === 0) { - let nextHeaderIndex = -1; - - while (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) { - await tokenizer.peekBuffer(buffer, {mayBeLess: true}); - - nextHeaderIndex = buffer.indexOf('504B0304', 0, 'hex'); - // Move position to the next header if found, skip the whole buffer otherwise - await tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : buffer.length); - } - } else { - await tokenizer.ignore(zipHeader.compressedSize); - } - } - } catch (error) { - if (!(error instanceof strtok3.EndOfStreamError)) { - throw error; - } - } - - return { - ext: 'zip', - mime: 'application/zip' - }; - } - - if (checkString('OggS')) { - // This is an OGG container - await tokenizer.ignore(28); - const type = Buffer.alloc(8); - await tokenizer.readBuffer(type); - - // Needs to be before `ogg` check - if (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) { - return { - ext: 'opus', - mime: 'audio/opus' - }; - } - - // If ' theora' in header. - if (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) { - return { - ext: 'ogv', - mime: 'video/ogg' - }; - } - - // If '\x01video' in header. - if (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) { - return { - ext: 'ogm', - mime: 'video/ogg' - }; - } - - // If ' FLAC' in header https://xiph.org/flac/faq.html - if (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) { - return { - ext: 'oga', - mime: 'audio/ogg' - }; - } - - // 'Speex ' in header https://en.wikipedia.org/wiki/Speex - if (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) { - return { - ext: 'spx', - mime: 'audio/ogg' - }; - } - - // If '\x01vorbis' in header - if (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) { - return { - ext: 'ogg', - mime: 'audio/ogg' - }; - } - - // Default OGG container https://www.iana.org/assignments/media-types/application/ogg - return { - ext: 'ogx', - mime: 'application/ogg' - }; - } - - if ( - check([0x50, 0x4B]) && - (buffer[2] === 0x3 || buffer[2] === 0x5 || buffer[2] === 0x7) && - (buffer[3] === 0x4 || buffer[3] === 0x6 || buffer[3] === 0x8) - ) { - return { - ext: 'zip', - mime: 'application/zip' - }; - } - - // - - // File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format) - // It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box. - // `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters. - // Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character). - if ( - checkString('ftyp', {offset: 4}) && - (buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII? - ) { - // They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect. - // For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension. - const brandMajor = buffer.toString('binary', 8, 12).replace('\0', ' ').trim(); - switch (brandMajor) { - case 'avif': - return {ext: 'avif', mime: 'image/avif'}; - case 'mif1': - return {ext: 'heic', mime: 'image/heif'}; - case 'msf1': - return {ext: 'heic', mime: 'image/heif-sequence'}; - case 'heic': - case 'heix': - return {ext: 'heic', mime: 'image/heic'}; - case 'hevc': - case 'hevx': - return {ext: 'heic', mime: 'image/heic-sequence'}; - case 'qt': - return {ext: 'mov', mime: 'video/quicktime'}; - case 'M4V': - case 'M4VH': - case 'M4VP': - return {ext: 'm4v', mime: 'video/x-m4v'}; - case 'M4P': - return {ext: 'm4p', mime: 'video/mp4'}; - case 'M4B': - return {ext: 'm4b', mime: 'audio/mp4'}; - case 'M4A': - return {ext: 'm4a', mime: 'audio/x-m4a'}; - case 'F4V': - return {ext: 'f4v', mime: 'video/mp4'}; - case 'F4P': - return {ext: 'f4p', mime: 'video/mp4'}; - case 'F4A': - return {ext: 'f4a', mime: 'audio/mp4'}; - case 'F4B': - return {ext: 'f4b', mime: 'audio/mp4'}; - case 'crx': - return {ext: 'cr3', mime: 'image/x-canon-cr3'}; - default: - if (brandMajor.startsWith('3g')) { - if (brandMajor.startsWith('3g2')) { - return {ext: '3g2', mime: 'video/3gpp2'}; - } - - return {ext: '3gp', mime: 'video/3gpp'}; - } - - return {ext: 'mp4', mime: 'video/mp4'}; - } - } - - if (checkString('MThd')) { - return { - ext: 'mid', - mime: 'audio/midi' - }; - } - - if ( - checkString('wOFF') && - ( - check([0x00, 0x01, 0x00, 0x00], {offset: 4}) || - checkString('OTTO', {offset: 4}) - ) - ) { - return { - ext: 'woff', - mime: 'font/woff' - }; - } - - if ( - checkString('wOF2') && - ( - check([0x00, 0x01, 0x00, 0x00], {offset: 4}) || - checkString('OTTO', {offset: 4}) - ) - ) { - return { - ext: 'woff2', - mime: 'font/woff2' - }; - } - - if (check([0xD4, 0xC3, 0xB2, 0xA1]) || check([0xA1, 0xB2, 0xC3, 0xD4])) { - return { - ext: 'pcap', - mime: 'application/vnd.tcpdump.pcap' - }; - } - - // Sony DSD Stream File (DSF) - if (checkString('DSD ')) { - return { - ext: 'dsf', - mime: 'audio/x-dsf' // Non-standard - }; - } - - if (checkString('LZIP')) { - return { - ext: 'lz', - mime: 'application/x-lzip' - }; - } - - if (checkString('fLaC')) { - return { - ext: 'flac', - mime: 'audio/x-flac' - }; - } - - if (check([0x42, 0x50, 0x47, 0xFB])) { - return { - ext: 'bpg', - mime: 'image/bpg' - }; - } - - if (checkString('wvpk')) { - return { - ext: 'wv', - mime: 'audio/wavpack' - }; - } - - if (checkString('%PDF')) { - await tokenizer.ignore(1350); - const maxBufferSize = 10 * 1024 * 1024; - const buffer = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size)); - await tokenizer.readBuffer(buffer, {mayBeLess: true}); - - // Check if this is an Adobe Illustrator file - if (buffer.includes(Buffer.from('AIPrivateData'))) { - return { - ext: 'ai', - mime: 'application/postscript' - }; - } - - // Assume this is just a normal PDF - return { - ext: 'pdf', - mime: 'application/pdf' - }; - } - - if (check([0x00, 0x61, 0x73, 0x6D])) { - return { - ext: 'wasm', - mime: 'application/wasm' - }; - } - - // TIFF, little-endian type - if (check([0x49, 0x49, 0x2A, 0x0])) { - if (checkString('CR', {offset: 8})) { - return { - ext: 'cr2', - mime: 'image/x-canon-cr2' - }; - } - - if (check([0x1C, 0x00, 0xFE, 0x00], {offset: 8}) || check([0x1F, 0x00, 0x0B, 0x00], {offset: 8})) { - return { - ext: 'nef', - mime: 'image/x-nikon-nef' - }; - } - - if ( - check([0x08, 0x00, 0x00, 0x00], {offset: 4}) && - (check([0x2D, 0x00, 0xFE, 0x00], {offset: 8}) || - check([0x27, 0x00, 0xFE, 0x00], {offset: 8})) - ) { - return { - ext: 'dng', - mime: 'image/x-adobe-dng' - }; - } - - buffer = Buffer.alloc(24); - await tokenizer.peekBuffer(buffer); - if ( - (check([0x10, 0xFB, 0x86, 0x01], {offset: 4}) || check([0x08, 0x00, 0x00, 0x00], {offset: 4})) && - // This pattern differentiates ARW from other TIFF-ish file types: - check([0x00, 0xFE, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01], {offset: 9}) - ) { - return { - ext: 'arw', - mime: 'image/x-sony-arw' - }; - } - - return { - ext: 'tif', - mime: 'image/tiff' - }; - } - - // TIFF, big-endian type - if (check([0x4D, 0x4D, 0x0, 0x2A])) { - return { - ext: 'tif', - mime: 'image/tiff' - }; - } - - if (checkString('MAC ')) { - return { - ext: 'ape', - mime: 'audio/ape' - }; - } - - // https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska - if (check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML - async function readField() { - const msb = await tokenizer.peekNumber(Token.UINT8); - let mask = 0x80; - let ic = 0; // 0 = A, 1 = B, 2 = C, 3 = D - - while ((msb & mask) === 0 && mask !== 0) { - ++ic; - mask >>= 1; - } - - const id = Buffer.alloc(ic + 1); - await tokenizer.readBuffer(id); - return id; - } - - async function readElement() { - const id = await readField(); - const lenField = await readField(); - lenField[0] ^= 0x80 >> (lenField.length - 1); - const nrLen = Math.min(6, lenField.length); // JavaScript can max read 6 bytes integer - return { - id: id.readUIntBE(0, id.length), - len: lenField.readUIntBE(lenField.length - nrLen, nrLen) - }; - } - - async function readChildren(level, children) { - while (children > 0) { - const e = await readElement(); - if (e.id === 0x4282) { - return tokenizer.readToken(new Token.StringType(e.len, 'utf-8')); // Return DocType - } - - await tokenizer.ignore(e.len); // ignore payload - --children; - } - } - - const re = await readElement(); - const docType = await readChildren(1, re.len); - - switch (docType) { - case 'webm': - return { - ext: 'webm', - mime: 'video/webm' - }; - - case 'matroska': - return { - ext: 'mkv', - mime: 'video/x-matroska' - }; - - default: - return; - } - } - - // RIFF file format which might be AVI, WAV, QCP, etc - if (check([0x52, 0x49, 0x46, 0x46])) { - if (check([0x41, 0x56, 0x49], {offset: 8})) { - return { - ext: 'avi', - mime: 'video/vnd.avi' - }; - } - - if (check([0x57, 0x41, 0x56, 0x45], {offset: 8})) { - return { - ext: 'wav', - mime: 'audio/vnd.wave' - }; - } - - // QLCM, QCP file - if (check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) { - return { - ext: 'qcp', - mime: 'audio/qcelp' - }; - } - } - - if (checkString('SQLi')) { - return { - ext: 'sqlite', - mime: 'application/x-sqlite3' - }; - } - - if (check([0x4E, 0x45, 0x53, 0x1A])) { - return { - ext: 'nes', - mime: 'application/x-nintendo-nes-rom' - }; - } - - if (checkString('Cr24')) { - return { - ext: 'crx', - mime: 'application/x-google-chrome-extension' - }; - } - - if ( - checkString('MSCF') || - checkString('ISc(') - ) { - return { - ext: 'cab', - mime: 'application/vnd.ms-cab-compressed' - }; - } - - if (check([0xED, 0xAB, 0xEE, 0xDB])) { - return { - ext: 'rpm', - mime: 'application/x-rpm' - }; - } - - if (check([0xC5, 0xD0, 0xD3, 0xC6])) { - return { - ext: 'eps', - mime: 'application/eps' - }; - } - - if (check([0x28, 0xB5, 0x2F, 0xFD])) { - return { - ext: 'zst', - mime: 'application/zstd' - }; - } - - // -- 5-byte signatures -- - - if (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) { - return { - ext: 'otf', - mime: 'font/otf' - }; - } - - if (checkString('#!AMR')) { - return { - ext: 'amr', - mime: 'audio/amr' - }; - } - - if (checkString('{\\rtf')) { - return { - ext: 'rtf', - mime: 'application/rtf' - }; - } - - if (check([0x46, 0x4C, 0x56, 0x01])) { - return { - ext: 'flv', - mime: 'video/x-flv' - }; - } - - if (checkString('IMPM')) { - return { - ext: 'it', - mime: 'audio/x-it' - }; - } - - if ( - checkString('-lh0-', {offset: 2}) || - checkString('-lh1-', {offset: 2}) || - checkString('-lh2-', {offset: 2}) || - checkString('-lh3-', {offset: 2}) || - checkString('-lh4-', {offset: 2}) || - checkString('-lh5-', {offset: 2}) || - checkString('-lh6-', {offset: 2}) || - checkString('-lh7-', {offset: 2}) || - checkString('-lzs-', {offset: 2}) || - checkString('-lz4-', {offset: 2}) || - checkString('-lz5-', {offset: 2}) || - checkString('-lhd-', {offset: 2}) - ) { - return { - ext: 'lzh', - mime: 'application/x-lzh-compressed' - }; - } - - // MPEG program stream (PS or MPEG-PS) - if (check([0x00, 0x00, 0x01, 0xBA])) { - // MPEG-PS, MPEG-1 Part 1 - if (check([0x21], {offset: 4, mask: [0xF1]})) { - return { - ext: 'mpg', // May also be .ps, .mpeg - mime: 'video/MP1S' - }; - } - - // MPEG-PS, MPEG-2 Part 1 - if (check([0x44], {offset: 4, mask: [0xC4]})) { - return { - ext: 'mpg', // May also be .mpg, .m2p, .vob or .sub - mime: 'video/MP2P' - }; - } - } - - if (checkString('ITSF')) { - return { - ext: 'chm', - mime: 'application/vnd.ms-htmlhelp' - }; - } - - // -- 6-byte signatures -- - - if (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) { - return { - ext: 'xz', - mime: 'application/x-xz' - }; - } - - if (checkString('')) { - await tokenizer.ignore(8); - const str = await tokenizer.readToken(new Token.StringType(13, 'ascii')); - if (str === 'debian-binary') { - return { - ext: 'deb', - mime: 'application/x-deb' - }; - } - - return { - ext: 'ar', - mime: 'application/x-unix-archive' - }; - } - - // -- 8-byte signatures -- - - if (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) { - // APNG format (https://wiki.mozilla.org/APNG_Specification) - // 1. Find the first IDAT (image data) chunk (49 44 41 54) - // 2. Check if there is an "acTL" chunk before the IDAT one (61 63 54 4C) - - // Offset calculated as follows: - // - 8 bytes: PNG signature - // - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk - - await tokenizer.ignore(8); // ignore PNG signature - - async function readChunkHeader() { - return { - length: await tokenizer.readToken(Token.INT32_BE), - type: await tokenizer.readToken(new Token.StringType(4, 'binary')) - }; - } - - do { - const chunk = await readChunkHeader(); - if (chunk.length < 0) { - return; // Invalid chunk length - } - - switch (chunk.type) { - case 'IDAT': - return { - ext: 'png', - mime: 'image/png' - }; - case 'acTL': - return { - ext: 'apng', - mime: 'image/apng' - }; - default: - await tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC - } - } while (tokenizer.position + 8 < tokenizer.fileInfo.size); - - return { - ext: 'png', - mime: 'image/png' - }; - } - - if (check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) { - return { - ext: 'arrow', - mime: 'application/x-apache-arrow' - }; - } - - if (check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) { - return { - ext: 'glb', - mime: 'model/gltf-binary' - }; - } - - // `mov` format variants - if ( - check([0x66, 0x72, 0x65, 0x65], {offset: 4}) || // `free` - check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) || // `mdat` MJPEG - check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) || // `moov` - check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide` - ) { - return { - ext: 'mov', - mime: 'video/quicktime' - }; - } - - // -- 9-byte signatures -- - - if (check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) { - return { - ext: 'orf', - mime: 'image/x-olympus-orf' - }; - } - - if (checkString('gimp xcf ')) { - return { - ext: 'xcf', - mime: 'image/x-xcf' - }; - } - - // -- 12-byte signatures -- - - if (check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) { - return { - ext: 'rw2', - mime: 'image/x-panasonic-rw2' - }; - } - - // ASF_Header_Object first 80 bytes - if (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) { - async function readHeader() { - const guid = Buffer.alloc(16); - await tokenizer.readBuffer(guid); - return { - id: guid, - size: Number(await tokenizer.readToken(Token.UINT64_LE)) - }; - } - - await tokenizer.ignore(30); - // Search for header should be in first 1KB of file. - while (tokenizer.position + 24 < tokenizer.fileInfo.size) { - const header = await readHeader(); - let payload = header.size - 24; - if (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) { - // Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365) - const typeId = Buffer.alloc(16); - payload -= await tokenizer.readBuffer(typeId); - - if (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) { - // Found audio: - return { - ext: 'asf', - mime: 'audio/x-ms-asf' - }; - } - - if (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) { - // Found video: - return { - ext: 'asf', - mime: 'video/x-ms-asf' - }; - } - - break; - } - - await tokenizer.ignore(payload); - } - - // Default to ASF generic extension - return { - ext: 'asf', - mime: 'application/vnd.ms-asf' - }; - } - - if (check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) { - return { - ext: 'ktx', - mime: 'image/ktx' - }; - } - - if ((check([0x7E, 0x10, 0x04]) || check([0x7E, 0x18, 0x04])) && check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) { - return { - ext: 'mie', - mime: 'application/x-mie' - }; - } - - if (check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) { - return { - ext: 'shp', - mime: 'application/x-esri-shape' - }; - } - - if (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) { - // JPEG-2000 family - - await tokenizer.ignore(20); - const type = await tokenizer.readToken(new Token.StringType(4, 'ascii')); - switch (type) { - case 'jp2 ': - return { - ext: 'jp2', - mime: 'image/jp2' - }; - case 'jpx ': - return { - ext: 'jpx', - mime: 'image/jpx' - }; - case 'jpm ': - return { - ext: 'jpm', - mime: 'image/jpm' - }; - case 'mjp2': - return { - ext: 'mj2', - mime: 'image/mj2' - }; - default: - return; - } - } - - if ( - check([0xFF, 0x0A]) || - check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A]) - ) { - return { - ext: 'jxl', - mime: 'image/jxl' - }; - } - - // -- Unsafe signatures -- - - if ( - check([0x0, 0x0, 0x1, 0xBA]) || - check([0x0, 0x0, 0x1, 0xB3]) - ) { - return { - ext: 'mpg', - mime: 'video/mpeg' - }; - } - - if (check([0x00, 0x01, 0x00, 0x00, 0x00])) { - return { - ext: 'ttf', - mime: 'font/ttf' - }; - } - - if (check([0x00, 0x00, 0x01, 0x00])) { - return { - ext: 'ico', - mime: 'image/x-icon' - }; - } - - if (check([0x00, 0x00, 0x02, 0x00])) { - return { - ext: 'cur', - mime: 'image/x-icon' - }; - } - - if (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) { - // Detected Microsoft Compound File Binary File (MS-CFB) Format. - return { - ext: 'cfb', - mime: 'application/x-cfb' - }; - } - - // Increase sample size from 12 to 256. - await tokenizer.peekBuffer(buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true}); - - // -- 15-byte signatures -- - - if (checkString('BEGIN:')) { - if (checkString('VCARD', {offset: 6})) { - return { - ext: 'vcf', - mime: 'text/vcard' - }; - } - - if (checkString('VCALENDAR', {offset: 6})) { - return { - ext: 'ics', - mime: 'text/calendar' - }; - } - } - - // `raf` is here just to keep all the raw image detectors together. - if (checkString('FUJIFILMCCD-RAW')) { - return { - ext: 'raf', - mime: 'image/x-fujifilm-raf' - }; - } - - if (checkString('Extended Module:')) { - return { - ext: 'xm', - mime: 'audio/x-xm' - }; - } - - if (checkString('Creative Voice File')) { - return { - ext: 'voc', - mime: 'audio/x-voc' - }; - } - - if (check([0x04, 0x00, 0x00, 0x00]) && buffer.length >= 16) { // Rough & quick check Pickle/ASAR - const jsonSize = buffer.readUInt32LE(12); - if (jsonSize > 12 && buffer.length >= jsonSize + 16) { - try { - const header = buffer.slice(16, jsonSize + 16).toString(); - const json = JSON.parse(header); - // Check if Pickle is ASAR - if (json.files) { // Final check, assuring Pickle/ASAR format - return { - ext: 'asar', - mime: 'application/x-asar' - }; - } - } catch (_) { - } - } - } - - if (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) { - return { - ext: 'mxf', - mime: 'application/mxf' - }; - } - - if (checkString('SCRM', {offset: 44})) { - return { - ext: 's3m', - mime: 'audio/x-s3m' - }; - } - - if (check([0x47], {offset: 4}) && (check([0x47], {offset: 192}) || check([0x47], {offset: 196}))) { - return { - ext: 'mts', - mime: 'video/mp2t' - }; - } - - if (check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) { - return { - ext: 'mobi', - mime: 'application/x-mobipocket-ebook' - }; - } - - if (check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) { - return { - ext: 'dcm', - mime: 'application/dicom' - }; - } - - if (check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) { - return { - ext: 'lnk', - mime: 'application/x.ms.shortcut' // Invented by us - }; - } - - if (check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) { - return { - ext: 'alias', - mime: 'application/x.apple.alias' // Invented by us - }; - } - - if ( - check([0x4C, 0x50], {offset: 34}) && - ( - check([0x00, 0x00, 0x01], {offset: 8}) || - check([0x01, 0x00, 0x02], {offset: 8}) || - check([0x02, 0x00, 0x02], {offset: 8}) - ) - ) { - return { - ext: 'eot', - mime: 'application/vnd.ms-fontobject' - }; - } - - if (check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) { - return { - ext: 'indd', - mime: 'application/x-indesign' - }; - } - - // Increase sample size from 256 to 512 - await tokenizer.peekBuffer(buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true}); - - // Requires a buffer size of 512 bytes - if (tarHeaderChecksumMatches(buffer)) { - return { - ext: 'tar', - mime: 'application/x-tar' - }; - } - - if (check([0xFF, 0xFE, 0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00])) { - return { - ext: 'skp', - mime: 'application/vnd.sketchup.skp' - }; - } - - if (checkString('-----BEGIN PGP MESSAGE-----')) { - return { - ext: 'pgp', - mime: 'application/pgp-encrypted' - }; - } - - // Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE) - if (buffer.length >= 2 && check([0xFF, 0xE0], {offset: 0, mask: [0xFF, 0xE0]})) { - if (check([0x10], {offset: 1, mask: [0x16]})) { - // Check for (ADTS) MPEG-2 - if (check([0x08], {offset: 1, mask: [0x08]})) { - return { - ext: 'aac', - mime: 'audio/aac' - }; - } - - // Must be (ADTS) MPEG-4 - return { - ext: 'aac', - mime: 'audio/aac' - }; - } - - // MPEG 1 or 2 Layer 3 header - // Check for MPEG layer 3 - if (check([0x02], {offset: 1, mask: [0x06]})) { - return { - ext: 'mp3', - mime: 'audio/mpeg' - }; - } - - // Check for MPEG layer 2 - if (check([0x04], {offset: 1, mask: [0x06]})) { - return { - ext: 'mp2', - mime: 'audio/mpeg' - }; - } - - // Check for MPEG layer 1 - if (check([0x06], {offset: 1, mask: [0x06]})) { - return { - ext: 'mp1', - mime: 'audio/mpeg' - }; - } - } -} - -const stream = readableStream => new Promise((resolve, reject) => { - // Using `eval` to work around issues when bundling with Webpack - const stream = eval('require')('stream'); // eslint-disable-line no-eval - - readableStream.on('error', reject); - readableStream.once('readable', async () => { - // Set up output stream - const pass = new stream.PassThrough(); - let outputStream; - if (stream.pipeline) { - outputStream = stream.pipeline(readableStream, pass, () => { - }); - } else { - outputStream = readableStream.pipe(pass); - } - - // Read the input stream and detect the filetype - const chunk = readableStream.read(minimumBytes) || readableStream.read() || Buffer.alloc(0); - try { - const fileType = await fromBuffer(chunk); - pass.fileType = fileType; - } catch (error) { - reject(error); - } - - resolve(outputStream); - }); -}); - -const fileType = { - fromStream, - fromTokenizer, - fromBuffer, - stream -}; - -Object.defineProperty(fileType, 'extensions', { - get() { - return new Set(supported.extensions); - } -}); - -Object.defineProperty(fileType, 'mimeTypes', { - get() { - return new Set(supported.mimeTypes); - } -}); - -module.exports = fileType; diff --git a/build/node_modules/file-type/index.d.ts b/build/node_modules/file-type/index.d.ts deleted file mode 100644 index 30c8eff5..00000000 --- a/build/node_modules/file-type/index.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/// -import {Readable as ReadableStream} from 'stream'; -import * as core from './core'; - -export type ReadableStreamWithFileType = core.ReadableStreamWithFileType; -export type FileTypeResult = core.FileTypeResult; -export type FileExtension = core.FileExtension; -export type MimeType = core.MimeType; - -/** -Detect the file type of a file path. - -The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - -@param path - The file path to parse. -@returns The detected file type and MIME type or `undefined` when there is no match. -*/ -export function fromFile(path: string): Promise; - -export { - fromBuffer, - fromStream, - fromTokenizer, - extensions, - mimeTypes, - stream -} from './core'; diff --git a/build/node_modules/file-type/index.js b/build/node_modules/file-type/index.js deleted file mode 100644 index 2c42ac0e..00000000 --- a/build/node_modules/file-type/index.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; -const strtok3 = require('strtok3'); -const core = require('./core'); - -async function fromFile(path) { - const tokenizer = await strtok3.fromFile(path); - try { - return await core.fromTokenizer(tokenizer); - } finally { - await tokenizer.close(); - } -} - -const fileType = { - fromFile -}; - -Object.assign(fileType, core); - -Object.defineProperty(fileType, 'extensions', { - get() { - return core.extensions; - } -}); - -Object.defineProperty(fileType, 'mimeTypes', { - get() { - return core.mimeTypes; - } -}); - -module.exports = fileType; diff --git a/build/node_modules/file-type/license b/build/node_modules/file-type/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/file-type/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/file-type/package.json b/build/node_modules/file-type/package.json deleted file mode 100644 index 82b840b0..00000000 --- a/build/node_modules/file-type/package.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "name": "file-type", - "version": "16.5.4", - "description": "Detect the file type of a Buffer/Uint8Array/ArrayBuffer", - "license": "MIT", - "repository": "sindresorhus/file-type", - "funding": "https://github.com/sindresorhus/file-type?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "ava": "ava --serial --verbose", - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "browser.js", - "browser.d.ts", - "core.js", - "core.d.ts", - "supported.js", - "util.js" - ], - "keywords": [ - "mime", - "file", - "type", - "magic", - "archive", - "image", - "img", - "pic", - "picture", - "flash", - "photo", - "video", - "detect", - "check", - "is", - "exif", - "exe", - "binary", - "buffer", - "uint8array", - "jpg", - "png", - "apng", - "gif", - "webp", - "flif", - "xcf", - "cr2", - "cr3", - "orf", - "arw", - "dng", - "nef", - "rw2", - "raf", - "tif", - "bmp", - "icns", - "jxr", - "psd", - "indd", - "zip", - "tar", - "rar", - "gz", - "bz2", - "7z", - "dmg", - "mp4", - "mid", - "mkv", - "webm", - "mov", - "avi", - "mpg", - "mp2", - "mp3", - "m4a", - "ogg", - "opus", - "flac", - "wav", - "amr", - "pdf", - "epub", - "mobi", - "swf", - "rtf", - "woff", - "woff2", - "eot", - "ttf", - "otf", - "ico", - "flv", - "ps", - "xz", - "sqlite", - "xpi", - "cab", - "deb", - "ar", - "rpm", - "Z", - "lz", - "cfb", - "mxf", - "mts", - "wasm", - "webassembly", - "blend", - "bpg", - "docx", - "pptx", - "xlsx", - "3gp", - "jp2", - "jpm", - "jpx", - "mj2", - "aif", - "odt", - "ods", - "odp", - "xml", - "heic", - "ics", - "glb", - "pcap", - "dsf", - "lnk", - "alias", - "voc", - "ac3", - "3g2", - "m4b", - "m4p", - "m4v", - "f4a", - "f4b", - "f4p", - "f4v", - "mie", - "qcp", - "asf", - "ogv", - "ogm", - "oga", - "spx", - "ogx", - "ape", - "wv", - "cur", - "nes", - "crx", - "ktx", - "dcm", - "mpc", - "arrow", - "shp", - "aac", - "mp1", - "it", - "s3m", - "xm", - "ai", - "skp", - "avif", - "eps", - "lzh", - "pgp", - "asar", - "stl", - "chm", - "3mf", - "zst", - "jxl", - "vcf" - ], - "devDependencies": { - "@types/node": "^13.1.4", - "ava": "^2.3.0", - "noop-stream": "^0.1.0", - "read-chunk": "^3.2.0", - "tsd": "^0.11.0", - "xo": "^0.25.3" - }, - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "xo": { - "envs": [ - "node", - "browser" - ], - "rules": { - "no-inner-declarations": "warn", - "no-await-in-loop": "warn", - "promise/prefer-await-to-then": "warn", - "prefer-named-capture-group": "off" - } - } -} diff --git a/build/node_modules/file-type/readme.md b/build/node_modules/file-type/readme.md deleted file mode 100644 index 72474d60..00000000 --- a/build/node_modules/file-type/readme.md +++ /dev/null @@ -1,470 +0,0 @@ -# file-type - -> Detect the file type of a Buffer/Uint8Array/ArrayBuffer - -The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - -This package is for detecting binary-based file formats, not text-based formats like `.txt`, `.csv`, `.svg`, etc. - -
- ---- - - - ---- - -
- -## Install - -``` -$ npm install file-type -``` - -## Usage - -#### Node.js - -Determine file type from a file: - -```js -const FileType = require('file-type'); - -(async () => { - console.log(await FileType.fromFile('Unicorn.png')); - //=> {ext: 'png', mime: 'image/png'} -})(); -``` - -Determine file type from a Buffer, which may be a portion of the beginning of a file: - -```js -const FileType = require('file-type'); -const readChunk = require('read-chunk'); - -(async () => { - const buffer = readChunk.sync('Unicorn.png', 0, 4100); - - console.log(await FileType.fromBuffer(buffer)); - //=> {ext: 'png', mime: 'image/png'} -})(); -``` - -Determine file type from a stream: - -```js -const fs = require('fs'); -const FileType = require('file-type'); - -(async () => { - const stream = fs.createReadStream('Unicorn.mp4'); - - console.log(await FileType.fromStream(stream)); - //=> {ext: 'mp4', mime: 'video/mp4'} -} -)(); -``` - -The stream method can also be used to read from a remote location: - -```js -const got = require('got'); -const FileType = require('file-type'); - -const url = 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg'; - -(async () => { - const stream = got.stream(url); - - console.log(await FileType.fromStream(stream)); - //=> {ext: 'jpg', mime: 'image/jpeg'} -})(); -``` - -Another stream example: - -```js -const stream = require('stream'); -const fs = require('fs'); -const crypto = require('crypto'); -const FileType = require('file-type'); - -(async () => { - const read = fs.createReadStream('encrypted.enc'); - const decipher = crypto.createDecipheriv(alg, key, iv); - - const fileTypeStream = await FileType.stream(stream.pipeline(read, decipher)); - - console.log(fileTypeStream.fileType); - //=> {ext: 'mov', mime: 'video/quicktime'} - - const write = fs.createWriteStream(`decrypted.${fileTypeStream.fileType.ext}`); - fileTypeStream.pipe(write); -})(); -``` - -#### Browser - -```js -const FileType = require('file-type/browser'); - -const url = 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg'; - -(async () => { - const response = await fetch(url); - const fileType = await FileType.fromStream(response.body); - - console.log(fileType); - //=> {ext: 'jpg', mime: 'image/jpeg'} -})(); -``` - -```js -const FileType = require('file-type/browser'); - -(async () => { - const blob = new Blob([''], { - type: 'plain/text', - endings: 'native' - }); - - console.log(await FileType.fromBlob(blob)); - //=> {ext: 'txt', mime: 'plain/text'} -})(); -``` - -## API - -### FileType.fromBuffer(buffer) - -Detect the file type of a `Buffer`, `Uint8Array`, or `ArrayBuffer`. - -The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - -If file access is available, it is recommended to use `FileType.fromFile()` instead. - -Returns a `Promise` for an object with the detected file type and MIME type: - -- `ext` - One of the [supported file types](#supported-file-types) -- `mime` - The [MIME type](https://en.wikipedia.org/wiki/Internet_media_type) - -Or `undefined` when there is no match. - -#### buffer - -Type: `Buffer | Uint8Array | ArrayBuffer` - -A buffer representing file data. It works best if the buffer contains the entire file, it may work with a smaller portion as well. - -### FileType.fromFile(filePath) - -Detect the file type of a file path. - -The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - -Returns a `Promise` for an object with the detected file type and MIME type: - -- `ext` - One of the [supported file types](#supported-file-types) -- `mime` - The [MIME type](https://en.wikipedia.org/wiki/Internet_media_type) - -Or `undefined` when there is no match. - -#### filePath - -Type: `string` - -The file path to parse. - -### FileType.fromStream(stream) - -Detect the file type of a Node.js [readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable). - -The file type is detected by checking the [magic number](https://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files) of the buffer. - -Returns a `Promise` for an object with the detected file type and MIME type: - -- `ext` - One of the [supported file types](#supported-file-types) -- `mime` - The [MIME type](https://en.wikipedia.org/wiki/Internet_media_type) - -Or `undefined` when there is no match. - -#### stream - -Type: [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable) - -A readable stream representing file data. - -### FileType.fromTokenizer(tokenizer) - -Detect the file type from an `ITokenizer` source. - -This method is used internally, but can also be used for a special "tokenizer" reader. - -A tokenizer propagates the internal read functions, allowing alternative transport mechanisms, to access files, to be implemented and used. - -Returns a `Promise` for an object with the detected file type and MIME type: - -- `ext` - One of the [supported file types](#supported-file-types) -- `mime` - The [MIME type](https://en.wikipedia.org/wiki/Internet_media_type) - -Or `undefined` when there is no match. - -An example is [`@tokenizer/http`](https://github.com/Borewit/tokenizer-http), which requests data using [HTTP-range-requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests). A difference with a conventional stream and the [*tokenizer*](https://github.com/Borewit/strtok3#tokenizer), is that it can *ignore* (seek, fast-forward) in the stream. For example, you may only need and read the first 6 bytes, and the last 128 bytes, which may be an advantage in case reading the entire file would take longer. - -```js -const {makeTokenizer} = require('@tokenizer/http'); -const FileType = require('file-type'); - -const audioTrackUrl = 'https://test-audio.netlify.com/Various%20Artists%20-%202009%20-%20netBloc%20Vol%2024_%20tiuqottigeloot%20%5BMP3-V2%5D/01%20-%20Diablo%20Swing%20Orchestra%20-%20Heroines.mp3'; - -(async () => { - const httpTokenizer = await makeTokenizer(audioTrackUrl); - const fileType = await FileType.fromTokenizer(httpTokenizer); - - console.log(fileType); - //=> {ext: 'mp3', mime: 'audio/mpeg'} -})(); -``` - -Or use [`@tokenizer/s3`](https://github.com/Borewit/tokenizer-s3) to determine the file type of a file stored on [Amazon S3](https://aws.amazon.com/s3): - -```js -const FileType = require('file-type'); -const S3 = require('aws-sdk/clients/s3'); -const {makeTokenizer} = require('@tokenizer/s3'); - -(async () => { - // Initialize the S3 client - const s3 = new S3(); - - // Initialize the S3 tokenizer. - const s3Tokenizer = await makeTokenizer(s3, { - Bucket: 'affectlab', - Key: '1min_35sec.mp4' - }); - - // Figure out what kind of file it is. - const fileType = await FileType.fromTokenizer(s3Tokenizer); - console.log(fileType); -})(); -``` - -Note that only the minimum amount of data required to determine the file type is read (okay, just a bit extra to prevent too many fragmented reads). - -#### tokenizer - -Type: [`ITokenizer`](https://github.com/Borewit/strtok3#tokenizer) - -A file source implementing the [tokenizer interface](https://github.com/Borewit/strtok3#tokenizer). - -### FileType.stream(readableStream) - -Detect the file type of a readable stream. - -Returns a `Promise` which resolves to the original readable stream argument, but with an added `fileType` property, which is an object like the one returned from `FileType.fromFile()`. - -*Note:* This method is only available using Node.js. - -#### readableStream - -Type: [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable) - -The input stream. - -### FileType.extensions - -Returns a set of supported file extensions. - -### FileType.mimeTypes - -Returns a set of supported MIME types. - -## Supported file types - -- [`jpg`](https://en.wikipedia.org/wiki/JPEG) - Joint Photographic Experts Group image -- [`png`](https://en.wikipedia.org/wiki/Portable_Network_Graphics) - Portable Network Graphics -- [`apng`](https://en.wikipedia.org/wiki/APNG) - Animated Portable Network Graphics -- [`gif`](https://en.wikipedia.org/wiki/GIF) - Graphics Interchange Format -- [`webp`](https://en.wikipedia.org/wiki/WebP) - Web Picture format -- [`flif`](https://en.wikipedia.org/wiki/Free_Lossless_Image_Format) - Free Lossless Image Format -- [`xcf`](https://en.wikipedia.org/wiki/XCF_(file_format)) - eXperimental Computing Facility -- [`cr2`](https://fileinfo.com/extension/cr2) - Canon Raw image file (v2) -- [`cr3`](https://fileinfo.com/extension/cr3) - Canon Raw image file (v3) -- [`orf`](https://en.wikipedia.org/wiki/ORF_format) - Olympus Raw image file -- [`arw`](https://en.wikipedia.org/wiki/Raw_image_format#ARW) - Sony Alpha Raw image file -- [`dng`](https://en.wikipedia.org/wiki/Digital_Negative) - Adobe Digital Negative image file -- [`nef`](https://www.nikonusa.com/en/learn-and-explore/a/products-and-innovation/nikon-electronic-format-nef.html) - Nikon Electronic Format image file -- [`rw2`](https://en.wikipedia.org/wiki/Raw_image_format) - Panasonic RAW image file -- [`raf`](https://en.wikipedia.org/wiki/Raw_image_format) - Fujifilm RAW image file -- [`tif`](https://en.wikipedia.org/wiki/Tagged_Image_File_Format) - Tagged Image file -- [`bmp`](https://en.wikipedia.org/wiki/BMP_file_format) - Bitmap image file -- [`icns`](https://en.wikipedia.org/wiki/Apple_Icon_Image_format) - Apple Icon image -- [`jxr`](https://en.wikipedia.org/wiki/JPEG_XR) - Joint Photographic Experts Group extended range -- [`psd`](https://en.wikipedia.org/wiki/Adobe_Photoshop#File_format) - Adobe Photoshop document -- [`indd`](https://en.wikipedia.org/wiki/Adobe_InDesign#File_format) - Adobe InDesign document -- [`zip`](https://en.wikipedia.org/wiki/Zip_(file_format)) - Archive file -- [`tar`](https://en.wikipedia.org/wiki/Tar_(computing)#File_format) - Tarball archive file -- [`rar`](https://en.wikipedia.org/wiki/RAR_(file_format)) - Archive file -- [`gz`](https://en.wikipedia.org/wiki/Gzip) - Archive file -- [`bz2`](https://en.wikipedia.org/wiki/Bzip2) - Archive file -- [`zst`](https://en.wikipedia.org/wiki/Zstandard) - Archive file -- [`7z`](https://en.wikipedia.org/wiki/7z) - 7-Zip archive -- [`dmg`](https://en.wikipedia.org/wiki/Apple_Disk_Image) - Apple Disk Image -- [`mp4`](https://en.wikipedia.org/wiki/MPEG-4_Part_14#Filename_extensions) - MPEG-4 Part 14 video file -- [`mid`](https://en.wikipedia.org/wiki/MIDI) - Musical Instrument Digital Interface file -- [`mkv`](https://en.wikipedia.org/wiki/Matroska) - Matroska video file -- [`webm`](https://en.wikipedia.org/wiki/WebM) - Web video file -- [`mov`](https://en.wikipedia.org/wiki/QuickTime_File_Format) - QuickTime video file -- [`avi`](https://en.wikipedia.org/wiki/Audio_Video_Interleave) - Audio Video Interleave file -- [`mpg`](https://en.wikipedia.org/wiki/MPEG-1) - MPEG-1 file -- [`mp1`](https://en.wikipedia.org/wiki/MPEG-1_Audio_Layer_I) - MPEG-1 Audio Layer I -- [`mp2`](https://en.wikipedia.org/wiki/MPEG-1_Audio_Layer_II) - MPEG-1 Audio Layer II -- [`mp3`](https://en.wikipedia.org/wiki/MP3) - Audio file -- [`ogg`](https://en.wikipedia.org/wiki/Ogg) - Audio file -- [`ogv`](https://en.wikipedia.org/wiki/Ogg) - Audio file -- [`ogm`](https://en.wikipedia.org/wiki/Ogg) - Audio file -- [`oga`](https://en.wikipedia.org/wiki/Ogg) - Audio file -- [`spx`](https://en.wikipedia.org/wiki/Ogg) - Audio file -- [`ogx`](https://en.wikipedia.org/wiki/Ogg) - Audio file -- [`opus`](https://en.wikipedia.org/wiki/Opus_(audio_format)) - Audio file -- [`flac`](https://en.wikipedia.org/wiki/FLAC) - Free Lossless Audio Codec -- [`wav`](https://en.wikipedia.org/wiki/WAV) - Waveform Audio file -- [`qcp`](https://en.wikipedia.org/wiki/QCP) - Tagged and chunked data -- [`amr`](https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec) - Adaptive Multi-Rate audio codec -- [`pdf`](https://en.wikipedia.org/wiki/Portable_Document_Format) - Portable Document Format -- [`epub`](https://en.wikipedia.org/wiki/EPUB) - E-book file -- [`mobi`](https://en.wikipedia.org/wiki/Mobipocket) - Mobipocket -- [`exe`](https://en.wikipedia.org/wiki/.exe) - Executable file -- [`swf`](https://en.wikipedia.org/wiki/SWF) - Adobe Flash Player file -- [`rtf`](https://en.wikipedia.org/wiki/Rich_Text_Format) - Rich Text Format -- [`woff`](https://en.wikipedia.org/wiki/Web_Open_Font_Format) - Web Open Font Format -- [`woff2`](https://en.wikipedia.org/wiki/Web_Open_Font_Format) - Web Open Font Format -- [`eot`](https://en.wikipedia.org/wiki/Embedded_OpenType) - Embedded OpenType font -- [`ttf`](https://en.wikipedia.org/wiki/TrueType) - TrueType font -- [`otf`](https://en.wikipedia.org/wiki/OpenType) - OpenType font -- [`ico`](https://en.wikipedia.org/wiki/ICO_(file_format)) - Windows icon file -- [`flv`](https://en.wikipedia.org/wiki/Flash_Video) - Flash video -- [`ps`](https://en.wikipedia.org/wiki/Postscript) - Postscript -- [`xz`](https://en.wikipedia.org/wiki/Xz) - Compressed file -- [`sqlite`](https://www.sqlite.org/fileformat2.html) - SQLite file -- [`nes`](https://fileinfo.com/extension/nes) - Nintendo NES ROM -- [`crx`](https://developer.chrome.com/extensions/crx) - Google Chrome extension -- [`xpi`](https://en.wikipedia.org/wiki/XPInstall) - XPInstall file -- [`cab`](https://en.wikipedia.org/wiki/Cabinet_(file_format)) - Cabinet file -- [`deb`](https://en.wikipedia.org/wiki/Deb_(file_format)) - Debian package -- [`ar`](https://en.wikipedia.org/wiki/Ar_(Unix)) - Archive file -- [`rpm`](https://fileinfo.com/extension/rpm) - Red Hat Package Manager file -- [`Z`](https://fileinfo.com/extension/z) - Unix Compressed File -- [`lz`](https://en.wikipedia.org/wiki/Lzip) - Arhive file -- [`cfb`](https://en.wikipedia.org/wiki/Compound_File_Binary_Format) - Compount File Binary Format -- [`mxf`](https://en.wikipedia.org/wiki/Material_Exchange_Format) - Material Exchange Format -- [`mts`](https://en.wikipedia.org/wiki/.m2ts) - Blu-ray Disc Audio-Video MPEG-2 Transport Stream -- [`wasm`](https://en.wikipedia.org/wiki/WebAssembly) - WebAssembly intermediate compiled format -- [`blend`](https://wiki.blender.org/index.php/Dev:Source/Architecture/File_Format) - Blender project -- [`bpg`](https://bellard.org/bpg/) - Better Portable Graphics file -- [`docx`](https://en.wikipedia.org/wiki/Office_Open_XML) - Microsoft Word -- [`pptx`](https://en.wikipedia.org/wiki/Office_Open_XML) - Microsoft Powerpoint -- [`xlsx`](https://en.wikipedia.org/wiki/Office_Open_XML) - Microsoft Excel -- [`jp2`](https://en.wikipedia.org/wiki/JPEG_2000) - JPEG 2000 -- [`jpm`](https://en.wikipedia.org/wiki/JPEG_2000) - JPEG 2000 -- [`jpx`](https://en.wikipedia.org/wiki/JPEG_2000) - JPEG 2000 -- [`mj2`](https://en.wikipedia.org/wiki/Motion_JPEG_2000) - Motion JPEG 2000 -- [`aif`](https://en.wikipedia.org/wiki/Audio_Interchange_File_Format) - Audio Interchange file -- [`odt`](https://en.wikipedia.org/wiki/OpenDocument) - OpenDocument for word processing -- [`ods`](https://en.wikipedia.org/wiki/OpenDocument) - OpenDocument for spreadsheets -- [`odp`](https://en.wikipedia.org/wiki/OpenDocument) - OpenDocument for presentations -- [`xml`](https://en.wikipedia.org/wiki/XML) - eXtensible Markup Language -- [`heic`](https://nokiatech.github.io/heif/technical.html) - High Efficiency Image File Format -- [`cur`](https://en.wikipedia.org/wiki/ICO_(file_format)) - Icon file -- [`ktx`](https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/) - OpenGL and OpenGL ES textures -- [`ape`](https://en.wikipedia.org/wiki/Monkey%27s_Audio) - Monkey's Audio -- [`wv`](https://en.wikipedia.org/wiki/WavPack) - WavPack -- [`asf`](https://en.wikipedia.org/wiki/Advanced_Systems_Format) - Advanced Systems Format -- [`dcm`](https://en.wikipedia.org/wiki/DICOM#Data_format) - DICOM Image File -- [`mpc`](https://en.wikipedia.org/wiki/Musepack) - Musepack (SV7 & SV8) -- [`ics`](https://en.wikipedia.org/wiki/ICalendar#Data_format) - iCalendar -- [`vcf`](https://en.wikipedia.org/wiki/VCard) - vCard -- [`glb`](https://github.com/KhronosGroup/glTF) - GL Transmission Format -- [`pcap`](https://wiki.wireshark.org/Development/LibpcapFileFormat) - Libpcap File Format -- [`dsf`](https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf) - Sony DSD Stream File (DSF) -- [`lnk`](https://en.wikipedia.org/wiki/Shortcut_%28computing%29#Microsoft_Windows) - Microsoft Windows file shortcut -- [`alias`](https://en.wikipedia.org/wiki/Alias_%28Mac_OS%29) - macOS Alias file -- [`voc`](https://wiki.multimedia.cx/index.php/Creative_Voice) - Creative Voice File -- [`ac3`](https://www.atsc.org/standard/a522012-digital-audio-compression-ac-3-e-ac-3-standard-12172012/) - ATSC A/52 Audio File -- [`3gp`](https://en.wikipedia.org/wiki/3GP_and_3G2#3GP) - Multimedia container format defined by the Third Generation Partnership Project (3GPP) for 3G UMTS multimedia services -- [`3g2`](https://en.wikipedia.org/wiki/3GP_and_3G2#3G2) - Multimedia container format defined by the 3GPP2 for 3G CDMA2000 multimedia services -- [`m4v`](https://en.wikipedia.org/wiki/M4V) - MPEG-4 Visual bitstreams -- [`m4p`](https://en.wikipedia.org/wiki/MPEG-4_Part_14#Filename_extensions) - MPEG-4 files with audio streams encrypted by FairPlay Digital Rights Management as were sold through the iTunes Store -- [`m4a`](https://en.wikipedia.org/wiki/M4A) - Audio-only MPEG-4 files -- [`m4b`](https://en.wikipedia.org/wiki/M4B) - Audiobook and podcast MPEG-4 files, which also contain metadata including chapter markers, images, and hyperlinks -- [`f4v`](https://en.wikipedia.org/wiki/Flash_Video) - ISO base media file format used by Adobe Flash Player -- [`f4p`](https://en.wikipedia.org/wiki/Flash_Video) - ISO base media file format protected by Adobe Access DRM used by Adobe Flash Player -- [`f4a`](https://en.wikipedia.org/wiki/Flash_Video) - Audio-only ISO base media file format used by Adobe Flash Player -- [`f4b`](https://en.wikipedia.org/wiki/Flash_Video) - Audiobook and podcast ISO base media file format used by Adobe Flash Player -- [`mie`](https://en.wikipedia.org/wiki/Sidecar_file) - Dedicated meta information format which supports storage of binary as well as textual meta information -- [`shp`](https://en.wikipedia.org/wiki/Shapefile) - Geospatial vector data format -- [`arrow`](https://arrow.apache.org) - Columnar format for tables of data -- [`aac`](https://en.wikipedia.org/wiki/Advanced_Audio_Coding) - Advanced Audio Coding -- [`it`](https://wiki.openmpt.org/Manual:_Module_formats#The_Impulse_Tracker_format_.28.it.29) - Audio module format: Impulse Tracker -- [`s3m`](https://wiki.openmpt.org/Manual:_Module_formats#The_ScreamTracker_3_format_.28.s3m.29) - Audio module format: ScreamTracker 3 -- [`xm`](https://wiki.openmpt.org/Manual:_Module_formats#The_FastTracker_2_format_.28.xm.29) - Audio module format: FastTracker 2 -- [`ai`](https://en.wikipedia.org/wiki/Adobe_Illustrator_Artwork) - Adobe Illustrator Artwork -- [`skp`](https://en.wikipedia.org/wiki/SketchUp) - SketchUp -- [`avif`](https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVIF)) - AV1 Image File Format -- [`eps`](https://en.wikipedia.org/wiki/Encapsulated_PostScript) - Encapsulated PostScript -- [`lzh`](https://en.wikipedia.org/wiki/LHA_(file_format)) - LZH archive -- [`pgp`](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) - Pretty Good Privacy -- [`asar`](https://github.com/electron/asar#format) - Archive format primarily used to enclose Electron applications -- [`stl`](https://en.wikipedia.org/wiki/STL_(file_format)) - Standard Tesselated Geometry File Format (ASCII only) -- [`chm`](https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help) - Microsoft Compiled HTML Help -- [`3mf`](https://en.wikipedia.org/wiki/3D_Manufacturing_Format) - 3D Manufacturing Format -- [`jxl`](https://en.wikipedia.org/wiki/JPEG_XL) - JPEG XL image format - -*Pull requests are welcome for additional commonly used file types.* - -The following file types will not be accepted: -- [MS-CFB: Microsoft Compound File Binary File Format based formats](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b), too old and difficult to parse: - - `.doc` - Microsoft Word 97-2003 Document - - `.xls` - Microsoft Excel 97-2003 Document - - `.ppt` - Microsoft PowerPoint97-2003 Document - - `.msi` - Microsoft Windows Installer -- `.csv` - [Reason.](https://github.com/sindresorhus/file-type/issues/264#issuecomment-568439196) -- `.svg` - Detecting it requires a full-blown parser. Check out [`is-svg`](https://github.com/sindresorhus/is-svg) for something that mostly works. - -## file-type for enterprise - -Available as part of the Tidelift Subscription. - -The maintainers of file-type and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-file-type?utm_source=npm-file-type&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - -## Related - -- [file-type-cli](https://github.com/sindresorhus/file-type-cli) - CLI for this module - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Mikael Finstad](https://github.com/mifi) -- [Ben Brook](https://github.com/bencmbrook) -- [Borewit](https://github.com/Borewit) diff --git a/build/node_modules/file-type/supported.js b/build/node_modules/file-type/supported.js deleted file mode 100644 index 1c39f909..00000000 --- a/build/node_modules/file-type/supported.js +++ /dev/null @@ -1,279 +0,0 @@ -'use strict'; - -module.exports = { - extensions: [ - 'jpg', - 'png', - 'apng', - 'gif', - 'webp', - 'flif', - 'xcf', - 'cr2', - 'cr3', - 'orf', - 'arw', - 'dng', - 'nef', - 'rw2', - 'raf', - 'tif', - 'bmp', - 'icns', - 'jxr', - 'psd', - 'indd', - 'zip', - 'tar', - 'rar', - 'gz', - 'bz2', - '7z', - 'dmg', - 'mp4', - 'mid', - 'mkv', - 'webm', - 'mov', - 'avi', - 'mpg', - 'mp2', - 'mp3', - 'm4a', - 'oga', - 'ogg', - 'ogv', - 'opus', - 'flac', - 'wav', - 'spx', - 'amr', - 'pdf', - 'epub', - 'exe', - 'swf', - 'rtf', - 'wasm', - 'woff', - 'woff2', - 'eot', - 'ttf', - 'otf', - 'ico', - 'flv', - 'ps', - 'xz', - 'sqlite', - 'nes', - 'crx', - 'xpi', - 'cab', - 'deb', - 'ar', - 'rpm', - 'Z', - 'lz', - 'cfb', - 'mxf', - 'mts', - 'blend', - 'bpg', - 'docx', - 'pptx', - 'xlsx', - '3gp', - '3g2', - 'jp2', - 'jpm', - 'jpx', - 'mj2', - 'aif', - 'qcp', - 'odt', - 'ods', - 'odp', - 'xml', - 'mobi', - 'heic', - 'cur', - 'ktx', - 'ape', - 'wv', - 'dcm', - 'ics', - 'glb', - 'pcap', - 'dsf', - 'lnk', - 'alias', - 'voc', - 'ac3', - 'm4v', - 'm4p', - 'm4b', - 'f4v', - 'f4p', - 'f4b', - 'f4a', - 'mie', - 'asf', - 'ogm', - 'ogx', - 'mpc', - 'arrow', - 'shp', - 'aac', - 'mp1', - 'it', - 's3m', - 'xm', - 'ai', - 'skp', - 'avif', - 'eps', - 'lzh', - 'pgp', - 'asar', - 'stl', - 'chm', - '3mf', - 'zst', - 'jxl', - 'vcf' - ], - mimeTypes: [ - 'image/jpeg', - 'image/png', - 'image/gif', - 'image/webp', - 'image/flif', - 'image/x-xcf', - 'image/x-canon-cr2', - 'image/x-canon-cr3', - 'image/tiff', - 'image/bmp', - 'image/vnd.ms-photo', - 'image/vnd.adobe.photoshop', - 'application/x-indesign', - 'application/epub+zip', - 'application/x-xpinstall', - 'application/vnd.oasis.opendocument.text', - 'application/vnd.oasis.opendocument.spreadsheet', - 'application/vnd.oasis.opendocument.presentation', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'application/zip', - 'application/x-tar', - 'application/x-rar-compressed', - 'application/gzip', - 'application/x-bzip2', - 'application/x-7z-compressed', - 'application/x-apple-diskimage', - 'application/x-apache-arrow', - 'video/mp4', - 'audio/midi', - 'video/x-matroska', - 'video/webm', - 'video/quicktime', - 'video/vnd.avi', - 'audio/vnd.wave', - 'audio/qcelp', - 'audio/x-ms-asf', - 'video/x-ms-asf', - 'application/vnd.ms-asf', - 'video/mpeg', - 'video/3gpp', - 'audio/mpeg', - 'audio/mp4', // RFC 4337 - 'audio/opus', - 'video/ogg', - 'audio/ogg', - 'application/ogg', - 'audio/x-flac', - 'audio/ape', - 'audio/wavpack', - 'audio/amr', - 'application/pdf', - 'application/x-msdownload', - 'application/x-shockwave-flash', - 'application/rtf', - 'application/wasm', - 'font/woff', - 'font/woff2', - 'application/vnd.ms-fontobject', - 'font/ttf', - 'font/otf', - 'image/x-icon', - 'video/x-flv', - 'application/postscript', - 'application/eps', - 'application/x-xz', - 'application/x-sqlite3', - 'application/x-nintendo-nes-rom', - 'application/x-google-chrome-extension', - 'application/vnd.ms-cab-compressed', - 'application/x-deb', - 'application/x-unix-archive', - 'application/x-rpm', - 'application/x-compress', - 'application/x-lzip', - 'application/x-cfb', - 'application/x-mie', - 'application/mxf', - 'video/mp2t', - 'application/x-blender', - 'image/bpg', - 'image/jp2', - 'image/jpx', - 'image/jpm', - 'image/mj2', - 'audio/aiff', - 'application/xml', - 'application/x-mobipocket-ebook', - 'image/heif', - 'image/heif-sequence', - 'image/heic', - 'image/heic-sequence', - 'image/icns', - 'image/ktx', - 'application/dicom', - 'audio/x-musepack', - 'text/calendar', - 'text/vcard', - 'model/gltf-binary', - 'application/vnd.tcpdump.pcap', - 'audio/x-dsf', // Non-standard - 'application/x.ms.shortcut', // Invented by us - 'application/x.apple.alias', // Invented by us - 'audio/x-voc', - 'audio/vnd.dolby.dd-raw', - 'audio/x-m4a', - 'image/apng', - 'image/x-olympus-orf', - 'image/x-sony-arw', - 'image/x-adobe-dng', - 'image/x-nikon-nef', - 'image/x-panasonic-rw2', - 'image/x-fujifilm-raf', - 'video/x-m4v', - 'video/3gpp2', - 'application/x-esri-shape', - 'audio/aac', - 'audio/x-it', - 'audio/x-s3m', - 'audio/x-xm', - 'video/MP1S', - 'video/MP2P', - 'application/vnd.sketchup.skp', - 'image/avif', - 'application/x-lzh-compressed', - 'application/pgp-encrypted', - 'application/x-asar', - 'model/stl', - 'application/vnd.ms-htmlhelp', - 'model/3mf', - 'image/jxl', - 'application/zstd' - ] -}; diff --git a/build/node_modules/file-type/util.js b/build/node_modules/file-type/util.js deleted file mode 100644 index d9cd54dd..00000000 --- a/build/node_modules/file-type/util.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -exports.stringToBytes = string => [...string].map(character => character.charCodeAt(0)); - -/** -Checks whether the TAR checksum is valid. - -@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`. -@param {number} offset - TAR header offset. -@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`. -*/ -exports.tarHeaderChecksumMatches = (buffer, offset = 0) => { - const readSum = parseInt(buffer.toString('utf8', 148, 154).replace(/\0.*$/, '').trim(), 8); // Read sum in header - if (isNaN(readSum)) { - return false; - } - - let sum = 8 * 0x20; // Initialize signed bit sum - - for (let i = offset; i < offset + 148; i++) { - sum += buffer[i]; - } - - for (let i = offset + 156; i < offset + 512; i++) { - sum += buffer[i]; - } - - return readSum === sum; -}; - -/** -ID3 UINT32 sync-safe tokenizer token. -28 bits (representing up to 256MB) integer, the msb is 0 to avoid "false syncsignals". -*/ -exports.uint32SyncSafeToken = { - get: (buffer, offset) => { - return (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21); - }, - len: 4 -}; diff --git a/build/node_modules/fill-range/LICENSE b/build/node_modules/fill-range/LICENSE deleted file mode 100644 index 9af4a67d..00000000 --- a/build/node_modules/fill-range/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-present, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/fill-range/README.md b/build/node_modules/fill-range/README.md deleted file mode 100644 index 8d756fe9..00000000 --- a/build/node_modules/fill-range/README.md +++ /dev/null @@ -1,237 +0,0 @@ -# fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range) - -> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save fill-range -``` - -## Usage - -Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_. - -```js -const fill = require('fill-range'); -// fill(from, to[, step, options]); - -console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] -console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10 -``` - -**Params** - -* `from`: **{String|Number}** the number or letter to start with -* `to`: **{String|Number}** the number or letter to end with -* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use. -* `options`: **{Object|Function}**: See all available [options](#options) - -## Examples - -By default, an array of values is returned. - -**Alphabetical ranges** - -```js -console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e'] -console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ] -``` - -**Numerical ranges** - -Numbers can be defined as actual numbers or strings. - -```js -console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] -console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ] -``` - -**Negative ranges** - -Numbers can be defined as actual numbers or strings. - -```js -console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ] -console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ] -``` - -**Steps (increments)** - -```js -// numerical ranges with increments -console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ] -console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ] -console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ] - -// alphabetical ranges with increments -console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ] -console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] -console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ] -``` - -## Options - -### options.step - -**Type**: `number` (formatted as a string or number) - -**Default**: `undefined` - -**Description**: The increment to use for the range. Can be used with letters or numbers. - -**Example(s)** - -```js -// numbers -console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ] -console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ] -console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ] - -// letters -console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] -console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ] -console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ] -``` - -### options.strictRanges - -**Type**: `boolean` - -**Default**: `false` - -**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges. - -**Example(s)** - -The following are all invalid: - -```js -fill('1.1', '2'); // decimals not supported in ranges -fill('a', '2'); // incompatible range values -fill(1, 10, 'foo'); // invalid "step" argument -``` - -### options.stringify - -**Type**: `boolean` - -**Default**: `undefined` - -**Description**: Cast all returned values to strings. By default, integers are returned as numbers. - -**Example(s)** - -```js -console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] -console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ] -``` - -### options.toRegex - -**Type**: `boolean` - -**Default**: `undefined` - -**Description**: Create a regex-compatible source string, instead of expanding values to an array. - -**Example(s)** - -```js -// alphabetical range -console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]' -// alphabetical with step -console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y' -// numerical range -console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100' -// numerical range with zero padding -console.log(fill('000001', '100000', { toRegex: true })); -//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000' -``` - -### options.transform - -**Type**: `function` - -**Default**: `undefined` - -**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_. - -**Example(s)** - -```js -// add zero padding -console.log(fill(1, 5, value => String(value).padStart(4, '0'))); -//=> ['0001', '0002', '0003', '0004', '0005'] -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 116 | [jonschlinkert](https://github.com/jonschlinkert) | -| 4 | [paulmillr](https://github.com/paulmillr) | -| 2 | [realityking](https://github.com/realityking) | -| 2 | [bluelovers](https://github.com/bluelovers) | -| 1 | [edorivai](https://github.com/edorivai) | -| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | - -### Author - -**Jon Schlinkert** - -* [GitHub Profile](https://github.com/jonschlinkert) -* [Twitter Profile](https://twitter.com/jonschlinkert) -* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) - -Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! - - - - - -### License - -Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/build/node_modules/fill-range/index.js b/build/node_modules/fill-range/index.js deleted file mode 100644 index 97ce35a5..00000000 --- a/build/node_modules/fill-range/index.js +++ /dev/null @@ -1,249 +0,0 @@ -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -const util = require('util'); -const toRegexRange = require('to-regex-range'); - -const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); - -const transform = toNumber => { - return value => toNumber === true ? Number(value) : String(value); -}; - -const isValidValue = value => { - return typeof value === 'number' || (typeof value === 'string' && value !== ''); -}; - -const isNumber = num => Number.isInteger(+num); - -const zeros = input => { - let value = `${input}`; - let index = -1; - if (value[0] === '-') value = value.slice(1); - if (value === '0') return false; - while (value[++index] === '0'); - return index > 0; -}; - -const stringify = (start, end, options) => { - if (typeof start === 'string' || typeof end === 'string') { - return true; - } - return options.stringify === true; -}; - -const pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === '-' ? '-' : ''; - if (dash) input = input.slice(1); - input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); - } - if (toNumber === false) { - return String(input); - } - return input; -}; - -const toMaxLen = (input, maxLength) => { - let negative = input[0] === '-' ? '-' : ''; - if (negative) { - input = input.slice(1); - maxLength--; - } - while (input.length < maxLength) input = '0' + input; - return negative ? ('-' + input) : input; -}; - -const toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - - let prefix = options.capture ? '' : '?:'; - let positives = ''; - let negatives = ''; - let result; - - if (parts.positives.length) { - positives = parts.positives.join('|'); - } - - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join('|')})`; - } - - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; - } - - if (options.wrap) { - return `(${prefix}${result})`; - } - - return result; -}; - -const toRange = (a, b, isNumbers, options) => { - if (isNumbers) { - return toRegexRange(a, b, { wrap: false, ...options }); - } - - let start = String.fromCharCode(a); - if (a === b) return start; - - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; -}; - -const toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? '' : '?:'; - return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); - } - return toRegexRange(start, end, options); -}; - -const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util.inspect(...args)); -}; - -const invalidRange = (start, end, options) => { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; -}; - -const invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } - return []; -}; - -const fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); - - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; - } - - // fix negative zero - if (a === 0) a = 0; - if (b === 0) b = 0; - - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); - - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify(start, end, options) === false; - let format = options.transform || transform(toNumber); - - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } - - let parts = { negatives: [], positives: [] }; - let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); - let range = []; - let index = 0; - - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format(a, index), maxLen, toNumber)); - } - a = descending ? a - step : a + step; - index++; - } - - if (options.toRegex === true) { - return step > 1 - ? toSequence(parts, options) - : toRegex(range, null, { wrap: false, ...options }); - } - - return range; -}; - -const fillLetters = (start, end, step = 1, options = {}) => { - if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { - return invalidRange(start, end, options); - } - - - let format = options.transform || (val => String.fromCharCode(val)); - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); - - let descending = a > b; - let min = Math.min(a, b); - let max = Math.max(a, b); - - if (options.toRegex && step === 1) { - return toRange(min, max, false, options); - } - - let range = []; - let index = 0; - - while (descending ? a >= b : a <= b) { - range.push(format(a, index)); - a = descending ? a - step : a + step; - index++; - } - - if (options.toRegex === true) { - return toRegex(range, null, { wrap: false, options }); - } - - return range; -}; - -const fill = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } - - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } - - if (typeof step === 'function') { - return fill(start, end, 1, { transform: step }); - } - - if (isObject(step)) { - return fill(start, end, 0, step); - } - - let opts = { ...options }; - if (opts.capture === true) opts.wrap = true; - step = step || opts.step || 1; - - if (!isNumber(step)) { - if (step != null && !isObject(step)) return invalidStep(step, opts); - return fill(start, end, 1, step); - } - - if (isNumber(start) && isNumber(end)) { - return fillNumbers(start, end, step, opts); - } - - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); -}; - -module.exports = fill; diff --git a/build/node_modules/fill-range/package.json b/build/node_modules/fill-range/package.json deleted file mode 100644 index 07d30767..00000000 --- a/build/node_modules/fill-range/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "fill-range", - "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", - "version": "7.0.1", - "homepage": "https://github.com/jonschlinkert/fill-range", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Edo Rivai (edo.rivai.nl)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Miller (paulmillr.com)", - "Rouven Weßling (www.rouvenwessling.de)", - "(https://github.com/wtgtybhertgeghgtwtg)" - ], - "repository": "jonschlinkert/fill-range", - "bugs": { - "url": "https://github.com/jonschlinkert/fill-range/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "devDependencies": { - "gulp-format-md": "^2.0.0", - "mocha": "^6.1.1" - }, - "keywords": [ - "alpha", - "alphabetical", - "array", - "bash", - "brace", - "expand", - "expansion", - "fill", - "glob", - "match", - "matches", - "matching", - "number", - "numerical", - "range", - "ranges", - "regex", - "sh" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/finalhandler/HISTORY.md b/build/node_modules/finalhandler/HISTORY.md deleted file mode 100644 index ec2d38b5..00000000 --- a/build/node_modules/finalhandler/HISTORY.md +++ /dev/null @@ -1,195 +0,0 @@ -1.2.0 / 2022-03-22 -================== - - * Remove set content headers that break response - * deps: on-finished@2.4.1 - * deps: statuses@2.0.1 - - Rename `425 Unordered Collection` to standard `425 Too Early` - -1.1.2 / 2019-05-09 -================== - - * Set stricter `Content-Security-Policy` header - * deps: parseurl@~1.3.3 - * deps: statuses@~1.5.0 - -1.1.1 / 2018-03-06 -================== - - * Fix 404 output for bad / missing pathnames - * deps: encodeurl@~1.0.2 - - Fix encoding `%` as last character - * deps: statuses@~1.4.0 - -1.1.0 / 2017-09-24 -================== - - * Use `res.headersSent` when available - -1.0.6 / 2017-09-22 -================== - - * deps: debug@2.6.9 - -1.0.5 / 2017-09-15 -================== - - * deps: parseurl@~1.3.2 - - perf: reduce overhead for full URLs - - perf: unroll the "fast-path" `RegExp` - -1.0.4 / 2017-08-03 -================== - - * deps: debug@2.6.8 - -1.0.3 / 2017-05-16 -================== - - * deps: debug@2.6.7 - - deps: ms@2.0.0 - -1.0.2 / 2017-04-22 -================== - - * deps: debug@2.6.4 - - deps: ms@0.7.3 - -1.0.1 / 2017-03-21 -================== - - * Fix missing `` in HTML document - * deps: debug@2.6.3 - - Fix: `DEBUG_MAX_ARRAY_LENGTH` - -1.0.0 / 2017-02-15 -================== - - * Fix exception when `err` cannot be converted to a string - * Fully URL-encode the pathname in the 404 message - * Only include the pathname in the 404 message - * Send complete HTML document - * Set `Content-Security-Policy: default-src 'self'` header - * deps: debug@2.6.1 - - Allow colors in workers - - Deprecated `DEBUG_FD` environment variable set to `3` or higher - - Fix error when running under React Native - - Use same color for same namespace - - deps: ms@0.7.2 - -0.5.1 / 2016-11-12 -================== - - * Fix exception when `err.headers` is not an object - * deps: statuses@~1.3.1 - * perf: hoist regular expressions - * perf: remove duplicate validation path - -0.5.0 / 2016-06-15 -================== - - * Change invalid or non-numeric status code to 500 - * Overwrite status message to match set status code - * Prefer `err.statusCode` if `err.status` is invalid - * Set response headers from `err.headers` object - * Use `statuses` instead of `http` module for status messages - - Includes all defined status messages - -0.4.1 / 2015-12-02 -================== - - * deps: escape-html@~1.0.3 - - perf: enable strict mode - - perf: optimize string replacement - - perf: use faster string coercion - -0.4.0 / 2015-06-14 -================== - - * Fix a false-positive when unpiping in Node.js 0.8 - * Support `statusCode` property on `Error` objects - * Use `unpipe` module for unpiping requests - * deps: escape-html@1.0.2 - * deps: on-finished@~2.3.0 - - Add defined behavior for HTTP `CONNECT` requests - - Add defined behavior for HTTP `Upgrade` requests - - deps: ee-first@1.1.1 - * perf: enable strict mode - * perf: remove argument reassignment - -0.3.6 / 2015-05-11 -================== - - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - -0.3.5 / 2015-04-22 -================== - - * deps: on-finished@~2.2.1 - - Fix `isFinished(req)` when data buffered - -0.3.4 / 2015-03-15 -================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - -0.3.3 / 2015-01-01 -================== - - * deps: debug@~2.1.1 - * deps: on-finished@~2.2.0 - -0.3.2 / 2014-10-22 -================== - - * deps: on-finished@~2.1.1 - - Fix handling of pipelined requests - -0.3.1 / 2014-10-16 -================== - - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - -0.3.0 / 2014-09-17 -================== - - * Terminate in progress response only on error - * Use `on-finished` to determine request status - -0.2.0 / 2014-09-03 -================== - - * Set `X-Content-Type-Options: nosniff` header - * deps: debug@~2.0.0 - -0.1.0 / 2014-07-16 -================== - - * Respond after request fully read - - prevents hung responses and socket hang ups - * deps: debug@1.0.4 - -0.0.3 / 2014-07-11 -================== - - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - -0.0.2 / 2014-06-19 -================== - - * Handle invalid status codes - -0.0.1 / 2014-06-05 -================== - - * deps: debug@1.0.2 - -0.0.0 / 2014-06-05 -================== - - * Extracted from connect/express diff --git a/build/node_modules/finalhandler/LICENSE b/build/node_modules/finalhandler/LICENSE deleted file mode 100644 index 60221067..00000000 --- a/build/node_modules/finalhandler/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2022 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/finalhandler/README.md b/build/node_modules/finalhandler/README.md deleted file mode 100644 index 81f10ef3..00000000 --- a/build/node_modules/finalhandler/README.md +++ /dev/null @@ -1,147 +0,0 @@ -# finalhandler - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-image]][node-url] -[![Build Status][github-actions-ci-image]][github-actions-ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Node.js function to invoke as the final step to respond to HTTP request. - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install finalhandler -``` - -## API - -```js -var finalhandler = require('finalhandler') -``` - -### finalhandler(req, res, [options]) - -Returns function to be invoked as the final step for the given `req` and `res`. -This function is to be invoked as `fn(err)`. If `err` is falsy, the handler will -write out a 404 response to the `res`. If it is truthy, an error response will -be written out to the `res` or `res` will be terminated if a response has already -started. - -When an error is written, the following information is added to the response: - - * The `res.statusCode` is set from `err.status` (or `err.statusCode`). If - this value is outside the 4xx or 5xx range, it will be set to 500. - * The `res.statusMessage` is set according to the status code. - * The body will be the HTML of the status code message if `env` is - `'production'`, otherwise will be `err.stack`. - * Any headers specified in an `err.headers` object. - -The final handler will also unpipe anything from `req` when it is invoked. - -#### options.env - -By default, the environment is determined by `NODE_ENV` variable, but it can be -overridden by this option. - -#### options.onerror - -Provide a function to be called with the `err` when it exists. Can be used for -writing errors to a central location without excessive function generation. Called -as `onerror(err, req, res)`. - -## Examples - -### always 404 - -```js -var finalhandler = require('finalhandler') -var http = require('http') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res) - done() -}) - -server.listen(3000) -``` - -### perform simple action - -```js -var finalhandler = require('finalhandler') -var fs = require('fs') -var http = require('http') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res) - - fs.readFile('index.html', function (err, buf) { - if (err) return done(err) - res.setHeader('Content-Type', 'text/html') - res.end(buf) - }) -}) - -server.listen(3000) -``` - -### use with middleware-style functions - -```js -var finalhandler = require('finalhandler') -var http = require('http') -var serveStatic = require('serve-static') - -var serve = serveStatic('public') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res) - serve(req, res, done) -}) - -server.listen(3000) -``` - -### keep log of all errors - -```js -var finalhandler = require('finalhandler') -var fs = require('fs') -var http = require('http') - -var server = http.createServer(function (req, res) { - var done = finalhandler(req, res, { onerror: logerror }) - - fs.readFile('index.html', function (err, buf) { - if (err) return done(err) - res.setHeader('Content-Type', 'text/html') - res.end(buf) - }) -}) - -server.listen(3000) - -function logerror (err) { - console.error(err.stack || err.toString()) -} -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/finalhandler.svg -[npm-url]: https://npmjs.org/package/finalhandler -[node-image]: https://img.shields.io/node/v/finalhandler.svg -[node-url]: https://nodejs.org/en/download -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/finalhandler.svg -[coveralls-url]: https://coveralls.io/r/pillarjs/finalhandler?branch=master -[downloads-image]: https://img.shields.io/npm/dm/finalhandler.svg -[downloads-url]: https://npmjs.org/package/finalhandler -[github-actions-ci-image]: https://img.shields.io/github/workflow/status/pillarjs/finalhandler/ci/master?label=ci -[github-actions-ci-url]: https://github.com/jshttp/pillarjs/finalhandler?query=workflow%3Aci diff --git a/build/node_modules/finalhandler/SECURITY.md b/build/node_modules/finalhandler/SECURITY.md deleted file mode 100644 index 6e23249f..00000000 --- a/build/node_modules/finalhandler/SECURITY.md +++ /dev/null @@ -1,25 +0,0 @@ -# Security Policies and Procedures - -## Reporting a Bug - -The `finalhandler` team and community take all security bugs seriously. Thank -you for improving the security of Express. We appreciate your efforts and -responsible disclosure and will make every effort to acknowledge your -contributions. - -Report security bugs by emailing the current owner(s) of `finalhandler`. This -information can be found in the npm registry using the command -`npm owner ls finalhandler`. -If unsure or unable to get the information from the above, open an issue -in the [project issue tracker](https://github.com/pillarjs/finalhandler/issues) -asking for the current contact information. - -To ensure the timely response to your report, please ensure that the entirety -of the report is contained within the email body and not solely behind a web -link or an attachment. - -At least one owner will acknowledge your email within 48 hours, and will send a -more detailed response within 48 hours indicating the next steps in handling -your report. After the initial reply to your report, the owners will -endeavor to keep you informed of the progress towards a fix and full -announcement, and may ask for additional information or guidance. diff --git a/build/node_modules/finalhandler/index.js b/build/node_modules/finalhandler/index.js deleted file mode 100644 index f628e42f..00000000 --- a/build/node_modules/finalhandler/index.js +++ /dev/null @@ -1,336 +0,0 @@ -/*! - * finalhandler - * Copyright(c) 2014-2022 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var debug = require('debug')('finalhandler') -var encodeUrl = require('encodeurl') -var escapeHtml = require('escape-html') -var onFinished = require('on-finished') -var parseUrl = require('parseurl') -var statuses = require('statuses') -var unpipe = require('unpipe') - -/** - * Module variables. - * @private - */ - -var DOUBLE_SPACE_REGEXP = /\x20{2}/g -var NEWLINE_REGEXP = /\n/g - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function (fn) { process.nextTick(fn.bind.apply(fn, arguments)) } -var isFinished = onFinished.isFinished - -/** - * Create a minimal HTML document. - * - * @param {string} message - * @private - */ - -function createHtmlDocument (message) { - var body = escapeHtml(message) - .replace(NEWLINE_REGEXP, '
') - .replace(DOUBLE_SPACE_REGEXP, '  ') - - return '\n' + - '\n' + - '\n' + - '\n' + - 'Error\n' + - '\n' + - '\n' + - '
' + body + '
\n' + - '\n' + - '\n' -} - -/** - * Module exports. - * @public - */ - -module.exports = finalhandler - -/** - * Create a function to handle the final response. - * - * @param {Request} req - * @param {Response} res - * @param {Object} [options] - * @return {Function} - * @public - */ - -function finalhandler (req, res, options) { - var opts = options || {} - - // get environment - var env = opts.env || process.env.NODE_ENV || 'development' - - // get error callback - var onerror = opts.onerror - - return function (err) { - var headers - var msg - var status - - // ignore 404 on in-flight response - if (!err && headersSent(res)) { - debug('cannot 404 after headers sent') - return - } - - // unhandled error - if (err) { - // respect status code from error - status = getErrorStatusCode(err) - - if (status === undefined) { - // fallback to status code on response - status = getResponseStatusCode(res) - } else { - // respect headers from error - headers = getErrorHeaders(err) - } - - // get error message - msg = getErrorMessage(err, status, env) - } else { - // not found - status = 404 - msg = 'Cannot ' + req.method + ' ' + encodeUrl(getResourceName(req)) - } - - debug('default %s', status) - - // schedule onerror callback - if (err && onerror) { - defer(onerror, err, req, res) - } - - // cannot actually respond - if (headersSent(res)) { - debug('cannot %d after headers sent', status) - req.socket.destroy() - return - } - - // send response - send(req, res, status, headers, msg) - } -} - -/** - * Get headers from Error object. - * - * @param {Error} err - * @return {object} - * @private - */ - -function getErrorHeaders (err) { - if (!err.headers || typeof err.headers !== 'object') { - return undefined - } - - var headers = Object.create(null) - var keys = Object.keys(err.headers) - - for (var i = 0; i < keys.length; i++) { - var key = keys[i] - headers[key] = err.headers[key] - } - - return headers -} - -/** - * Get message from Error object, fallback to status message. - * - * @param {Error} err - * @param {number} status - * @param {string} env - * @return {string} - * @private - */ - -function getErrorMessage (err, status, env) { - var msg - - if (env !== 'production') { - // use err.stack, which typically includes err.message - msg = err.stack - - // fallback to err.toString() when possible - if (!msg && typeof err.toString === 'function') { - msg = err.toString() - } - } - - return msg || statuses.message[status] -} - -/** - * Get status code from Error object. - * - * @param {Error} err - * @return {number} - * @private - */ - -function getErrorStatusCode (err) { - // check err.status - if (typeof err.status === 'number' && err.status >= 400 && err.status < 600) { - return err.status - } - - // check err.statusCode - if (typeof err.statusCode === 'number' && err.statusCode >= 400 && err.statusCode < 600) { - return err.statusCode - } - - return undefined -} - -/** - * Get resource name for the request. - * - * This is typically just the original pathname of the request - * but will fallback to "resource" is that cannot be determined. - * - * @param {IncomingMessage} req - * @return {string} - * @private - */ - -function getResourceName (req) { - try { - return parseUrl.original(req).pathname - } catch (e) { - return 'resource' - } -} - -/** - * Get status code from response. - * - * @param {OutgoingMessage} res - * @return {number} - * @private - */ - -function getResponseStatusCode (res) { - var status = res.statusCode - - // default status code to 500 if outside valid range - if (typeof status !== 'number' || status < 400 || status > 599) { - status = 500 - } - - return status -} - -/** - * Determine if the response headers have been sent. - * - * @param {object} res - * @returns {boolean} - * @private - */ - -function headersSent (res) { - return typeof res.headersSent !== 'boolean' - ? Boolean(res._header) - : res.headersSent -} - -/** - * Send response. - * - * @param {IncomingMessage} req - * @param {OutgoingMessage} res - * @param {number} status - * @param {object} headers - * @param {string} message - * @private - */ - -function send (req, res, status, headers, message) { - function write () { - // response body - var body = createHtmlDocument(message) - - // response status - res.statusCode = status - res.statusMessage = statuses.message[status] - - // remove any content headers - res.removeHeader('Content-Encoding') - res.removeHeader('Content-Language') - res.removeHeader('Content-Range') - - // response headers - setHeaders(res, headers) - - // security headers - res.setHeader('Content-Security-Policy', "default-src 'none'") - res.setHeader('X-Content-Type-Options', 'nosniff') - - // standard headers - res.setHeader('Content-Type', 'text/html; charset=utf-8') - res.setHeader('Content-Length', Buffer.byteLength(body, 'utf8')) - - if (req.method === 'HEAD') { - res.end() - return - } - - res.end(body, 'utf8') - } - - if (isFinished(req)) { - write() - return - } - - // unpipe everything from the request - unpipe(req) - - // flush the request - onFinished(req, write) - req.resume() -} - -/** - * Set response headers from an object. - * - * @param {OutgoingMessage} res - * @param {object} headers - * @private - */ - -function setHeaders (res, headers) { - if (!headers) { - return - } - - var keys = Object.keys(headers) - for (var i = 0; i < keys.length; i++) { - var key = keys[i] - res.setHeader(key, headers[key]) - } -} diff --git a/build/node_modules/finalhandler/package.json b/build/node_modules/finalhandler/package.json deleted file mode 100644 index 16bf11ed..00000000 --- a/build/node_modules/finalhandler/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "finalhandler", - "description": "Node.js final http responder", - "version": "1.2.0", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "repository": "pillarjs/finalhandler", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "devDependencies": { - "eslint": "7.32.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.25.4", - "eslint-plugin-markdown": "2.2.1", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "5.2.0", - "eslint-plugin-standard": "4.1.0", - "mocha": "9.2.2", - "nyc": "15.1.0", - "readable-stream": "2.3.6", - "safe-buffer": "5.2.1", - "supertest": "6.2.2" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "SECURITY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/build/node_modules/find-cache-dir/index.js b/build/node_modules/find-cache-dir/index.js deleted file mode 100644 index 47865908..00000000 --- a/build/node_modules/find-cache-dir/index.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; -const path = require('path'); -const fs = require('fs'); -const commonDir = require('commondir'); -const pkgDir = require('pkg-dir'); -const makeDir = require('make-dir'); - -const {env, cwd} = process; - -const isWritable = path => { - try { - fs.accessSync(path, fs.constants.W_OK); - return true; - } catch (_) { - return false; - } -}; - -function useDirectory(directory, options) { - if (options.create) { - makeDir.sync(directory); - } - - if (options.thunk) { - return (...arguments_) => path.join(directory, ...arguments_); - } - - return directory; -} - -function getNodeModuleDirectory(directory) { - const nodeModules = path.join(directory, 'node_modules'); - - if ( - !isWritable(nodeModules) && - (fs.existsSync(nodeModules) || !isWritable(path.join(directory))) - ) { - return; - } - - return nodeModules; -} - -module.exports = (options = {}) => { - if (env.CACHE_DIR && !['true', 'false', '1', '0'].includes(env.CACHE_DIR)) { - return useDirectory(path.join(env.CACHE_DIR, options.name), options); - } - - let {cwd: directory = cwd()} = options; - - if (options.files) { - directory = commonDir(directory, options.files); - } - - directory = pkgDir.sync(directory); - - if (!directory) { - return; - } - - const nodeModules = getNodeModuleDirectory(directory); - if (!nodeModules) { - return undefined; - } - - return useDirectory(path.join(directory, 'node_modules', '.cache', options.name), options); -}; diff --git a/build/node_modules/find-cache-dir/license b/build/node_modules/find-cache-dir/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/find-cache-dir/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/find-cache-dir/package.json b/build/node_modules/find-cache-dir/package.json deleted file mode 100644 index 4ca187a8..00000000 --- a/build/node_modules/find-cache-dir/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "find-cache-dir", - "version": "3.3.2", - "description": "Finds the common standard cache directory", - "license": "MIT", - "repository": "avajs/find-cache-dir", - "funding": "https://github.com/avajs/find-cache-dir?sponsor=1", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && nyc ava" - }, - "files": [ - "index.js" - ], - "keywords": [ - "cache", - "directory", - "dir", - "caching", - "find", - "search" - ], - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "devDependencies": { - "ava": "^2.4.0", - "coveralls": "^3.0.9", - "del": "^4.0.0", - "nyc": "^15.0.0", - "tempy": "^0.4.0", - "xo": "^0.25.3" - }, - "nyc": { - "reporter": [ - "lcov", - "text" - ] - } -} diff --git a/build/node_modules/find-cache-dir/readme.md b/build/node_modules/find-cache-dir/readme.md deleted file mode 100644 index 3bc03a81..00000000 --- a/build/node_modules/find-cache-dir/readme.md +++ /dev/null @@ -1,123 +0,0 @@ -# find-cache-dir [![Coverage Status](https://codecov.io/gh/avajs/find-cache-dir/branch/master/graph/badge.svg)](https://codecov.io/gh/avajs/find-cache-dir/branch/master) - -> Finds the common standard cache directory - -The [`nyc`](https://github.com/istanbuljs/nyc) and [`AVA`](https://ava.li) projects decided to standardize on a common directory structure for storing cache information: - -```sh -# nyc -./node_modules/.cache/nyc - -# ava -./node_modules/.cache/ava - -# your-module -./node_modules/.cache/your-module -``` - -This module makes it easy to correctly locate the cache directory according to this shared spec. If this pattern becomes ubiquitous, clearing the cache for multiple dependencies becomes easy and consistent: - -``` -rm -rf ./node_modules/.cache -``` - -If you decide to adopt this pattern, please file a PR adding your name to the list of adopters below. - -## Install - -``` -$ npm install find-cache-dir -``` - -## Usage - -```js -const findCacheDir = require('find-cache-dir'); - -findCacheDir({name: 'unicorns'}); -//=> '/user/path/node-modules/.cache/unicorns' -``` - -## API - -### findCacheDir(options?) - -Finds the cache directory using the supplied options. The algorithm checks for the `CACHE_DIR` environmental variable and uses it if it is not set to `true`, `false`, `1` or `0`. If one is not found, it tries to find a `package.json` file, searching every parent directory of the `cwd` specified (or implied from other options). It returns a `string` containing the absolute path to the cache directory, or `undefined` if `package.json` was never found or if the `node_modules` directory is unwritable. - -#### options - -Type: `object` - -##### name - -*Required*\ -Type: `string` - -Should be the same as your project name in `package.json`. - -##### files - -Type: `string[] | string` - -An array of files that will be searched for a common parent directory. This common parent directory will be used in lieu of the `cwd` option below. - -##### cwd - -Type: `string`\ -Default `process.cwd()` - -Directory to start searching for a `package.json` from. - -##### create - -Type: `boolean`\ -Default `false` - -If `true`, the directory will be created synchronously before returning. - -##### thunk - -Type: `boolean`\ -Default `false` - -If `true`, this modifies the return type to be a function that is a thunk for `path.join(theFoundCacheDirectory)`. - -```js -const thunk = findCacheDir({name: 'foo', thunk: true}); - -thunk(); -//=> '/some/path/node_modules/.cache/foo' - -thunk('bar.js') -//=> '/some/path/node_modules/.cache/foo/bar.js' - -thunk('baz', 'quz.js') -//=> '/some/path/node_modules/.cache/foo/baz/quz.js' -``` - -This is helpful for actually putting actual files in the cache! - -## Tips - -- To test modules using `find-cache-dir`, set the `CACHE_DIR` environment variable to temporarily override the directory that is resolved. - -## Adopters - -- [`ava`](https://avajs.dev) -- [`nyc`](https://github.com/istanbuljs/nyc) -- [`storybook`](https://github.com/storybookjs/storybook) -- [`babel-loader`](https://github.com/babel/babel-loader) -- [`eslint-loader`](https://github.com/MoOx/eslint-loader) -- [More…](https://www.npmjs.com/browse/depended/find-cache-dir) - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/find-up/index.d.ts b/build/node_modules/find-up/index.d.ts deleted file mode 100644 index 6746bb72..00000000 --- a/build/node_modules/find-up/index.d.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* eslint-disable @typescript-eslint/unified-signatures */ -import {Options as LocatePathOptions} from 'locate-path'; - -declare const stop: unique symbol; - -declare namespace findUp { - interface Options extends LocatePathOptions {} - - type StopSymbol = typeof stop; - - type Match = string | StopSymbol | undefined; -} - -declare const findUp: { - sync: { - /** - Synchronously check if a path exists. - - @param path - Path to the file or directory. - @returns Whether the path exists. - - @example - ``` - import findUp = require('find-up'); - - console.log(findUp.sync.exists('/Users/sindresorhus/unicorn.png')); - //=> true - ``` - */ - exists: (path: string) => boolean; - - /** - Synchronously find a file or directory by walking up parent directories. - - @param name - Name of the file or directory to find. Can be multiple. - @returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. - */ - (name: string | readonly string[], options?: findUp.Options): string | undefined; - - /** - Synchronously find a file or directory by walking up parent directories. - - @param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. - @returns The first path found or `undefined` if none could be found. - - @example - ``` - import path = require('path'); - import findUp = require('find-up'); - - console.log(findUp.sync(directory => { - const hasUnicorns = findUp.sync.exists(path.join(directory, 'unicorn.png')); - return hasUnicorns && directory; - }, {type: 'directory'})); - //=> '/Users/sindresorhus' - ``` - */ - (matcher: (directory: string) => findUp.Match, options?: findUp.Options): string | undefined; - }; - - /** - Check if a path exists. - - @param path - Path to a file or directory. - @returns Whether the path exists. - - @example - ``` - import findUp = require('find-up'); - - (async () => { - console.log(await findUp.exists('/Users/sindresorhus/unicorn.png')); - //=> true - })(); - ``` - */ - exists: (path: string) => Promise; - - /** - Return this in a `matcher` function to stop the search and force `findUp` to immediately return `undefined`. - */ - readonly stop: findUp.StopSymbol; - - /** - Find a file or directory by walking up parent directories. - - @param name - Name of the file or directory to find. Can be multiple. - @returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. - - @example - ``` - // / - // └── Users - // └── sindresorhus - // ├── unicorn.png - // └── foo - // └── bar - // ├── baz - // └── example.js - - // example.js - import findUp = require('find-up'); - - (async () => { - console.log(await findUp('unicorn.png')); - //=> '/Users/sindresorhus/unicorn.png' - - console.log(await findUp(['rainbow.png', 'unicorn.png'])); - //=> '/Users/sindresorhus/unicorn.png' - })(); - ``` - */ - (name: string | readonly string[], options?: findUp.Options): Promise; - - /** - Find a file or directory by walking up parent directories. - - @param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. - @returns The first path found or `undefined` if none could be found. - - @example - ``` - import path = require('path'); - import findUp = require('find-up'); - - (async () => { - console.log(await findUp(async directory => { - const hasUnicorns = await findUp.exists(path.join(directory, 'unicorn.png')); - return hasUnicorns && directory; - }, {type: 'directory'})); - //=> '/Users/sindresorhus' - })(); - ``` - */ - (matcher: (directory: string) => (findUp.Match | Promise), options?: findUp.Options): Promise; -}; - -export = findUp; diff --git a/build/node_modules/find-up/index.js b/build/node_modules/find-up/index.js deleted file mode 100644 index ce564e5d..00000000 --- a/build/node_modules/find-up/index.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict'; -const path = require('path'); -const locatePath = require('locate-path'); -const pathExists = require('path-exists'); - -const stop = Symbol('findUp.stop'); - -module.exports = async (name, options = {}) => { - let directory = path.resolve(options.cwd || ''); - const {root} = path.parse(directory); - const paths = [].concat(name); - - const runMatcher = async locateOptions => { - if (typeof name !== 'function') { - return locatePath(paths, locateOptions); - } - - const foundPath = await name(locateOptions.cwd); - if (typeof foundPath === 'string') { - return locatePath([foundPath], locateOptions); - } - - return foundPath; - }; - - // eslint-disable-next-line no-constant-condition - while (true) { - // eslint-disable-next-line no-await-in-loop - const foundPath = await runMatcher({...options, cwd: directory}); - - if (foundPath === stop) { - return; - } - - if (foundPath) { - return path.resolve(directory, foundPath); - } - - if (directory === root) { - return; - } - - directory = path.dirname(directory); - } -}; - -module.exports.sync = (name, options = {}) => { - let directory = path.resolve(options.cwd || ''); - const {root} = path.parse(directory); - const paths = [].concat(name); - - const runMatcher = locateOptions => { - if (typeof name !== 'function') { - return locatePath.sync(paths, locateOptions); - } - - const foundPath = name(locateOptions.cwd); - if (typeof foundPath === 'string') { - return locatePath.sync([foundPath], locateOptions); - } - - return foundPath; - }; - - // eslint-disable-next-line no-constant-condition - while (true) { - const foundPath = runMatcher({...options, cwd: directory}); - - if (foundPath === stop) { - return; - } - - if (foundPath) { - return path.resolve(directory, foundPath); - } - - if (directory === root) { - return; - } - - directory = path.dirname(directory); - } -}; - -module.exports.exists = pathExists; - -module.exports.sync.exists = pathExists.sync; - -module.exports.stop = stop; diff --git a/build/node_modules/find-up/license b/build/node_modules/find-up/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/find-up/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/find-up/package.json b/build/node_modules/find-up/package.json deleted file mode 100644 index 56db6dd8..00000000 --- a/build/node_modules/find-up/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "find-up", - "version": "5.0.0", - "description": "Find a file or directory by walking up parent directories", - "license": "MIT", - "repository": "sindresorhus/find-up", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "find", - "up", - "find-up", - "findup", - "look-up", - "look", - "file", - "search", - "match", - "package", - "resolve", - "parent", - "parents", - "folder", - "directory", - "walk", - "walking", - "path" - ], - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "devDependencies": { - "ava": "^2.1.0", - "is-path-inside": "^2.1.0", - "tempy": "^0.6.0", - "tsd": "^0.13.1", - "xo": "^0.33.0" - } -} diff --git a/build/node_modules/find-up/readme.md b/build/node_modules/find-up/readme.md deleted file mode 100644 index 7ad908a7..00000000 --- a/build/node_modules/find-up/readme.md +++ /dev/null @@ -1,151 +0,0 @@ -# find-up [![Build Status](https://travis-ci.com/sindresorhus/find-up.svg?branch=master)](https://travis-ci.com/github/sindresorhus/find-up) - -> Find a file or directory by walking up parent directories - -## Install - -``` -$ npm install find-up -``` - -## Usage - -``` -/ -└── Users - └── sindresorhus - ├── unicorn.png - └── foo - └── bar - ├── baz - └── example.js -``` - -`example.js` - -```js -const path = require('path'); -const findUp = require('find-up'); - -(async () => { - console.log(await findUp('unicorn.png')); - //=> '/Users/sindresorhus/unicorn.png' - - console.log(await findUp(['rainbow.png', 'unicorn.png'])); - //=> '/Users/sindresorhus/unicorn.png' - - console.log(await findUp(async directory => { - const hasUnicorns = await findUp.exists(path.join(directory, 'unicorn.png')); - return hasUnicorns && directory; - }, {type: 'directory'})); - //=> '/Users/sindresorhus' -})(); -``` - -## API - -### findUp(name, options?) -### findUp(matcher, options?) - -Returns a `Promise` for either the path or `undefined` if it couldn't be found. - -### findUp([...name], options?) - -Returns a `Promise` for either the first path found (by respecting the order of the array) or `undefined` if none could be found. - -### findUp.sync(name, options?) -### findUp.sync(matcher, options?) - -Returns a path or `undefined` if it couldn't be found. - -### findUp.sync([...name], options?) - -Returns the first path found (by respecting the order of the array) or `undefined` if none could be found. - -#### name - -Type: `string` - -Name of the file or directory to find. - -#### matcher - -Type: `Function` - -A function that will be called with each directory until it returns a `string` with the path, which stops the search, or the root directory has been reached and nothing was found. Useful if you want to match files with certain patterns, set of permissions, or other advanced use-cases. - -When using async mode, the `matcher` may optionally be an async or promise-returning function that returns the path. - -#### options - -Type: `object` - -##### cwd - -Type: `string`\ -Default: `process.cwd()` - -Directory to start from. - -##### type - -Type: `string`\ -Default: `'file'`\ -Values: `'file'` `'directory'` - -The type of paths that can match. - -##### allowSymlinks - -Type: `boolean`\ -Default: `true` - -Allow symbolic links to match if they point to the chosen path type. - -### findUp.exists(path) - -Returns a `Promise` of whether the path exists. - -### findUp.sync.exists(path) - -Returns a `boolean` of whether the path exists. - -#### path - -Type: `string` - -Path to a file or directory. - -### findUp.stop - -A [`Symbol`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) that can be returned by a `matcher` function to stop the search and cause `findUp` to immediately return `undefined`. Useful as a performance optimization in case the current working directory is deeply nested in the filesystem. - -```js -const path = require('path'); -const findUp = require('find-up'); - -(async () => { - await findUp(directory => { - return path.basename(directory) === 'work' ? findUp.stop : 'logo.png'; - }); -})(); -``` - -## Related - -- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module -- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file -- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package -- [resolve-from](https://github.com/sindresorhus/resolve-from) - Resolve the path of a module like `require.resolve()` but from a given path - ---- - -
- - Get professional support for 'find-up' with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/flat-cache/LICENSE b/build/node_modules/flat-cache/LICENSE deleted file mode 100644 index 7383a47e..00000000 --- a/build/node_modules/flat-cache/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Roy Riojas and Jared Wray - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/flat-cache/README.md b/build/node_modules/flat-cache/README.md deleted file mode 100644 index a7054023..00000000 --- a/build/node_modules/flat-cache/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# flat-cache -> A stupidly simple key/value storage using files to persist the data - -[![NPM Version](https://img.shields.io/npm/v/flat-cache.svg?style=flat)](https://npmjs.org/package/flat-cache) -[![tests](https://github.com/jaredwray/flat-cache/actions/workflows/tests.yaml/badge.svg?branch=master)](https://github.com/jaredwray/flat-cache/actions/workflows/tests.yaml) -[![codecov](https://codecov.io/github/jaredwray/flat-cache/branch/master/graph/badge.svg?token=KxR95XT3NF)](https://codecov.io/github/jaredwray/flat-cache) -[![npm](https://img.shields.io/npm/dm/flat-cache)](https://npmjs.com/package/flat-cache) - -## install - -```bash -npm i --save flat-cache -``` - -## Usage - -```js -var flatCache = require('flat-cache') -// loads the cache, if one does not exists for the given -// Id a new one will be prepared to be created -var cache = flatCache.load('cacheId'); - -// sets a key on the cache -cache.setKey('key', { foo: 'var' }); - -// get a key from the cache -cache.getKey('key') // { foo: 'var' } - -// fetch the entire persisted object -cache.all() // { 'key': { foo: 'var' } } - -// remove a key -cache.removeKey('key'); // removes a key from the cache - -// save it to disk -cache.save(); // very important, if you don't save no changes will be persisted. -// cache.save( true /* noPrune */) // can be used to prevent the removal of non visited keys - -// loads the cache from a given directory, if one does -// not exists for the given Id a new one will be prepared to be created -var cache = flatCache.load('cacheId', path.resolve('./path/to/folder')); - -// The following methods are useful to clear the cache -// delete a given cache -flatCache.clearCacheById('cacheId') // removes the cacheId document if one exists. - -// delete all cache -flatCache.clearAll(); // remove the cache directory -``` - -## Motivation for this module - -I needed a super simple and dumb **in-memory cache** with optional disk persistance in order to make -a script that will beutify files with `esformatter` only execute on the files that were changed since the last run. -To make that possible we need to store the `fileSize` and `modificationTime` of the files. So a simple `key/value` -storage was needed and Bam! this module was born. - -## Important notes -- If no directory is especified when the `load` method is called, a folder named `.cache` will be created - inside the module directory when `cache.save` is called. If you're committing your `node_modules` to any vcs, you - might want to ignore the default `.cache` folder, or specify a custom directory. -- The values set on the keys of the cache should be `stringify-able` ones, meaning no circular references -- All the changes to the cache state are done to memory -- I could have used a timer or `Object.observe` to deliver the changes to disk, but I wanted to keep this module - intentionally dumb and simple -- Non visited keys are removed when `cache.save()` is called. If this is not desired, you can pass `true` to the save call - like: `cache.save( true /* noPrune */ )`. - -## License - -MIT - -## Changelog - -[changelog](./changelog.md) diff --git a/build/node_modules/flat-cache/changelog.md b/build/node_modules/flat-cache/changelog.md deleted file mode 100644 index 0137a02c..00000000 --- a/build/node_modules/flat-cache/changelog.md +++ /dev/null @@ -1,328 +0,0 @@ - -# flat-cache - Changelog -## v3.0.4 -- **Refactoring** - - add files by name to the list of exported files - [89a2698]( https://github.com/royriojas/flat-cache/commit/89a2698 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:35:39 - - -## v3.0.3 -- **Bug Fixes** - - Fix wrong eslint command - [f268e42]( https://github.com/royriojas/flat-cache/commit/f268e42 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 02:15:04 - - -## v3.0.2 -- **Refactoring** - - Update the files paths - [6983a80]( https://github.com/royriojas/flat-cache/commit/6983a80 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:58:39 - - - - Move code to src/ - [18ed6e8]( https://github.com/royriojas/flat-cache/commit/18ed6e8 ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:57:17 - - - - Change eslint-cache location - [beed74c]( https://github.com/royriojas/flat-cache/commit/beed74c ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:48:32 - - -## v3.0.1 -- **Refactoring** - - Remove unused deps - [8c6d9dc]( https://github.com/royriojas/flat-cache/commit/8c6d9dc ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:43:29 - - -## v3.0.0 -- **Refactoring** - - Fix engines - [52b824c]( https://github.com/royriojas/flat-cache/commit/52b824c ), [Roy Riojas](https://github.com/Roy Riojas), 08/11/2020 01:01:52 - - -- **Other changes** - - Replace write with combination of mkdir and writeFile ([#49](https://github.com/royriojas/flat-cache/issues/49)) - [ef48276]( https://github.com/royriojas/flat-cache/commit/ef48276 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 08/11/2020 00:17:15 - - Node v10 introduced a great "recursive" option for mkdir which allows to - get rid from mkdirp package and easily rewrite "write" package usage - with two function calls. - - https://nodejs.org/api/fs.html#fs_fs_mkdir_path_options_callback - - Added a testcase for clearAll ([#48](https://github.com/royriojas/flat-cache/issues/48)) - [45b51ca]( https://github.com/royriojas/flat-cache/commit/45b51ca ), [Aaron Chen](https://github.com/Aaron Chen), 21/05/2020 08:40:03 - - - - requet node>=10 - [a5c482c]( https://github.com/royriojas/flat-cache/commit/a5c482c ), [yumetodo](https://github.com/yumetodo), 10/04/2020 23:14:53 - - thanks @SuperITMan - - - Update README.md - [29fe40b]( https://github.com/royriojas/flat-cache/commit/29fe40b ), [Roy Riojas](https://github.com/Roy Riojas), 10/04/2020 20:08:05 - - - - reduce vulnerability to 1 - [e9db1b2]( https://github.com/royriojas/flat-cache/commit/e9db1b2 ), [yumetodo](https://github.com/yumetodo), 30/03/2020 11:10:43 - - - - reduce vulnerabilities dependencies to 8 - [b58d196]( https://github.com/royriojas/flat-cache/commit/b58d196 ), [yumetodo](https://github.com/yumetodo), 30/03/2020 10:54:56 - - - - use prettier instead of esbeautifier - [03b1db7]( https://github.com/royriojas/flat-cache/commit/03b1db7 ), [yumetodo](https://github.com/yumetodo), 30/03/2020 10:27:14 - - - - update proxyquire - [c2f048d]( https://github.com/royriojas/flat-cache/commit/c2f048d ), [yumetodo](https://github.com/yumetodo), 30/03/2020 10:16:16 - - - - update flatted and mocha - [a0e56da]( https://github.com/royriojas/flat-cache/commit/a0e56da ), [yumetodo](https://github.com/yumetodo), 30/03/2020 09:46:45 - - mocha > mkdirp is updated - istanble >>> optimist > minimist is not updated - - - drop support node.js < 10 in develop - [beba691]( https://github.com/royriojas/flat-cache/commit/beba691 ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:31:09 - - see mkdirp - - - npm aufit fix(still remains) - [ce166cb]( https://github.com/royriojas/flat-cache/commit/ce166cb ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:18:08 - - 37 vulnerabilities required manual review and could not be updated - - - updtate sinon - [9f2d1b6]( https://github.com/royriojas/flat-cache/commit/9f2d1b6 ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:17:51 - - - - apply eslint-plugin-mocha - [07343b5]( https://github.com/royriojas/flat-cache/commit/07343b5 ), [yumetodo](https://github.com/yumetodo), 13/03/2020 22:17:21 - - - - Less strint version check ([#44](https://github.com/royriojas/flat-cache/issues/44)) - [92aca1c]( https://github.com/royriojas/flat-cache/commit/92aca1c ), [Wojciech Maj](https://github.com/Wojciech Maj), 13/11/2019 16:18:25 - - * Use ^ version matching for production dependencies - - * Run npm audit fix - -- **Bug Fixes** - - update dependencies and use eslint directly - [73fbed2]( https://github.com/royriojas/flat-cache/commit/73fbed2 ), [yumetodo](https://github.com/yumetodo), 18/03/2020 01:17:27 - - -## v2.0.1 -- **Refactoring** - - upgrade node modules to latest versions - [6402ed3]( https://github.com/royriojas/flat-cache/commit/6402ed3 ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 18:47:05 - - -## v2.0.0 -- **Bug Fixes** - - upgrade package.json lock file - [8d21c7b]( https://github.com/royriojas/flat-cache/commit/8d21c7b ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 17:03:13 - - - - Use the same versions of node_js that eslint use - [8d23379]( https://github.com/royriojas/flat-cache/commit/8d23379 ), [Roy Riojas](https://github.com/Roy Riojas), 08/01/2019 16:25:11 - - -- **Other changes** - - Replace circular-json with flatted ([#36](https://github.com/royriojas/flat-cache/issues/36)) - [b93aced]( https://github.com/royriojas/flat-cache/commit/b93aced ), [C. K. Tang](https://github.com/C. K. Tang), 08/01/2019 17:03:01 - - - - Change JSON parser from circular-json to flatted & 1 more changes ([#37](https://github.com/royriojas/flat-cache/issues/37)) - [745e65a]( https://github.com/royriojas/flat-cache/commit/745e65a ), [Andy Chen](https://github.com/Andy Chen), 08/01/2019 16:17:20 - - * Change JSON parser from circular-json to flatted & 1 more changes - - * Change JSON parser from circular-json - * Audited 2 vulnerabilities - - * Update package.json - - * Update Engine require - - * There's a bunch of dependencies in this pkg requires node >=4, so I changed it to 4 - - * Remove and add node versions - - * I have seen this pkg is not available with node 0.12 so I removed it - * I have added a popular used LTS version of node - 10 - -## v1.3.4 -- **Refactoring** - - Add del.js and utils.js to the list of files to be beautified - [9d0ca9b]( https://github.com/royriojas/flat-cache/commit/9d0ca9b ), [Roy Riojas](https://github.com/Roy Riojas), 14/11/2018 12:19:02 - - -## v1.3.3 -- **Refactoring** - - Make sure package-lock.json is up to date - [a7d2598]( https://github.com/royriojas/flat-cache/commit/a7d2598 ), [Roy Riojas](https://github.com/Roy Riojas), 14/11/2018 11:36:08 - - -- **Other changes** - - Removed the need for del ([#33](https://github.com/royriojas/flat-cache/issues/33)) - [c429012]( https://github.com/royriojas/flat-cache/commit/c429012 ), [S. Gilroy](https://github.com/S. Gilroy), 13/11/2018 13:56:37 - - * Removed the need for del - - Removed the need for del as newer versions have broken backwards - compatibility. del mainly uses rimraf for deleting folders - and files, replaceing it with rimraf only is a minimal change. - - * Disable glob on rimraf calls - - * Added glob disable to wrong call - - * Wrapped rimraf to simplify solution - -## v1.3.2 -- **Refactoring** - - remove yarn.lock file - [704c6c4]( https://github.com/royriojas/flat-cache/commit/704c6c4 ), [Roy Riojas](https://github.com/Roy Riojas), 07/11/2018 15:41:08 - - -- **Other changes** - - replace circular-json with flatted ([#23](https://github.com/royriojas/flat-cache/issues/23))" - [db12d74]( https://github.com/royriojas/flat-cache/commit/db12d74 ), [Roy Riojas](https://github.com/Roy Riojas), 07/11/2018 15:40:39 - - This reverts commit 00f689277a75e85fef28e6a048fad227afc525e6. - -## v1.3.1 -- **Refactoring** - - upgrade deps to remove some security warnings - [f405719]( https://github.com/royriojas/flat-cache/commit/f405719 ), [Roy Riojas](https://github.com/Roy Riojas), 06/11/2018 12:07:31 - - -- **Bug Fixes** - - replace circular-json with flatted ([#23](https://github.com/royriojas/flat-cache/issues/23)) - [00f6892]( https://github.com/royriojas/flat-cache/commit/00f6892 ), [Terry](https://github.com/Terry), 05/11/2018 18:44:16 - - -- **Other changes** - - update del to v3.0.0 ([#26](https://github.com/royriojas/flat-cache/issues/26)) - [d42883f]( https://github.com/royriojas/flat-cache/commit/d42883f ), [Patrick Silva](https://github.com/Patrick Silva), 03/11/2018 01:00:44 - - Closes #25 -## v1.3.0 -- **Other changes** - - Added #all method ([#16](https://github.com/royriojas/flat-cache/issues/16)) - [12293be]( https://github.com/royriojas/flat-cache/commit/12293be ), [Ozair Patel](https://github.com/Ozair Patel), 25/09/2017 14:46:38 - - * Added #all method - - * Added #all method test - - * Updated readme - - * Added yarn.lock - - * Added more keys for #all test - - * Beautified file - - - fix changelog title style ([#14](https://github.com/royriojas/flat-cache/issues/14)) - [af8338a]( https://github.com/royriojas/flat-cache/commit/af8338a ), [前端小武](https://github.com/前端小武), 19/12/2016 20:34:48 - - -## v1.2.2 -- **Bug Fixes** - - Do not crash if cache file is invalid JSON. ([#13](https://github.com/royriojas/flat-cache/issues/13)) - [87beaa6]( https://github.com/royriojas/flat-cache/commit/87beaa6 ), [Roy Riojas](https://github.com/Roy Riojas), 19/12/2016 18:03:35 - - Fixes #12 - - Not sure under which situations a cache file might exist that does - not contain a valid JSON structure, but just in case to cover - the possibility of this happening a try catch block has been added - - If the cache is somehow not valid the cache will be discarded an a - a new cache will be stored instead -- **Other changes** - - Added travis ci support for modern node versions ([#11](https://github.com/royriojas/flat-cache/issues/11)) - [1c2b1f7]( https://github.com/royriojas/flat-cache/commit/1c2b1f7 ), [Amila Welihinda](https://github.com/Amila Welihinda), 10/11/2016 23:47:52 - - - - Bumping `circular-son` version ([#10](https://github.com/royriojas/flat-cache/issues/10)) - [4d5e861]( https://github.com/royriojas/flat-cache/commit/4d5e861 ), [Andrea Giammarchi](https://github.com/Andrea Giammarchi), 02/08/2016 07:13:52 - - As mentioned in https://github.com/WebReflection/circular-json/issues/25 `circular-json` wan't rightly implementing the license field. - - Latest version bump changed only that bit so that ESLint should now be happy. -## v1.2.1 -- **Bug Fixes** - - Add missing utils.js file to the package. closes [#8](https://github.com/royriojas/flat-cache/issues/8) - [ec10cf2]( https://github.com/royriojas/flat-cache/commit/ec10cf2 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 02:18:57 - - -## v1.2.0 -- **Documentation** - - Add documentation about noPrune option - [23e11f9]( https://github.com/royriojas/flat-cache/commit/23e11f9 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 02:06:49 - - -## v1.0.11 -- **Features** - - Add noPrune option to cache.save() method. closes [#7](https://github.com/royriojas/flat-cache/issues/7) - [2c8016a]( https://github.com/royriojas/flat-cache/commit/2c8016a ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 02:00:29 - - - - Add json read and write utility based on circular-json - [c31081e]( https://github.com/royriojas/flat-cache/commit/c31081e ), [Jean Ponchon](https://github.com/Jean Ponchon), 28/07/2016 08:58:17 - - -- **Bug Fixes** - - Remove UTF16 BOM stripping - [4a41e22]( https://github.com/royriojas/flat-cache/commit/4a41e22 ), [Jean Ponchon](https://github.com/Jean Ponchon), 29/07/2016 02:18:06 - - Since we control both writing and reading of JSON stream, there no needs - to handle unicode BOM. - - Use circular-json to handle circular references (fix [#5](https://github.com/royriojas/flat-cache/issues/5)) - [cd7aeed]( https://github.com/royriojas/flat-cache/commit/cd7aeed ), [Jean Ponchon](https://github.com/Jean Ponchon), 25/07/2016 11:11:59 - - -- **Tests Related fixes** - - Add missing file from eslint test - [d6fa3c3]( https://github.com/royriojas/flat-cache/commit/d6fa3c3 ), [Jean Ponchon](https://github.com/Jean Ponchon), 29/07/2016 02:15:51 - - - - Add test for circular json serialization / deserialization - [07d2ddd]( https://github.com/royriojas/flat-cache/commit/07d2ddd ), [Jean Ponchon](https://github.com/Jean Ponchon), 28/07/2016 08:59:36 - - -- **Refactoring** - - Remove unused read-json-sync - [2be1c24]( https://github.com/royriojas/flat-cache/commit/2be1c24 ), [Jean Ponchon](https://github.com/Jean Ponchon), 28/07/2016 08:59:18 - - -- **Build Scripts Changes** - - travis tests on 0.12 and 4x - [3a613fd]( https://github.com/royriojas/flat-cache/commit/3a613fd ), [royriojas](https://github.com/royriojas), 15/11/2015 14:34:40 - - -## v1.0.10 -- **Build Scripts Changes** - - add eslint-fix task - [fd29e52]( https://github.com/royriojas/flat-cache/commit/fd29e52 ), [royriojas](https://github.com/royriojas), 01/11/2015 15:04:08 - - - - make sure the test script also verify beautification and linting of files before running tests - [e94e176]( https://github.com/royriojas/flat-cache/commit/e94e176 ), [royriojas](https://github.com/royriojas), 01/11/2015 11:54:48 - - -- **Other changes** - - add clearAll for cacheDir - [97383d9]( https://github.com/royriojas/flat-cache/commit/97383d9 ), [xieyaowu](https://github.com/xieyaowu), 31/10/2015 21:02:18 - - -## v1.0.9 -- **Bug Fixes** - - wrong default values for changelogx user repo name - [7bb52d1]( https://github.com/royriojas/flat-cache/commit/7bb52d1 ), [royriojas](https://github.com/royriojas), 11/09/2015 15:59:30 - - -## v1.0.8 -- **Build Scripts Changes** - - test against node 4 - [c395b66]( https://github.com/royriojas/flat-cache/commit/c395b66 ), [royriojas](https://github.com/royriojas), 11/09/2015 15:51:39 - - -## v1.0.7 -- **Other changes** - - Move dependencies into devDep - [7e47099]( https://github.com/royriojas/flat-cache/commit/7e47099 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 11/09/2015 15:10:57 - - -- **Documentation** - - Add missing changelog link - [f51197a]( https://github.com/royriojas/flat-cache/commit/f51197a ), [royriojas](https://github.com/royriojas), 11/09/2015 14:48:05 - - -## v1.0.6 -- **Build Scripts Changes** - - Add helpers/code check scripts - [bdb82f3]( https://github.com/royriojas/flat-cache/commit/bdb82f3 ), [royriojas](https://github.com/royriojas), 11/09/2015 14:44:31 - - -## v1.0.5 -- **Documentation** - - better description for the module - [436817f]( https://github.com/royriojas/flat-cache/commit/436817f ), [royriojas](https://github.com/royriojas), 11/09/2015 14:35:33 - - -- **Other changes** - - Update dependencies - [be88aa3]( https://github.com/royriojas/flat-cache/commit/be88aa3 ), [Bogdan Chadkin](https://github.com/Bogdan Chadkin), 11/09/2015 13:47:41 - - -## v1.0.4 -- **Refactoring** - - load a cache file using the full filepath - [b8f68c2]( https://github.com/royriojas/flat-cache/commit/b8f68c2 ), [Roy Riojas](https://github.com/Roy Riojas), 30/08/2015 04:19:14 - - -- **Documentation** - - Add documentation about `clearAll` and `clearCacheById` - [13947c1]( https://github.com/royriojas/flat-cache/commit/13947c1 ), [Roy Riojas](https://github.com/Roy Riojas), 01/03/2015 23:44:05 - - -- **Features** - - Add methods to remove the cache documents created - [af40443]( https://github.com/royriojas/flat-cache/commit/af40443 ), [Roy Riojas](https://github.com/Roy Riojas), 01/03/2015 23:39:27 - - -## v1.0.1 -- **Other changes** - - Update README.md - [c2b6805]( https://github.com/royriojas/flat-cache/commit/c2b6805 ), [Roy Riojas](https://github.com/Roy Riojas), 26/02/2015 04:28:07 - - -## v1.0.0 -- **Refactoring** - - flat-cache v.1.0.0 - [c984274]( https://github.com/royriojas/flat-cache/commit/c984274 ), [Roy Riojas](https://github.com/Roy Riojas), 26/02/2015 04:11:50 - - -- **Other changes** - - Initial commit - [d43cccf]( https://github.com/royriojas/flat-cache/commit/d43cccf ), [Roy Riojas](https://github.com/Roy Riojas), 26/02/2015 01:12:16 - - diff --git a/build/node_modules/flat-cache/package.json b/build/node_modules/flat-cache/package.json deleted file mode 100644 index 93866825..00000000 --- a/build/node_modules/flat-cache/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "flat-cache", - "version": "3.1.1", - "description": "A stupidly simple key/value storage using files to persist some data", - "repository": "jaredwray/flat-cache", - "license": "MIT", - "author": { - "name": "Jared Wray", - "url": "https://jaredwray.com" - }, - "main": "src/cache.js", - "files": [ - "src/cache.js", - "src/del.js", - "src/utils.js" - ], - "engines": { - "node": ">=12.0.0" - }, - "precommit": [ - "npm run verify --silent" - ], - "prepush": [ - "npm run verify --silent" - ], - "scripts": { - "eslint": "eslint --cache --cache-location=node_modules/.cache/ ./src/**/*.js ./test/**/*.js", - "eslint-fix": "npm run eslint -- --fix", - "autofix": "npm run eslint-fix", - "check": "npm run eslint", - "verify": "npm run eslint && npm run test:cache", - "test:cache": "c8 mocha -R spec test/specs", - "test:ci:cache": "c8 --reporter=lcov mocha -R spec test/specs", - "test": "npm run verify --silent" - }, - "keywords": [ - "json cache", - "simple cache", - "file cache", - "key par", - "key value", - "cache" - ], - "devDependencies": { - "c8": "^8.0.1", - "chai": "^4.3.10", - "eslint": "^7.13.0", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-prettier": "^3.1.4", - "glob-expand": "^0.2.1", - "mocha": "^10.2.0", - "prettier": "^2.1.2", - "write": "^2.0.0" - }, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - } -} diff --git a/build/node_modules/flat/.travis.yml b/build/node_modules/flat/.travis.yml deleted file mode 100644 index f35768a9..00000000 --- a/build/node_modules/flat/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "6" - - "7" - - "8" - - "10" - - "12" - - "14" diff --git a/build/node_modules/flat/LICENSE b/build/node_modules/flat/LICENSE deleted file mode 100644 index d99b6554..00000000 --- a/build/node_modules/flat/LICENSE +++ /dev/null @@ -1,12 +0,0 @@ -Copyright (c) 2014, Hugh Kennedy -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/flat/README.md b/build/node_modules/flat/README.md deleted file mode 100644 index a036a9f2..00000000 --- a/build/node_modules/flat/README.md +++ /dev/null @@ -1,236 +0,0 @@ -# flat [![Build Status](https://secure.travis-ci.org/hughsk/flat.png?branch=master)](http://travis-ci.org/hughsk/flat) - -Take a nested Javascript object and flatten it, or unflatten an object with -delimited keys. - -## Installation - -``` bash -$ npm install flat -``` - -## Methods - -### flatten(original, options) - -Flattens the object - it'll return an object one level deep, regardless of how -nested the original object was: - -``` javascript -var flatten = require('flat') - -flatten({ - key1: { - keyA: 'valueI' - }, - key2: { - keyB: 'valueII' - }, - key3: { a: { b: { c: 2 } } } -}) - -// { -// 'key1.keyA': 'valueI', -// 'key2.keyB': 'valueII', -// 'key3.a.b.c': 2 -// } -``` - -### unflatten(original, options) - -Flattening is reversible too, you can call `flatten.unflatten()` on an object: - -``` javascript -var unflatten = require('flat').unflatten - -unflatten({ - 'three.levels.deep': 42, - 'three.levels': { - nested: true - } -}) - -// { -// three: { -// levels: { -// deep: 42, -// nested: true -// } -// } -// } -``` - -## Options - -### delimiter - -Use a custom delimiter for (un)flattening your objects, instead of `.`. - -### safe - -When enabled, both `flat` and `unflatten` will preserve arrays and their -contents. This is disabled by default. - -``` javascript -var flatten = require('flat') - -flatten({ - this: [ - { contains: 'arrays' }, - { preserving: { - them: 'for you' - }} - ] -}, { - safe: true -}) - -// { -// 'this': [ -// { contains: 'arrays' }, -// { preserving: { -// them: 'for you' -// }} -// ] -// } -``` - -### object - -When enabled, arrays will not be created automatically when calling unflatten, like so: - -``` javascript -unflatten({ - 'hello.you.0': 'ipsum', - 'hello.you.1': 'lorem', - 'hello.other.world': 'foo' -}, { object: true }) - -// hello: { -// you: { -// 0: 'ipsum', -// 1: 'lorem', -// }, -// other: { world: 'foo' } -// } -``` - -### overwrite - -When enabled, existing keys in the unflattened object may be overwritten if they cannot hold a newly encountered nested value: - -```javascript -unflatten({ - 'TRAVIS': 'true', - 'TRAVIS.DIR': '/home/travis/build/kvz/environmental' -}, { overwrite: true }) - -// TRAVIS: { -// DIR: '/home/travis/build/kvz/environmental' -// } -``` - -Without `overwrite` set to `true`, the `TRAVIS` key would already have been set to a string, thus could not accept the nested `DIR` element. - -This only makes sense on ordered arrays, and since we're overwriting data, should be used with care. - - -### maxDepth - -Maximum number of nested objects to flatten. - -``` javascript -var flatten = require('flat') - -flatten({ - key1: { - keyA: 'valueI' - }, - key2: { - keyB: 'valueII' - }, - key3: { a: { b: { c: 2 } } } -}, { maxDepth: 2 }) - -// { -// 'key1.keyA': 'valueI', -// 'key2.keyB': 'valueII', -// 'key3.a': { b: { c: 2 } } -// } -``` - -### transformKey - -Transform each part of a flat key before and after flattening. - -```javascript -var flatten = require('flat') -var unflatten = require('flat').unflatten - -flatten({ - key1: { - keyA: 'valueI' - }, - key2: { - keyB: 'valueII' - }, - key3: { a: { b: { c: 2 } } } -}, { - transformKey: function(key){ - return '__' + key + '__'; - } -}) - -// { -// '__key1__.__keyA__': 'valueI', -// '__key2__.__keyB__': 'valueII', -// '__key3__.__a__.__b__.__c__': 2 -// } - -unflatten({ - '__key1__.__keyA__': 'valueI', - '__key2__.__keyB__': 'valueII', - '__key3__.__a__.__b__.__c__': 2 -}, { - transformKey: function(key){ - return key.substring(2, key.length - 2) - } -}) - -// { -// key1: { -// keyA: 'valueI' -// }, -// key2: { -// keyB: 'valueII' -// }, -// key3: { a: { b: { c: 2 } } } -// } -``` - -## Command Line Usage - -`flat` is also available as a command line tool. You can run it with -[`npx`](https://ghub.io/npx): - -```sh -npx flat foo.json -``` - -Or install the `flat` command globally: - -```sh -npm i -g flat && flat foo.json -``` - -Accepts a filename as an argument: - -```sh -flat foo.json -``` - -Also accepts JSON on stdin: - -```sh -cat foo.json | flat -``` diff --git a/build/node_modules/flat/cli.js b/build/node_modules/flat/cli.js deleted file mode 100644 index e4f96b37..00000000 --- a/build/node_modules/flat/cli.js +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env node - -const fs = require('fs') -const path = require('path') -const readline = require('readline') - -const flat = require('./index') - -const filepath = process.argv.slice(2)[0] -if (filepath) { - // Read from file - const file = path.resolve(process.cwd(), filepath) - fs.accessSync(file, fs.constants.R_OK) // allow to throw if not readable - out(require(file)) -} else if (process.stdin.isTTY) { - usage(0) -} else { - // Read from newline-delimited STDIN - const lines = [] - readline.createInterface({ - input: process.stdin, - output: process.stdout, - terminal: false - }) - .on('line', line => lines.push(line)) - .on('close', () => out(JSON.parse(lines.join('\n')))) -} - -function out (data) { - process.stdout.write(JSON.stringify(flat(data), null, 2)) -} - -function usage (code) { - console.log(` -Usage: - -flat foo.json -cat foo.json | flat -`) - - process.exit(code || 0) -} diff --git a/build/node_modules/flat/index.js b/build/node_modules/flat/index.js deleted file mode 100644 index 2a5d7ca0..00000000 --- a/build/node_modules/flat/index.js +++ /dev/null @@ -1,158 +0,0 @@ -module.exports = flatten -flatten.flatten = flatten -flatten.unflatten = unflatten - -function isBuffer (obj) { - return obj && - obj.constructor && - (typeof obj.constructor.isBuffer === 'function') && - obj.constructor.isBuffer(obj) -} - -function keyIdentity (key) { - return key -} - -function flatten (target, opts) { - opts = opts || {} - - const delimiter = opts.delimiter || '.' - const maxDepth = opts.maxDepth - const transformKey = opts.transformKey || keyIdentity - const output = {} - - function step (object, prev, currentDepth) { - currentDepth = currentDepth || 1 - Object.keys(object).forEach(function (key) { - const value = object[key] - const isarray = opts.safe && Array.isArray(value) - const type = Object.prototype.toString.call(value) - const isbuffer = isBuffer(value) - const isobject = ( - type === '[object Object]' || - type === '[object Array]' - ) - - const newKey = prev - ? prev + delimiter + transformKey(key) - : transformKey(key) - - if (!isarray && !isbuffer && isobject && Object.keys(value).length && - (!opts.maxDepth || currentDepth < maxDepth)) { - return step(value, newKey, currentDepth + 1) - } - - output[newKey] = value - }) - } - - step(target) - - return output -} - -function unflatten (target, opts) { - opts = opts || {} - - const delimiter = opts.delimiter || '.' - const overwrite = opts.overwrite || false - const transformKey = opts.transformKey || keyIdentity - const result = {} - - const isbuffer = isBuffer(target) - if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') { - return target - } - - // safely ensure that the key is - // an integer. - function getkey (key) { - const parsedKey = Number(key) - - return ( - isNaN(parsedKey) || - key.indexOf('.') !== -1 || - opts.object - ) ? key - : parsedKey - } - - function addKeys (keyPrefix, recipient, target) { - return Object.keys(target).reduce(function (result, key) { - result[keyPrefix + delimiter + key] = target[key] - - return result - }, recipient) - } - - function isEmpty (val) { - const type = Object.prototype.toString.call(val) - const isArray = type === '[object Array]' - const isObject = type === '[object Object]' - - if (!val) { - return true - } else if (isArray) { - return !val.length - } else if (isObject) { - return !Object.keys(val).length - } - } - - target = Object.keys(target).reduce(function (result, key) { - const type = Object.prototype.toString.call(target[key]) - const isObject = (type === '[object Object]' || type === '[object Array]') - if (!isObject || isEmpty(target[key])) { - result[key] = target[key] - return result - } else { - return addKeys( - key, - result, - flatten(target[key], opts) - ) - } - }, {}) - - Object.keys(target).forEach(function (key) { - const split = key.split(delimiter).map(transformKey) - let key1 = getkey(split.shift()) - let key2 = getkey(split[0]) - let recipient = result - - while (key2 !== undefined) { - if (key1 === '__proto__') { - return - } - - const type = Object.prototype.toString.call(recipient[key1]) - const isobject = ( - type === '[object Object]' || - type === '[object Array]' - ) - - // do not write over falsey, non-undefined values if overwrite is false - if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') { - return - } - - if ((overwrite && !isobject) || (!overwrite && recipient[key1] == null)) { - recipient[key1] = ( - typeof key2 === 'number' && - !opts.object ? [] : {} - ) - } - - recipient = recipient[key1] - if (split.length > 0) { - key1 = getkey(split.shift()) - key2 = getkey(split[0]) - } - } - - // unflatten again for 'messy objects' - recipient[key1] = unflatten(target[key], opts) - }) - - return result -} diff --git a/build/node_modules/flat/package.json b/build/node_modules/flat/package.json deleted file mode 100644 index c2fbc963..00000000 --- a/build/node_modules/flat/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "flat", - "version": "5.0.2", - "main": "index.js", - "bin": "cli.js", - "scripts": { - "test": "mocha -u tdd --reporter spec && standard cli.js index.js test/index.js" - }, - "license": "BSD-3-Clause", - "description": "Take a nested Javascript object and flatten it, or unflatten an object with delimited keys", - "devDependencies": { - "mocha": "~8.1.1", - "standard": "^14.3.4" - }, - "directories": { - "test": "test" - }, - "dependencies": {}, - "repository": { - "type": "git", - "url": "git://github.com/hughsk/flat.git" - }, - "keywords": [ - "flat", - "json", - "flatten", - "unflatten", - "split", - "object", - "nested" - ], - "author": "Hugh Kennedy (http://hughskennedy.com)", - "bugs": { - "url": "https://github.com/hughsk/flat/issues" - }, - "homepage": "https://github.com/hughsk/flat" -} diff --git a/build/node_modules/flatstr/LICENSE b/build/node_modules/flatstr/LICENSE deleted file mode 100644 index b5d3b6e6..00000000 --- a/build/node_modules/flatstr/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 David Mark Clements - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/flatstr/alt-benchmark.js b/build/node_modules/flatstr/alt-benchmark.js deleted file mode 100644 index b9eb8197..00000000 --- a/build/node_modules/flatstr/alt-benchmark.js +++ /dev/null @@ -1,234 +0,0 @@ -'use strict' -var nul = process.platform === 'win32' ? '\\\\.\\NUL' : '/dev/null' -var bench = require('fastbench') -var stream = require('fs').createWriteStream(nul) -var alt0 = require('./') -var largeStr = JSON.stringify(require('./package.json')) -largeStr += largeStr -largeStr += largeStr - -var run = bench([ - function alt0ManySmallConcats (cb) { - stream.write(alt0(makeStr('a', 200))) - setImmediate(cb) - }, - function alt1ManySmallConcats (cb) { - stream.write(alt1(makeStr('a', 200))) - setImmediate(cb) - }, - function alt2ManySmallConcats (cb) { - stream.write(alt2(makeStr('a', 200))) - setImmediate(cb) - }, - function alt3ManySmallConcats (cb) { - stream.write(alt3(makeStr('a', 200))) - setImmediate(cb) - }, - function alt4ManySmallConcats (cb) { - stream.write(alt4(makeStr('a', 200))) - setImmediate(cb) - }, - function alt5ManySmallConcats (cb) { - stream.write(alt5(makeStr('a', 200))) - setImmediate(cb) - }, - function alt6ManySmallConcats (cb) { - stream.write(alt6(makeStr('a', 200))) - setImmediate(cb) - }, - function alt7ManySmallConcats (cb) { - stream.write(alt7(makeStr('a', 200))) - setImmediate(cb) - }, - function alt8ManySmallConcats (cb) { - stream.write(alt8(makeStr('a', 200))) - setImmediate(cb) - }, - function alt9ManySmallConcats (cb) { - stream.write(alt9(makeStr('a', 200))) - setImmediate(cb) - }, - function alt0SeveralLargeConcats (cb) { - stream.write(alt0(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt1SeveralLargeConcats (cb) { - stream.write(alt1(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt2SeveralLargeConcats (cb) { - stream.write(alt2(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt3SeveralLargeConcats (cb) { - stream.write(alt3(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt4SeveralLargeConcats (cb) { - stream.write(alt4(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt5SeveralLargeConcats (cb) { - stream.write(alt5(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt6SeveralLargeConcats (cb) { - stream.write(alt6(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt7SeveralLargeConcats (cb) { - stream.write(alt7(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt8SeveralLargeConcats (cb) { - stream.write(alt8(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt9SeveralLargeConcats (cb) { - stream.write(alt9(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function alt0ExponentialSmallConcats (cb) { - stream.write(alt0(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt1ExponentialSmallConcats (cb) { - stream.write(alt1(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt2ExponentialSmallConcats (cb) { - stream.write(alt2(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt3ExponentialSmallConcats (cb) { - stream.write(alt3(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt4ExponentialSmallConcats (cb) { - stream.write(alt4(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt5ExponentialSmallConcats (cb) { - stream.write(alt5(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt6ExponentialSmallConcats (cb) { - stream.write(alt6(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt7ExponentialSmallConcats (cb) { - stream.write(alt7(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt8ExponentialSmallConcats (cb) { - stream.write(alt8(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt9ExponentialSmallConcats (cb) { - stream.write(alt9(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function alt0ExponentialLargeConcats (cb) { - stream.write(alt0(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt1ExponentialLargeConcats (cb) { - stream.write(alt1(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt2ExponentialLargeConcats (cb) { - stream.write(alt2(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt3ExponentialLargeConcats (cb) { - stream.write(alt3(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt4ExponentialLargeConcats (cb) { - stream.write(alt4(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt5ExponentialLargeConcats (cb) { - stream.write(alt5(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt6ExponentialLargeConcats (cb) { - stream.write(alt6(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt7ExponentialLargeConcats (cb) { - stream.write(alt7(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt8ExponentialLargeConcats (cb) { - stream.write(alt8(makeExpoStr(largeStr, 7))) - setImmediate(cb) - }, - function alt9ExponentialLargeConcats (cb) { - stream.write(alt9(makeExpoStr(largeStr, 7))) - setImmediate(cb) - } -], 10000) - -run(run) - -var rx = /()/ -function alt1 (s) { - rx.test(s) - return s -} -function alt2 (s) { - rx.exec(s) - return s -} - -function alt3 (s) { - s | 0 - return s -} - -function alt4 (s) { - ~s - return s -} - -function alt5 (s) { - escape(s) - return s -} - -function alt6 (s) { - unescape(s) - return s -} - -function alt7 (s) { - parseInt(s, 10) - return s -} - -function alt8 (s) { - parseFloat(s) - return s -} - -function alt9 (s) { - alt9[s] = null - return s -} - -function makeStr (str, concats) { - var s = '' - while (concats--) { - s += str - } - return s -} - -function makeExpoStr (str, concats) { - var s = str - while (concats--) { - s += s - } - return s -} diff --git a/build/node_modules/flatstr/benchmark.js b/build/node_modules/flatstr/benchmark.js deleted file mode 100644 index b2122c72..00000000 --- a/build/node_modules/flatstr/benchmark.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict' -var nul = process.platform === 'win32' ? '\\\\.\\NUL' : '/dev/null' -var bench = require('fastbench') -var stream = require('fs').createWriteStream(nul) -var flatstr = require('./') -var largeStr = JSON.stringify(require('./package.json')) -largeStr += largeStr -largeStr += largeStr - -var run = bench([ - function unflattenedManySmallConcats (cb) { - stream.write(makeStr('a', 200)) - setImmediate(cb) - }, - function flattenedManySmallConcats (cb) { - stream.write(flatstr(makeStr('a', 200))) - setImmediate(cb) - }, - function unflattenedSeveralLargeConcats (cb) { - stream.write(makeStr(largeStr, 10)) - setImmediate(cb) - }, - function flattenedSeveralLargeConcats (cb) { - stream.write(flatstr(makeStr(largeStr, 10))) - setImmediate(cb) - }, - function unflattenedExponentialSmallConcats (cb) { - stream.write(makeExpoStr('a', 12)) - setImmediate(cb) - }, - function flattenedExponentialSmallConcats (cb) { - stream.write(flatstr(makeExpoStr('a', 12))) - setImmediate(cb) - }, - function unflattenedExponentialLargeConcats (cb) { - stream.write(makeExpoStr(largeStr, 7)) - setImmediate(cb) - }, - function flattenedExponentialLargeConcats (cb) { - stream.write(flatstr(makeExpoStr(largeStr, 7))) - setImmediate(cb) - } -], 10000) - -run(run) - -function makeStr (str, concats) { - var s = '' - while (concats--) { - s += str - } - return s -} - -function makeExpoStr (str, concats) { - var s = str - while (concats--) { - s += s - } - return s -} diff --git a/build/node_modules/flatstr/index.js b/build/node_modules/flatstr/index.js deleted file mode 100644 index 0513eb16..00000000 --- a/build/node_modules/flatstr/index.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict' - -// You may be tempted to copy and paste this, -// but take a look at the commit history first, -// this is a moving target so relying on the module -// is the best way to make sure the optimization -// method is kept up to date and compatible with -// every Node version. - -function flatstr (s) { - s | 0 - return s -} - -module.exports = flatstr \ No newline at end of file diff --git a/build/node_modules/flatstr/package.json b/build/node_modules/flatstr/package.json deleted file mode 100644 index 6f55636d..00000000 --- a/build/node_modules/flatstr/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "flatstr", - "version": "1.0.12", - "description": "Flattens the underlying C structures of a concatenated JavaScript string", - "main": "index.js", - "browser": { - "v8": "./v8" - }, - "tags": [ - "perf", - "performance", - "strings", - "concatenation" - ], - "author": "David Mark Clements", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/davidmarkclements/flatstr.git" - }, - "bugs": { - "url": "https://github.com/davidmarkclements/flatstr/issues" - }, - "homepage": "https://github.com/davidmarkclements/flatstr#readme", - "devDependencies": { - "fastbench": "^1.0.1", - "tap": "^12.0.1" - }, - "dependencies": {} -} diff --git a/build/node_modules/flatstr/readme.md b/build/node_modules/flatstr/readme.md deleted file mode 100644 index d8b77b37..00000000 --- a/build/node_modules/flatstr/readme.md +++ /dev/null @@ -1,82 +0,0 @@ -# flatstr - -Flattens the underlying C structures of a concatenated JavaScript string - -## About - -If you're doing lots of string concatenation and then writing that -string somewhere, you may find that passing your string through -`flatstr` vastly improves performance. - -## Usage - -```js -var flatstr = require('flatstr') -flatstr(someHeavilyConcatenatedString) -``` - -## Benchmarks - -Benchmarks test flat vs non-flat strings being written to -an `fs.WriteStream`. - -``` -unflattenedManySmallConcats*10000: 147.540ms -flattenedManySmallConcats*10000: 105.994ms -unflattenedSeveralLargeConcats*10000: 287.901ms -flattenedSeveralLargeConcats*10000: 226.121ms -unflattenedExponentialSmallConcats*10000: 410.533ms -flattenedExponentialSmallConcats*10000: 219.973ms -unflattenedExponentialLargeConcats*10000: 2774.230ms -flattenedExponentialLargeConcats*10000: 1862.815ms -``` - -In each case, flattened strings win, -here's the performance gains from using `flatstr` - -``` -ManySmallConcats: 28% -SeveralLargeConcats: 21% -ExponentialSmallConcats: 46% -ExponentialLargeConcats: 33% -``` - -## How does it work - -In the v8 C++ layer, JavaScript strings can be represented in two ways. - -1. As an array -2. As a tree - -When JavaScript strings are concatenated, tree structures are used -to represent them. For the concat operation, this is cheaper than -reallocating a larger array. However, performing other operations -on the tree structures can become costly (particularly where lots of -concatenation has occurred). - -V8 has a a method called `String::Flatten`which converts the tree into a C array. This method is typically called before operations that walk through the bytes of the string (for instance, when testing against a regular expression). It may also be called if a string is accessed many times over, -as an optimization on the string. However, strings aren't always flattened. One example is when we pass a string into a `WriteStream`, at some point the string will be converted to a buffer, and this may be expensive if the underlying representation is a tree. - -`String::Flatten` is not exposed as a JavaScript function, but it can be triggered as a side effect. - -There are several ways to indirectly call `String::Flatten` (see `alt-benchmark.js`), -but coercion to a number appears to be (one of) the cheapest. - -However since Node 10 the V8 version has stopped using Flatten in all -places identified. Thus the code has been updated to seamlessly -use the native runtime function `%FlattenString` without having to use -the `--allow-natives-syntax` flag directly. - -One final note: calling flatstr too much can in fact negatively effect performance. For instance, don't call it every time you concat (if that -was performant, v8 wouldn't be using trees in the first place). The best -place to use flatstr is just prior to passing it to an API that eventually -runs non-v8 code (such as `fs.WriteStream`, or perhaps `xhr` or DOM apis in the browser). - - -## Acknowledgements - -* Sponsored by nearForm - -## License - -MIT diff --git a/build/node_modules/flatstr/test.js b/build/node_modules/flatstr/test.js deleted file mode 100644 index 50efe8c4..00000000 --- a/build/node_modules/flatstr/test.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' -var test = require('tap').test -var flatstr = require('.') - -test('does not throw', function (t) { - t.doesNotThrow(() => { - flatstr('abc') - }) - t.doesNotThrow(() => { - flatstr({}) - }) - t.doesNotThrow(() => { - flatstr(1) - }) - t.doesNotThrow(() => { - flatstr(null) - }) - t.end() -}) - -test('returns the same value that was passed in', function (t) { - var o = {} - t.is(flatstr('abc'), 'abc') - t.is(flatstr(o), o) - t.end() -}) diff --git a/build/node_modules/flatted/LICENSE b/build/node_modules/flatted/LICENSE deleted file mode 100644 index 506dc479..00000000 --- a/build/node_modules/flatted/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -ISC License - -Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/flatted/README.md b/build/node_modules/flatted/README.md deleted file mode 100644 index f01c4c4c..00000000 --- a/build/node_modules/flatted/README.md +++ /dev/null @@ -1,115 +0,0 @@ -# flatted - -[![Downloads](https://img.shields.io/npm/dm/flatted.svg)](https://www.npmjs.com/package/flatted) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/flatted/badge.svg?branch=main)](https://coveralls.io/github/WebReflection/flatted?branch=main) [![Build Status](https://travis-ci.com/WebReflection/flatted.svg?branch=main)](https://travis-ci.com/WebReflection/flatted) [![License: ISC](https://img.shields.io/badge/License-ISC-yellow.svg)](https://opensource.org/licenses/ISC) ![WebReflection status](https://offline.report/status/webreflection.svg) - -![snow flake](./flatted.jpg) - -**Social Media Photo by [Matt Seymour](https://unsplash.com/@mattseymour) on [Unsplash](https://unsplash.com/)** - -A super light (0.5K) and fast circular JSON parser, directly from the creator of [CircularJSON](https://github.com/WebReflection/circular-json/#circularjson). - -Available also for **[PHP](./php/flatted.php)**. - -Available also for **[Python](./python/flatted.py)**. - -- - - - -## Announcement 📣 - -There is a standard approach to recursion and more data-types than what JSON allows, and it's part of the [Structured Clone polyfill](https://github.com/ungap/structured-clone/#readme). - -Beside acting as a polyfill, its `@ungap/structured-clone/json` export provides both `stringify` and `parse`, and it's been tested for being faster than *flatted*, but its produced output is also smaller than *flatted* in general. - -The *@ungap/structured-clone* module is, in short, a drop in replacement for *flatted*, but it's not compatible with *flatted* specialized syntax. - -However, if recursion, as well as more data-types, are what you are after, or interesting for your projects/use cases, consider switching to this new module whenever you can 👍 - -- - - - -```js -npm i flatted -``` - -Usable via [CDN](https://unpkg.com/flatted) or as regular module. - -```js -// ESM -import {parse, stringify, toJSON, fromJSON} from 'flatted'; - -// CJS -const {parse, stringify, toJSON, fromJSON} = require('flatted'); - -const a = [{}]; -a[0].a = a; -a.push(a); - -stringify(a); // [["1","0"],{"a":"0"}] -``` - -## toJSON and fromJSON - -If you'd like to implicitly survive JSON serialization, these two helpers helps: - -```js -import {toJSON, fromJSON} from 'flatted'; - -class RecursiveMap extends Map { - static fromJSON(any) { - return new this(fromJSON(any)); - } - toJSON() { - return toJSON([...this.entries()]); - } -} - -const recursive = new RecursiveMap; -const same = {}; -same.same = same; -recursive.set('same', same); - -const asString = JSON.stringify(recursive); -const asMap = RecursiveMap.fromJSON(JSON.parse(asString)); -asMap.get('same') === asMap.get('same').same; -// true -``` - - -## Flatted VS JSON - -As it is for every other specialized format capable of serializing and deserializing circular data, you should never `JSON.parse(Flatted.stringify(data))`, and you should never `Flatted.parse(JSON.stringify(data))`. - -The only way this could work is to `Flatted.parse(Flatted.stringify(data))`, as it is also for _CircularJSON_ or any other, otherwise there's no granted data integrity. - -Also please note this project serializes and deserializes only data compatible with JSON, so that sockets, or anything else with internal classes different from those allowed by JSON standard, won't be serialized and unserialized as expected. - - -### New in V1: Exact same JSON API - - * Added a [reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Syntax) parameter to `.parse(string, reviver)` and revive your own objects. - * Added a [replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Syntax) and a `space` parameter to `.stringify(object, replacer, space)` for feature parity with JSON signature. - - -### Compatibility -All ECMAScript engines compatible with `Map`, `Set`, `Object.keys`, and `Array.prototype.reduce` will work, even if polyfilled. - - -### How does it work ? -While stringifying, all Objects, including Arrays, and strings, are flattened out and replaced as unique index. `*` - -Once parsed, all indexes will be replaced through the flattened collection. - -`*` represented as string to avoid conflicts with numbers - -```js -// logic example -var a = [{one: 1}, {two: '2'}]; -a[0].a = a; -// a is the main object, will be at index '0' -// {one: 1} is the second object, index '1' -// {two: '2'} the third, in '2', and it has a string -// which will be found at index '3' - -Flatted.stringify(a); -// [["1","2"],{"one":1,"a":"0"},{"two":"3"},"2"] -// a[one,two] {one: 1, a} {two: '2'} '2' -``` diff --git a/build/node_modules/flatted/es.js b/build/node_modules/flatted/es.js deleted file mode 100644 index 8e4cf0cf..00000000 --- a/build/node_modules/flatted/es.js +++ /dev/null @@ -1,2 +0,0 @@ -self.Flatted=function(t){"use strict"; -/*! (c) 2020 Andrea Giammarchi */const{parse:e,stringify:n}=JSON,{keys:r}=Object,s=String,o="string",c={},l="object",a=(t,e)=>e,f=t=>t instanceof s?s(t):t,i=(t,e)=>typeof e===o?new s(e):e,u=(t,e,n,o)=>{const a=[];for(let f=r(n),{length:i}=f,u=0;u{const r=s(e.push(n)-1);return t.set(n,r),r},y=(t,n)=>{const r=e(t,i).map(f),s=r[0],o=n||a,c=typeof s===l&&s?u(r,new Set,s,o):s;return o.call({"":c},"",c)},g=(t,e,r)=>{const s=e&&typeof e===l?(t,n)=>""===t||-1y(n(t)),t.parse=y,t.stringify=g,t.toJSON=t=>e(g(t)),t}({}); diff --git a/build/node_modules/flatted/esm.js b/build/node_modules/flatted/esm.js deleted file mode 100644 index c20ae09e..00000000 --- a/build/node_modules/flatted/esm.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! (c) 2020 Andrea Giammarchi */ -const{parse:t,stringify:e}=JSON,{keys:n}=Object,o=String,c={},r=(t,e)=>e,s=t=>t instanceof o?o(t):t,l=(t,e)=>"string"==typeof e?new o(e):e,a=(t,e,r,s)=>{const l=[];for(let a=n(r),{length:f}=a,i=0;i{const c=o(e.push(n)-1);return t.set(n,c),c},i=(e,n)=>{const o=t(e,l).map(s),c=o[0],f=n||r,i="object"==typeof c&&c?a(o,new Set,c,f):c;return f.call({"":i},"",i)},p=(t,n,o)=>{const c=n&&"object"==typeof n?(t,e)=>""===t||-1t(p(e)),g=t=>i(e(t));export{g as fromJSON,i as parse,p as stringify,u as toJSON}; diff --git a/build/node_modules/flatted/index.js b/build/node_modules/flatted/index.js deleted file mode 100644 index afb193dc..00000000 --- a/build/node_modules/flatted/index.js +++ /dev/null @@ -1,135 +0,0 @@ -self.Flatted = (function (exports) { - 'use strict'; - - function _typeof(obj) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, _typeof(obj); - } - - /*! (c) 2020 Andrea Giammarchi */ - var $parse = JSON.parse, - $stringify = JSON.stringify; - var keys = Object.keys; - var Primitive = String; // it could be Number - - var primitive = 'string'; // it could be 'number' - - var ignore = {}; - var object = 'object'; - - var noop = function noop(_, value) { - return value; - }; - - var primitives = function primitives(value) { - return value instanceof Primitive ? Primitive(value) : value; - }; - - var Primitives = function Primitives(_, value) { - return _typeof(value) === primitive ? new Primitive(value) : value; - }; - - var revive = function revive(input, parsed, output, $) { - var lazy = []; - - for (var ke = keys(output), length = ke.length, y = 0; y < length; y++) { - var k = ke[y]; - var value = output[k]; - - if (value instanceof Primitive) { - var tmp = input[value]; - - if (_typeof(tmp) === object && !parsed.has(tmp)) { - parsed.add(tmp); - output[k] = ignore; - lazy.push({ - k: k, - a: [input, parsed, tmp, $] - }); - } else output[k] = $.call(output, k, tmp); - } else if (output[k] !== ignore) output[k] = $.call(output, k, value); - } - - for (var _length = lazy.length, i = 0; i < _length; i++) { - var _lazy$i = lazy[i], - _k = _lazy$i.k, - a = _lazy$i.a; - output[_k] = $.call(output, _k, revive.apply(null, a)); - } - - return output; - }; - - var set = function set(known, input, value) { - var index = Primitive(input.push(value) - 1); - known.set(value, index); - return index; - }; - - var parse = function parse(text, reviver) { - var input = $parse(text, Primitives).map(primitives); - var value = input[0]; - var $ = reviver || noop; - var tmp = _typeof(value) === object && value ? revive(input, new Set(), value, $) : value; - return $.call({ - '': tmp - }, '', tmp); - }; - var stringify = function stringify(value, replacer, space) { - var $ = replacer && _typeof(replacer) === object ? function (k, v) { - return k === '' || -1 < replacer.indexOf(k) ? v : void 0; - } : replacer || noop; - var known = new Map(); - var input = []; - var output = []; - var i = +set(known, input, $.call({ - '': value - }, '', value)); - var firstRun = !i; - - while (i < input.length) { - firstRun = true; - output[i] = $stringify(input[i++], replace, space); - } - - return '[' + output.join(',') + ']'; - - function replace(key, value) { - if (firstRun) { - firstRun = !firstRun; - return value; - } - - var after = $.call(this, key, value); - - switch (_typeof(after)) { - case object: - if (after === null) return after; - - case primitive: - return known.get(after) || set(known, input, after); - } - - return after; - } - }; - var toJSON = function toJSON(any) { - return $parse(stringify(any)); - }; - var fromJSON = function fromJSON(any) { - return parse($stringify(any)); - }; - - exports.fromJSON = fromJSON; - exports.parse = parse; - exports.stringify = stringify; - exports.toJSON = toJSON; - - return exports; - -})({}); diff --git a/build/node_modules/flatted/min.js b/build/node_modules/flatted/min.js deleted file mode 100644 index b7a8efc1..00000000 --- a/build/node_modules/flatted/min.js +++ /dev/null @@ -1,2 +0,0 @@ -self.Flatted=function(n){"use strict";function t(n){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},t(n) -/*! (c) 2020 Andrea Giammarchi */}var r=JSON.parse,e=JSON.stringify,o=Object.keys,u=String,f="string",i={},c="object",a=function(n,t){return t},l=function(n){return n instanceof u?u(n):n},s=function(n,r){return t(r)===f?new u(r):r},y=function n(r,e,f,a){for(var l=[],s=o(f),y=s.length,p=0;p ./coverage/lcov.info" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/WebReflection/flatted.git" - }, - "keywords": [ - "circular", - "JSON", - "fast", - "parser", - "minimal" - ], - "author": "Andrea Giammarchi", - "license": "ISC", - "bugs": { - "url": "https://github.com/WebReflection/flatted/issues" - }, - "homepage": "https://github.com/WebReflection/flatted#readme", - "devDependencies": { - "@babel/core": "^7.18.10", - "@babel/preset-env": "^7.18.10", - "@ungap/structured-clone": "^1.0.1", - "ascjs": "^5.0.1", - "c8": "^7.12.0", - "circular-json": "^0.5.9", - "circular-json-es6": "^2.0.2", - "jsan": "^3.1.14", - "rollup": "^2.78.1", - "rollup-plugin-babel": "^4.4.0", - "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-terser": "^7.0.2", - "terser": "^5.14.2" - }, - "module": "./esm/index.js", - "type": "module", - "exports": { - ".": { - "types": "./types.d.ts", - "import": "./esm/index.js", - "default": "./cjs/index.js" - }, - "./esm": "./esm.js", - "./package.json": "./package.json" - } -} diff --git a/build/node_modules/flatted/types.d.ts b/build/node_modules/flatted/types.d.ts deleted file mode 100644 index d38b4a1b..00000000 --- a/build/node_modules/flatted/types.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -interface Flatted { - /** - * Converts a JavaScript Object Notation (using Flatted encoding) string into an object. - * @param text A valid Flatted string. - * @param reviver A function that transforms the results. This function is called for each member of the object. - * If a member contains nested objects, the nested objects are transformed before the parent object is. - */ - parse( - text: string, - reviver?: (this: any, key: string, value: any) => any - ): any; - /** - * Converts a JavaScript value to a JavaScript Object Notation (using Flatted encoding) string. - * @param value A JavaScript value, usually an object or array, to be converted. - * @param replacer A function that transforms the results. - * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. - */ - stringify( - value: any, - replacer?: (this: any, key: string, value: any) => any, - space?: string | number - ): string; - /** - * Converts a JavaScript value to a JavaScript Object Notation (using Flatted encoding) string. - * @param value A JavaScript value, usually an object or array, to be converted. - * @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified. - * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. - */ - stringify( - value: any, - replacer?: (number | string)[] | null, - space?: string | number - ): string; - /** - * Helper to allow explicit conversions with classes. - * @param value The JSON to convert to JavaScript value - */ - fromJSON(value: any): any; - /** - * Helper to allow explicit conversions with classes. - * @param value A JavaScript value, usually an object or array, to be converted. - */ - toJSON(value: any): any; -} - -/** - * Fast and minimal circular JSON parser. - * logic example -```js -var a = [{one: 1}, {two: '2'}]; -a[0].a = a; -// a is the main object, will be at index '0' -// {one: 1} is the second object, index '1' -// {two: '2'} the third, in '2', and it has a string -// which will be found at index '3' -Flatted.stringify(a); -// [["1","2"],{"one":1,"a":"0"},{"two":"3"},"2"] -// a[one,two] {one: 1, a} {two: '2'} '2' -``` - */ -declare const Flatted: Flatted; -export = Flatted; diff --git a/build/node_modules/flattie/index.d.ts b/build/node_modules/flattie/index.d.ts deleted file mode 100644 index 60f51077..00000000 --- a/build/node_modules/flattie/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function flattie, Y=unknown>(input: Y, glue?: string, keepNullish?: boolean): X; diff --git a/build/node_modules/flattie/license b/build/node_modules/flattie/license deleted file mode 100644 index a3f96f82..00000000 --- a/build/node_modules/flattie/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Luke Edwards (lukeed.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/flattie/package.json b/build/node_modules/flattie/package.json deleted file mode 100644 index 9c04f7c9..00000000 --- a/build/node_modules/flattie/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "flattie", - "version": "1.1.0", - "repository": "lukeed/flattie", - "description": "A tiny (203B) and fast utility to flatten an object with customizable glue", - "unpkg": "dist/index.min.js", - "module": "dist/index.mjs", - "main": "dist/index.js", - "types": "index.d.ts", - "license": "MIT", - "author": { - "name": "Luke Edwards", - "email": "luke.edwards05@gmail.com", - "url": "https://lukeed.com" - }, - "exports": { - ".": { - "import": "./dist/index.mjs", - "require": "./dist/index.js" - }, - "./package.json": "./package.json" - }, - "files": [ - "*.d.ts", - "dist" - ], - "engines": { - "node": ">=8" - }, - "scripts": { - "build": "bundt", - "bench": "node bench", - "test": "uvu -r esm test" - }, - "keywords": [ - "keys", - "flatten", - "object", - "nested", - "flat" - ], - "devDependencies": { - "bundt": "1.1.1", - "esm": "3.2.25", - "uvu": "0.3.3" - } -} diff --git a/build/node_modules/flattie/readme.md b/build/node_modules/flattie/readme.md deleted file mode 100644 index 5951c5d8..00000000 --- a/build/node_modules/flattie/readme.md +++ /dev/null @@ -1,143 +0,0 @@ -# flattie [![CI](https://github.com/lukeed/flattie/workflows/CI/badge.svg)](https://github.com/lukeed/flattie/actions) [![codecov](https://badgen.now.sh/codecov/c/github/lukeed/flattie)](https://codecov.io/gh/lukeed/flattie) - -> A tiny (203B) and [fast](#benchmarks) utility to flatten an object with customizable glue - -This module recursively squashes an Object/Array. The output is a flat object – AKA, it has a single level of depth. - -By default, the `.` character is used to glue/join layers' keys together. This is customizable. - -Finally, by default, any keys with nullish values (`null` and `undefined`) are **not** included in the return object. - -## Install - -``` -$ npm install --save flattie -``` - - -## Usage - -```js -import { flattie } from 'flattie'; - -flattie({ - a: 'hi', - b: { - a: null, - b: ['foo', '', null, 'bar'], - d: 'hello', - e: { - a: 'yo', - b: undefined, - c: 'sup', - d: 0, - f: [ - { foo: 123, bar: 123 }, - { foo: 465, bar: 456 }, - ] - } - }, - c: 'world' -}); -// { -// 'a': 'hi', -// 'b.b.0': 'foo', -// 'b.b.1': '', -// 'b.b.3': 'bar', -// 'b.d': 'hello', -// 'b.e.a': 'yo', -// 'b.e.c': 'sup', -// 'b.e.d': 0, -// 'b.e.f.0.foo': 123, -// 'b.e.f.0.bar': 123, -// 'b.e.f.1.foo': 465, -// 'b.e.f.1.bar': 456, -// 'c': 'world' -// } -``` - -> **Note:** `null` and `undefined` values are purged by default. - -## API - -### flattie(input, glue?, keepNullish?) -Returns: `Object` - -Returns a new object with a single level of depth. - -> **Important:** An object is always returned despite `input` type. - -#### input -Type: `Object|Array` - -The object to flatten. - -#### glue -Type: `String`
-Default: `.` - -A string used to join parent key names to nested child key names. - -```js -const foo = { bar: 123 }; - -flattie({ foo }); //=> { 'foo.bar': 123 } -flattie({ foo }, '???'); //=> { 'foo???bar': 123 } -``` - -#### keepNullish -Type: `Boolean`
-Default: `false` - -Whether or not `null` and `undefined` values should be kept. - -```js -// Note: Applies to Objects too -const foo = ['hello', null, NaN, undefined, /*hole*/, 'world']; - -flattie({ foo }); -//=> { -//=> 'foo.0': 'hello', -//=> 'foo.2': NaN, -//=> 'foo.5': 'world' -//=> } - -flattie({ foo }, '.', true); -//=> { -//=> 'foo.0': 'hello', -//=> 'foo.1': null, -//=> 'foo.2': NaN, -//=> 'foo.3': undefined, -//=> 'foo.4': undefined, -//=> 'foo.5': 'world' -//=> } -``` - -## Benchmarks - -> Running on Node.js v10.13.0 - -``` -Load Time: - flat 1.047ms - flatten-object 1.239ms - flat-obj 0.997ms - flattie 0.258ms - -Validation: - ✔ flat - ✔ flatten-object - ✔ flat-obj - ✔ flattie - -Benchmark: - flat x 186,487 ops/sec ±1.28% (86 runs sampled) - flatten-object x 199,476 ops/sec ±1.01% (93 runs sampled) - flat-obj x 393,574 ops/sec ±1.41% (95 runs sampled) - flattie x 909,734 ops/sec ±0.82% (93 runs sampled) -``` - - -## License - -MIT © [Luke Edwards](https://lukeed.com) diff --git a/build/node_modules/follow-redirects/LICENSE b/build/node_modules/follow-redirects/LICENSE deleted file mode 100644 index 742cbada..00000000 --- a/build/node_modules/follow-redirects/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/follow-redirects/README.md b/build/node_modules/follow-redirects/README.md deleted file mode 100644 index eb869a6f..00000000 --- a/build/node_modules/follow-redirects/README.md +++ /dev/null @@ -1,155 +0,0 @@ -## Follow Redirects - -Drop-in replacement for Node's `http` and `https` modules that automatically follows redirects. - -[![npm version](https://img.shields.io/npm/v/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects) -[![Build Status](https://github.com/follow-redirects/follow-redirects/workflows/CI/badge.svg)](https://github.com/follow-redirects/follow-redirects/actions) -[![Coverage Status](https://coveralls.io/repos/follow-redirects/follow-redirects/badge.svg?branch=master)](https://coveralls.io/r/follow-redirects/follow-redirects?branch=master) -[![npm downloads](https://img.shields.io/npm/dm/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects) -[![Sponsor on GitHub](https://img.shields.io/static/v1?label=Sponsor&message=%F0%9F%92%96&logo=GitHub)](https://github.com/sponsors/RubenVerborgh) - -`follow-redirects` provides [request](https://nodejs.org/api/http.html#http_http_request_options_callback) and [get](https://nodejs.org/api/http.html#http_http_get_options_callback) - methods that behave identically to those found on the native [http](https://nodejs.org/api/http.html#http_http_request_options_callback) and [https](https://nodejs.org/api/https.html#https_https_request_options_callback) - modules, with the exception that they will seamlessly follow redirects. - -```javascript -const { http, https } = require('follow-redirects'); - -http.get('http://bit.ly/900913', response => { - response.on('data', chunk => { - console.log(chunk); - }); -}).on('error', err => { - console.error(err); -}); -``` - -You can inspect the final redirected URL through the `responseUrl` property on the `response`. -If no redirection happened, `responseUrl` is the original request URL. - -```javascript -const request = https.request({ - host: 'bitly.com', - path: '/UHfDGO', -}, response => { - console.log(response.responseUrl); - // 'http://duckduckgo.com/robots.txt' -}); -request.end(); -``` - -## Options -### Global options -Global options are set directly on the `follow-redirects` module: - -```javascript -const followRedirects = require('follow-redirects'); -followRedirects.maxRedirects = 10; -followRedirects.maxBodyLength = 20 * 1024 * 1024; // 20 MB -``` - -The following global options are supported: - -- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted. - -- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted. - -### Per-request options -Per-request options are set by passing an `options` object: - -```javascript -const url = require('url'); -const { http, https } = require('follow-redirects'); - -const options = url.parse('http://bit.ly/900913'); -options.maxRedirects = 10; -options.beforeRedirect = (options, response, request) => { - // Use this to adjust the request options upon redirecting, - // to inspect the latest response headers, - // or to cancel the request by throwing an error - - // response.headers = the redirect response headers - // response.statusCode = the redirect response code (eg. 301, 307, etc.) - - // request.url = the requested URL that resulted in a redirect - // request.headers = the headers in the request that resulted in a redirect - // request.method = the method of the request that resulted in a redirect - if (options.hostname === "example.com") { - options.auth = "user:password"; - } -}; -http.request(options); -``` - -In addition to the [standard HTTP](https://nodejs.org/api/http.html#http_http_request_options_callback) and [HTTPS options](https://nodejs.org/api/https.html#https_https_request_options_callback), -the following per-request options are supported: -- `followRedirects` (default: `true`) – whether redirects should be followed. - -- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted. - -- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted. - -- `beforeRedirect` (default: `undefined`) – optionally change the request `options` on redirects, or abort the request by throwing an error. - -- `agents` (default: `undefined`) – sets the `agent` option per protocol, since HTTP and HTTPS use different agents. Example value: `{ http: new http.Agent(), https: new https.Agent() }` - -- `trackRedirects` (default: `false`) – whether to store the redirected response details into the `redirects` array on the response object. - - -### Advanced usage -By default, `follow-redirects` will use the Node.js default implementations -of [`http`](https://nodejs.org/api/http.html) -and [`https`](https://nodejs.org/api/https.html). -To enable features such as caching and/or intermediate request tracking, -you might instead want to wrap `follow-redirects` around custom protocol implementations: - -```javascript -const { http, https } = require('follow-redirects').wrap({ - http: require('your-custom-http'), - https: require('your-custom-https'), -}); -``` - -Such custom protocols only need an implementation of the `request` method. - -## Browser Usage - -Due to the way the browser works, -the `http` and `https` browser equivalents perform redirects by default. - -By requiring `follow-redirects` this way: -```javascript -const http = require('follow-redirects/http'); -const https = require('follow-redirects/https'); -``` -you can easily tell webpack and friends to replace -`follow-redirect` by the built-in versions: - -```json -{ - "follow-redirects/http" : "http", - "follow-redirects/https" : "https" -} -``` - -## Contributing - -Pull Requests are always welcome. Please [file an issue](https://github.com/follow-redirects/follow-redirects/issues) - detailing your proposal before you invest your valuable time. Additional features and bug fixes should be accompanied - by tests. You can run the test suite locally with a simple `npm test` command. - -## Debug Logging - -`follow-redirects` uses the excellent [debug](https://www.npmjs.com/package/debug) for logging. To turn on logging - set the environment variable `DEBUG=follow-redirects` for debug output from just this module. When running the test - suite it is sometimes advantageous to set `DEBUG=*` to see output from the express server as well. - -## Authors - -- [Ruben Verborgh](https://ruben.verborgh.org/) -- [Olivier Lalonde](mailto:olalonde@gmail.com) -- [James Talmage](mailto:james@talmage.io) - -## License - -[MIT License](https://github.com/follow-redirects/follow-redirects/blob/master/LICENSE) diff --git a/build/node_modules/follow-redirects/debug.js b/build/node_modules/follow-redirects/debug.js deleted file mode 100644 index decb77de..00000000 --- a/build/node_modules/follow-redirects/debug.js +++ /dev/null @@ -1,15 +0,0 @@ -var debug; - -module.exports = function () { - if (!debug) { - try { - /* eslint global-require: off */ - debug = require("debug")("follow-redirects"); - } - catch (error) { /* */ } - if (typeof debug !== "function") { - debug = function () { /* */ }; - } - } - debug.apply(null, arguments); -}; diff --git a/build/node_modules/follow-redirects/http.js b/build/node_modules/follow-redirects/http.js deleted file mode 100644 index 695e3561..00000000 --- a/build/node_modules/follow-redirects/http.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./").http; diff --git a/build/node_modules/follow-redirects/https.js b/build/node_modules/follow-redirects/https.js deleted file mode 100644 index d21c921d..00000000 --- a/build/node_modules/follow-redirects/https.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./").https; diff --git a/build/node_modules/follow-redirects/index.js b/build/node_modules/follow-redirects/index.js deleted file mode 100644 index 057c6b1e..00000000 --- a/build/node_modules/follow-redirects/index.js +++ /dev/null @@ -1,633 +0,0 @@ -var url = require("url"); -var URL = url.URL; -var http = require("http"); -var https = require("https"); -var Writable = require("stream").Writable; -var assert = require("assert"); -var debug = require("./debug"); - -// Create handlers that pass events from native requests -var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; -var eventHandlers = Object.create(null); -events.forEach(function (event) { - eventHandlers[event] = function (arg1, arg2, arg3) { - this._redirectable.emit(event, arg1, arg2, arg3); - }; -}); - -var InvalidUrlError = createErrorType( - "ERR_INVALID_URL", - "Invalid URL", - TypeError -); -// Error types with codes -var RedirectionError = createErrorType( - "ERR_FR_REDIRECTION_FAILURE", - "Redirected request failed" -); -var TooManyRedirectsError = createErrorType( - "ERR_FR_TOO_MANY_REDIRECTS", - "Maximum number of redirects exceeded" -); -var MaxBodyLengthExceededError = createErrorType( - "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", - "Request body larger than maxBodyLength limit" -); -var WriteAfterEndError = createErrorType( - "ERR_STREAM_WRITE_AFTER_END", - "write after end" -); - -// istanbul ignore next -var destroy = Writable.prototype.destroy || noop; - -// An HTTP(S) request that can be redirected -function RedirectableRequest(options, responseCallback) { - // Initialize the request - Writable.call(this); - this._sanitizeOptions(options); - this._options = options; - this._ended = false; - this._ending = false; - this._redirectCount = 0; - this._redirects = []; - this._requestBodyLength = 0; - this._requestBodyBuffers = []; - - // Attach a callback if passed - if (responseCallback) { - this.on("response", responseCallback); - } - - // React to responses of native requests - var self = this; - this._onNativeResponse = function (response) { - self._processResponse(response); - }; - - // Perform the first request - this._performRequest(); -} -RedirectableRequest.prototype = Object.create(Writable.prototype); - -RedirectableRequest.prototype.abort = function () { - destroyRequest(this._currentRequest); - this._currentRequest.abort(); - this.emit("abort"); -}; - -RedirectableRequest.prototype.destroy = function (error) { - destroyRequest(this._currentRequest, error); - destroy.call(this, error); - return this; -}; - -// Writes buffered data to the current native request -RedirectableRequest.prototype.write = function (data, encoding, callback) { - // Writing is not allowed if end has been called - if (this._ending) { - throw new WriteAfterEndError(); - } - - // Validate input and shift parameters if necessary - if (!isString(data) && !isBuffer(data)) { - throw new TypeError("data should be a string, Buffer or Uint8Array"); - } - if (isFunction(encoding)) { - callback = encoding; - encoding = null; - } - - // Ignore empty buffers, since writing them doesn't invoke the callback - // https://github.com/nodejs/node/issues/22066 - if (data.length === 0) { - if (callback) { - callback(); - } - return; - } - // Only write when we don't exceed the maximum body length - if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { - this._requestBodyLength += data.length; - this._requestBodyBuffers.push({ data: data, encoding: encoding }); - this._currentRequest.write(data, encoding, callback); - } - // Error when we exceed the maximum body length - else { - this.emit("error", new MaxBodyLengthExceededError()); - this.abort(); - } -}; - -// Ends the current native request -RedirectableRequest.prototype.end = function (data, encoding, callback) { - // Shift parameters if necessary - if (isFunction(data)) { - callback = data; - data = encoding = null; - } - else if (isFunction(encoding)) { - callback = encoding; - encoding = null; - } - - // Write data if needed and end - if (!data) { - this._ended = this._ending = true; - this._currentRequest.end(null, null, callback); - } - else { - var self = this; - var currentRequest = this._currentRequest; - this.write(data, encoding, function () { - self._ended = true; - currentRequest.end(null, null, callback); - }); - this._ending = true; - } -}; - -// Sets a header value on the current native request -RedirectableRequest.prototype.setHeader = function (name, value) { - this._options.headers[name] = value; - this._currentRequest.setHeader(name, value); -}; - -// Clears a header value on the current native request -RedirectableRequest.prototype.removeHeader = function (name) { - delete this._options.headers[name]; - this._currentRequest.removeHeader(name); -}; - -// Global timeout for all underlying requests -RedirectableRequest.prototype.setTimeout = function (msecs, callback) { - var self = this; - - // Destroys the socket on timeout - function destroyOnTimeout(socket) { - socket.setTimeout(msecs); - socket.removeListener("timeout", socket.destroy); - socket.addListener("timeout", socket.destroy); - } - - // Sets up a timer to trigger a timeout event - function startTimer(socket) { - if (self._timeout) { - clearTimeout(self._timeout); - } - self._timeout = setTimeout(function () { - self.emit("timeout"); - clearTimer(); - }, msecs); - destroyOnTimeout(socket); - } - - // Stops a timeout from triggering - function clearTimer() { - // Clear the timeout - if (self._timeout) { - clearTimeout(self._timeout); - self._timeout = null; - } - - // Clean up all attached listeners - self.removeListener("abort", clearTimer); - self.removeListener("error", clearTimer); - self.removeListener("response", clearTimer); - self.removeListener("close", clearTimer); - if (callback) { - self.removeListener("timeout", callback); - } - if (!self.socket) { - self._currentRequest.removeListener("socket", startTimer); - } - } - - // Attach callback if passed - if (callback) { - this.on("timeout", callback); - } - - // Start the timer if or when the socket is opened - if (this.socket) { - startTimer(this.socket); - } - else { - this._currentRequest.once("socket", startTimer); - } - - // Clean up on events - this.on("socket", destroyOnTimeout); - this.on("abort", clearTimer); - this.on("error", clearTimer); - this.on("response", clearTimer); - this.on("close", clearTimer); - - return this; -}; - -// Proxy all other public ClientRequest methods -[ - "flushHeaders", "getHeader", - "setNoDelay", "setSocketKeepAlive", -].forEach(function (method) { - RedirectableRequest.prototype[method] = function (a, b) { - return this._currentRequest[method](a, b); - }; -}); - -// Proxy all public ClientRequest properties -["aborted", "connection", "socket"].forEach(function (property) { - Object.defineProperty(RedirectableRequest.prototype, property, { - get: function () { return this._currentRequest[property]; }, - }); -}); - -RedirectableRequest.prototype._sanitizeOptions = function (options) { - // Ensure headers are always present - if (!options.headers) { - options.headers = {}; - } - - // Since http.request treats host as an alias of hostname, - // but the url module interprets host as hostname plus port, - // eliminate the host property to avoid confusion. - if (options.host) { - // Use hostname if set, because it has precedence - if (!options.hostname) { - options.hostname = options.host; - } - delete options.host; - } - - // Complete the URL object when necessary - if (!options.pathname && options.path) { - var searchPos = options.path.indexOf("?"); - if (searchPos < 0) { - options.pathname = options.path; - } - else { - options.pathname = options.path.substring(0, searchPos); - options.search = options.path.substring(searchPos); - } - } -}; - - -// Executes the next native request (initial or redirect) -RedirectableRequest.prototype._performRequest = function () { - // Load the native protocol - var protocol = this._options.protocol; - var nativeProtocol = this._options.nativeProtocols[protocol]; - if (!nativeProtocol) { - this.emit("error", new TypeError("Unsupported protocol " + protocol)); - return; - } - - // If specified, use the agent corresponding to the protocol - // (HTTP and HTTPS use different types of agents) - if (this._options.agents) { - var scheme = protocol.slice(0, -1); - this._options.agent = this._options.agents[scheme]; - } - - // Create the native request and set up its event handlers - var request = this._currentRequest = - nativeProtocol.request(this._options, this._onNativeResponse); - request._redirectable = this; - for (var event of events) { - request.on(event, eventHandlers[event]); - } - - // RFC7230§5.3.1: When making a request directly to an origin server, […] - // a client MUST send only the absolute path […] as the request-target. - this._currentUrl = /^\//.test(this._options.path) ? - url.format(this._options) : - // When making a request to a proxy, […] - // a client MUST send the target URI in absolute-form […]. - this._options.path; - - // End a redirected request - // (The first request must be ended explicitly with RedirectableRequest#end) - if (this._isRedirect) { - // Write the request entity and end - var i = 0; - var self = this; - var buffers = this._requestBodyBuffers; - (function writeNext(error) { - // Only write if this request has not been redirected yet - /* istanbul ignore else */ - if (request === self._currentRequest) { - // Report any write errors - /* istanbul ignore if */ - if (error) { - self.emit("error", error); - } - // Write the next buffer if there are still left - else if (i < buffers.length) { - var buffer = buffers[i++]; - /* istanbul ignore else */ - if (!request.finished) { - request.write(buffer.data, buffer.encoding, writeNext); - } - } - // End the request if `end` has been called on us - else if (self._ended) { - request.end(); - } - } - }()); - } -}; - -// Processes a response from the current native request -RedirectableRequest.prototype._processResponse = function (response) { - // Store the redirected response - var statusCode = response.statusCode; - if (this._options.trackRedirects) { - this._redirects.push({ - url: this._currentUrl, - headers: response.headers, - statusCode: statusCode, - }); - } - - // RFC7231§6.4: The 3xx (Redirection) class of status code indicates - // that further action needs to be taken by the user agent in order to - // fulfill the request. If a Location header field is provided, - // the user agent MAY automatically redirect its request to the URI - // referenced by the Location field value, - // even if the specific status code is not understood. - - // If the response is not a redirect; return it as-is - var location = response.headers.location; - if (!location || this._options.followRedirects === false || - statusCode < 300 || statusCode >= 400) { - response.responseUrl = this._currentUrl; - response.redirects = this._redirects; - this.emit("response", response); - - // Clean up - this._requestBodyBuffers = []; - return; - } - - // The response is a redirect, so abort the current request - destroyRequest(this._currentRequest); - // Discard the remainder of the response to avoid waiting for data - response.destroy(); - - // RFC7231§6.4: A client SHOULD detect and intervene - // in cyclical redirections (i.e., "infinite" redirection loops). - if (++this._redirectCount > this._options.maxRedirects) { - this.emit("error", new TooManyRedirectsError()); - return; - } - - // Store the request headers if applicable - var requestHeaders; - var beforeRedirect = this._options.beforeRedirect; - if (beforeRedirect) { - requestHeaders = Object.assign({ - // The Host header was set by nativeProtocol.request - Host: response.req.getHeader("host"), - }, this._options.headers); - } - - // RFC7231§6.4: Automatic redirection needs to done with - // care for methods not known to be safe, […] - // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change - // the request method from POST to GET for the subsequent request. - var method = this._options.method; - if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || - // RFC7231§6.4.4: The 303 (See Other) status code indicates that - // the server is redirecting the user agent to a different resource […] - // A user agent can perform a retrieval request targeting that URI - // (a GET or HEAD request if using HTTP) […] - (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { - this._options.method = "GET"; - // Drop a possible entity and headers related to it - this._requestBodyBuffers = []; - removeMatchingHeaders(/^content-/i, this._options.headers); - } - - // Drop the Host header, as the redirect might lead to a different host - var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); - - // If the redirect is relative, carry over the host of the last request - var currentUrlParts = url.parse(this._currentUrl); - var currentHost = currentHostHeader || currentUrlParts.host; - var currentUrl = /^\w+:/.test(location) ? this._currentUrl : - url.format(Object.assign(currentUrlParts, { host: currentHost })); - - // Determine the URL of the redirection - var redirectUrl; - try { - redirectUrl = url.resolve(currentUrl, location); - } - catch (cause) { - this.emit("error", new RedirectionError({ cause: cause })); - return; - } - - // Create the redirected request - debug("redirecting to", redirectUrl); - this._isRedirect = true; - var redirectUrlParts = url.parse(redirectUrl); - Object.assign(this._options, redirectUrlParts); - - // Drop confidential headers when redirecting to a less secure protocol - // or to a different domain that is not a superdomain - if (redirectUrlParts.protocol !== currentUrlParts.protocol && - redirectUrlParts.protocol !== "https:" || - redirectUrlParts.host !== currentHost && - !isSubdomain(redirectUrlParts.host, currentHost)) { - removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers); - } - - // Evaluate the beforeRedirect callback - if (isFunction(beforeRedirect)) { - var responseDetails = { - headers: response.headers, - statusCode: statusCode, - }; - var requestDetails = { - url: currentUrl, - method: method, - headers: requestHeaders, - }; - try { - beforeRedirect(this._options, responseDetails, requestDetails); - } - catch (err) { - this.emit("error", err); - return; - } - this._sanitizeOptions(this._options); - } - - // Perform the redirected request - try { - this._performRequest(); - } - catch (cause) { - this.emit("error", new RedirectionError({ cause: cause })); - } -}; - -// Wraps the key/value object of protocols with redirect functionality -function wrap(protocols) { - // Default settings - var exports = { - maxRedirects: 21, - maxBodyLength: 10 * 1024 * 1024, - }; - - // Wrap each protocol - var nativeProtocols = {}; - Object.keys(protocols).forEach(function (scheme) { - var protocol = scheme + ":"; - var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; - var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); - - // Executes a request, following redirects - function request(input, options, callback) { - // Parse parameters - if (isString(input)) { - var parsed; - try { - parsed = urlToOptions(new URL(input)); - } - catch (err) { - /* istanbul ignore next */ - parsed = url.parse(input); - } - if (!isString(parsed.protocol)) { - throw new InvalidUrlError({ input }); - } - input = parsed; - } - else if (URL && (input instanceof URL)) { - input = urlToOptions(input); - } - else { - callback = options; - options = input; - input = { protocol: protocol }; - } - if (isFunction(options)) { - callback = options; - options = null; - } - - // Set defaults - options = Object.assign({ - maxRedirects: exports.maxRedirects, - maxBodyLength: exports.maxBodyLength, - }, input, options); - options.nativeProtocols = nativeProtocols; - if (!isString(options.host) && !isString(options.hostname)) { - options.hostname = "::1"; - } - - assert.equal(options.protocol, protocol, "protocol mismatch"); - debug("options", options); - return new RedirectableRequest(options, callback); - } - - // Executes a GET request, following redirects - function get(input, options, callback) { - var wrappedRequest = wrappedProtocol.request(input, options, callback); - wrappedRequest.end(); - return wrappedRequest; - } - - // Expose the properties on the wrapped protocol - Object.defineProperties(wrappedProtocol, { - request: { value: request, configurable: true, enumerable: true, writable: true }, - get: { value: get, configurable: true, enumerable: true, writable: true }, - }); - }); - return exports; -} - -/* istanbul ignore next */ -function noop() { /* empty */ } - -// from https://github.com/nodejs/node/blob/master/lib/internal/url.js -function urlToOptions(urlObject) { - var options = { - protocol: urlObject.protocol, - hostname: urlObject.hostname.startsWith("[") ? - /* istanbul ignore next */ - urlObject.hostname.slice(1, -1) : - urlObject.hostname, - hash: urlObject.hash, - search: urlObject.search, - pathname: urlObject.pathname, - path: urlObject.pathname + urlObject.search, - href: urlObject.href, - }; - if (urlObject.port !== "") { - options.port = Number(urlObject.port); - } - return options; -} - -function removeMatchingHeaders(regex, headers) { - var lastValue; - for (var header in headers) { - if (regex.test(header)) { - lastValue = headers[header]; - delete headers[header]; - } - } - return (lastValue === null || typeof lastValue === "undefined") ? - undefined : String(lastValue).trim(); -} - -function createErrorType(code, message, baseClass) { - // Create constructor - function CustomError(properties) { - Error.captureStackTrace(this, this.constructor); - Object.assign(this, properties || {}); - this.code = code; - this.message = this.cause ? message + ": " + this.cause.message : message; - } - - // Attach constructor and set default properties - CustomError.prototype = new (baseClass || Error)(); - CustomError.prototype.constructor = CustomError; - CustomError.prototype.name = "Error [" + code + "]"; - return CustomError; -} - -function destroyRequest(request, error) { - for (var event of events) { - request.removeListener(event, eventHandlers[event]); - } - request.on("error", noop); - request.destroy(error); -} - -function isSubdomain(subdomain, domain) { - assert(isString(subdomain) && isString(domain)); - var dot = subdomain.length - domain.length - 1; - return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); -} - -function isString(value) { - return typeof value === "string" || value instanceof String; -} - -function isFunction(value) { - return typeof value === "function"; -} - -function isBuffer(value) { - return typeof value === "object" && ("length" in value); -} - -// Exports -module.exports = wrap({ http: http, https: https }); -module.exports.wrap = wrap; diff --git a/build/node_modules/follow-redirects/package.json b/build/node_modules/follow-redirects/package.json deleted file mode 100644 index eb90372d..00000000 --- a/build/node_modules/follow-redirects/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "follow-redirects", - "version": "1.15.3", - "description": "HTTP and HTTPS modules that follow redirects.", - "license": "MIT", - "main": "index.js", - "files": [ - "*.js" - ], - "engines": { - "node": ">=4.0" - }, - "scripts": { - "lint": "eslint *.js test", - "test": "nyc mocha" - }, - "repository": { - "type": "git", - "url": "git@github.com:follow-redirects/follow-redirects.git" - }, - "homepage": "https://github.com/follow-redirects/follow-redirects", - "bugs": { - "url": "https://github.com/follow-redirects/follow-redirects/issues" - }, - "keywords": [ - "http", - "https", - "url", - "redirect", - "client", - "location", - "utility" - ], - "author": "Ruben Verborgh (https://ruben.verborgh.org/)", - "contributors": [ - "Olivier Lalonde (http://www.syskall.com)", - "James Talmage " - ], - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "peerDependenciesMeta": { - "debug": { - "optional": true - } - }, - "devDependencies": { - "concat-stream": "^2.0.0", - "eslint": "^5.16.0", - "express": "^4.16.4", - "lolex": "^3.1.0", - "mocha": "^6.0.2", - "nyc": "^14.1.1" - } -} diff --git a/build/node_modules/for-in/LICENSE b/build/node_modules/for-in/LICENSE deleted file mode 100644 index d734237b..00000000 --- a/build/node_modules/for-in/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/for-in/README.md b/build/node_modules/for-in/README.md deleted file mode 100644 index 874e1895..00000000 --- a/build/node_modules/for-in/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# for-in [![NPM version](https://img.shields.io/npm/v/for-in.svg?style=flat)](https://www.npmjs.com/package/for-in) [![NPM monthly downloads](https://img.shields.io/npm/dm/for-in.svg?style=flat)](https://npmjs.org/package/for-in) [![NPM total downloads](https://img.shields.io/npm/dt/for-in.svg?style=flat)](https://npmjs.org/package/for-in) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/for-in.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/for-in) - -> Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save for-in -``` - -## Usage - -```js -var forIn = require('for-in'); - -var obj = {a: 'foo', b: 'bar', c: 'baz'}; -var values = []; -var keys = []; - -forIn(obj, function (value, key, o) { - keys.push(key); - values.push(value); -}); - -console.log(keys); -//=> ['a', 'b', 'c']; - -console.log(values); -//=> ['foo', 'bar', 'baz']; -``` - -## About - -### Related projects - -* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.") -* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.") -* [for-own](https://www.npmjs.com/package/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own) | [homepage](https://github.com/jonschlinkert/for-own "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 16 | [jonschlinkert](https://github.com/jonschlinkert) | -| 2 | [paulirish](https://github.com/paulirish) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 28, 2017._ \ No newline at end of file diff --git a/build/node_modules/for-in/index.js b/build/node_modules/for-in/index.js deleted file mode 100644 index 0b5f95f0..00000000 --- a/build/node_modules/for-in/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * for-in - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -module.exports = function forIn(obj, fn, thisArg) { - for (var key in obj) { - if (fn.call(thisArg, obj[key], key, obj) === false) { - break; - } - } -}; diff --git a/build/node_modules/for-in/package.json b/build/node_modules/for-in/package.json deleted file mode 100644 index 48810a18..00000000 --- a/build/node_modules/for-in/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "for-in", - "description": "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/for-in", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Paul Irish (http://paulirish.com)" - ], - "repository": "jonschlinkert/for-in", - "bugs": { - "url": "https://github.com/jonschlinkert/for-in/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "gulp-format-md": "^0.1.11", - "mocha": "^3.2.0" - }, - "keywords": [ - "for", - "for-in", - "for-own", - "has", - "has-own", - "hasOwn", - "in", - "key", - "keys", - "object", - "own", - "value" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "arr-flatten", - "collection-map", - "for-own" - ] - }, - "reflinks": [ - "verb" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/form-data/License b/build/node_modules/form-data/License deleted file mode 100644 index c7ff12a2..00000000 --- a/build/node_modules/form-data/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. diff --git a/build/node_modules/form-data/README.md.bak b/build/node_modules/form-data/README.md.bak deleted file mode 100644 index 298a1a24..00000000 --- a/build/node_modules/form-data/README.md.bak +++ /dev/null @@ -1,358 +0,0 @@ -# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data) - -A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications. - -The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd]. - -[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface - -[![Linux Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=linux:6.x-12.x)](https://travis-ci.org/form-data/form-data) -[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=macos:6.x-12.x)](https://travis-ci.org/form-data/form-data) -[![Windows Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=windows:6.x-12.x)](https://travis-ci.org/form-data/form-data) - -[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v4.0.0.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) -[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data) - -## Install - -``` -npm install --save form-data -``` - -## Usage - -In this example we are constructing a form with 3 fields that contain a string, -a buffer and a file stream. - -``` javascript -var FormData = require('form-data'); -var fs = require('fs'); - -var form = new FormData(); -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_file', fs.createReadStream('/foo/bar.jpg')); -``` - -Also you can use http-response stream: - -``` javascript -var FormData = require('form-data'); -var http = require('http'); - -var form = new FormData(); - -http.request('http://nodejs.org/images/logo.png', function(response) { - form.append('my_field', 'my value'); - form.append('my_buffer', new Buffer(10)); - form.append('my_logo', response); -}); -``` - -Or @mikeal's [request](https://github.com/request/request) stream: - -``` javascript -var FormData = require('form-data'); -var request = require('request'); - -var form = new FormData(); - -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_logo', request('http://nodejs.org/images/logo.png')); -``` - -In order to submit this form to a web application, call ```submit(url, [callback])``` method: - -``` javascript -form.submit('http://example.org/', function(err, res) { - // res – response object (http.IncomingMessage) // - res.resume(); -}); - -``` - -For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods. - -### Custom options - -You can provide custom options, such as `maxDataSize`: - -``` javascript -var FormData = require('form-data'); - -var form = new FormData({ maxDataSize: 20971520 }); -form.append('my_field', 'my value'); -form.append('my_buffer', /* something big */); -``` - -List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15) - -### Alternative submission methods - -You can use node's http client interface: - -``` javascript -var http = require('http'); - -var request = http.request({ - method: 'post', - host: 'example.org', - path: '/upload', - headers: form.getHeaders() -}); - -form.pipe(request); - -request.on('response', function(res) { - console.log(res.statusCode); -}); -``` - -Or if you would prefer the `'Content-Length'` header to be set for you: - -``` javascript -form.submit('example.org/upload', function(err, res) { - console.log(res.statusCode); -}); -``` - -To use custom headers and pre-known length in parts: - -``` javascript -var CRLF = '\r\n'; -var form = new FormData(); - -var options = { - header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF, - knownLength: 1 -}; - -form.append('my_buffer', buffer, options); - -form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); -}); -``` - -Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually: - -``` javascript -someModule.stream(function(err, stdout, stderr) { - if (err) throw err; - - var form = new FormData(); - - form.append('file', stdout, { - filename: 'unicycle.jpg', // ... or: - filepath: 'photos/toys/unicycle.jpg', - contentType: 'image/jpeg', - knownLength: 19806 - }); - - form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); - }); -}); -``` - -The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory). - -For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter: - -``` javascript -form.submit({ - host: 'example.com', - path: '/probably.php?extra=params', - auth: 'username:password' -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`: - -``` javascript -form.submit({ - host: 'example.com', - path: '/surelynot.php', - headers: {'x-test-header': 'test-header-value'} -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -### Methods - -- [_Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] )](https://github.com/form-data/form-data#void-append-string-field-mixed-value--mixed-options-). -- [_Headers_ getHeaders( [**Headers** _userHeaders_] )](https://github.com/form-data/form-data#array-getheaders-array-userheaders-) -- [_String_ getBoundary()](https://github.com/form-data/form-data#string-getboundary) -- [_Void_ setBoundary()](https://github.com/form-data/form-data#void-setboundary) -- [_Buffer_ getBuffer()](https://github.com/form-data/form-data#buffer-getbuffer) -- [_Integer_ getLengthSync()](https://github.com/form-data/form-data#integer-getlengthsync) -- [_Integer_ getLength( **function** _callback_ )](https://github.com/form-data/form-data#integer-getlength-function-callback-) -- [_Boolean_ hasKnownLength()](https://github.com/form-data/form-data#boolean-hasknownlength) -- [_Request_ submit( _params_, **function** _callback_ )](https://github.com/form-data/form-data#request-submit-params-function-callback-) -- [_String_ toString()](https://github.com/form-data/form-data#string-tostring) - -#### _Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] ) -Append data to the form. You can submit about any format (string, integer, boolean, buffer, etc.). However, Arrays are not supported and need to be turned into strings by the user. -```javascript -var form = new FormData(); -form.append( 'my_string', 'my value' ); -form.append( 'my_integer', 1 ); -form.append( 'my_boolean', true ); -form.append( 'my_buffer', new Buffer(10) ); -form.append( 'my_array_as_json', JSON.stringify( ['bird','cute'] ) ) -``` - -You may provide a string for options, or an object. -```javascript -// Set filename by providing a string for options -form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), 'bar.jpg' ); - -// provide an object. -form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), {filename: 'bar.jpg', contentType: 'image/jpeg', knownLength: 19806} ); -``` - -#### _Headers_ getHeaders( [**Headers** _userHeaders_] ) -This method adds the correct `content-type` header to the provided array of `userHeaders`. - -#### _String_ getBoundary() -Return the boundary of the formData. By default, the boundary consists of 26 `-` followed by 24 numbers -for example: -```javascript ---------------------------515890814546601021194782 -``` - -#### _Void_ setBoundary(String _boundary_) -Set the boundary string, overriding the default behavior described above. - -_Note: The boundary must be unique and may not appear in the data._ - -#### _Buffer_ getBuffer() -Return the full formdata request package, as a Buffer. You can insert this Buffer in e.g. Axios to send multipart data. -```javascript -var form = new FormData(); -form.append( 'my_buffer', Buffer.from([0x4a,0x42,0x20,0x52,0x6f,0x63,0x6b,0x73]) ); -form.append( 'my_file', fs.readFileSync('/foo/bar.jpg') ); - -axios.post( 'https://example.com/path/to/api', - form.getBuffer(), - form.getHeaders() - ) -``` -**Note:** Because the output is of type Buffer, you can only append types that are accepted by Buffer: *string, Buffer, ArrayBuffer, Array, or Array-like Object*. A ReadStream for example will result in an error. - -#### _Integer_ getLengthSync() -Same as `getLength` but synchronous. - -_Note: getLengthSync __doesn't__ calculate streams length._ - -#### _Integer_ getLength( **function** _callback_ ) -Returns the `Content-Length` async. The callback is used to handle errors and continue once the length has been calculated -```javascript -this.getLength(function(err, length) { - if (err) { - this._error(err); - return; - } - - // add content length - request.setHeader('Content-Length', length); - - ... -}.bind(this)); -``` - -#### _Boolean_ hasKnownLength() -Checks if the length of added values is known. - -#### _Request_ submit( _params_, **function** _callback_ ) -Submit the form to a web application. -```javascript -var form = new FormData(); -form.append( 'my_string', 'Hello World' ); - -form.submit( 'http://example.com/', function(err, res) { - // res – response object (http.IncomingMessage) // - res.resume(); -} ); -``` - -#### _String_ toString() -Returns the form data as a string. Don't use this if you are sending files or buffers, use `getBuffer()` instead. - -### Integration with other libraries - -#### Request - -Form submission using [request](https://github.com/request/request): - -```javascript -var formData = { - my_field: 'my_value', - my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), -}; - -request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) { - if (err) { - return console.error('upload failed:', err); - } - console.log('Upload successful! Server responded with:', body); -}); -``` - -For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads). - -#### node-fetch - -You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch): - -```javascript -var form = new FormData(); - -form.append('a', 1); - -fetch('http://example.com', { method: 'POST', body: form }) - .then(function(res) { - return res.json(); - }).then(function(json) { - console.log(json); - }); -``` - -#### axios - -In Node.js you can post a file using [axios](https://github.com/axios/axios): -```javascript -const form = new FormData(); -const stream = fs.createReadStream(PATH_TO_FILE); - -form.append('image', stream); - -// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders` -const formHeaders = form.getHeaders(); - -axios.post('http://example.com', form, { - headers: { - ...formHeaders, - }, -}) -.then(response => response) -.catch(error => error) -``` - -## Notes - -- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround. -- ```getLength(cb)``` will send an error as first parameter of callback if stream length cannot be calculated (e.g. send in custom streams w/o using ```knownLength```). -- ```submit``` will not add `content-length` if form length is unknown or not calculable. -- Starting version `2.x` FormData has dropped support for `node@0.10.x`. -- Starting version `3.x` FormData has dropped support for `node@4.x`. - -## License - -Form-Data is released under the [MIT](License) license. diff --git a/build/node_modules/form-data/Readme.md b/build/node_modules/form-data/Readme.md deleted file mode 100644 index 298a1a24..00000000 --- a/build/node_modules/form-data/Readme.md +++ /dev/null @@ -1,358 +0,0 @@ -# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data) - -A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications. - -The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd]. - -[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface - -[![Linux Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=linux:6.x-12.x)](https://travis-ci.org/form-data/form-data) -[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=macos:6.x-12.x)](https://travis-ci.org/form-data/form-data) -[![Windows Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=windows:6.x-12.x)](https://travis-ci.org/form-data/form-data) - -[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v4.0.0.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) -[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data) - -## Install - -``` -npm install --save form-data -``` - -## Usage - -In this example we are constructing a form with 3 fields that contain a string, -a buffer and a file stream. - -``` javascript -var FormData = require('form-data'); -var fs = require('fs'); - -var form = new FormData(); -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_file', fs.createReadStream('/foo/bar.jpg')); -``` - -Also you can use http-response stream: - -``` javascript -var FormData = require('form-data'); -var http = require('http'); - -var form = new FormData(); - -http.request('http://nodejs.org/images/logo.png', function(response) { - form.append('my_field', 'my value'); - form.append('my_buffer', new Buffer(10)); - form.append('my_logo', response); -}); -``` - -Or @mikeal's [request](https://github.com/request/request) stream: - -``` javascript -var FormData = require('form-data'); -var request = require('request'); - -var form = new FormData(); - -form.append('my_field', 'my value'); -form.append('my_buffer', new Buffer(10)); -form.append('my_logo', request('http://nodejs.org/images/logo.png')); -``` - -In order to submit this form to a web application, call ```submit(url, [callback])``` method: - -``` javascript -form.submit('http://example.org/', function(err, res) { - // res – response object (http.IncomingMessage) // - res.resume(); -}); - -``` - -For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods. - -### Custom options - -You can provide custom options, such as `maxDataSize`: - -``` javascript -var FormData = require('form-data'); - -var form = new FormData({ maxDataSize: 20971520 }); -form.append('my_field', 'my value'); -form.append('my_buffer', /* something big */); -``` - -List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15) - -### Alternative submission methods - -You can use node's http client interface: - -``` javascript -var http = require('http'); - -var request = http.request({ - method: 'post', - host: 'example.org', - path: '/upload', - headers: form.getHeaders() -}); - -form.pipe(request); - -request.on('response', function(res) { - console.log(res.statusCode); -}); -``` - -Or if you would prefer the `'Content-Length'` header to be set for you: - -``` javascript -form.submit('example.org/upload', function(err, res) { - console.log(res.statusCode); -}); -``` - -To use custom headers and pre-known length in parts: - -``` javascript -var CRLF = '\r\n'; -var form = new FormData(); - -var options = { - header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF, - knownLength: 1 -}; - -form.append('my_buffer', buffer, options); - -form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); -}); -``` - -Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually: - -``` javascript -someModule.stream(function(err, stdout, stderr) { - if (err) throw err; - - var form = new FormData(); - - form.append('file', stdout, { - filename: 'unicycle.jpg', // ... or: - filepath: 'photos/toys/unicycle.jpg', - contentType: 'image/jpeg', - knownLength: 19806 - }); - - form.submit('http://example.com/', function(err, res) { - if (err) throw err; - console.log('Done'); - }); -}); -``` - -The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory). - -For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter: - -``` javascript -form.submit({ - host: 'example.com', - path: '/probably.php?extra=params', - auth: 'username:password' -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`: - -``` javascript -form.submit({ - host: 'example.com', - path: '/surelynot.php', - headers: {'x-test-header': 'test-header-value'} -}, function(err, res) { - console.log(res.statusCode); -}); -``` - -### Methods - -- [_Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] )](https://github.com/form-data/form-data#void-append-string-field-mixed-value--mixed-options-). -- [_Headers_ getHeaders( [**Headers** _userHeaders_] )](https://github.com/form-data/form-data#array-getheaders-array-userheaders-) -- [_String_ getBoundary()](https://github.com/form-data/form-data#string-getboundary) -- [_Void_ setBoundary()](https://github.com/form-data/form-data#void-setboundary) -- [_Buffer_ getBuffer()](https://github.com/form-data/form-data#buffer-getbuffer) -- [_Integer_ getLengthSync()](https://github.com/form-data/form-data#integer-getlengthsync) -- [_Integer_ getLength( **function** _callback_ )](https://github.com/form-data/form-data#integer-getlength-function-callback-) -- [_Boolean_ hasKnownLength()](https://github.com/form-data/form-data#boolean-hasknownlength) -- [_Request_ submit( _params_, **function** _callback_ )](https://github.com/form-data/form-data#request-submit-params-function-callback-) -- [_String_ toString()](https://github.com/form-data/form-data#string-tostring) - -#### _Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] ) -Append data to the form. You can submit about any format (string, integer, boolean, buffer, etc.). However, Arrays are not supported and need to be turned into strings by the user. -```javascript -var form = new FormData(); -form.append( 'my_string', 'my value' ); -form.append( 'my_integer', 1 ); -form.append( 'my_boolean', true ); -form.append( 'my_buffer', new Buffer(10) ); -form.append( 'my_array_as_json', JSON.stringify( ['bird','cute'] ) ) -``` - -You may provide a string for options, or an object. -```javascript -// Set filename by providing a string for options -form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), 'bar.jpg' ); - -// provide an object. -form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), {filename: 'bar.jpg', contentType: 'image/jpeg', knownLength: 19806} ); -``` - -#### _Headers_ getHeaders( [**Headers** _userHeaders_] ) -This method adds the correct `content-type` header to the provided array of `userHeaders`. - -#### _String_ getBoundary() -Return the boundary of the formData. By default, the boundary consists of 26 `-` followed by 24 numbers -for example: -```javascript ---------------------------515890814546601021194782 -``` - -#### _Void_ setBoundary(String _boundary_) -Set the boundary string, overriding the default behavior described above. - -_Note: The boundary must be unique and may not appear in the data._ - -#### _Buffer_ getBuffer() -Return the full formdata request package, as a Buffer. You can insert this Buffer in e.g. Axios to send multipart data. -```javascript -var form = new FormData(); -form.append( 'my_buffer', Buffer.from([0x4a,0x42,0x20,0x52,0x6f,0x63,0x6b,0x73]) ); -form.append( 'my_file', fs.readFileSync('/foo/bar.jpg') ); - -axios.post( 'https://example.com/path/to/api', - form.getBuffer(), - form.getHeaders() - ) -``` -**Note:** Because the output is of type Buffer, you can only append types that are accepted by Buffer: *string, Buffer, ArrayBuffer, Array, or Array-like Object*. A ReadStream for example will result in an error. - -#### _Integer_ getLengthSync() -Same as `getLength` but synchronous. - -_Note: getLengthSync __doesn't__ calculate streams length._ - -#### _Integer_ getLength( **function** _callback_ ) -Returns the `Content-Length` async. The callback is used to handle errors and continue once the length has been calculated -```javascript -this.getLength(function(err, length) { - if (err) { - this._error(err); - return; - } - - // add content length - request.setHeader('Content-Length', length); - - ... -}.bind(this)); -``` - -#### _Boolean_ hasKnownLength() -Checks if the length of added values is known. - -#### _Request_ submit( _params_, **function** _callback_ ) -Submit the form to a web application. -```javascript -var form = new FormData(); -form.append( 'my_string', 'Hello World' ); - -form.submit( 'http://example.com/', function(err, res) { - // res – response object (http.IncomingMessage) // - res.resume(); -} ); -``` - -#### _String_ toString() -Returns the form data as a string. Don't use this if you are sending files or buffers, use `getBuffer()` instead. - -### Integration with other libraries - -#### Request - -Form submission using [request](https://github.com/request/request): - -```javascript -var formData = { - my_field: 'my_value', - my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), -}; - -request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) { - if (err) { - return console.error('upload failed:', err); - } - console.log('Upload successful! Server responded with:', body); -}); -``` - -For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads). - -#### node-fetch - -You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch): - -```javascript -var form = new FormData(); - -form.append('a', 1); - -fetch('http://example.com', { method: 'POST', body: form }) - .then(function(res) { - return res.json(); - }).then(function(json) { - console.log(json); - }); -``` - -#### axios - -In Node.js you can post a file using [axios](https://github.com/axios/axios): -```javascript -const form = new FormData(); -const stream = fs.createReadStream(PATH_TO_FILE); - -form.append('image', stream); - -// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders` -const formHeaders = form.getHeaders(); - -axios.post('http://example.com', form, { - headers: { - ...formHeaders, - }, -}) -.then(response => response) -.catch(error => error) -``` - -## Notes - -- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround. -- ```getLength(cb)``` will send an error as first parameter of callback if stream length cannot be calculated (e.g. send in custom streams w/o using ```knownLength```). -- ```submit``` will not add `content-length` if form length is unknown or not calculable. -- Starting version `2.x` FormData has dropped support for `node@0.10.x`. -- Starting version `3.x` FormData has dropped support for `node@4.x`. - -## License - -Form-Data is released under the [MIT](License) license. diff --git a/build/node_modules/form-data/index.d.ts b/build/node_modules/form-data/index.d.ts deleted file mode 100644 index 295e9e9b..00000000 --- a/build/node_modules/form-data/index.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -// Definitions by: Carlos Ballesteros Velasco -// Leon Yu -// BendingBender -// Maple Miao - -/// -import * as stream from 'stream'; -import * as http from 'http'; - -export = FormData; - -// Extracted because @types/node doesn't export interfaces. -interface ReadableOptions { - highWaterMark?: number; - encoding?: string; - objectMode?: boolean; - read?(this: stream.Readable, size: number): void; - destroy?(this: stream.Readable, error: Error | null, callback: (error: Error | null) => void): void; - autoDestroy?: boolean; -} - -interface Options extends ReadableOptions { - writable?: boolean; - readable?: boolean; - dataSize?: number; - maxDataSize?: number; - pauseStreams?: boolean; -} - -declare class FormData extends stream.Readable { - constructor(options?: Options); - append(key: string, value: any, options?: FormData.AppendOptions | string): void; - getHeaders(userHeaders?: FormData.Headers): FormData.Headers; - submit( - params: string | FormData.SubmitOptions, - callback?: (error: Error | null, response: http.IncomingMessage) => void - ): http.ClientRequest; - getBuffer(): Buffer; - setBoundary(boundary: string): void; - getBoundary(): string; - getLength(callback: (err: Error | null, length: number) => void): void; - getLengthSync(): number; - hasKnownLength(): boolean; -} - -declare namespace FormData { - interface Headers { - [key: string]: any; - } - - interface AppendOptions { - header?: string | Headers; - knownLength?: number; - filename?: string; - filepath?: string; - contentType?: string; - } - - interface SubmitOptions extends http.RequestOptions { - protocol?: 'https:' | 'http:'; - } -} diff --git a/build/node_modules/form-data/package.json b/build/node_modules/form-data/package.json deleted file mode 100644 index 0f20240b..00000000 --- a/build/node_modules/form-data/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "author": "Felix Geisendörfer (http://debuggable.com/)", - "name": "form-data", - "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", - "version": "4.0.0", - "repository": { - "type": "git", - "url": "git://github.com/form-data/form-data.git" - }, - "main": "./lib/form_data", - "browser": "./lib/browser", - "typings": "./index.d.ts", - "scripts": { - "pretest": "rimraf coverage test/tmp", - "test": "istanbul cover test/run.js", - "posttest": "istanbul report lcov text", - "lint": "eslint lib/*.js test/*.js test/integration/*.js", - "report": "istanbul report lcov text", - "ci-lint": "is-node-modern 8 && npm run lint || is-node-not-modern 8", - "ci-test": "npm run test && npm run browser && npm run report", - "predebug": "rimraf coverage test/tmp", - "debug": "verbose=1 ./test/run.js", - "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage", - "check": "istanbul check-coverage coverage/coverage*.json", - "files": "pkgfiles --sort=name", - "get-version": "node -e \"console.log(require('./package.json').version)\"", - "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md", - "restore-readme": "mv README.md.bak README.md", - "prepublish": "in-publish && npm run update-readme || not-in-publish", - "postpublish": "npm run restore-readme" - }, - "pre-commit": [ - "lint", - "ci-test", - "check" - ], - "engines": { - "node": ">= 6" - }, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "devDependencies": { - "@types/node": "^12.0.10", - "browserify": "^13.1.1", - "browserify-istanbul": "^2.0.0", - "coveralls": "^3.0.4", - "cross-spawn": "^6.0.5", - "eslint": "^6.0.1", - "fake": "^0.2.2", - "far": "^0.0.7", - "formidable": "^1.0.17", - "in-publish": "^2.0.0", - "is-node-modern": "^1.0.0", - "istanbul": "^0.4.5", - "obake": "^0.1.2", - "puppeteer": "^1.19.0", - "pkgfiles": "^2.3.0", - "pre-commit": "^1.1.3", - "request": "^2.88.0", - "rimraf": "^2.7.1", - "tape": "^4.6.2", - "typescript": "^3.5.2" - }, - "license": "MIT" -} diff --git a/build/node_modules/formidable/CHANGELOG.md b/build/node_modules/formidable/CHANGELOG.md deleted file mode 100644 index 37ce67ee..00000000 --- a/build/node_modules/formidable/CHANGELOG.md +++ /dev/null @@ -1,92 +0,0 @@ -# Changelog - -### Unreleased (`canary` & `dev` dist-tags) - - * feat: add options.filter ([#716](https://github.com/node-formidable/formidable/pull/716)) - * feat: add code and httpCode to most errors ([#686](https://github.com/node-formidable/formidable/pull/686)) - * rename: option.hash into option.hashAlgorithm ([#689](https://github.com/node-formidable/formidable/pull/689)) - * rename: file.path into file.filepath ([#689](https://github.com/node-formidable/formidable/pull/689)) - * rename: file.type into file.mimetype ([#689](https://github.com/node-formidable/formidable/pull/689)) - * refactor: split file.name into file.newFilename and file.originalFilename ([#689](https://github.com/node-formidable/formidable/pull/689)) - * feat: prevent directory traversal attacks by default ([#689](https://github.com/node-formidable/formidable/pull/689)) - * meta: stop including test files in npm ([7003c](https://github.com/node-formidable/formidable/commit/7003cd6133f90c384081accb51743688d5e1f4be)) - * fix: handle invalid filenames ([d0a34](https://github.com/node-formidable/formidable/commit/d0a3484b048b8c177e62d66aecb03f5928f7a857)) - * feat: add fileWriteStreamHandler option - * feat: add allowEmptyFiles and minFileSize options - * feat: Array support for fields and files ([#380](https://github.com/node-formidable/node-formidable/pull/380), [#340](https://github.com/node-formidable/node-formidable/pull/340), [#367](https://github.com/node-formidable/node-formidable/pull/367), [#33](https://github.com/node-formidable/node-formidable/issues/33), [#498](https://github.com/node-formidable/node-formidable/issues/498), [#280](https://github.com/node-formidable/node-formidable/issues/280), [#483](https://github.com/node-formidable/node-formidable/issues/483)) - * possible partial fix of [#386](https://github.com/node-formidable/node-formidable/pull/386) with #380 (need tests and better implementation) - * refactor: use hasOwnProperty in check against files/fields ([#522](https://github.com/node-formidable/node-formidable/pull/522)) - * meta: do not promote `IncomingForm` and add `exports.default` ([#529](https://github.com/node-formidable/node-formidable/pull/529)) - * meta: Improve examples and tests ([#523](https://github.com/node-formidable/node-formidable/pull/523)) - * refactor: First step of Code quality improvements ([#525](https://github.com/node-formidable/node-formidable/pull/525)) - * chore(funding): remove patreon & add npm funding field ([#525](https://github.com/node-formidable/node-formidable/pull/532) - * feat: use Modern Streams API ([#531](https://github.com/node-formidable/node-formidable/pull/531)) - * fix: urlencoded parsing to emit end [#543](https://github.com/node-formidable/node-formidable/pull/543), introduced in [#531](https://github.com/node-formidable/node-formidable/pull/531) - * fix(tests): include multipart and qs parser unit tests, part of [#415](https://github.com/node-formidable/node-formidable/issues/415) - * fix: reorganize exports + move parsers to `src/parsers/` - * fix: update docs and examples [#544](https://github.com/node-formidable/node-formidable/pull/544) ([#248](https://github.com/node-formidable/node-formidable/issues/248), [#335](https://github.com/node-formidable/node-formidable/issues/335), [#371](https://github.com/node-formidable/node-formidable/issues/371), [#372](https://github.com/node-formidable/node-formidable/issues/372), [#387](https://github.com/node-formidable/node-formidable/issues/387), partly [#471](https://github.com/node-formidable/node-formidable/issues/471), [#535](https://github.com/node-formidable/node-formidable/issues/535)) - * feat: introduce Plugins API, fix silent failing tests ([#545](https://github.com/node-formidable/node-formidable/pull/545), [#391](https://github.com/node-formidable/node-formidable/pull/391), [#407](https://github.com/node-formidable/node-formidable/pull/407), [#386](https://github.com/node-formidable/node-formidable/pull/386), [#374](https://github.com/node-formidable/node-formidable/pull/374), [#521](https://github.com/node-formidable/node-formidable/pull/521), [#267](https://github.com/node-formidable/node-formidable/pull/267)) - * fix: exposing file writable stream errors ([#520](https://github.com/node-formidable/node-formidable/pull/520), [#316](https://github.com/node-formidable/node-formidable/pull/316), [#469](https://github.com/node-formidable/node-formidable/pull/469), [#470](https://github.com/node-formidable/node-formidable/pull/470)) - * feat: custom file (re)naming, thru options.filename ([#591](https://github.com/node-formidable/node-formidable/pull/591), [#84](https://github.com/node-formidable/node-formidable/issues/84), [#86](https://github.com/node-formidable/node-formidable/issues/86), [#94](https://github.com/node-formidable/node-formidable/issues/94), [#154](https://github.com/node-formidable/node-formidable/issues/154), [#158](https://github.com/node-formidable/node-formidable/issues/158), [#488](https://github.com/node-formidable/node-formidable/issues/488), [#595](https://github.com/node-formidable/node-formidable/issues/595)) - - - -### v1.2.1 (2018-03-20) - - * `maxFileSize` option with default of 200MB (Charlike Mike Reagent, Nima Shahri) - * Simplified buffering in JSON parser to avoid denial of service attack (Kornel) - * Fixed upload file cleanup on aborted requests (liaoweiqiang) - * Fixed error handling of closed _writeStream (Vitalii) - -### v1.1.1 (2017-01-15) - - * Fix DeprecationWarning about os.tmpDir() (Christian) - * Update `buffer.write` order of arguments for Node 7 (Kornel Lesiński) - * JSON Parser emits error events to the IncomingForm (alessio.montagnani) - * Improved Content-Disposition parsing (Sebastien) - * Access WriteStream of fs during runtime instead of include time (Jonas Amundsen) - * Use built-in toString to convert buffer to hex (Charmander) - * Add hash to json if present (Nick Stamas) - * Add license to package.json (Simen Bekkhus) - -### v1.0.14 (2013-05-03) - -* Add failing hash tests. (Ben Trask) -* Enable hash calculation again (Eugene Girshov) -* Test for immediate data events (Tim Smart) -* Re-arrange IncomingForm#parse (Tim Smart) - -### v1.0.13 - -* Only update hash if update method exists (Sven Lito) -* According to travis v0.10 needs to go quoted (Sven Lito) -* Bumping build node versions (Sven Lito) -* Additional fix for empty requests (Eugene Girshov) -* Change the default to 1000, to match the new Node behaviour. (OrangeDog) -* Add ability to control maxKeys in the querystring parser. (OrangeDog) -* Adjust test case to work with node 0.9.x (Eugene Girshov) -* Update package.json (Sven Lito) -* Path adjustment according to eb4468b (Markus Ast) - -### v1.0.12 - -* Emit error on aborted connections (Eugene Girshov) -* Add support for empty requests (Eugene Girshov) -* Fix name/filename handling in Content-Disposition (jesperp) -* Tolerate malformed closing boundary in multipart (Eugene Girshov) -* Ignore preamble in multipart messages (Eugene Girshov) -* Add support for application/json (Mike Frey, Carlos Rodriguez) -* Add support for Base64 encoding (Elmer Bulthuis) -* Add File#toJSON (TJ Holowaychuk) -* Remove support for Node.js 0.4 & 0.6 (Andrew Kelley) -* Documentation improvements (Sven Lito, Andre Azevedo) -* Add support for application/octet-stream (Ion Lupascu, Chris Scribner) -* Use os.tmpdir() to get tmp directory (Andrew Kelley) -* Improve package.json (Andrew Kelley, Sven Lito) -* Fix benchmark script (Andrew Kelley) -* Fix scope issue in incoming_forms (Sven Lito) -* Fix file handle leak on error (OrangeDog) - ---- - -[First commit, #3270eb4b1f8b (May 4th, 2010)](https://github.com/node-formidable/formidable/commit/3270eb4b1f8bb667b8c12f64c36a4e7b854216d8) diff --git a/build/node_modules/formidable/LICENSE b/build/node_modules/formidable/LICENSE deleted file mode 100644 index 5e7ad117..00000000 --- a/build/node_modules/formidable/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-present Felix Geisendörfer, and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/formidable/README.md b/build/node_modules/formidable/README.md deleted file mode 100644 index de675980..00000000 --- a/build/node_modules/formidable/README.md +++ /dev/null @@ -1,826 +0,0 @@ -

- npm formidable package logo -

- -# formidable [![npm version][npmv-img]][npmv-url] [![MIT license][license-img]][license-url] [![Libera Manifesto][libera-manifesto-img]][libera-manifesto-url] [![Twitter][twitter-img]][twitter-url] - -> A Node.js module for parsing form data, especially file uploads. - -[![Code style][codestyle-img]][codestyle-url] -[![codecoverage][codecov-img]][codecov-url] -[![linux build status][linux-build-img]][build-url] -[![windows build status][windows-build-img]][build-url] -[![macos build status][macos-build-img]][build-url] - -If you have any _how-to_ kind of questions, please read the [Contributing -Guide][contributing-url] and [Code of Conduct][code_of_conduct-url] -documents.
For bugs reports and feature requests, [please create an -issue][open-issue-url] or ping [@tunnckoCore / @3a1FcBx0](https://twitter.com/3a1FcBx0) -at Twitter. - -[![Conventional Commits][ccommits-img]][ccommits-url] -[![Minimum Required Nodejs][nodejs-img]][npmv-url] -[![Tidelift Subcsription][tidelift-img]][tidelift-url] -[![Buy me a Kofi][kofi-img]][kofi-url] -[![Renovate App Status][renovateapp-img]][renovateapp-url] -[![Make A Pull Request][prs-welcome-img]][prs-welcome-url] - -This project is [semantically versioned](https://semver.org) and available as -part of the [Tidelift Subscription][tidelift-url] for professional grade -assurances, enhanced support and security. -[Learn more.](https://tidelift.com/subscription/pkg/npm-formidable?utm_source=npm-formidable&utm_medium=referral&utm_campaign=enterprise) - -_The maintainers of `formidable` and thousands of other packages are working -with Tidelift to deliver commercial support and maintenance for the Open Source -dependencies you use to build your applications. Save time, reduce risk, and -improve code health, while paying the maintainers of the exact dependencies you -use._ - -[![][npm-weekly-img]][npmv-url] [![][npm-monthly-img]][npmv-url] -[![][npm-yearly-img]][npmv-url] [![][npm-alltime-img]][npmv-url] - -## Project Status: Maintained - -_Check [VERSION NOTES](https://github.com/node-formidable/formidable/blob/master/VERSION_NOTES.md) for more information on v1, v2, and v3 plans, NPM dist-tags and branches._ - -This module was initially developed by -[**@felixge**](https://github.com/felixge) for -[Transloadit](http://transloadit.com/), a service focused on uploading and -encoding images and videos. It has been battle-tested against hundreds of GBs of -file uploads from a large variety of clients and is considered production-ready -and is used in production for years. - -Currently, we are few maintainers trying to deal with it. :) More contributors -are always welcome! :heart: Jump on -[issue #412](https://github.com/felixge/node-formidable/issues/412) which is -closed, but if you are interested we can discuss it and add you after strict -rules, like enabling Two-Factor Auth in your npm and GitHub accounts. - -## Highlights - -- [Fast (~900-2500 mb/sec)](#benchmarks) & streaming multipart parser -- Automatically writing file uploads to disk (optional, see - [`options.fileWriteStreamHandler`](#options)) -- [Plugins API](#useplugin-plugin) - allowing custom parsers and plugins -- Low memory footprint -- Graceful error handling -- Very high test coverage - -## Install - -This project requires `Node.js >= 10.13`. Install it using -[yarn](https://yarnpkg.com) or [npm](https://npmjs.com).
_We highly -recommend to use Yarn when you think to contribute to this project._ - -This is a low-level package, and if you're using a high-level framework it _may_ -already be included. Check the examples below and the [examples/](https://github.com/node-formidable/formidable/tree/master/examples) folder. - -```sh -# v2 -npm install formidable -npm install formidable@latest -npm install formidable@v2 - -# or v3 -npm install formidable@v3 -``` - -_**Note:** In near future v3 will be published on the `latest` NPM dist-tag. Future not ready releases will continue to be published on `canary` dist-tag._ - - -## Examples - -For more examples look at the `examples/` directory. - -### with Node.js http module - -Parse an incoming file upload, with the -[Node.js's built-in `http` module](https://nodejs.org/api/http.html). - -```js -const http = require('http'); -const formidable = require('formidable'); - -const server = http.createServer((req, res) => { - if (req.url === '/api/upload' && req.method.toLowerCase() === 'post') { - // parse a file upload - const form = formidable({ multiples: true }); - - form.parse(req, (err, fields, files) => { - if (err) { - res.writeHead(err.httpCode || 400, { 'Content-Type': 'text/plain' }); - res.end(String(err)); - return; - } - res.writeHead(200, { 'Content-Type': 'application/json' }); - res.end(JSON.stringify({ fields, files }, null, 2)); - }); - - return; - } - - // show a file upload form - res.writeHead(200, { 'Content-Type': 'text/html' }); - res.end(` -

With Node.js "http" module

-
-
Text field title:
-
File:
- -
- `); -}); - -server.listen(8080, () => { - console.log('Server listening on http://localhost:8080/ ...'); -}); -``` - -### with Express.js - -There are multiple variants to do this, but Formidable just need Node.js Request -stream, so something like the following example should work just fine, without -any third-party [Express.js](https://ghub.now.sh/express) middleware. - -Or try the -[examples/with-express.js](https://github.com/node-formidable/formidable/blob/master/examples/with-express.js) - -```js -const express = require('express'); -const formidable = require('formidable'); - -const app = express(); - -app.get('/', (req, res) => { - res.send(` -

With "express" npm package

-
-
Text field title:
-
File:
- -
- `); -}); - -app.post('/api/upload', (req, res, next) => { - const form = formidable({ multiples: true }); - - form.parse(req, (err, fields, files) => { - if (err) { - next(err); - return; - } - res.json({ fields, files }); - }); -}); - -app.listen(3000, () => { - console.log('Server listening on http://localhost:3000 ...'); -}); -``` - -### with Koa and Formidable - -Of course, with [Koa v1, v2 or future v3](https://ghub.now.sh/koa) the things -are very similar. You can use `formidable` manually as shown below or through -the [koa-better-body](https://ghub.now.sh/koa-better-body) package which is -using `formidable` under the hood and support more features and different -request bodies, check its documentation for more info. - -_Note: this example is assuming Koa v2. Be aware that you should pass `ctx.req` -which is Node.js's Request, and **NOT** the `ctx.request` which is Koa's Request -object - there is a difference._ - -```js -const Koa = require('koa'); -const formidable = require('formidable'); - -const app = new Koa(); - -app.on('error', (err) => { - console.error('server error', err); -}); - -app.use(async (ctx, next) => { - if (ctx.url === '/api/upload' && ctx.method.toLowerCase() === 'post') { - const form = formidable({ multiples: true }); - - // not very elegant, but that's for now if you don't want to use `koa-better-body` - // or other middlewares. - await new Promise((resolve, reject) => { - form.parse(ctx.req, (err, fields, files) => { - if (err) { - reject(err); - return; - } - - ctx.set('Content-Type', 'application/json'); - ctx.status = 200; - ctx.state = { fields, files }; - ctx.body = JSON.stringify(ctx.state, null, 2); - resolve(); - }); - }); - await next(); - return; - } - - // show a file upload form - ctx.set('Content-Type', 'text/html'); - ctx.status = 200; - ctx.body = ` -

With "koa" npm package

-
-
Text field title:
-
File:
- -
- `; -}); - -app.use((ctx) => { - console.log('The next middleware is called'); - console.log('Results:', ctx.state); -}); - -app.listen(3000, () => { - console.log('Server listening on http://localhost:3000 ...'); -}); -``` - -## Benchmarks - -The benchmark is quite old, from the old codebase. But maybe quite true though. -Previously the numbers was around ~500 mb/sec. Currently with moving to the new -Node.js Streams API it's faster. You can clearly see the differences between the -Node versions. - -_Note: a lot better benchmarking could and should be done in future._ - -Benchmarked on 8GB RAM, Xeon X3440 (2.53 GHz, 4 cores, 8 threads) - -``` -~/github/node-formidable master -❯ nve --parallel 8 10 12 13 node benchmark/bench-multipart-parser.js - - ⬢ Node 8 - -1261.08 mb/sec - - ⬢ Node 10 - -1113.04 mb/sec - - ⬢ Node 12 - -2107.00 mb/sec - - ⬢ Node 13 - -2566.42 mb/sec -``` - -![benchmark January 29th, 2020](./benchmark/2020-01-29_xeon-x3440.png) - -## API - -### Formidable / IncomingForm - -All shown are equivalent. - -_Please pass [`options`](#options) to the function/constructor, not by assigning -them to the instance `form`_ - -```js -const formidable = require('formidable'); -const form = formidable(options); - -// or -const { formidable } = require('formidable'); -const form = formidable(options); - -// or -const { IncomingForm } = require('formidable'); -const form = new IncomingForm(options); - -// or -const { Formidable } = require('formidable'); -const form = new Formidable(options); -``` - -### Options - -See it's defaults in [src/Formidable.js DEFAULT_OPTIONS](./src/Formidable.js) -(the `DEFAULT_OPTIONS` constant). - -- `options.encoding` **{string}** - default `'utf-8'`; sets encoding for - incoming form fields, -- `options.uploadDir` **{string}** - default `os.tmpdir()`; the directory for - placing file uploads in. You can move them later by using `fs.rename()`. -- `options.keepExtensions` **{boolean}** - default `false`; to include the - extensions of the original files or not -- `options.allowEmptyFiles` **{boolean}** - default `true`; allow upload empty - files -- `options.minFileSize` **{number}** - default `1` (1byte); the minium size of - uploaded file. -- `options.maxFileSize` **{number}** - default `200 * 1024 * 1024` (200mb); - limit the size of uploaded file. -- `options.maxFields` **{number}** - default `1000`; limit the number of fields, set 0 for unlimited -- `options.maxFieldsSize` **{number}** - default `20 * 1024 * 1024` (20mb); - limit the amount of memory all fields together (except files) can allocate in - bytes. -- `options.hashAlgorithm` **{string | false}** - default `false`; include checksums calculated - for incoming files, set this to some hash algorithm, see - [crypto.createHash](https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm_options) - for available algorithms -- `options.fileWriteStreamHandler` **{function}** - default `null`, which by - default writes to host machine file system every file parsed; The function - should return an instance of a - [Writable stream](https://nodejs.org/api/stream.html#stream_class_stream_writable) - that will receive the uploaded file data. With this option, you can have any - custom behavior regarding where the uploaded file data will be streamed for. - If you are looking to write the file uploaded in other types of cloud storages - (AWS S3, Azure blob storage, Google cloud storage) or private file storage, - this is the option you're looking for. When this option is defined the default - behavior of writing the file in the host machine file system is lost. -- `options.multiples` **{boolean}** - default `false`; when you call the - `.parse` method, the `files` argument (of the callback) will contain arrays of - files for inputs which submit multiple files using the HTML5 `multiple` - attribute. Also, the `fields` argument will contain arrays of values for - fields that have names ending with '[]'. -- `options.filename` **{function}** - default `undefined` Use it to control - newFilename. Must return a string. Will be joined with options.uploadDir. - -- `options.filter` **{function}** - default function that always returns true. - Use it to filter files before they are uploaded. Must return a boolean. - - -#### `options.filename` **{function}** function (name, ext, part, form) -> string - -_**Note:** If this size of combined fields, or size of some file is exceeded, an -`'error'` event is fired._ - -```js -// The amount of bytes received for this form so far. -form.bytesReceived; -``` - -```js -// The expected number of bytes in this form. -form.bytesExpected; -``` - -#### `options.filter` **{function}** function ({name, originalFilename, mimetype}) -> boolean - -**Note:** use an outside variable to cancel all uploads upon the first error - -```js -const options = { - filter: function ({name, originalFilename, mimetype}) { - // keep only images - return mimetype && mimetype.includes("image"); - } -}; -``` - - -### .parse(request, callback) - -Parses an incoming Node.js `request` containing form data. If `callback` is -provided, all fields and files are collected and passed to the callback. - -```js -const formidable = require('formidable'); - -const form = formidable({ multiples: true, uploadDir: __dirname }); - -form.parse(req, (err, fields, files) => { - console.log('fields:', fields); - console.log('files:', files); -}); -``` - -You may overwrite this method if you are interested in directly accessing the -multipart stream. Doing so will disable any `'field'` / `'file'` events -processing which would occur otherwise, making you fully responsible for -handling the processing. - -About `uploadDir`, given the following directory structure -``` -project-name -├── src -│ └── server.js -│ -└── uploads - └── image.jpg -``` - -`__dirname` would be the same directory as the source file itself (src) - - -```js - `${__dirname}/../uploads` -``` - -to put files in uploads. - -Omitting `__dirname` would make the path relative to the current working directory. This would be the same if server.js is launched from src but not project-name. - - -`null` will use default which is `os.tmpdir()` - -Note: If the directory does not exist, the uploaded files are __silently discarded__. To make sure it exists: - -```js -import {createNecessaryDirectoriesSync} from "filesac"; - - -const uploadPath = `${__dirname}/../uploads`; -createNecessaryDirectoriesSync(`${uploadPath}/x`); -``` - - -In the example below, we listen on couple of events and direct them to the -`data` listener, so you can do whatever you choose there, based on whether its -before the file been emitted, the header value, the header name, on field, on -file and etc. - -Or the other way could be to just override the `form.onPart` as it's shown a bit -later. - -```js -form.once('error', console.error); - -form.on('fileBegin', (formname, file) => { - form.emit('data', { name: 'fileBegin', formname, value: file }); -}); - -form.on('file', (formname, file) => { - form.emit('data', { name: 'file', formname, value: file }); -}); - -form.on('field', (fieldName, fieldValue) => { - form.emit('data', { name: 'field', key: fieldName, value: fieldValue }); -}); - -form.once('end', () => { - console.log('Done!'); -}); - -// If you want to customize whatever you want... -form.on('data', ({ name, key, value, buffer, start, end, formname, ...more }) => { - if (name === 'partBegin') { - } - if (name === 'partData') { - } - if (name === 'headerField') { - } - if (name === 'headerValue') { - } - if (name === 'headerEnd') { - } - if (name === 'headersEnd') { - } - if (name === 'field') { - console.log('field name:', key); - console.log('field value:', value); - } - if (name === 'file') { - console.log('file:', formname, value); - } - if (name === 'fileBegin') { - console.log('fileBegin:', formname, value); - } -}); -``` - -### .use(plugin: Plugin) - -A method that allows you to extend the Formidable library. By default we include -4 plugins, which esentially are adapters to plug the different built-in parsers. - -**The plugins added by this method are always enabled.** - -_See [src/plugins/](./src/plugins/) for more detailed look on default plugins._ - -The `plugin` param has such signature: - -```typescript -function(formidable: Formidable, options: Options): void; -``` - -The architecture is simple. The `plugin` is a function that is passed with the -Formidable instance (the `form` across the README examples) and the options. - -**Note:** the plugin function's `this` context is also the same instance. - -```js -const formidable = require('formidable'); - -const form = formidable({ keepExtensions: true }); - -form.use((self, options) => { - // self === this === form - console.log('woohoo, custom plugin'); - // do your stuff; check `src/plugins` for inspiration -}); - -form.parse(req, (error, fields, files) => { - console.log('done!'); -}); -``` - -**Important to note**, is that inside plugin `this.options`, `self.options` and -`options` MAY or MAY NOT be the same. General best practice is to always use the -`this`, so you can later test your plugin independently and more easily. - -If you want to disable some parsing capabilities of Formidable, you can disable -the plugin which corresponds to the parser. For example, if you want to disable -multipart parsing (so the [src/parsers/Multipart.js](./src/parsers/Multipart.js) -which is used in [src/plugins/multipart.js](./src/plugins/multipart.js)), then -you can remove it from the `options.enabledPlugins`, like so - -```js -const { Formidable } = require('formidable'); - -const form = new Formidable({ - hashAlgorithm: 'sha1', - enabledPlugins: ['octetstream', 'querystring', 'json'], -}); -``` - -**Be aware** that the order _MAY_ be important too. The names corresponds 1:1 to -files in [src/plugins/](./src/plugins) folder. - -Pull requests for new built-in plugins MAY be accepted - for example, more -advanced querystring parser. Add your plugin as a new file in `src/plugins/` -folder (lowercased) and follow how the other plugins are made. - -### form.onPart - -If you want to use Formidable to only handle certain parts for you, you can do -something similar. Or see -[#387](https://github.com/node-formidable/node-formidable/issues/387) for -inspiration, you can for example validate the mime-type. - -```js -const form = formidable(); - -form.onPart = (part) => { - part.on('data', (buffer) => { - // do whatever you want here - }); -}; -``` - -For example, force Formidable to be used only on non-file "parts" (i.e., html -fields) - -```js -const form = formidable(); - -form.onPart = function (part) { - // let formidable handle only non-file parts - if (part.originalFilename === '' || !part.mimetype) { - // used internally, please do not override! - form._handlePart(part); - } -}; -``` - -### File - -```ts -export interface File { - // The size of the uploaded file in bytes. - // If the file is still being uploaded (see `'fileBegin'` event), - // this property says how many bytes of the file have been written to disk yet. - file.size: number; - - // The path this file is being written to. You can modify this in the `'fileBegin'` event in - // case you are unhappy with the way formidable generates a temporary path for your files. - file.filepath: string; - - // The name this file had according to the uploading client. - file.originalFilename: string | null; - - // calculated based on options provided - file.newFilename: string | null; - - // The mime type of this file, according to the uploading client. - file.mimetype: string | null; - - // A Date object (or `null`) containing the time this file was last written to. - // Mostly here for compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/). - file.mtime: Date | null; - - file.hashAlgorithm: false | |'sha1' | 'md5' | 'sha256' - // If `options.hashAlgorithm` calculation was set, you can read the hex digest out of this var (at the end it will be a string) - file.hash: string | object | null; -} -``` - -#### file.toJSON() - -This method returns a JSON-representation of the file, allowing you to -`JSON.stringify()` the file which is useful for logging and responding to -requests. - -### Events - -#### `'progress'` - -Emitted after each incoming chunk of data that has been parsed. Can be used to -roll your own progress bar. - -```js -form.on('progress', (bytesReceived, bytesExpected) => {}); -``` - -#### `'field'` - -Emitted whenever a field / value pair has been received. - -```js -form.on('field', (name, value) => {}); -``` - -#### `'fileBegin'` - -Emitted whenever a new file is detected in the upload stream. Use this event if -you want to stream the file to somewhere else while buffering the upload on the -file system. - -```js -form.on('fileBegin', (formName, file) => { - // accessible here - // formName the name in the form () or http filename for octetstream - // file.originalFilename http filename or null if there was a parsing error - // file.newFilename generated hexoid or what options.filename returned - // file.filepath default pathnme as per options.uploadDir and options.filename - // file.filepath = CUSTOM_PATH // to change the final path -}); -``` - -#### `'file'` - -Emitted whenever a field / file pair has been received. `file` is an instance of -`File`. - -```js -form.on('file', (formname, file) => { - // same as fileBegin, except - // it is too late to change file.filepath - // file.hash is available if options.hash was used -}); -``` - -#### `'error'` - -Emitted when there is an error processing the incoming form. A request that -experiences an error is automatically paused, you will have to manually call -`request.resume()` if you want the request to continue firing `'data'` events. - -May have `error.httpCode` and `error.code` attached. - -```js -form.on('error', (err) => {}); -``` - -#### `'aborted'` - -Emitted when the request was aborted by the user. Right now this can be due to a -'timeout' or 'close' event on the socket. After this event is emitted, an -`error` event will follow. In the future there will be a separate 'timeout' -event (needs a change in the node core). - -```js -form.on('aborted', () => {}); -``` - -#### `'end'` - -Emitted when the entire request has been received, and all contained files have -finished flushing to disk. This is a great place for you to send your response. - -```js -form.on('end', () => {}); -``` - -## Changelog - -[./CHANGELOG.md](./CHANGELOG.md) - -## Ports & Credits - -- [multipart-parser](http://github.com/FooBarWidget/multipart-parser): a C++ - parser based on formidable -- [Ryan Dahl](http://twitter.com/ryah) for his work on - [http-parser](http://github.com/ry/http-parser) which heavily inspired the - initial `multipart_parser.js`. - -## Contributing - -If the documentation is unclear or has a typo, please click on the page's `Edit` -button (pencil icon) and suggest a correction. If you would like to help us fix -a bug or add a new feature, please check our [Contributing -Guide][contributing-url]. Pull requests are welcome! - -Thanks goes to these wonderful people -([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Felix Geisendörfer

💻 🎨 🤔 📖

Charlike Mike Reagent

🐛 🚇 🎨 💻 📖 💡 🤔 🚧 ⚠️

Kedar

💻 ⚠️ 💬 🐛

Walle Cyril

💬 🐛 💻 💵 🤔 🚧

Xargs

💬 🐛 💻 🚧

Amit-A

💬 🐛 💻

Charmander

💬 🐛 💻 🤔 🚧

Dylan Piercey

🤔

Adam Dobrawy

🐛 📖

amitrohatgi

🤔

Jesse Feng

🐛

Nathanael Demacon

💬 💻 👀

MunMunMiao

🐛

Gabriel Petrovay

🐛 💻

Philip Woods

💻 🤔

Dmitry Ivonin

📖

Claudio Poli

💻
- - - - - - -From a [Felix blog post](https://felixge.de/2013/03/11/the-pull-request-hack/): - -- [Sven Lito](https://github.com/svnlto) for fixing bugs and merging patches -- [egirshov](https://github.com/egirshov) for contributing many improvements to the node-formidable multipart parser -- [Andrew Kelley](https://github.com/superjoe30) for also helping with fixing bugs and making improvements -- [Mike Frey](https://github.com/mikefrey) for contributing JSON support - -## License - -Formidable is licensed under the [MIT License][license-url]. - - - - -[codestyle-url]: https://github.com/airbnb/javascript -[codestyle-img]: https://badgen.net/badge/code%20style/airbnb%20%2B%20prettier/ff5a5f?icon=airbnb&cache=300 -[codecov-url]: https://codecov.io/gh/node-formidable/formidable -[codecov-img]: https://badgen.net/codecov/c/github/node-formidable/formidable/master?icon=codecov -[npmv-canary-img]: https://badgen.net/npm/v/formidable/canary?icon=npm -[npmv-dev-img]: https://badgen.net/npm/v/formidable/dev?icon=npm -[npmv-img]: https://badgen.net/npm/v/formidable?icon=npm -[npmv-url]: https://npmjs.com/package/formidable -[license-img]: https://badgen.net/npm/license/formidable -[license-url]: https://github.com/node-formidable/formidable/blob/master/LICENSE -[chat-img]: https://badgen.net/badge/chat/on%20gitter/46BC99?icon=gitter -[chat-url]: https://gitter.im/node-formidable/Lobby -[libera-manifesto-url]: https://liberamanifesto.com -[libera-manifesto-img]: https://badgen.net/badge/libera/manifesto/grey -[renovateapp-url]: https://renovatebot.com -[renovateapp-img]: https://badgen.net/badge/renovate/enabled/green?cache=300 -[prs-welcome-img]: https://badgen.net/badge/PRs/welcome/green?cache=300 -[prs-welcome-url]: http://makeapullrequest.com -[twitter-url]: https://twitter.com/3a1fcBx0 -[twitter-img]: https://badgen.net/twitter/follow/3a1fcBx0?icon=twitter&color=1da1f2&cache=300 - -[npm-weekly-img]: https://badgen.net/npm/dw/formidable?icon=npm&cache=300 -[npm-monthly-img]: https://badgen.net/npm/dm/formidable?icon=npm&cache=300 -[npm-yearly-img]: https://badgen.net/npm/dy/formidable?icon=npm&cache=300 -[npm-alltime-img]: https://badgen.net/npm/dt/formidable?icon=npm&cache=300&label=total%20downloads - -[nodejs-img]: https://badgen.net/badge/node/>=%2010.13/green?cache=300 - -[ccommits-url]: https://conventionalcommits.org/ -[ccommits-img]: https://badgen.net/badge/conventional%20commits/v1.0.0/green?cache=300 - -[contributing-url]: https://github.com/node-formidable/.github/blob/master/CONTRIBUTING.md -[code_of_conduct-url]: https://github.com/node-formidable/.github/blob/master/CODE_OF_CONDUCT.md - -[open-issue-url]: https://github.com/node-formidable/formidable/issues/new - -[tidelift-url]: https://tidelift.com/subscription/pkg/npm-formidable?utm_source=npm-formidable&utm_medium=referral&utm_campaign=enterprise -[tidelift-img]: https://badgen.net/badge/tidelift/subscription/4B5168?labelColor=F6914D - -[kofi-url]: https://ko-fi.com/tunnckoCore/commissions -[kofi-img]: https://badgen.net/badge/ko-fi/support/29abe0c2?cache=300&icon=https://rawcdn.githack.com/tunnckoCore/badgen-icons/f8264c6414e0bec449dd86f2241d50a9b89a1203/icons/kofi.svg - -[linux-build-img]: https://badgen.net/github/checks/node-formidable/formidable/master/ubuntu?cache=300&label=linux%20build&icon=github -[macos-build-img]: https://badgen.net/github/checks/node-formidable/formidable/master/macos?cache=300&label=macos%20build&icon=github -[windows-build-img]: https://badgen.net/github/checks/node-formidable/formidable/master/windows?cache=300&label=windows%20build&icon=github -[build-url]: https://github.com/node-formidable/formidable/actions?query=workflow%3Anodejs - diff --git a/build/node_modules/formidable/package.json b/build/node_modules/formidable/package.json deleted file mode 100644 index adbe60ae..00000000 --- a/build/node_modules/formidable/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "name": "formidable", - "version": "2.1.2", - "license": "MIT", - "description": "A node.js module for parsing form data, especially file uploads.", - "homepage": "https://github.com/node-formidable/formidable", - "funding": "https://ko-fi.com/tunnckoCore/commissions", - "repository": "node-formidable/formidable", - "main": "./src/index.js", - "files": [ - "src" - ], - "publishConfig": { - "access": "public", - "tag": "v2-latest" - }, - "scripts": { - "bench": "node benchmark", - "fmt": "yarn run fmt:prepare '**/*'", - "fmt:prepare": "prettier --write", - "lint": "yarn run lint:prepare .", - "lint:prepare": "eslint --cache --fix --quiet --format codeframe", - "reinstall": "del-cli ./node_modules ./yarn.lock", - "postreinstall": "yarn setup", - "setup": "yarn", - "pretest": "del-cli ./test/tmp && make-dir ./test/tmp", - "test": "jest --coverage", - "pretest:ci": "yarn run pretest", - "test:ci": "nyc jest --coverage", - "test:jest": "jest --coverage" - }, - "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" - }, - "devDependencies": { - "@commitlint/cli": "8.3.5", - "@commitlint/config-conventional": "8.3.4", - "@tunnckocore/prettier-config": "1.3.8", - "del-cli": "3.0.0", - "eslint": "6.8.0", - "eslint-config-airbnb-base": "14.1.0", - "eslint-config-prettier": "6.11.0", - "eslint-plugin-import": "2.20.2", - "eslint-plugin-prettier": "3.1.3", - "express": "4.17.1", - "husky": "4.2.5", - "jest": "25.4.0", - "koa": "2.11.0", - "lint-staged": "10.2.7", - "make-dir-cli": "2.0.0", - "nyc": "15.0.1", - "prettier": "2.0.5", - "prettier-plugin-pkgjson": "0.2.8", - "request": "2.88.2", - "supertest": "4.0.2" - }, - "jest": { - "verbose": true - }, - "keywords": [ - "multipart", - "form", - "data", - "querystring", - "www", - "json", - "ulpoad", - "file" - ], - "husky": { - "hooks": { - "pre-commit": "git status --porcelain && yarn lint-staged", - "commit-msg": "yarn commitlint -E HUSKY_GIT_PARAMS" - } - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "lint-staged": { - "!*.{js,jsx,ts,tsx}": [ - "yarn run fmt:prepare" - ], - "*.{js,jsx,ts,tsx}": [ - "yarn run lint" - ] - }, - "renovate": { - "extends": [ - "@tunnckocore", - ":pinAllExceptPeerDependencies" - ] - } -} diff --git a/build/node_modules/forwarded/HISTORY.md b/build/node_modules/forwarded/HISTORY.md deleted file mode 100644 index 381e6aad..00000000 --- a/build/node_modules/forwarded/HISTORY.md +++ /dev/null @@ -1,21 +0,0 @@ -0.2.0 / 2021-05-31 -================== - - * Use `req.socket` over deprecated `req.connection` - -0.1.2 / 2017-09-14 -================== - - * perf: improve header parsing - * perf: reduce overhead when no `X-Forwarded-For` header - -0.1.1 / 2017-09-10 -================== - - * Fix trimming leading / trailing OWS - * perf: hoist regular expression - -0.1.0 / 2014-09-21 -================== - - * Initial release diff --git a/build/node_modules/forwarded/LICENSE b/build/node_modules/forwarded/LICENSE deleted file mode 100644 index 84441fbb..00000000 --- a/build/node_modules/forwarded/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/forwarded/README.md b/build/node_modules/forwarded/README.md deleted file mode 100644 index fdd220bc..00000000 --- a/build/node_modules/forwarded/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# forwarded - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][ci-image]][ci-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Parse HTTP X-Forwarded-For header - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```sh -$ npm install forwarded -``` - -## API - -```js -var forwarded = require('forwarded') -``` - -### forwarded(req) - -```js -var addresses = forwarded(req) -``` - -Parse the `X-Forwarded-For` header from the request. Returns an array -of the addresses, including the socket address for the `req`, in reverse -order (i.e. index `0` is the socket address and the last index is the -furthest address, typically the end-user). - -## Testing - -```sh -$ npm test -``` - -## License - -[MIT](LICENSE) - -[ci-image]: https://badgen.net/github/checks/jshttp/forwarded/master?label=ci -[ci-url]: https://github.com/jshttp/forwarded/actions?query=workflow%3Aci -[npm-image]: https://img.shields.io/npm/v/forwarded.svg -[npm-url]: https://npmjs.org/package/forwarded -[node-version-image]: https://img.shields.io/node/v/forwarded.svg -[node-version-url]: https://nodejs.org/en/download/ -[coveralls-image]: https://img.shields.io/coveralls/jshttp/forwarded/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/forwarded?branch=master -[downloads-image]: https://img.shields.io/npm/dm/forwarded.svg -[downloads-url]: https://npmjs.org/package/forwarded diff --git a/build/node_modules/forwarded/index.js b/build/node_modules/forwarded/index.js deleted file mode 100644 index b2b6bdd3..00000000 --- a/build/node_modules/forwarded/index.js +++ /dev/null @@ -1,90 +0,0 @@ -/*! - * forwarded - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = forwarded - -/** - * Get all addresses in the request, using the `X-Forwarded-For` header. - * - * @param {object} req - * @return {array} - * @public - */ - -function forwarded (req) { - if (!req) { - throw new TypeError('argument req is required') - } - - // simple header parsing - var proxyAddrs = parse(req.headers['x-forwarded-for'] || '') - var socketAddr = getSocketAddr(req) - var addrs = [socketAddr].concat(proxyAddrs) - - // return all addresses - return addrs -} - -/** - * Get the socket address for a request. - * - * @param {object} req - * @return {string} - * @private - */ - -function getSocketAddr (req) { - return req.socket - ? req.socket.remoteAddress - : req.connection.remoteAddress -} - -/** - * Parse the X-Forwarded-For header. - * - * @param {string} header - * @private - */ - -function parse (header) { - var end = header.length - var list = [] - var start = header.length - - // gather addresses, backwards - for (var i = header.length - 1; i >= 0; i--) { - switch (header.charCodeAt(i)) { - case 0x20: /* */ - if (start === end) { - start = end = i - } - break - case 0x2c: /* , */ - if (start !== end) { - list.push(header.substring(start, end)) - } - start = end = i - break - default: - start = i - break - } - } - - // final address - if (start !== end) { - list.push(header.substring(start, end)) - } - - return list -} diff --git a/build/node_modules/forwarded/package.json b/build/node_modules/forwarded/package.json deleted file mode 100644 index bf9c7d65..00000000 --- a/build/node_modules/forwarded/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "forwarded", - "description": "Parse HTTP X-Forwarded-For header", - "version": "0.2.0", - "contributors": [ - "Douglas Christopher Wilson " - ], - "license": "MIT", - "keywords": [ - "x-forwarded-for", - "http", - "req" - ], - "repository": "jshttp/forwarded", - "devDependencies": { - "beautify-benchmark": "0.2.4", - "benchmark": "2.1.4", - "deep-equal": "1.0.1", - "eslint": "7.27.0", - "eslint-config-standard": "14.1.1", - "eslint-plugin-import": "2.23.4", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-promise": "4.3.1", - "eslint-plugin-standard": "4.1.0", - "mocha": "8.4.0", - "nyc": "15.1.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "nyc --reporter=lcov --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test", - "version": "node scripts/version-history.js && git add HISTORY.md" - } -} diff --git a/build/node_modules/fragment-cache/LICENSE b/build/node_modules/fragment-cache/LICENSE deleted file mode 100644 index b11cb796..00000000 --- a/build/node_modules/fragment-cache/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016-2017, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/fragment-cache/README.md b/build/node_modules/fragment-cache/README.md deleted file mode 100644 index 541ef0fb..00000000 --- a/build/node_modules/fragment-cache/README.md +++ /dev/null @@ -1,156 +0,0 @@ -# fragment-cache [![NPM version](https://img.shields.io/npm/v/fragment-cache.svg?style=flat)](https://www.npmjs.com/package/fragment-cache) [![NPM downloads](https://img.shields.io/npm/dm/fragment-cache.svg?style=flat)](https://npmjs.org/package/fragment-cache) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fragment-cache.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fragment-cache) - -> A cache for managing namespaced sub-caches - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save fragment-cache -``` - -## Usage - -```js -var Fragment = require('fragment-cache'); -var fragment = new Fragment(); -``` - -## API - -### [FragmentCache](index.js#L24) - -Create a new `FragmentCache` with an optional object to use for `caches`. - -**Example** - -```js -var fragment = new FragmentCache(); -``` - -**Params** - -* `cacheName` **{String}** -* `returns` **{Object}**: Returns the [map-cache](https://github.com/jonschlinkert/map-cache) instance. - -### [.cache](index.js#L49) - -Get cache `name` from the `fragment.caches` object. Creates a new `MapCache` if it doesn't already exist. - -**Example** - -```js -var cache = fragment.cache('files'); -console.log(fragment.caches.hasOwnProperty('files')); -//=> true -``` - -**Params** - -* `cacheName` **{String}** -* `returns` **{Object}**: Returns the [map-cache](https://github.com/jonschlinkert/map-cache) instance. - -### [.set](index.js#L67) - -Set a value for property `key` on cache `name` - -**Example** - -```js -fragment.set('files', 'somefile.js', new File({path: 'somefile.js'})); -``` - -**Params** - -* `name` **{String}** -* `key` **{String}**: Property name to set -* `val` **{any}**: The value of `key` -* `returns` **{Object}**: The cache instance for chaining - -### [.has](index.js#L93) - -Returns true if a non-undefined value is set for `key` on fragment cache `name`. - -**Example** - -```js -var cache = fragment.cache('files'); -cache.set('somefile.js'); - -console.log(cache.has('somefile.js')); -//=> true - -console.log(cache.has('some-other-file.js')); -//=> false -``` - -**Params** - -* `name` **{String}**: Cache name -* `key` **{String}**: Optionally specify a property to check for on cache `name` -* `returns` **{Boolean}** - -### [.get](index.js#L115) - -Get `name`, or if specified, the value of `key`. Invokes the [cache](#cache) method, so that cache `name` will be created it doesn't already exist. If `key` is not passed, the entire cache (`name`) is returned. - -**Example** - -```js -var Vinyl = require('vinyl'); -var cache = fragment.cache('files'); -cache.set('somefile.js', new Vinyl({path: 'somefile.js'})); -console.log(cache.get('somefile.js')); -//=> -``` - -**Params** - -* `name` **{String}** -* `returns` **{Object}**: Returns cache `name`, or the value of `key` if specified - -## About - -### Related projects - -* [base](https://www.npmjs.com/package/base): base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/node-base/base) | [homepage](https://github.com/node-base/base "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.") -* [map-cache](https://www.npmjs.com/package/map-cache): Basic cache object for storing key-value pairs. | [homepage](https://github.com/jonschlinkert/map-cache "Basic cache object for storing key-value pairs.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ - -To generate the readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm install -g verb verb-generate-readme && verb -``` - -### Running tests - -Install dev dependencies: - -```sh -$ npm install -d && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -### License - -Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT license](https://github.com/jonschlinkert/fragment-cache/blob/master/LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 17, 2016._ \ No newline at end of file diff --git a/build/node_modules/fragment-cache/index.js b/build/node_modules/fragment-cache/index.js deleted file mode 100644 index 8ce62168..00000000 --- a/build/node_modules/fragment-cache/index.js +++ /dev/null @@ -1,128 +0,0 @@ -/*! - * fragment-cache - * - * Copyright (c) 2016-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -var MapCache = require('map-cache'); - -/** - * Create a new `FragmentCache` with an optional object to use for `caches`. - * - * ```js - * var fragment = new FragmentCache(); - * ``` - * @name FragmentCache - * @param {String} `cacheName` - * @return {Object} Returns the [map-cache][] instance. - * @api public - */ - -function FragmentCache(caches) { - this.caches = caches || {}; -} - -/** - * Prototype - */ - -FragmentCache.prototype = { - - /** - * Get cache `name` from the `fragment.caches` object. Creates a new - * `MapCache` if it doesn't already exist. - * - * ```js - * var cache = fragment.cache('files'); - * console.log(fragment.caches.hasOwnProperty('files')); - * //=> true - * ``` - * @name .cache - * @param {String} `cacheName` - * @return {Object} Returns the [map-cache][] instance. - * @api public - */ - - cache: function(cacheName) { - return this.caches[cacheName] || (this.caches[cacheName] = new MapCache()); - }, - - /** - * Set a value for property `key` on cache `name` - * - * ```js - * fragment.set('files', 'somefile.js', new File({path: 'somefile.js'})); - * ``` - * @name .set - * @param {String} `name` - * @param {String} `key` Property name to set - * @param {any} `val` The value of `key` - * @return {Object} The cache instance for chaining - * @api public - */ - - set: function(cacheName, key, val) { - var cache = this.cache(cacheName); - cache.set(key, val); - return cache; - }, - - /** - * Returns true if a non-undefined value is set for `key` on fragment cache `name`. - * - * ```js - * var cache = fragment.cache('files'); - * cache.set('somefile.js'); - * - * console.log(cache.has('somefile.js')); - * //=> true - * - * console.log(cache.has('some-other-file.js')); - * //=> false - * ``` - * @name .has - * @param {String} `name` Cache name - * @param {String} `key` Optionally specify a property to check for on cache `name` - * @return {Boolean} - * @api public - */ - - has: function(cacheName, key) { - return typeof this.get(cacheName, key) !== 'undefined'; - }, - - /** - * Get `name`, or if specified, the value of `key`. Invokes the [cache]() method, - * so that cache `name` will be created it doesn't already exist. If `key` is not passed, - * the entire cache (`name`) is returned. - * - * ```js - * var Vinyl = require('vinyl'); - * var cache = fragment.cache('files'); - * cache.set('somefile.js', new Vinyl({path: 'somefile.js'})); - * console.log(cache.get('somefile.js')); - * //=> - * ``` - * @name .get - * @param {String} `name` - * @return {Object} Returns cache `name`, or the value of `key` if specified - * @api public - */ - - get: function(name, key) { - var cache = this.cache(name); - if (typeof key === 'string') { - return cache.get(key); - } - return cache; - } -}; - -/** - * Expose `FragmentCache` - */ - -exports = module.exports = FragmentCache; diff --git a/build/node_modules/fragment-cache/package.json b/build/node_modules/fragment-cache/package.json deleted file mode 100644 index f87c5dad..00000000 --- a/build/node_modules/fragment-cache/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "fragment-cache", - "description": "A cache for managing namespaced sub-caches", - "version": "0.2.1", - "homepage": "https://github.com/jonschlinkert/fragment-cache", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/fragment-cache", - "bugs": { - "url": "https://github.com/jonschlinkert/fragment-cache/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "map-cache": "^0.2.2" - }, - "devDependencies": { - "gulp": "^3.9.1", - "gulp-eslint": "^3.0.1", - "gulp-format-md": "^0.1.11", - "gulp-istanbul": "^1.1.1", - "gulp-mocha": "^3.0.1", - "mocha": "^3.2.0" - }, - "keywords": [ - "cache", - "fragment" - ], - "verb": { - "plugins": [ - "gulp-format-md" - ], - "reflinks": [ - "map-cache", - "verb" - ], - "related": { - "list": [ - "base", - "map-cache" - ] - }, - "layout": "default", - "toc": false, - "tasks": [ - "readme" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/fresh/HISTORY.md b/build/node_modules/fresh/HISTORY.md deleted file mode 100644 index 4586996a..00000000 --- a/build/node_modules/fresh/HISTORY.md +++ /dev/null @@ -1,70 +0,0 @@ -0.5.2 / 2017-09-13 -================== - - * Fix regression matching multiple ETags in `If-None-Match` - * perf: improve `If-None-Match` token parsing - -0.5.1 / 2017-09-11 -================== - - * Fix handling of modified headers with invalid dates - * perf: improve ETag match loop - -0.5.0 / 2017-02-21 -================== - - * Fix incorrect result when `If-None-Match` has both `*` and ETags - * Fix weak `ETag` matching to match spec - * perf: delay reading header values until needed - * perf: skip checking modified time if ETag check failed - * perf: skip parsing `If-None-Match` when no `ETag` header - * perf: use `Date.parse` instead of `new Date` - -0.4.0 / 2017-02-05 -================== - - * Fix false detection of `no-cache` request directive - * perf: enable strict mode - * perf: hoist regular expressions - * perf: remove duplicate conditional - * perf: remove unnecessary boolean coercions - -0.3.0 / 2015-05-12 -================== - - * Add weak `ETag` matching support - -0.2.4 / 2014-09-07 -================== - - * Support Node.js 0.6 - -0.2.3 / 2014-09-07 -================== - - * Move repository to jshttp - -0.2.2 / 2014-02-19 -================== - - * Revert "Fix for blank page on Safari reload" - -0.2.1 / 2014-01-29 -================== - - * Fix for blank page on Safari reload - -0.2.0 / 2013-08-11 -================== - - * Return stale for `Cache-Control: no-cache` - -0.1.0 / 2012-06-15 -================== - - * Add `If-None-Match: *` support - -0.0.1 / 2012-06-10 -================== - - * Initial release diff --git a/build/node_modules/fresh/LICENSE b/build/node_modules/fresh/LICENSE deleted file mode 100644 index 1434ade7..00000000 --- a/build/node_modules/fresh/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012 TJ Holowaychuk -Copyright (c) 2016-2017 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/fresh/README.md b/build/node_modules/fresh/README.md deleted file mode 100644 index 1c1c680d..00000000 --- a/build/node_modules/fresh/README.md +++ /dev/null @@ -1,119 +0,0 @@ -# fresh - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -HTTP response freshness testing - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -``` -$ npm install fresh -``` - -## API - - - -```js -var fresh = require('fresh') -``` - -### fresh(reqHeaders, resHeaders) - -Check freshness of the response using request and response headers. - -When the response is still "fresh" in the client's cache `true` is -returned, otherwise `false` is returned to indicate that the client -cache is now stale and the full response should be sent. - -When a client sends the `Cache-Control: no-cache` request header to -indicate an end-to-end reload request, this module will return `false` -to make handling these requests transparent. - -## Known Issues - -This module is designed to only follow the HTTP specifications, not -to work-around all kinda of client bugs (especially since this module -typically does not recieve enough information to understand what the -client actually is). - -There is a known issue that in certain versions of Safari, Safari -will incorrectly make a request that allows this module to validate -freshness of the resource even when Safari does not have a -representation of the resource in the cache. The module -[jumanji](https://www.npmjs.com/package/jumanji) can be used in -an Express application to work-around this issue and also provides -links to further reading on this Safari bug. - -## Example - -### API usage - - - -```js -var reqHeaders = { 'if-none-match': '"foo"' } -var resHeaders = { 'etag': '"bar"' } -fresh(reqHeaders, resHeaders) -// => false - -var reqHeaders = { 'if-none-match': '"foo"' } -var resHeaders = { 'etag': '"foo"' } -fresh(reqHeaders, resHeaders) -// => true -``` - -### Using with Node.js http server - -```js -var fresh = require('fresh') -var http = require('http') - -var server = http.createServer(function (req, res) { - // perform server logic - // ... including adding ETag / Last-Modified response headers - - if (isFresh(req, res)) { - // client has a fresh copy of resource - res.statusCode = 304 - res.end() - return - } - - // send the resource - res.statusCode = 200 - res.end('hello, world!') -}) - -function isFresh (req, res) { - return fresh(req.headers, { - 'etag': res.getHeader('ETag'), - 'last-modified': res.getHeader('Last-Modified') - }) -} - -server.listen(3000) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/fresh.svg -[npm-url]: https://npmjs.org/package/fresh -[node-version-image]: https://img.shields.io/node/v/fresh.svg -[node-version-url]: https://nodejs.org/en/ -[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg -[travis-url]: https://travis-ci.org/jshttp/fresh -[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master -[downloads-image]: https://img.shields.io/npm/dm/fresh.svg -[downloads-url]: https://npmjs.org/package/fresh diff --git a/build/node_modules/fresh/index.js b/build/node_modules/fresh/index.js deleted file mode 100644 index d154f5a7..00000000 --- a/build/node_modules/fresh/index.js +++ /dev/null @@ -1,137 +0,0 @@ -/*! - * fresh - * Copyright(c) 2012 TJ Holowaychuk - * Copyright(c) 2016-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * RegExp to check for no-cache token in Cache-Control. - * @private - */ - -var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/ - -/** - * Module exports. - * @public - */ - -module.exports = fresh - -/** - * Check freshness of the response using request and response headers. - * - * @param {Object} reqHeaders - * @param {Object} resHeaders - * @return {Boolean} - * @public - */ - -function fresh (reqHeaders, resHeaders) { - // fields - var modifiedSince = reqHeaders['if-modified-since'] - var noneMatch = reqHeaders['if-none-match'] - - // unconditional request - if (!modifiedSince && !noneMatch) { - return false - } - - // Always return stale when Cache-Control: no-cache - // to support end-to-end reload requests - // https://tools.ietf.org/html/rfc2616#section-14.9.4 - var cacheControl = reqHeaders['cache-control'] - if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { - return false - } - - // if-none-match - if (noneMatch && noneMatch !== '*') { - var etag = resHeaders['etag'] - - if (!etag) { - return false - } - - var etagStale = true - var matches = parseTokenList(noneMatch) - for (var i = 0; i < matches.length; i++) { - var match = matches[i] - if (match === etag || match === 'W/' + etag || 'W/' + match === etag) { - etagStale = false - break - } - } - - if (etagStale) { - return false - } - } - - // if-modified-since - if (modifiedSince) { - var lastModified = resHeaders['last-modified'] - var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)) - - if (modifiedStale) { - return false - } - } - - return true -} - -/** - * Parse an HTTP Date into a number. - * - * @param {string} date - * @private - */ - -function parseHttpDate (date) { - var timestamp = date && Date.parse(date) - - // istanbul ignore next: guard against date.js Date.parse patching - return typeof timestamp === 'number' - ? timestamp - : NaN -} - -/** - * Parse a HTTP token list. - * - * @param {string} str - * @private - */ - -function parseTokenList (str) { - var end = 0 - var list = [] - var start = 0 - - // gather tokens - for (var i = 0, len = str.length; i < len; i++) { - switch (str.charCodeAt(i)) { - case 0x20: /* */ - if (start === end) { - start = end = i + 1 - } - break - case 0x2c: /* , */ - list.push(str.substring(start, end)) - start = end = i + 1 - break - default: - end = i + 1 - break - } - } - - // final token - list.push(str.substring(start, end)) - - return list -} diff --git a/build/node_modules/fresh/package.json b/build/node_modules/fresh/package.json deleted file mode 100644 index c2fa0f48..00000000 --- a/build/node_modules/fresh/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "fresh", - "description": "HTTP response freshness testing", - "version": "0.5.2", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "keywords": [ - "fresh", - "http", - "conditional", - "cache" - ], - "repository": "jshttp/fresh", - "devDependencies": { - "beautify-benchmark": "0.2.4", - "benchmark": "2.1.4", - "eslint": "3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-markdown": "1.0.0-beta.6", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "istanbul": "0.4.5", - "mocha": "1.21.5" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/build/node_modules/fs-extra/LICENSE b/build/node_modules/fs-extra/LICENSE deleted file mode 100644 index 93546dfb..00000000 --- a/build/node_modules/fs-extra/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -(The MIT License) - -Copyright (c) 2011-2017 JP Richardson - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files -(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, - merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS -OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/fs-extra/README.md b/build/node_modules/fs-extra/README.md deleted file mode 100644 index 6ed8b6ae..00000000 --- a/build/node_modules/fs-extra/README.md +++ /dev/null @@ -1,262 +0,0 @@ -Node.js: fs-extra -================= - -`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It also uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to prevent `EMFILE` errors. It should be a drop in replacement for `fs`. - -[![npm Package](https://img.shields.io/npm/v/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) -[![License](https://img.shields.io/npm/l/fs-extra.svg)](https://github.com/jprichardson/node-fs-extra/blob/master/LICENSE) -[![build status](https://img.shields.io/github/workflow/status/jprichardson/node-fs-extra/Node.js%20CI/master)](https://github.com/jprichardson/node-fs-extra/actions/workflows/ci.yml?query=branch%3Amaster) -[![downloads per month](http://img.shields.io/npm/dm/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) -[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) - -Why? ----- - -I got tired of including `mkdirp`, `rimraf`, and `ncp` in most of my projects. - - - - -Installation ------------- - - npm install fs-extra - - - -Usage ------ - -`fs-extra` is a drop in replacement for native `fs`. All methods in `fs` are attached to `fs-extra`. All `fs` methods return promises if the callback isn't passed. - -You don't ever need to include the original `fs` module again: - -```js -const fs = require('fs') // this is no longer necessary -``` - -you can now do this: - -```js -const fs = require('fs-extra') -``` - -or if you prefer to make it clear that you're using `fs-extra` and not `fs`, you may want -to name your `fs` variable `fse` like so: - -```js -const fse = require('fs-extra') -``` - -you can also keep both, but it's redundant: - -```js -const fs = require('fs') -const fse = require('fs-extra') -``` - -Sync vs Async vs Async/Await -------------- -Most methods are async by default. All async methods will return a promise if the callback isn't passed. - -Sync methods on the other hand will throw if an error occurs. - -Also Async/Await will throw an error if one occurs. - -Example: - -```js -const fs = require('fs-extra') - -// Async with promises: -fs.copy('/tmp/myfile', '/tmp/mynewfile') - .then(() => console.log('success!')) - .catch(err => console.error(err)) - -// Async with callbacks: -fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { - if (err) return console.error(err) - console.log('success!') -}) - -// Sync: -try { - fs.copySync('/tmp/myfile', '/tmp/mynewfile') - console.log('success!') -} catch (err) { - console.error(err) -} - -// Async/Await: -async function copyFiles () { - try { - await fs.copy('/tmp/myfile', '/tmp/mynewfile') - console.log('success!') - } catch (err) { - console.error(err) - } -} - -copyFiles() -``` - - -Methods -------- - -### Async - -- [copy](docs/copy.md) -- [emptyDir](docs/emptyDir.md) -- [ensureFile](docs/ensureFile.md) -- [ensureDir](docs/ensureDir.md) -- [ensureLink](docs/ensureLink.md) -- [ensureSymlink](docs/ensureSymlink.md) -- [mkdirp](docs/ensureDir.md) -- [mkdirs](docs/ensureDir.md) -- [move](docs/move.md) -- [outputFile](docs/outputFile.md) -- [outputJson](docs/outputJson.md) -- [pathExists](docs/pathExists.md) -- [readJson](docs/readJson.md) -- [remove](docs/remove.md) -- [writeJson](docs/writeJson.md) - -### Sync - -- [copySync](docs/copy-sync.md) -- [emptyDirSync](docs/emptyDir-sync.md) -- [ensureFileSync](docs/ensureFile-sync.md) -- [ensureDirSync](docs/ensureDir-sync.md) -- [ensureLinkSync](docs/ensureLink-sync.md) -- [ensureSymlinkSync](docs/ensureSymlink-sync.md) -- [mkdirpSync](docs/ensureDir-sync.md) -- [mkdirsSync](docs/ensureDir-sync.md) -- [moveSync](docs/move-sync.md) -- [outputFileSync](docs/outputFile-sync.md) -- [outputJsonSync](docs/outputJson-sync.md) -- [pathExistsSync](docs/pathExists-sync.md) -- [readJsonSync](docs/readJson-sync.md) -- [removeSync](docs/remove-sync.md) -- [writeJsonSync](docs/writeJson-sync.md) - - -**NOTE:** You can still use the native Node.js methods. They are promisified and copied over to `fs-extra`. See [notes on `fs.read()`, `fs.write()`, & `fs.writev()`](docs/fs-read-write-writev.md) - -### What happened to `walk()` and `walkSync()`? - -They were removed from `fs-extra` in v2.0.0. If you need the functionality, `walk` and `walkSync` are available as separate packages, [`klaw`](https://github.com/jprichardson/node-klaw) and [`klaw-sync`](https://github.com/manidlou/node-klaw-sync). - - -Third Party ------------ - -### CLI - -[fse-cli](https://www.npmjs.com/package/@atao60/fse-cli) allows you to run `fs-extra` from a console or from [npm](https://www.npmjs.com) scripts. - -### TypeScript - -If you like TypeScript, you can use `fs-extra` with it: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fs-extra - - -### File / Directory Watching - -If you want to watch for changes to files or directories, then you should use [chokidar](https://github.com/paulmillr/chokidar). - -### Obtain Filesystem (Devices, Partitions) Information - -[fs-filesystem](https://github.com/arthurintelligence/node-fs-filesystem) allows you to read the state of the filesystem of the host on which it is run. It returns information about both the devices and the partitions (volumes) of the system. - -### Misc. - -- [fs-extra-debug](https://github.com/jdxcode/fs-extra-debug) - Send your fs-extra calls to [debug](https://npmjs.org/package/debug). -- [mfs](https://github.com/cadorn/mfs) - Monitor your fs-extra calls. - - - -Hacking on fs-extra -------------------- - -Wanna hack on `fs-extra`? Great! Your help is needed! [fs-extra is one of the most depended upon Node.js packages](http://nodei.co/npm/fs-extra.png?downloads=true&downloadRank=true&stars=true). This project -uses [JavaScript Standard Style](https://github.com/feross/standard) - if the name or style choices bother you, -you're gonna have to get over it :) If `standard` is good enough for `npm`, it's good enough for `fs-extra`. - -[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) - -What's needed? -- First, take a look at existing issues. Those are probably going to be where the priority lies. -- More tests for edge cases. Specifically on different platforms. There can never be enough tests. -- Improve test coverage. - -Note: If you make any big changes, **you should definitely file an issue for discussion first.** - -### Running the Test Suite - -fs-extra contains hundreds of tests. - -- `npm run lint`: runs the linter ([standard](http://standardjs.com/)) -- `npm run unit`: runs the unit tests -- `npm test`: runs both the linter and the tests - - -### Windows - -If you run the tests on the Windows and receive a lot of symbolic link `EPERM` permission errors, it's -because on Windows you need elevated privilege to create symbolic links. You can add this to your Windows's -account by following the instructions here: http://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7 -However, I didn't have much luck doing this. - -Since I develop on Mac OS X, I use VMWare Fusion for Windows testing. I create a shared folder that I map to a drive on Windows. -I open the `Node.js command prompt` and run as `Administrator`. I then map the network drive running the following command: - - net use z: "\\vmware-host\Shared Folders" - -I can then navigate to my `fs-extra` directory and run the tests. - - -Naming ------- - -I put a lot of thought into the naming of these functions. Inspired by @coolaj86's request. So he deserves much of the credit for raising the issue. See discussion(s) here: - -* https://github.com/jprichardson/node-fs-extra/issues/2 -* https://github.com/flatiron/utile/issues/11 -* https://github.com/ryanmcgrath/wrench-js/issues/29 -* https://github.com/substack/node-mkdirp/issues/17 - -First, I believe that in as many cases as possible, the [Node.js naming schemes](http://nodejs.org/api/fs.html) should be chosen. However, there are problems with the Node.js own naming schemes. - -For example, `fs.readFile()` and `fs.readdir()`: the **F** is capitalized in *File* and the **d** is not capitalized in *dir*. Perhaps a bit pedantic, but they should still be consistent. Also, Node.js has chosen a lot of POSIX naming schemes, which I believe is great. See: `fs.mkdir()`, `fs.rmdir()`, `fs.chown()`, etc. - -We have a dilemma though. How do you consistently name methods that perform the following POSIX commands: `cp`, `cp -r`, `mkdir -p`, and `rm -rf`? - -My perspective: when in doubt, err on the side of simplicity. A directory is just a hierarchical grouping of directories and files. Consider that for a moment. So when you want to copy it or remove it, in most cases you'll want to copy or remove all of its contents. When you want to create a directory, if the directory that it's suppose to be contained in does not exist, then in most cases you'll want to create that too. - -So, if you want to remove a file or a directory regardless of whether it has contents, just call `fs.remove(path)`. If you want to copy a file or a directory whether it has contents, just call `fs.copy(source, destination)`. If you want to create a directory regardless of whether its parent directories exist, just call `fs.mkdirs(path)` or `fs.mkdirp(path)`. - - -Credit ------- - -`fs-extra` wouldn't be possible without using the modules from the following authors: - -- [Isaac Shlueter](https://github.com/isaacs) -- [Charlie McConnel](https://github.com/avianflu) -- [James Halliday](https://github.com/substack) -- [Andrew Kelley](https://github.com/andrewrk) - - - - -License -------- - -Licensed under MIT - -Copyright (c) 2011-2017 [JP Richardson](https://github.com/jprichardson) - -[1]: http://nodejs.org/docs/latest/api/fs.html - - -[jsonfile]: https://github.com/jprichardson/node-jsonfile diff --git a/build/node_modules/fs-extra/package.json b/build/node_modules/fs-extra/package.json deleted file mode 100644 index 059000e6..00000000 --- a/build/node_modules/fs-extra/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "fs-extra", - "version": "10.1.0", - "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.", - "engines": { - "node": ">=12" - }, - "homepage": "https://github.com/jprichardson/node-fs-extra", - "repository": { - "type": "git", - "url": "https://github.com/jprichardson/node-fs-extra" - }, - "keywords": [ - "fs", - "file", - "file system", - "copy", - "directory", - "extra", - "mkdirp", - "mkdir", - "mkdirs", - "recursive", - "json", - "read", - "write", - "extra", - "delete", - "remove", - "touch", - "create", - "text", - "output", - "move", - "promise" - ], - "author": "JP Richardson ", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "devDependencies": { - "at-least-node": "^1.0.0", - "klaw": "^2.1.1", - "klaw-sync": "^3.0.2", - "minimist": "^1.1.1", - "mocha": "^5.0.5", - "nyc": "^15.0.0", - "proxyquire": "^2.0.1", - "read-dir-files": "^0.1.1", - "standard": "^16.0.3" - }, - "main": "./lib/index.js", - "files": [ - "lib/", - "!lib/**/__tests__/" - ], - "scripts": { - "lint": "standard", - "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha", - "test": "npm run lint && npm run unit", - "unit": "nyc node test.js" - }, - "sideEffects": false -} diff --git a/build/node_modules/fs-minipass/LICENSE b/build/node_modules/fs-minipass/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/build/node_modules/fs-minipass/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/fs-minipass/README.md b/build/node_modules/fs-minipass/README.md deleted file mode 100644 index 1e61241c..00000000 --- a/build/node_modules/fs-minipass/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# fs-minipass - -Filesystem streams based on [minipass](http://npm.im/minipass). - -4 classes are exported: - -- ReadStream -- ReadStreamSync -- WriteStream -- WriteStreamSync - -When using `ReadStreamSync`, all of the data is made available -immediately upon consuming the stream. Nothing is buffered in memory -when the stream is constructed. If the stream is piped to a writer, -then it will synchronously `read()` and emit data into the writer as -fast as the writer can consume it. (That is, it will respect -backpressure.) If you call `stream.read()` then it will read the -entire file and return the contents. - -When using `WriteStreamSync`, every write is flushed to the file -synchronously. If your writes all come in a single tick, then it'll -write it all out in a single tick. It's as synchronous as you are. - -The async versions work much like their node builtin counterparts, -with the exception of introducing significantly less Stream machinery -overhead. - -## USAGE - -It's just streams, you pipe them or read() them or write() to them. - -```js -const fsm = require('fs-minipass') -const readStream = new fsm.ReadStream('file.txt') -const writeStream = new fsm.WriteStream('output.txt') -writeStream.write('some file header or whatever\n') -readStream.pipe(writeStream) -``` - -## ReadStream(path, options) - -Path string is required, but somewhat irrelevant if an open file -descriptor is passed in as an option. - -Options: - -- `fd` Pass in a numeric file descriptor, if the file is already open. -- `readSize` The size of reads to do, defaults to 16MB -- `size` The size of the file, if known. Prevents zero-byte read() - call at the end. -- `autoClose` Set to `false` to prevent the file descriptor from being - closed when the file is done being read. - -## WriteStream(path, options) - -Path string is required, but somewhat irrelevant if an open file -descriptor is passed in as an option. - -Options: - -- `fd` Pass in a numeric file descriptor, if the file is already open. -- `mode` The mode to create the file with. Defaults to `0o666`. -- `start` The position in the file to start reading. If not - specified, then the file will start writing at position zero, and be - truncated by default. -- `autoClose` Set to `false` to prevent the file descriptor from being - closed when the stream is ended. -- `flags` Flags to use when opening the file. Irrelevant if `fd` is - passed in, since file won't be opened in that case. Defaults to - `'a'` if a `pos` is specified, or `'w'` otherwise. diff --git a/build/node_modules/fs-minipass/index.js b/build/node_modules/fs-minipass/index.js deleted file mode 100644 index 9b0779c8..00000000 --- a/build/node_modules/fs-minipass/index.js +++ /dev/null @@ -1,422 +0,0 @@ -'use strict' -const MiniPass = require('minipass') -const EE = require('events').EventEmitter -const fs = require('fs') - -let writev = fs.writev -/* istanbul ignore next */ -if (!writev) { - // This entire block can be removed if support for earlier than Node.js - // 12.9.0 is not needed. - const binding = process.binding('fs') - const FSReqWrap = binding.FSReqWrap || binding.FSReqCallback - - writev = (fd, iovec, pos, cb) => { - const done = (er, bw) => cb(er, bw, iovec) - const req = new FSReqWrap() - req.oncomplete = done - binding.writeBuffers(fd, iovec, pos, req) - } -} - -const _autoClose = Symbol('_autoClose') -const _close = Symbol('_close') -const _ended = Symbol('_ended') -const _fd = Symbol('_fd') -const _finished = Symbol('_finished') -const _flags = Symbol('_flags') -const _flush = Symbol('_flush') -const _handleChunk = Symbol('_handleChunk') -const _makeBuf = Symbol('_makeBuf') -const _mode = Symbol('_mode') -const _needDrain = Symbol('_needDrain') -const _onerror = Symbol('_onerror') -const _onopen = Symbol('_onopen') -const _onread = Symbol('_onread') -const _onwrite = Symbol('_onwrite') -const _open = Symbol('_open') -const _path = Symbol('_path') -const _pos = Symbol('_pos') -const _queue = Symbol('_queue') -const _read = Symbol('_read') -const _readSize = Symbol('_readSize') -const _reading = Symbol('_reading') -const _remain = Symbol('_remain') -const _size = Symbol('_size') -const _write = Symbol('_write') -const _writing = Symbol('_writing') -const _defaultFlag = Symbol('_defaultFlag') -const _errored = Symbol('_errored') - -class ReadStream extends MiniPass { - constructor (path, opt) { - opt = opt || {} - super(opt) - - this.readable = true - this.writable = false - - if (typeof path !== 'string') - throw new TypeError('path must be a string') - - this[_errored] = false - this[_fd] = typeof opt.fd === 'number' ? opt.fd : null - this[_path] = path - this[_readSize] = opt.readSize || 16*1024*1024 - this[_reading] = false - this[_size] = typeof opt.size === 'number' ? opt.size : Infinity - this[_remain] = this[_size] - this[_autoClose] = typeof opt.autoClose === 'boolean' ? - opt.autoClose : true - - if (typeof this[_fd] === 'number') - this[_read]() - else - this[_open]() - } - - get fd () { return this[_fd] } - get path () { return this[_path] } - - write () { - throw new TypeError('this is a readable stream') - } - - end () { - throw new TypeError('this is a readable stream') - } - - [_open] () { - fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd)) - } - - [_onopen] (er, fd) { - if (er) - this[_onerror](er) - else { - this[_fd] = fd - this.emit('open', fd) - this[_read]() - } - } - - [_makeBuf] () { - return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain])) - } - - [_read] () { - if (!this[_reading]) { - this[_reading] = true - const buf = this[_makeBuf]() - /* istanbul ignore if */ - if (buf.length === 0) - return process.nextTick(() => this[_onread](null, 0, buf)) - fs.read(this[_fd], buf, 0, buf.length, null, (er, br, buf) => - this[_onread](er, br, buf)) - } - } - - [_onread] (er, br, buf) { - this[_reading] = false - if (er) - this[_onerror](er) - else if (this[_handleChunk](br, buf)) - this[_read]() - } - - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) - } - } - - [_onerror] (er) { - this[_reading] = true - this[_close]() - this.emit('error', er) - } - - [_handleChunk] (br, buf) { - let ret = false - // no effect if infinite - this[_remain] -= br - if (br > 0) - ret = super.write(br < buf.length ? buf.slice(0, br) : buf) - - if (br === 0 || this[_remain] <= 0) { - ret = false - this[_close]() - super.end() - } - - return ret - } - - emit (ev, data) { - switch (ev) { - case 'prefinish': - case 'finish': - break - - case 'drain': - if (typeof this[_fd] === 'number') - this[_read]() - break - - case 'error': - if (this[_errored]) - return - this[_errored] = true - return super.emit(ev, data) - - default: - return super.emit(ev, data) - } - } -} - -class ReadStreamSync extends ReadStream { - [_open] () { - let threw = true - try { - this[_onopen](null, fs.openSync(this[_path], 'r')) - threw = false - } finally { - if (threw) - this[_close]() - } - } - - [_read] () { - let threw = true - try { - if (!this[_reading]) { - this[_reading] = true - do { - const buf = this[_makeBuf]() - /* istanbul ignore next */ - const br = buf.length === 0 ? 0 - : fs.readSync(this[_fd], buf, 0, buf.length, null) - if (!this[_handleChunk](br, buf)) - break - } while (true) - this[_reading] = false - } - threw = false - } finally { - if (threw) - this[_close]() - } - } - - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.closeSync(fd) - this.emit('close') - } - } -} - -class WriteStream extends EE { - constructor (path, opt) { - opt = opt || {} - super(opt) - this.readable = false - this.writable = true - this[_errored] = false - this[_writing] = false - this[_ended] = false - this[_needDrain] = false - this[_queue] = [] - this[_path] = path - this[_fd] = typeof opt.fd === 'number' ? opt.fd : null - this[_mode] = opt.mode === undefined ? 0o666 : opt.mode - this[_pos] = typeof opt.start === 'number' ? opt.start : null - this[_autoClose] = typeof opt.autoClose === 'boolean' ? - opt.autoClose : true - - // truncating makes no sense when writing into the middle - const defaultFlag = this[_pos] !== null ? 'r+' : 'w' - this[_defaultFlag] = opt.flags === undefined - this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags - - if (this[_fd] === null) - this[_open]() - } - - emit (ev, data) { - if (ev === 'error') { - if (this[_errored]) - return - this[_errored] = true - } - return super.emit(ev, data) - } - - - get fd () { return this[_fd] } - get path () { return this[_path] } - - [_onerror] (er) { - this[_close]() - this[_writing] = true - this.emit('error', er) - } - - [_open] () { - fs.open(this[_path], this[_flags], this[_mode], - (er, fd) => this[_onopen](er, fd)) - } - - [_onopen] (er, fd) { - if (this[_defaultFlag] && - this[_flags] === 'r+' && - er && er.code === 'ENOENT') { - this[_flags] = 'w' - this[_open]() - } else if (er) - this[_onerror](er) - else { - this[_fd] = fd - this.emit('open', fd) - this[_flush]() - } - } - - end (buf, enc) { - if (buf) - this.write(buf, enc) - - this[_ended] = true - - // synthetic after-write logic, where drain/finish live - if (!this[_writing] && !this[_queue].length && - typeof this[_fd] === 'number') - this[_onwrite](null, 0) - return this - } - - write (buf, enc) { - if (typeof buf === 'string') - buf = Buffer.from(buf, enc) - - if (this[_ended]) { - this.emit('error', new Error('write() after end()')) - return false - } - - if (this[_fd] === null || this[_writing] || this[_queue].length) { - this[_queue].push(buf) - this[_needDrain] = true - return false - } - - this[_writing] = true - this[_write](buf) - return true - } - - [_write] (buf) { - fs.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) => - this[_onwrite](er, bw)) - } - - [_onwrite] (er, bw) { - if (er) - this[_onerror](er) - else { - if (this[_pos] !== null) - this[_pos] += bw - if (this[_queue].length) - this[_flush]() - else { - this[_writing] = false - - if (this[_ended] && !this[_finished]) { - this[_finished] = true - this[_close]() - this.emit('finish') - } else if (this[_needDrain]) { - this[_needDrain] = false - this.emit('drain') - } - } - } - } - - [_flush] () { - if (this[_queue].length === 0) { - if (this[_ended]) - this[_onwrite](null, 0) - } else if (this[_queue].length === 1) - this[_write](this[_queue].pop()) - else { - const iovec = this[_queue] - this[_queue] = [] - writev(this[_fd], iovec, this[_pos], - (er, bw) => this[_onwrite](er, bw)) - } - } - - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) - } - } -} - -class WriteStreamSync extends WriteStream { - [_open] () { - let fd - // only wrap in a try{} block if we know we'll retry, to avoid - // the rethrow obscuring the error's source frame in most cases. - if (this[_defaultFlag] && this[_flags] === 'r+') { - try { - fd = fs.openSync(this[_path], this[_flags], this[_mode]) - } catch (er) { - if (er.code === 'ENOENT') { - this[_flags] = 'w' - return this[_open]() - } else - throw er - } - } else - fd = fs.openSync(this[_path], this[_flags], this[_mode]) - - this[_onopen](null, fd) - } - - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.closeSync(fd) - this.emit('close') - } - } - - [_write] (buf) { - // throw the original, but try to close if it fails - let threw = true - try { - this[_onwrite](null, - fs.writeSync(this[_fd], buf, 0, buf.length, this[_pos])) - threw = false - } finally { - if (threw) - try { this[_close]() } catch (_) {} - } - } -} - -exports.ReadStream = ReadStream -exports.ReadStreamSync = ReadStreamSync - -exports.WriteStream = WriteStream -exports.WriteStreamSync = WriteStreamSync diff --git a/build/node_modules/fs-minipass/package.json b/build/node_modules/fs-minipass/package.json deleted file mode 100644 index 2f2436cb..00000000 --- a/build/node_modules/fs-minipass/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "fs-minipass", - "version": "2.1.0", - "main": "index.js", - "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" - }, - "keywords": [], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/fs-minipass.git" - }, - "bugs": { - "url": "https://github.com/npm/fs-minipass/issues" - }, - "homepage": "https://github.com/npm/fs-minipass#readme", - "description": "fs read and write streams based on minipass", - "dependencies": { - "minipass": "^3.0.0" - }, - "devDependencies": { - "mutate-fs": "^2.0.1", - "tap": "^14.6.4" - }, - "files": [ - "index.js" - ], - "tap": { - "check-coverage": true - }, - "engines": { - "node": ">= 8" - } -} diff --git a/build/node_modules/fs-monkey/LICENSE b/build/node_modules/fs-monkey/LICENSE deleted file mode 100644 index fdddb29a..00000000 --- a/build/node_modules/fs-monkey/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to diff --git a/build/node_modules/fs-monkey/README.md b/build/node_modules/fs-monkey/README.md deleted file mode 100644 index 5b5f7a68..00000000 --- a/build/node_modules/fs-monkey/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# fs-monkey - -[![][npm-img]][npm-url] [![][travis-badge]][travis-url] - -Monkey-patches for filesystem related things. - - - Rewrite `require` function to load Node's modules from memory. - - Or rewrite the whole `fs` filesystem module. - -## Install - -```shell -npm install --save fs-monkey -``` - -## Terms - -An *fs-like* object is an object that implements methods of Node's -[filesystem API](https://nodejs.org/api/fs.html). -It is denoted as `vol`: - -```js -let vol = { - readFile: () => { /* ... */ }, - readFileSync: () => { /* ... */ }, - // etc... -} -``` - - -## Reference - - - [`patchFs`](./docs/api/patchFs.md) - rewrites Node's filesystem module `fs` with *fs-like* object `vol` - - [`patchRequire`](./docs/api/patchRequire.md) - rewrites `require` function, patches Node's `module` module to use a given *fs-like* object for module loading - - -[npm-img]: https://img.shields.io/npm/v/fs-monkey.svg -[npm-url]: https://www.npmjs.com/package/fs-monkey -[travis-url]: https://travis-ci.org/streamich/fs-monkey -[travis-badge]: https://travis-ci.org/streamich/fs-monkey.svg?branch=master - - -## License - -[Unlicense](./LICENSE) - public domain. diff --git a/build/node_modules/fs-monkey/package.json b/build/node_modules/fs-monkey/package.json deleted file mode 100644 index 9acba872..00000000 --- a/build/node_modules/fs-monkey/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "fs-monkey", - "version": "1.0.5", - "description": "Monkey patches for file system related things.", - "main": "lib/index.js", - "license": "Unlicense", - "keywords": [ - "fs", - "file", - "file system", - "monkey", - "fsmonkey", - "monkeyfs", - "monkeypatch", - "patch" - ], - "files": [ - "lib", - "!lib/__tests__", - "docs" - ], - "directories": { - "doc": "docs" - }, - "repository": { - "type": "git", - "url": "https://github.com/streamich/fs-monkey.git" - }, - "scripts": { - "build": "babel src --out-dir lib", - "test": "jest" - }, - "dependencies": {}, - "devDependencies": { - "@babel/cli": "^7.18.6", - "@babel/core": "^7.18.6", - "@babel/preset-env": "^7.18.6", - "@semantic-release/changelog": "^6.0.1", - "@semantic-release/git": "^10.0.1", - "@semantic-release/npm": "^9.0.1", - "@types/jest": "^29.0.0", - "@types/node": "^8.10.66", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "semantic-release": "^19.0.3", - "source-map-support": "^0.5.21" - }, - "release": { - "verifyConditions": [ - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/git" - ], - "prepare": [ - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/git" - ] - }, - "jest": { - "collectCoverageFrom": [ - "src/**/*.js" - ], - "transform": { - "^.+\\.jsx?$": "babel-jest" - }, - "testRegex": ".*(__tests__/|/test/unit/).*(test|spec)\\.(t|j)sx?$" - } -} diff --git a/build/node_modules/fs-readdir-recursive/LICENSE b/build/node_modules/fs-readdir-recursive/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/build/node_modules/fs-readdir-recursive/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/fs-readdir-recursive/README.md b/build/node_modules/fs-readdir-recursive/README.md deleted file mode 100644 index 4c4f8d5d..00000000 --- a/build/node_modules/fs-readdir-recursive/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# fs.readdirSyncRecursive - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![Dependency Status][david-image]][david-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Read a directory recursively. - -## Install - -```bash -npm install fs-readdir-recursive -``` - -## Example - -```js -var read = require('fs-readdir-recursive') -read(__dirname) === [ - 'test/test.js', - 'index.js', - 'LICENSE', - 'package.json', - 'README.md' -] -``` - -## API - -### read(root [, filter]) - -`root` is the directory you wish to scan. `filter` is an optional filter for the files with three params(name, index, dir). By default, filter is: - -```js -function (name) { - return name[0] !== '.' -} -``` - -Which basically just ignores `.` files. - -[npm-image]: https://img.shields.io/npm/v/fs-readdir-recursive.svg?style=flat-square -[npm-url]: https://npmjs.org/package/fs-readdir-recursive -[github-tag]: http://img.shields.io/github/tag/fs-utils/fs-readdir-recursive.svg?style=flat-square -[github-url]: https://github.com/fs-utils/fs-readdir-recursive/tags -[travis-image]: https://img.shields.io/travis/fs-utils/fs-readdir-recursive.svg?style=flat-square -[travis-url]: https://travis-ci.org/fs-utils/fs-readdir-recursive -[coveralls-image]: https://img.shields.io/coveralls/fs-utils/fs-readdir-recursive.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/fs-utils/fs-readdir-recursive -[david-image]: http://img.shields.io/david/fs-utils/fs-readdir-recursive.svg?style=flat-square -[david-url]: https://david-dm.org/fs-utils/fs-readdir-recursive -[license-image]: http://img.shields.io/npm/l/fs-readdir-recursive.svg?style=flat-square -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/fs-readdir-recursive.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/fs-readdir-recursive -[gittip-image]: https://img.shields.io/gratipay/jonathanong.svg?style=flat-square -[gittip-url]: https://gratipay.com/jonathanong/ diff --git a/build/node_modules/fs-readdir-recursive/index.js b/build/node_modules/fs-readdir-recursive/index.js deleted file mode 100644 index 59d0af25..00000000 --- a/build/node_modules/fs-readdir-recursive/index.js +++ /dev/null @@ -1,29 +0,0 @@ -var fs = require('fs') -var path = require('path') - -module.exports = read - -function read(root, filter, files, prefix) { - prefix = prefix || '' - files = files || [] - filter = filter || noDotFiles - - var dir = path.join(root, prefix) - if (!fs.existsSync(dir)) return files - if (fs.statSync(dir).isDirectory()) - fs.readdirSync(dir) - .filter(function (name, index) { - return filter(name, index, dir) - }) - .forEach(function (name) { - read(root, filter, files, path.join(prefix, name)) - }) - else - files.push(prefix) - - return files -} - -function noDotFiles(x) { - return x[0] !== '.' -} diff --git a/build/node_modules/fs-readdir-recursive/package.json b/build/node_modules/fs-readdir-recursive/package.json deleted file mode 100644 index 5fc1947e..00000000 --- a/build/node_modules/fs-readdir-recursive/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "fs-readdir-recursive", - "description": "Recursively read a directory", - "version": "1.1.0", - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "devDependencies": { - "istanbul": "0", - "mocha": "3", - "should": "*" - }, - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" - }, - "repository": "fs-utils/fs-readdir-recursive", - "files": [ - "index.js" - ], - "license": "MIT" -} diff --git a/build/node_modules/fs.realpath/LICENSE b/build/node_modules/fs.realpath/LICENSE deleted file mode 100644 index 5bd884c2..00000000 --- a/build/node_modules/fs.realpath/LICENSE +++ /dev/null @@ -1,43 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----- - -This library bundles a version of the `fs.realpath` and `fs.realpathSync` -methods from Node.js v0.10 under the terms of the Node.js MIT license. - -Node's license follows, also included at the header of `old.js` which contains -the licensed code: - - Copyright Joyent, Inc. and other Node contributors. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/fs.realpath/README.md b/build/node_modules/fs.realpath/README.md deleted file mode 100644 index a42ceac6..00000000 --- a/build/node_modules/fs.realpath/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# fs.realpath - -A backwards-compatible fs.realpath for Node v6 and above - -In Node v6, the JavaScript implementation of fs.realpath was replaced -with a faster (but less resilient) native implementation. That raises -new and platform-specific errors and cannot handle long or excessively -symlink-looping paths. - -This module handles those cases by detecting the new errors and -falling back to the JavaScript implementation. On versions of Node -prior to v6, it has no effect. - -## USAGE - -```js -var rp = require('fs.realpath') - -// async version -rp.realpath(someLongAndLoopingPath, function (er, real) { - // the ELOOP was handled, but it was a bit slower -}) - -// sync version -var real = rp.realpathSync(someLongAndLoopingPath) - -// monkeypatch at your own risk! -// This replaces the fs.realpath/fs.realpathSync builtins -rp.monkeypatch() - -// un-do the monkeypatching -rp.unmonkeypatch() -``` diff --git a/build/node_modules/fs.realpath/index.js b/build/node_modules/fs.realpath/index.js deleted file mode 100644 index b09c7c7e..00000000 --- a/build/node_modules/fs.realpath/index.js +++ /dev/null @@ -1,66 +0,0 @@ -module.exports = realpath -realpath.realpath = realpath -realpath.sync = realpathSync -realpath.realpathSync = realpathSync -realpath.monkeypatch = monkeypatch -realpath.unmonkeypatch = unmonkeypatch - -var fs = require('fs') -var origRealpath = fs.realpath -var origRealpathSync = fs.realpathSync - -var version = process.version -var ok = /^v[0-5]\./.test(version) -var old = require('./old.js') - -function newError (er) { - return er && er.syscall === 'realpath' && ( - er.code === 'ELOOP' || - er.code === 'ENOMEM' || - er.code === 'ENAMETOOLONG' - ) -} - -function realpath (p, cache, cb) { - if (ok) { - return origRealpath(p, cache, cb) - } - - if (typeof cache === 'function') { - cb = cache - cache = null - } - origRealpath(p, cache, function (er, result) { - if (newError(er)) { - old.realpath(p, cache, cb) - } else { - cb(er, result) - } - }) -} - -function realpathSync (p, cache) { - if (ok) { - return origRealpathSync(p, cache) - } - - try { - return origRealpathSync(p, cache) - } catch (er) { - if (newError(er)) { - return old.realpathSync(p, cache) - } else { - throw er - } - } -} - -function monkeypatch () { - fs.realpath = realpath - fs.realpathSync = realpathSync -} - -function unmonkeypatch () { - fs.realpath = origRealpath - fs.realpathSync = origRealpathSync -} diff --git a/build/node_modules/fs.realpath/old.js b/build/node_modules/fs.realpath/old.js deleted file mode 100644 index b40305e7..00000000 --- a/build/node_modules/fs.realpath/old.js +++ /dev/null @@ -1,303 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var pathModule = require('path'); -var isWindows = process.platform === 'win32'; -var fs = require('fs'); - -// JavaScript implementation of realpath, ported from node pre-v6 - -var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); - -function rethrow() { - // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and - // is fairly slow to generate. - var callback; - if (DEBUG) { - var backtrace = new Error; - callback = debugCallback; - } else - callback = missingCallback; - - return callback; - - function debugCallback(err) { - if (err) { - backtrace.message = err.message; - err = backtrace; - missingCallback(err); - } - } - - function missingCallback(err) { - if (err) { - if (process.throwDeprecation) - throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs - else if (!process.noDeprecation) { - var msg = 'fs: missing callback ' + (err.stack || err.message); - if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - } - } - } -} - -function maybeCallback(cb) { - return typeof cb === 'function' ? cb : rethrow(); -} - -var normalize = pathModule.normalize; - -// Regexp that finds the next partion of a (partial) path -// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { - var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; -} else { - var nextPartRe = /(.*?)(?:[\/]+|$)/g; -} - -// Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { - var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; -} else { - var splitRootRe = /^[\/]*/; -} - -exports.realpathSync = function realpathSync(p, cache) { - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return cache[p]; - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstatSync(base); - knownHard[base] = true; - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - // NB: p.length changes. - while (pos < p.length) { - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - continue; - } - - var resolvedLink; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // some known symbolic link. no need to stat again. - resolvedLink = cache[base]; - } else { - var stat = fs.lstatSync(base); - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - continue; - } - - // read the link if it wasn't read before - // dev/ino always return 0 on windows, so skip the check. - var linkTarget = null; - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - linkTarget = seenLinks[id]; - } - } - if (linkTarget === null) { - fs.statSync(base); - linkTarget = fs.readlinkSync(base); - } - resolvedLink = pathModule.resolve(previous, linkTarget); - // track this, if given a cache. - if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; - } - - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } - - if (cache) cache[original] = p; - - return p; -}; - - -exports.realpath = function realpath(p, cache, cb) { - if (typeof cb !== 'function') { - cb = maybeCallback(cache); - cache = null; - } - - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return process.nextTick(cb.bind(null, null, cache[p])); - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstat(base, function(err) { - if (err) return cb(err); - knownHard[base] = true; - LOOP(); - }); - } else { - process.nextTick(LOOP); - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - function LOOP() { - // stop if scanned past end of path - if (pos >= p.length) { - if (cache) cache[original] = p; - return cb(null, p); - } - - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - return process.nextTick(LOOP); - } - - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // known symbolic link. no need to stat again. - return gotResolvedLink(cache[base]); - } - - return fs.lstat(base, gotStat); - } - - function gotStat(err, stat) { - if (err) return cb(err); - - // if not a symlink, skip to the next path part - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - return process.nextTick(LOOP); - } - - // stat & read the link if not read before - // call gotTarget as soon as the link target is known - // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - return gotTarget(null, seenLinks[id], base); - } - } - fs.stat(base, function(err) { - if (err) return cb(err); - - fs.readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; - gotTarget(err, target); - }); - }); - } - - function gotTarget(err, target, base) { - if (err) return cb(err); - - var resolvedLink = pathModule.resolve(previous, target); - if (cache) cache[base] = resolvedLink; - gotResolvedLink(resolvedLink); - } - - function gotResolvedLink(resolvedLink) { - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } -}; diff --git a/build/node_modules/fs.realpath/package.json b/build/node_modules/fs.realpath/package.json deleted file mode 100644 index 3edc57d2..00000000 --- a/build/node_modules/fs.realpath/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "fs.realpath", - "version": "1.0.0", - "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "tap test/*.js --cov" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/fs.realpath.git" - }, - "keywords": [ - "realpath", - "fs", - "polyfill" - ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "files": [ - "old.js", - "index.js" - ] -} diff --git a/build/node_modules/function-bind/.eslintrc b/build/node_modules/function-bind/.eslintrc deleted file mode 100644 index 71a054fd..00000000 --- a/build/node_modules/function-bind/.eslintrc +++ /dev/null @@ -1,21 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "indent": [2, 4], - "no-new-func": [1], - }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "max-lines-per-function": 0, - "strict": [0] - }, - }, - ], -} diff --git a/build/node_modules/function-bind/.nycrc b/build/node_modules/function-bind/.nycrc deleted file mode 100644 index 1826526e..00000000 --- a/build/node_modules/function-bind/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/function-bind/CHANGELOG.md b/build/node_modules/function-bind/CHANGELOG.md deleted file mode 100644 index f9e6cc07..00000000 --- a/build/node_modules/function-bind/CHANGELOG.md +++ /dev/null @@ -1,136 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.1.2](https://github.com/ljharb/function-bind/compare/v1.1.1...v1.1.2) - 2023-10-12 - -### Merged - -- Point to the correct file [`#16`](https://github.com/ljharb/function-bind/pull/16) - -### Commits - -- [Tests] migrate tests to Github Actions [`4f8b57c`](https://github.com/ljharb/function-bind/commit/4f8b57c02f2011fe9ae353d5e74e8745f0988af8) -- [Tests] remove `jscs` [`90eb2ed`](https://github.com/ljharb/function-bind/commit/90eb2edbeefd5b76cd6c3a482ea3454db169b31f) -- [meta] update `.gitignore` [`53fcdc3`](https://github.com/ljharb/function-bind/commit/53fcdc371cd66634d6e9b71c836a50f437e89fed) -- [Tests] up to `node` `v11.10`, `v10.15`, `v9.11`, `v8.15`, `v6.16`, `v4.9`; use `nvm install-latest-npm`; run audit script in tests [`1fe8f6e`](https://github.com/ljharb/function-bind/commit/1fe8f6e9aed0dfa8d8b3cdbd00c7f5ea0cd2b36e) -- [meta] add `auto-changelog` [`1921fcb`](https://github.com/ljharb/function-bind/commit/1921fcb5b416b63ffc4acad051b6aad5722f777d) -- [Robustness] remove runtime dependency on all builtins except `.apply` [`f743e61`](https://github.com/ljharb/function-bind/commit/f743e61aa6bb2360358c04d4884c9db853d118b7) -- Docs: enable badges; update wording [`503cb12`](https://github.com/ljharb/function-bind/commit/503cb12d998b5f91822776c73332c7adcd6355dd) -- [readme] update badges [`290c5db`](https://github.com/ljharb/function-bind/commit/290c5dbbbda7264efaeb886552a374b869a4bb48) -- [Tests] switch to nyc for coverage [`ea360ba`](https://github.com/ljharb/function-bind/commit/ea360ba907fc2601ed18d01a3827fa2d3533cdf8) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`cae5e9e`](https://github.com/ljharb/function-bind/commit/cae5e9e07a5578dc6df26c03ee22851ce05b943c) -- [meta] add `funding` field; create FUNDING.yml [`c9f4274`](https://github.com/ljharb/function-bind/commit/c9f4274aa80ea3aae9657a3938fdba41a3b04ca6) -- [Tests] fix eslint errors from #15 [`f69aaa2`](https://github.com/ljharb/function-bind/commit/f69aaa2beb2fdab4415bfb885760a699d0b9c964) -- [actions] fix permissions [`99a0cd9`](https://github.com/ljharb/function-bind/commit/99a0cd9f3b5bac223a0d572f081834cd73314be7) -- [meta] use `npmignore` to autogenerate an npmignore file [`f03b524`](https://github.com/ljharb/function-bind/commit/f03b524ca91f75a109a5d062f029122c86ecd1ae) -- [Dev Deps] update `@ljharb/eslint‑config`, `eslint`, `tape` [`7af9300`](https://github.com/ljharb/function-bind/commit/7af930023ae2ce7645489532821e4fbbcd7a2280) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`64a9127`](https://github.com/ljharb/function-bind/commit/64a9127ab0bd331b93d6572eaf6e9971967fc08c) -- [Tests] use `aud` instead of `npm audit` [`e75069c`](https://github.com/ljharb/function-bind/commit/e75069c50010a8fcce2a9ce2324934c35fdb4386) -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`d03555c`](https://github.com/ljharb/function-bind/commit/d03555ca59dea3b71ce710045e4303b9e2619e28) -- [meta] add `safe-publish-latest` [`9c8f809`](https://github.com/ljharb/function-bind/commit/9c8f8092aed027d7e80c94f517aa892385b64f09) -- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`baf6893`](https://github.com/ljharb/function-bind/commit/baf6893e27f5b59abe88bc1995e6f6ed1e527397) -- [meta] create SECURITY.md [`4db1779`](https://github.com/ljharb/function-bind/commit/4db17799f1f28ae294cb95e0081ca2b591c3911b) -- [Tests] add `npm run audit` [`c8b38ec`](https://github.com/ljharb/function-bind/commit/c8b38ec40ed3f85dabdee40ed4148f1748375bc2) -- Revert "Point to the correct file" [`05cdf0f`](https://github.com/ljharb/function-bind/commit/05cdf0fa205c6a3c5ba40bbedd1dfa9874f915c9) - -## [v1.1.1](https://github.com/ljharb/function-bind/compare/v1.1.0...v1.1.1) - 2017-08-28 - -### Commits - -- [Tests] up to `node` `v8`; newer npm breaks on older node; fix scripts [`817f7d2`](https://github.com/ljharb/function-bind/commit/817f7d28470fdbff8ef608d4d565dd4d1430bc5e) -- [Dev Deps] update `eslint`, `jscs`, `tape`, `@ljharb/eslint-config` [`854288b`](https://github.com/ljharb/function-bind/commit/854288b1b6f5c555f89aceb9eff1152510262084) -- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`83e639f`](https://github.com/ljharb/function-bind/commit/83e639ff74e6cd6921285bccec22c1bcf72311bd) -- Only apps should have lockfiles [`5ed97f5`](https://github.com/ljharb/function-bind/commit/5ed97f51235c17774e0832e122abda0f3229c908) -- Use a SPDX-compliant “license” field. [`5feefea`](https://github.com/ljharb/function-bind/commit/5feefea0dc0193993e83e5df01ded424403a5381) - -## [v1.1.0](https://github.com/ljharb/function-bind/compare/v1.0.2...v1.1.0) - 2016-02-14 - -### Commits - -- Update `eslint`, `tape`; use my personal shared `eslint` config [`9c9062a`](https://github.com/ljharb/function-bind/commit/9c9062abbe9dd70b59ea2c3a3c3a81f29b457097) -- Add `npm run eslint` [`dd96c56`](https://github.com/ljharb/function-bind/commit/dd96c56720034a3c1ffee10b8a59a6f7c53e24ad) -- [New] return the native `bind` when available. [`82186e0`](https://github.com/ljharb/function-bind/commit/82186e03d73e580f95ff167e03f3582bed90ed72) -- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`a3dd767`](https://github.com/ljharb/function-bind/commit/a3dd76720c795cb7f4586b0544efabf8aa107b8b) -- Update `eslint` [`3dae2f7`](https://github.com/ljharb/function-bind/commit/3dae2f7423de30a2d20313ddb1edc19660142fe9) -- Update `tape`, `covert`, `jscs` [`a181eee`](https://github.com/ljharb/function-bind/commit/a181eee0cfa24eb229c6e843a971f36e060a2f6a) -- [Tests] up to `node` `v5.6`, `v4.3` [`964929a`](https://github.com/ljharb/function-bind/commit/964929a6a4ddb36fb128de2bcc20af5e4f22e1ed) -- Test up to `io.js` `v2.1` [`2be7310`](https://github.com/ljharb/function-bind/commit/2be7310f2f74886a7124ca925be411117d41d5ea) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`45f3d68`](https://github.com/ljharb/function-bind/commit/45f3d6865c6ca93726abcef54febe009087af101) -- [Dev Deps] update `tape`, `jscs` [`6e1340d`](https://github.com/ljharb/function-bind/commit/6e1340d94642deaecad3e717825db641af4f8b1f) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`d9bad2b`](https://github.com/ljharb/function-bind/commit/d9bad2b778b1b3a6dd2876087b88b3acf319f8cc) -- Update `eslint` [`935590c`](https://github.com/ljharb/function-bind/commit/935590caa024ab356102e4858e8fc315b2ccc446) -- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`8c9a1ef`](https://github.com/ljharb/function-bind/commit/8c9a1efd848e5167887aa8501857a0940a480c57) -- Test on `io.js` `v2.2` [`9a3a38c`](https://github.com/ljharb/function-bind/commit/9a3a38c92013aed6e108666e7bd40969b84ac86e) -- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`69afc26`](https://github.com/ljharb/function-bind/commit/69afc2617405b147dd2a8d8ae73ca9e9283f18b4) -- [Dev Deps] Update `tape`, `eslint` [`36c1be0`](https://github.com/ljharb/function-bind/commit/36c1be0ab12b45fe5df6b0fdb01a5d5137fd0115) -- Update `tape`, `jscs` [`98d8303`](https://github.com/ljharb/function-bind/commit/98d8303cd5ca1c6b8f985469f86b0d44d7d45f6e) -- Update `jscs` [`9633a4e`](https://github.com/ljharb/function-bind/commit/9633a4e9fbf82051c240855166e468ba8ba0846f) -- Update `tape`, `jscs` [`c80ef0f`](https://github.com/ljharb/function-bind/commit/c80ef0f46efc9791e76fa50de4414092ac147831) -- Test up to `io.js` `v3.0` [`7e2c853`](https://github.com/ljharb/function-bind/commit/7e2c8537d52ab9cf5a655755561d8917684c0df4) -- Test on `io.js` `v2.4` [`5a199a2`](https://github.com/ljharb/function-bind/commit/5a199a27ba46795ba5eaf0845d07d4b8232895c9) -- Test on `io.js` `v2.3` [`a511b88`](https://github.com/ljharb/function-bind/commit/a511b8896de0bddf3b56862daa416c701f4d0453) -- Fixing a typo from 822b4e1938db02dc9584aa434fd3a45cb20caf43 [`732d6b6`](https://github.com/ljharb/function-bind/commit/732d6b63a9b33b45230e630dbcac7a10855d3266) -- Update `jscs` [`da52a48`](https://github.com/ljharb/function-bind/commit/da52a4886c06d6490f46ae30b15e4163ba08905d) -- Lock covert to v1.0.0. [`d6150fd`](https://github.com/ljharb/function-bind/commit/d6150fda1e6f486718ebdeff823333d9e48e7430) - -## [v1.0.2](https://github.com/ljharb/function-bind/compare/v1.0.1...v1.0.2) - 2014-10-04 - -## [v1.0.1](https://github.com/ljharb/function-bind/compare/v1.0.0...v1.0.1) - 2014-10-03 - -### Merged - -- make CI build faster [`#3`](https://github.com/ljharb/function-bind/pull/3) - -### Commits - -- Using my standard jscs.json [`d8ee94c`](https://github.com/ljharb/function-bind/commit/d8ee94c993eff0a84cf5744fe6a29627f5cffa1a) -- Adding `npm run lint` [`7571ab7`](https://github.com/ljharb/function-bind/commit/7571ab7dfdbd99b25a1dbb2d232622bd6f4f9c10) -- Using consistent indentation [`e91a1b1`](https://github.com/ljharb/function-bind/commit/e91a1b13a61e99ec1e530e299b55508f74218a95) -- Updating jscs [`7e17892`](https://github.com/ljharb/function-bind/commit/7e1789284bc629bc9c1547a61c9b227bbd8c7a65) -- Using consistent quotes [`c50b57f`](https://github.com/ljharb/function-bind/commit/c50b57fcd1c5ec38320979c837006069ebe02b77) -- Adding keywords [`cb94631`](https://github.com/ljharb/function-bind/commit/cb946314eed35f21186a25fb42fc118772f9ee00) -- Directly export a function expression instead of using a declaration, and relying on hoisting. [`5a33c5f`](https://github.com/ljharb/function-bind/commit/5a33c5f45642de180e0d207110bf7d1843ceb87c) -- Naming npm URL and badge in README; use SVG [`2aef8fc`](https://github.com/ljharb/function-bind/commit/2aef8fcb79d54e63a58ae557c4e60949e05d5e16) -- Naming deps URLs in README [`04228d7`](https://github.com/ljharb/function-bind/commit/04228d766670ee45ca24e98345c1f6a7621065b5) -- Naming travis-ci URLs in README; using SVG [`62c810c`](https://github.com/ljharb/function-bind/commit/62c810c2f54ced956cd4d4ab7b793055addfe36e) -- Make sure functions are invoked correctly (also passing coverage tests) [`2b289b4`](https://github.com/ljharb/function-bind/commit/2b289b4dfbf037ffcfa4dc95eb540f6165e9e43a) -- Removing the strict mode pragmas; they make tests fail. [`1aa701d`](https://github.com/ljharb/function-bind/commit/1aa701d199ddc3782476e8f7eef82679be97b845) -- Adding myself as a contributor [`85fd57b`](https://github.com/ljharb/function-bind/commit/85fd57b0860e5a7af42de9a287f3f265fc6d72fc) -- Adding strict mode pragmas [`915b08e`](https://github.com/ljharb/function-bind/commit/915b08e084c86a722eafe7245e21db74aa21ca4c) -- Adding devDeps URLs to README [`4ccc731`](https://github.com/ljharb/function-bind/commit/4ccc73112c1769859e4ca3076caf4086b3cba2cd) -- Fixing the description. [`a7a472c`](https://github.com/ljharb/function-bind/commit/a7a472cf649af515c635cf560fc478fbe48999c8) -- Using a function expression instead of a function declaration. [`b5d3e4e`](https://github.com/ljharb/function-bind/commit/b5d3e4ea6aaffc63888953eeb1fbc7ff45f1fa14) -- Updating tape [`f086be6`](https://github.com/ljharb/function-bind/commit/f086be6029fb56dde61a258c1340600fa174d1e0) -- Updating jscs [`5f9bdb3`](https://github.com/ljharb/function-bind/commit/5f9bdb375ab13ba48f30852aab94029520c54d71) -- Updating jscs [`9b409ba`](https://github.com/ljharb/function-bind/commit/9b409ba6118e23395a4e5d83ef39152aab9d3bfc) -- Run coverage as part of tests. [`8e1b6d4`](https://github.com/ljharb/function-bind/commit/8e1b6d459f047d1bd4fee814e01247c984c80bd0) -- Run linter as part of tests [`c1ca83f`](https://github.com/ljharb/function-bind/commit/c1ca83f832df94587d09e621beba682fabfaa987) -- Updating covert [`701e837`](https://github.com/ljharb/function-bind/commit/701e83774b57b4d3ef631e1948143f43a72f4bb9) - -## [v1.0.0](https://github.com/ljharb/function-bind/compare/v0.2.0...v1.0.0) - 2014-08-09 - -### Commits - -- Make sure old and unstable nodes don't fail Travis [`27adca3`](https://github.com/ljharb/function-bind/commit/27adca34a4ab6ad67b6dfde43942a1b103ce4d75) -- Fixing an issue when the bound function is called as a constructor in ES3. [`e20122d`](https://github.com/ljharb/function-bind/commit/e20122d267d92ce553859b280cbbea5d27c07731) -- Adding `npm run coverage` [`a2e29c4`](https://github.com/ljharb/function-bind/commit/a2e29c4ecaef9e2f6cd1603e868c139073375502) -- Updating tape [`b741168`](https://github.com/ljharb/function-bind/commit/b741168b12b235b1717ff696087645526b69213c) -- Upgrading tape [`63631a0`](https://github.com/ljharb/function-bind/commit/63631a04c7fbe97cc2fa61829cc27246d6986f74) -- Updating tape [`363cb46`](https://github.com/ljharb/function-bind/commit/363cb46dafb23cb3e347729a22f9448051d78464) - -## v0.2.0 - 2014-03-23 - -### Commits - -- Updating test coverage to match es5-shim. [`aa94d44`](https://github.com/ljharb/function-bind/commit/aa94d44b8f9d7f69f10e060db7709aa7a694e5d4) -- initial [`942ee07`](https://github.com/ljharb/function-bind/commit/942ee07e94e542d91798137bc4b80b926137e066) -- Setting the bound function's length properly. [`079f46a`](https://github.com/ljharb/function-bind/commit/079f46a2d3515b7c0b308c2c13fceb641f97ca25) -- Ensuring that some older browsers will throw when given a regex. [`36ac55b`](https://github.com/ljharb/function-bind/commit/36ac55b87f460d4330253c92870aa26fbfe8227f) -- Removing npm scripts that don't have dependencies [`9d2be60`](https://github.com/ljharb/function-bind/commit/9d2be600002cb8bc8606f8f3585ad3e05868c750) -- Updating tape [`297a4ac`](https://github.com/ljharb/function-bind/commit/297a4acc5464db381940aafb194d1c88f4e678f3) -- Skipping length tests for now. [`d9891ea`](https://github.com/ljharb/function-bind/commit/d9891ea4d2aaffa69f408339cdd61ff740f70565) -- don't take my tea [`dccd930`](https://github.com/ljharb/function-bind/commit/dccd930bfd60ea10cb178d28c97550c3bc8c1e07) diff --git a/build/node_modules/function-bind/LICENSE b/build/node_modules/function-bind/LICENSE deleted file mode 100644 index 62d6d237..00000000 --- a/build/node_modules/function-bind/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2013 Raynos. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/build/node_modules/function-bind/README.md b/build/node_modules/function-bind/README.md deleted file mode 100644 index 814c20b5..00000000 --- a/build/node_modules/function-bind/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# function-bind [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] - -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Implementation of function.prototype.bind - -Old versions of phantomjs, Internet Explorer < 9, and node < 0.6 don't support `Function.prototype.bind`. - -## Example - -```js -Function.prototype.bind = require("function-bind") -``` - -## Installation - -`npm install function-bind` - -## Contributors - - - Raynos - -## MIT Licenced - -[package-url]: https://npmjs.org/package/function-bind -[npm-version-svg]: https://versionbadg.es/Raynos/function-bind.svg -[deps-svg]: https://david-dm.org/Raynos/function-bind.svg -[deps-url]: https://david-dm.org/Raynos/function-bind -[dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg -[dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/function-bind.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/function-bind.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/function-bind.svg -[downloads-url]: https://npm-stat.com/charts.html?package=function-bind -[codecov-image]: https://codecov.io/gh/Raynos/function-bind/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/Raynos/function-bind/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/Raynos/function-bind -[actions-url]: https://github.com/Raynos/function-bind/actions diff --git a/build/node_modules/function-bind/implementation.js b/build/node_modules/function-bind/implementation.js deleted file mode 100644 index fd4384cc..00000000 --- a/build/node_modules/function-bind/implementation.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict'; - -/* eslint no-invalid-this: 1 */ - -var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; -var toStr = Object.prototype.toString; -var max = Math.max; -var funcType = '[object Function]'; - -var concatty = function concatty(a, b) { - var arr = []; - - for (var i = 0; i < a.length; i += 1) { - arr[i] = a[i]; - } - for (var j = 0; j < b.length; j += 1) { - arr[j + a.length] = b[j]; - } - - return arr; -}; - -var slicy = function slicy(arrLike, offset) { - var arr = []; - for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { - arr[j] = arrLike[i]; - } - return arr; -}; - -var joiny = function (arr, joiner) { - var str = ''; - for (var i = 0; i < arr.length; i += 1) { - str += arr[i]; - if (i + 1 < arr.length) { - str += joiner; - } - } - return str; -}; - -module.exports = function bind(that) { - var target = this; - if (typeof target !== 'function' || toStr.apply(target) !== funcType) { - throw new TypeError(ERROR_MESSAGE + target); - } - var args = slicy(arguments, 1); - - var bound; - var binder = function () { - if (this instanceof bound) { - var result = target.apply( - this, - concatty(args, arguments) - ); - if (Object(result) === result) { - return result; - } - return this; - } - return target.apply( - that, - concatty(args, arguments) - ); - - }; - - var boundLength = max(0, target.length - args.length); - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - boundArgs[i] = '$' + i; - } - - bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder); - - if (target.prototype) { - var Empty = function Empty() {}; - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - - return bound; -}; diff --git a/build/node_modules/function-bind/index.js b/build/node_modules/function-bind/index.js deleted file mode 100644 index 3bb6b960..00000000 --- a/build/node_modules/function-bind/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var implementation = require('./implementation'); - -module.exports = Function.prototype.bind || implementation; diff --git a/build/node_modules/function-bind/package.json b/build/node_modules/function-bind/package.json deleted file mode 100644 index 61859638..00000000 --- a/build/node_modules/function-bind/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "function-bind", - "version": "1.1.2", - "description": "Implementation of Function.prototype.bind", - "keywords": [ - "function", - "bind", - "shim", - "es5" - ], - "author": "Raynos ", - "repository": { - "type": "git", - "url": "https://github.com/Raynos/function-bind.git" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "main": "index", - "homepage": "https://github.com/Raynos/function-bind", - "contributors": [ - { - "name": "Raynos" - }, - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "bugs": { - "url": "https://github.com/Raynos/function-bind/issues", - "email": "raynos2@gmail.com" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.1" - }, - "license": "MIT", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepack": "npmignore --auto --commentLines=autogenerated", - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "nyc tape 'test/**/*.js'", - "lint": "eslint --ext=js,mjs .", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "ie/8..latest", - "firefox/16..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/gauge/CHANGELOG.md b/build/node_modules/gauge/CHANGELOG.md deleted file mode 100644 index 3c5cc917..00000000 --- a/build/node_modules/gauge/CHANGELOG.md +++ /dev/null @@ -1,163 +0,0 @@ -### v3.0.0 -* Drops support for Node v4, v6, v7 and v8 - -### v2.7.4 - -* Reset colors prior to ending a line, to eliminate flicker when a line - is trucated between start and end color sequences. - -### v2.7.3 - -* Only create our onExit handler when we're enabled and remove it when we're - disabled. This stops us from creating multiple onExit handlers when - multiple gauge objects are being used. -* Fix bug where if a theme name were given instead of a theme object, it - would crash. -* Remove supports-color because it's not actually used. Uhm. Yes, I just - updated it. >.> - -### v2.7.2 - -* Use supports-color instead of has-color (as the module has been renamed) - -### v2.7.1 - -* Bug fix: Calls to show/pulse while the progress bar is disabled should still - update our internal representation of what would be shown should it be enabled. - -### v2.7.0 - -* New feature: Add new `isEnabled` method to allow introspection of the gauge's - "enabledness" as controlled by `.enable()` and `.disable()`. - -### v2.6.0 - -* Bug fix: Don't run the code associated with `enable`/`disable` if the gauge - is already enabled or disabled respectively. This prevents leaking event - listeners, amongst other weirdness. -* New feature: Template items can have default values that will be used if no - value was otherwise passed in. - -### v2.5.3 - -* Default to `enabled` only if we have a tty. Users can always override - this by passing in the `enabled` option explicitly or by calling calling - `gauge.enable()`. - -### v2.5.2 - -* Externalized `./console-strings.js` into `console-control-strings`. - -### v2.5.1 - -* Update to `signal-exit@3.0.0`, which fixes a compatibility bug with the - node profiler. -* [#39](https://github.com/iarna/gauge/pull/39) Fix tests on 0.10 and add - a missing devDependency. ([@helloyou2012](https://github.com/helloyou2012)) - -### v2.5.0 - -* Add way to programmatically fetch a list of theme names in a themeset - (`Themeset.getThemeNames`). - -### v2.4.0 - -* Add support for setting themesets on existing gauge objects. -* Add post-IO callback to `gauge.hide()` as it is somtetimes necessary when - your terminal is interleaving output from multiple filehandles (ie, stdout - & stderr). - -### v2.3.1 - -* Fix a refactor bug in setTheme where it wasn't accepting the various types - of args it should. - -### v2.3.0 - -#### FEATURES - -* Add setTemplate & setTheme back in. -* Add support for named themes, you can now ask for things like 'colorASCII' - and 'brailleSpinner'. Of course, you can still pass in theme objects. - Additionally you can now pass in an object with `hasUnicode`, `hasColor` and - `platform` keys in order to override our guesses as to those values when - selecting a default theme from the themeset. -* Make the output stream optional (it defaults to `process.stderr` now). -* Add `setWriteTo(stream[, tty])` to change the output stream and, - optionally, tty. - -#### BUG FIXES & REFACTORING - -* Abort the display phase early if we're supposed to be hidden and we are. -* Stop printing a bunch of spaces at the end of lines, since we're already - using an erase-to-end-of-line code anyway. -* The unicode themes were missing the subsection separator. - -### v2.2.1 - -* Fix image in readme - -### v2.2.0 - -* All new themes API– reference themes by name and pass in custom themes and - themesets (themesets get platform support autodetection done on them to - select the best theme). Theme mixins let you add features to all existing - themes. -* Much, much improved test coverage. - -### v2.1.0 - -* Got rid of ░ in the default platform, noUnicode, hasColor theme. Thanks - to @yongtw123 for pointing out this had snuck in. -* Fiddled with the demo output to make it easier to see the spinner spin. Also - added prints before each platforms test output. -* I forgot to include `signal-exit` in our deps. <.< Thank you @KenanY for - finding this. Then I was lazy and made a new commit instead of using his - PR. Again, thank you for your patience @KenenY. -* Drastically speed up travis testing. -* Add a small javascript demo (demo.js) for showing off the various themes - (and testing them on diff platforms). -* Change: The subsection separator from ⁄ and / (different chars) to >. -* Fix crasher: A show or pulse without a label would cause the template renderer - to complain about a missing value. -* New feature: Add the ability to disable the clean-up-on-exit behavior. - Not something I expect to be widely desirable, but important if you have - multiple distinct gauge instances in your app. -* Use our own color support detection. - The `has-color` module proved too magic for my needs, making assumptions - as to which stream we write to and reading command line arguments. - -### v2.0.0 - -This is a major rewrite of the internals. Externally there are fewer -changes: - -* On node>0.8 gauge object now prints updates at a fixed rate. This means - that when you call `show` it may wate up to `updateInterval` ms before it - actually prints an update. You override this behavior with the - `fixedFramerate` option. -* The gauge object now keeps the cursor hidden as long as it's enabled and - shown. -* The constructor's arguments have changed, now it takes a mandatory output - stream and an optional options object. The stream no longer needs to be - an `ansi`ified stream, although it can be if you want (but we won't make - use of its special features). -* Previously the gauge was disabled by default if `process.stdout` wasn't a - tty. Now it always defaults to enabled. If you want the previous - behavior set the `enabled` option to `process.stdout.isTTY`. -* The constructor's options have changed– see the docs for details. -* Themes are entirely different. If you were using a custom theme, or - referring to one directly (eg via `Gauge.unicode` or `Gauge.ascii`) then - you'll need to change your code. You can get the equivalent of the latter - with: - ``` - var themes = require('gauge/themes') - var unicodeTheme = themes(true, true) // returns the color unicode theme for your platform - ``` - The default themes no longer use any ambiguous width characters, so even - if you choose to display those as wide your progress bar should still - display correctly. -* Templates are entirely different and if you were using a custom one, you - should consult the documentation to learn how to recreate it. If you were - using the default, be aware that it has changed and the result looks quite - a bit different. diff --git a/build/node_modules/gauge/LICENSE b/build/node_modules/gauge/LICENSE deleted file mode 100644 index e7560529..00000000 --- a/build/node_modules/gauge/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2014, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/gauge/README.md b/build/node_modules/gauge/README.md deleted file mode 100644 index 47576490..00000000 --- a/build/node_modules/gauge/README.md +++ /dev/null @@ -1,402 +0,0 @@ -gauge -===== - -A nearly stateless terminal based horizontal gauge / progress bar. - -```javascript -var Gauge = require("gauge") - -var gauge = new Gauge() - -gauge.show("working…", 0) -setTimeout(() => { gauge.pulse(); gauge.show("working…", 0.25) }, 500) -setTimeout(() => { gauge.pulse(); gauge.show("working…", 0.50) }, 1000) -setTimeout(() => { gauge.pulse(); gauge.show("working…", 0.75) }, 1500) -setTimeout(() => { gauge.pulse(); gauge.show("working…", 0.99) }, 2000) -setTimeout(() => gauge.hide(), 2300) -``` - -See also the [demos](demo.js): - -![](gauge-demo.gif) - - -### CHANGES FROM 1.x - -Gauge 2.x is breaking release, please see the [changelog] for details on -what's changed if you were previously a user of this module. - -[changelog]: CHANGELOG.md - -### THE GAUGE CLASS - -This is the typical interface to the module– it provides a pretty -fire-and-forget interface to displaying your status information. - -``` -var Gauge = require("gauge") - -var gauge = new Gauge([stream], [options]) -``` - -* **stream** – *(optional, default STDERR)* A stream that progress bar - updates are to be written to. Gauge honors backpressure and will pause - most writing if it is indicated. -* **options** – *(optional)* An option object. - -Constructs a new gauge. Gauges are drawn on a single line, and are not drawn -if **stream** isn't a tty and a tty isn't explicitly provided. - -If **stream** is a terminal or if you pass in **tty** to **options** then we -will detect terminal resizes and redraw to fit. We do this by watching for -`resize` events on the tty. (To work around a bug in versions of Node prior -to 2.5.0, we watch for them on stdout if the tty is stderr.) Resizes to -larger window sizes will be clean, but shrinking the window will always -result in some cruft. - -**IMPORTANT:** If you previously were passing in a non-tty stream but you still -want output (for example, a stream wrapped by the `ansi` module) then you -need to pass in the **tty** option below, as `gauge` needs access to -the underlying tty in order to do things like terminal resizes and terminal -width detection. - -The **options** object can have the following properties, all of which are -optional: - -* **updateInterval**: How often gauge updates should be drawn, in milliseconds. -* **fixedFramerate**: Defaults to false on node 0.8, true on everything - else. When this is true a timer is created to trigger once every - `updateInterval` ms, when false, updates are printed as soon as they come - in but updates more often than `updateInterval` are ignored. The reason - 0.8 doesn't have this set to true is that it can't `unref` its timer and - so it would stop your program from exiting– if you want to use this - feature with 0.8 just make sure you call `gauge.disable()` before you - expect your program to exit. -* **themes**: A themeset to use when selecting the theme to use. Defaults - to `gauge/themes`, see the [themes] documentation for details. -* **theme**: Select a theme for use, it can be a: - * Theme object, in which case the **themes** is not used. - * The name of a theme, which will be looked up in the current *themes* - object. - * A configuration object with any of `hasUnicode`, `hasColor` or - `platform` keys, which if will be used to override our guesses when making - a default theme selection. - - If no theme is selected then a default is picked using a combination of our - best guesses at your OS, color support and unicode support. -* **template**: Describes what you want your gauge to look like. The - default is what npm uses. Detailed [documentation] is later in this - document. -* **hideCursor**: Defaults to true. If true, then the cursor will be hidden - while the gauge is displayed. -* **tty**: The tty that you're ultimately writing to. Defaults to the same - as **stream**. This is used for detecting the width of the terminal and - resizes. The width used is `tty.columns - 1`. If no tty is available then - a width of `79` is assumed. -* **enabled**: Defaults to true if `tty` is a TTY, false otherwise. If true - the gauge starts enabled. If disabled then all update commands are - ignored and no gauge will be printed until you call `.enable()`. -* **Plumbing**: The class to use to actually generate the gauge for - printing. This defaults to `require('gauge/plumbing')` and ordinarily you - shouldn't need to override this. -* **cleanupOnExit**: Defaults to true. Ordinarily we register an exit - handler to make sure your cursor is turned back on and the progress bar - erased when your process exits, even if you Ctrl-C out or otherwise exit - unexpectedly. You can disable this and it won't register the exit handler. - -[has-unicode]: https://www.npmjs.com/package/has-unicode -[themes]: #themes -[documentation]: #templates - -#### `gauge.show(section | status, [completed])` - -The first argument is either the section, the name of the current thing -contributing to progress, or an object with keys like **section**, -**subsection** & **completed** (or any others you have types for in a custom -template). If you don't want to update or set any of these you can pass -`null` and it will be ignored. - -The second argument is the percent completed as a value between 0 and 1. -Without it, completion is just not updated. You'll also note that completion -can be passed in as part of a status object as the first argument. If both -it and the completed argument are passed in, the completed argument wins. - -#### `gauge.hide([cb])` - -Removes the gauge from the terminal. Optionally, callback `cb` after IO has -had an opportunity to happen (currently this just means after `setImmediate` -has called back.) - -It turns out this is important when you're pausing the progress bar on one -filehandle and printing to another– otherwise (with a big enough print) node -can end up printing the "end progress bar" bits to the progress bar filehandle -while other stuff is printing to another filehandle. These getting interleaved -can cause corruption in some terminals. - -#### `gauge.pulse([subsection])` - -* **subsection** – *(optional)* The specific thing that triggered this pulse - -Spins the spinner in the gauge to show output. If **subsection** is -included then it will be combined with the last name passed to `gauge.show`. - -#### `gauge.disable()` - -Hides the gauge and ignores further calls to `show` or `pulse`. - -#### `gauge.enable()` - -Shows the gauge and resumes updating when `show` or `pulse` is called. - -#### `gauge.isEnabled()` - -Returns true if the gauge is enabled. - -#### `gauge.setThemeset(themes)` - -Change the themeset to select a theme from. The same as the `themes` option -used in the constructor. The theme will be reselected from this themeset. - -#### `gauge.setTheme(theme)` - -Change the active theme, will be displayed with the next show or pulse. This can be: - -* Theme object, in which case the **themes** is not used. -* The name of a theme, which will be looked up in the current *themes* - object. -* A configuration object with any of `hasUnicode`, `hasColor` or - `platform` keys, which if will be used to override our guesses when making - a default theme selection. - -If no theme is selected then a default is picked using a combination of our -best guesses at your OS, color support and unicode support. - -#### `gauge.setTemplate(template)` - -Change the active template, will be displayed with the next show or pulse - -### Tracking Completion - -If you have more than one thing going on that you want to track completion -of, you may find the related [are-we-there-yet] helpful. It's `change` -event can be wired up to the `show` method to get a more traditional -progress bar interface. - -[are-we-there-yet]: https://www.npmjs.com/package/are-we-there-yet - -### THEMES - -``` -var themes = require('gauge/themes') - -// fetch the default color unicode theme for this platform -var ourTheme = themes({hasUnicode: true, hasColor: true}) - -// fetch the default non-color unicode theme for osx -var ourTheme = themes({hasUnicode: true, hasColor: false, platform: 'darwin'}) - -// create a new theme based on the color ascii theme for this platform -// that brackets the progress bar with arrows -var ourTheme = themes.newTheme(themes({hasUnicode: false, hasColor: true}), { - preProgressbar: '→', - postProgressbar: '←' -}) -``` - -The object returned by `gauge/themes` is an instance of the `ThemeSet` class. - -``` -var ThemeSet = require('gauge/theme-set') -var themes = new ThemeSet() -// or -var themes = require('gauge/themes') -var mythemes = themes.newThemeSet() // creates a new themeset based on the default themes -``` - -#### themes(opts) -#### themes.getDefault(opts) - -Theme objects are a function that fetches the default theme based on -platform, unicode and color support. - -Options is an object with the following properties: - -* **hasUnicode** - If true, fetch a unicode theme, if no unicode theme is - available then a non-unicode theme will be used. -* **hasColor** - If true, fetch a color theme, if no color theme is - available a non-color theme will be used. -* **platform** (optional) - Defaults to `process.platform`. If no - platform match is available then `fallback` is used instead. - -If no compatible theme can be found then an error will be thrown with a -`code` of `EMISSINGTHEME`. - -#### themes.addTheme(themeName, themeObj) -#### themes.addTheme(themeName, [parentTheme], newTheme) - -Adds a named theme to the themeset. You can pass in either a theme object, -as returned by `themes.newTheme` or the arguments you'd pass to -`themes.newTheme`. - -#### themes.getThemeNames() - -Return a list of all of the names of the themes in this themeset. Suitable -for use in `themes.getTheme(…)`. - -#### themes.getTheme(name) - -Returns the theme object from this theme set named `name`. - -If `name` does not exist in this themeset an error will be thrown with -a `code` of `EMISSINGTHEME`. - -#### themes.setDefault([opts], themeName) - -`opts` is an object with the following properties. - -* **platform** - Defaults to `'fallback'`. If your theme is platform - specific, specify that here with the platform from `process.platform`, eg, - `win32`, `darwin`, etc. -* **hasUnicode** - Defaults to `false`. If your theme uses unicode you - should set this to true. -* **hasColor** - Defaults to `false`. If your theme uses color you should - set this to true. - -`themeName` is the name of the theme (as given to `addTheme`) to use for -this set of `opts`. - -#### themes.newTheme([parentTheme,] newTheme) - -Create a new theme object based on `parentTheme`. If no `parentTheme` is -provided then a minimal parentTheme that defines functions for rendering the -activity indicator (spinner) and progress bar will be defined. (This -fallback parent is defined in `gauge/base-theme`.) - -newTheme should be a bare object– we'll start by discussing the properties -defined by the default themes: - -* **preProgressbar** - displayed prior to the progress bar, if the progress - bar is displayed. -* **postProgressbar** - displayed after the progress bar, if the progress bar - is displayed. -* **progressBarTheme** - The subtheme passed through to the progress bar - renderer, it's an object with `complete` and `remaining` properties - that are the strings you want repeated for those sections of the progress - bar. -* **activityIndicatorTheme** - The theme for the activity indicator (spinner), - this can either be a string, in which each character is a different step, or - an array of strings. -* **preSubsection** - Displayed as a separator between the `section` and - `subsection` when the latter is printed. - -More generally, themes can have any value that would be a valid value when rendering -templates. The properties in the theme are used when their name matches a type in -the template. Their values can be: - -* **strings & numbers** - They'll be included as is -* **function (values, theme, width)** - Should return what you want in your output. - *values* is an object with values provided via `gauge.show`, - *theme* is the theme specific to this item (see below) or this theme object, - and *width* is the number of characters wide your result should be. - -There are a couple of special prefixes: - -* **pre** - Is shown prior to the property, if its displayed. -* **post** - Is shown after the property, if its displayed. - -And one special suffix: - -* **Theme** - Its value is passed to a function-type item as the theme. - -#### themes.addToAllThemes(theme) - -This *mixes-in* `theme` into all themes currently defined. It also adds it -to the default parent theme for this themeset, so future themes added to -this themeset will get the values from `theme` by default. - -#### themes.newThemeSet() - -Copy the current themeset into a new one. This allows you to easily inherit -one themeset from another. - -### TEMPLATES - -A template is an array of objects and strings that, after being evaluated, -will be turned into the gauge line. The default template is: - -```javascript -[ - {type: 'progressbar', length: 20}, - {type: 'activityIndicator', kerning: 1, length: 1}, - {type: 'section', kerning: 1, default: ''}, - {type: 'subsection', kerning: 1, default: ''} -] -``` - -The various template elements can either be **plain strings**, in which case they will -be be included verbatum in the output, or objects with the following properties: - -* *type* can be any of the following plus any keys you pass into `gauge.show` plus - any keys you have on a custom theme. - * `section` – What big thing you're working on now. - * `subsection` – What component of that thing is currently working. - * `activityIndicator` – Shows a spinner using the `activityIndicatorTheme` - from your active theme. - * `progressbar` – A progress bar representing your current `completed` - using the `progressbarTheme` from your active theme. -* *kerning* – Number of spaces that must be between this item and other - items, if this item is displayed at all. -* *maxLength* – The maximum length for this element. If its value is longer it - will be truncated. -* *minLength* – The minimum length for this element. If its value is shorter it - will be padded according to the *align* value. -* *align* – (Default: left) Possible values "left", "right" and "center". Works - as you'd expect from word processors. -* *length* – Provides a single value for both *minLength* and *maxLength*. If both - *length* and *minLength or *maxLength* are specified then the latter take precedence. -* *value* – A literal value to use for this template item. -* *default* – A default value to use for this template item if a value - wasn't otherwise passed in. - -### PLUMBING - -This is the super simple, assume nothing, do no magic internals used by gauge to -implement its ordinary interface. - -``` -var Plumbing = require('gauge/plumbing') -var gauge = new Plumbing(theme, template, width) -``` - -* **theme**: The theme to use. -* **template**: The template to use. -* **width**: How wide your gauge should be - -#### `gauge.setTheme(theme)` - -Change the active theme. - -#### `gauge.setTemplate(template)` - -Change the active template. - -#### `gauge.setWidth(width)` - -Change the width to render at. - -#### `gauge.hide()` - -Return the string necessary to hide the progress bar - -#### `gauge.hideCursor()` - -Return a string to hide the cursor. - -#### `gauge.showCursor()` - -Return a string to show the cursor. - -#### `gauge.show(status)` - -Using `status` for values, render the provided template with the theme and return -a string that is suitable for printing to update the gauge. diff --git a/build/node_modules/gauge/base-theme.js b/build/node_modules/gauge/base-theme.js deleted file mode 100644 index 0b67638e..00000000 --- a/build/node_modules/gauge/base-theme.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' -var spin = require('./spin.js') -var progressBar = require('./progress-bar.js') - -module.exports = { - activityIndicator: function (values, theme, width) { - if (values.spun == null) return - return spin(theme, values.spun) - }, - progressbar: function (values, theme, width) { - if (values.completed == null) return - return progressBar(theme, width, values.completed) - } -} diff --git a/build/node_modules/gauge/error.js b/build/node_modules/gauge/error.js deleted file mode 100644 index d9914ba5..00000000 --- a/build/node_modules/gauge/error.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict' -var util = require('util') - -var User = exports.User = function User (msg) { - var err = new Error(msg) - Error.captureStackTrace(err, User) - err.code = 'EGAUGE' - return err -} - -exports.MissingTemplateValue = function MissingTemplateValue (item, values) { - var err = new User(util.format('Missing template value "%s"', item.type)) - Error.captureStackTrace(err, MissingTemplateValue) - err.template = item - err.values = values - return err -} - -exports.Internal = function Internal (msg) { - var err = new Error(msg) - Error.captureStackTrace(err, Internal) - err.code = 'EGAUGEINTERNAL' - return err -} diff --git a/build/node_modules/gauge/has-color.js b/build/node_modules/gauge/has-color.js deleted file mode 100644 index 16cba0eb..00000000 --- a/build/node_modules/gauge/has-color.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict' -var colorSupport = require('color-support') - -module.exports = colorSupport().hasBasic diff --git a/build/node_modules/gauge/index.js b/build/node_modules/gauge/index.js deleted file mode 100644 index 87a4bb93..00000000 --- a/build/node_modules/gauge/index.js +++ /dev/null @@ -1,233 +0,0 @@ -'use strict' -var Plumbing = require('./plumbing.js') -var hasUnicode = require('has-unicode') -var hasColor = require('./has-color.js') -var onExit = require('signal-exit') -var defaultThemes = require('./themes') -var setInterval = require('./set-interval.js') -var process = require('./process.js') -var setImmediate = require('./set-immediate') - -module.exports = Gauge - -function callWith (obj, method) { - return function () { - return method.call(obj) - } -} - -function Gauge (arg1, arg2) { - var options, writeTo - if (arg1 && arg1.write) { - writeTo = arg1 - options = arg2 || {} - } else if (arg2 && arg2.write) { - writeTo = arg2 - options = arg1 || {} - } else { - writeTo = process.stderr - options = arg1 || arg2 || {} - } - - this._status = { - spun: 0, - section: '', - subsection: '' - } - this._paused = false // are we paused for back pressure? - this._disabled = true // are all progress bar updates disabled? - this._showing = false // do we WANT the progress bar on screen - this._onScreen = false // IS the progress bar on screen - this._needsRedraw = false // should we print something at next tick? - this._hideCursor = options.hideCursor == null ? true : options.hideCursor - this._fixedFramerate = options.fixedFramerate == null - ? !(/^v0\.8\./.test(process.version)) - : options.fixedFramerate - this._lastUpdateAt = null - this._updateInterval = options.updateInterval == null ? 50 : options.updateInterval - - this._themes = options.themes || defaultThemes - this._theme = options.theme - var theme = this._computeTheme(options.theme) - var template = options.template || [ - {type: 'progressbar', length: 20}, - {type: 'activityIndicator', kerning: 1, length: 1}, - {type: 'section', kerning: 1, default: ''}, - {type: 'subsection', kerning: 1, default: ''} - ] - this.setWriteTo(writeTo, options.tty) - var PlumbingClass = options.Plumbing || Plumbing - this._gauge = new PlumbingClass(theme, template, this.getWidth()) - - this._$$doRedraw = callWith(this, this._doRedraw) - this._$$handleSizeChange = callWith(this, this._handleSizeChange) - - this._cleanupOnExit = options.cleanupOnExit == null || options.cleanupOnExit - this._removeOnExit = null - - if (options.enabled || (options.enabled == null && this._tty && this._tty.isTTY)) { - this.enable() - } else { - this.disable() - } -} -Gauge.prototype = {} - -Gauge.prototype.isEnabled = function () { - return !this._disabled -} - -Gauge.prototype.setTemplate = function (template) { - this._gauge.setTemplate(template) - if (this._showing) this._requestRedraw() -} - -Gauge.prototype._computeTheme = function (theme) { - if (!theme) theme = {} - if (typeof theme === 'string') { - theme = this._themes.getTheme(theme) - } else if (theme && (Object.keys(theme).length === 0 || theme.hasUnicode != null || theme.hasColor != null)) { - var useUnicode = theme.hasUnicode == null ? hasUnicode() : theme.hasUnicode - var useColor = theme.hasColor == null ? hasColor : theme.hasColor - theme = this._themes.getDefault({hasUnicode: useUnicode, hasColor: useColor, platform: theme.platform}) - } - return theme -} - -Gauge.prototype.setThemeset = function (themes) { - this._themes = themes - this.setTheme(this._theme) -} - -Gauge.prototype.setTheme = function (theme) { - this._gauge.setTheme(this._computeTheme(theme)) - if (this._showing) this._requestRedraw() - this._theme = theme -} - -Gauge.prototype._requestRedraw = function () { - this._needsRedraw = true - if (!this._fixedFramerate) this._doRedraw() -} - -Gauge.prototype.getWidth = function () { - return ((this._tty && this._tty.columns) || 80) - 1 -} - -Gauge.prototype.setWriteTo = function (writeTo, tty) { - var enabled = !this._disabled - if (enabled) this.disable() - this._writeTo = writeTo - this._tty = tty || - (writeTo === process.stderr && process.stdout.isTTY && process.stdout) || - (writeTo.isTTY && writeTo) || - this._tty - if (this._gauge) this._gauge.setWidth(this.getWidth()) - if (enabled) this.enable() -} - -Gauge.prototype.enable = function () { - if (!this._disabled) return - this._disabled = false - if (this._tty) this._enableEvents() - if (this._showing) this.show() -} - -Gauge.prototype.disable = function () { - if (this._disabled) return - if (this._showing) { - this._lastUpdateAt = null - this._showing = false - this._doRedraw() - this._showing = true - } - this._disabled = true - if (this._tty) this._disableEvents() -} - -Gauge.prototype._enableEvents = function () { - if (this._cleanupOnExit) { - this._removeOnExit = onExit(callWith(this, this.disable)) - } - this._tty.on('resize', this._$$handleSizeChange) - if (this._fixedFramerate) { - this.redrawTracker = setInterval(this._$$doRedraw, this._updateInterval) - if (this.redrawTracker.unref) this.redrawTracker.unref() - } -} - -Gauge.prototype._disableEvents = function () { - this._tty.removeListener('resize', this._$$handleSizeChange) - if (this._fixedFramerate) clearInterval(this.redrawTracker) - if (this._removeOnExit) this._removeOnExit() -} - -Gauge.prototype.hide = function (cb) { - if (this._disabled) return cb && process.nextTick(cb) - if (!this._showing) return cb && process.nextTick(cb) - this._showing = false - this._doRedraw() - cb && setImmediate(cb) -} - -Gauge.prototype.show = function (section, completed) { - this._showing = true - if (typeof section === 'string') { - this._status.section = section - } else if (typeof section === 'object') { - var sectionKeys = Object.keys(section) - for (var ii = 0; ii < sectionKeys.length; ++ii) { - var key = sectionKeys[ii] - this._status[key] = section[key] - } - } - if (completed != null) this._status.completed = completed - if (this._disabled) return - this._requestRedraw() -} - -Gauge.prototype.pulse = function (subsection) { - this._status.subsection = subsection || '' - this._status.spun++ - if (this._disabled) return - if (!this._showing) return - this._requestRedraw() -} - -Gauge.prototype._handleSizeChange = function () { - this._gauge.setWidth(this._tty.columns - 1) - this._requestRedraw() -} - -Gauge.prototype._doRedraw = function () { - if (this._disabled || this._paused) return - if (!this._fixedFramerate) { - var now = Date.now() - if (this._lastUpdateAt && now - this._lastUpdateAt < this._updateInterval) return - this._lastUpdateAt = now - } - if (!this._showing && this._onScreen) { - this._onScreen = false - var result = this._gauge.hide() - if (this._hideCursor) { - result += this._gauge.showCursor() - } - return this._writeTo.write(result) - } - if (!this._showing && !this._onScreen) return - if (this._showing && !this._onScreen) { - this._onScreen = true - this._needsRedraw = true - if (this._hideCursor) { - this._writeTo.write(this._gauge.hideCursor()) - } - } - if (!this._needsRedraw) return - if (!this._writeTo.write(this._gauge.show(this._status))) { - this._paused = true - this._writeTo.on('drain', callWith(this, function () { - this._paused = false - this._doRedraw() - })) - } -} diff --git a/build/node_modules/gauge/package.json b/build/node_modules/gauge/package.json deleted file mode 100644 index d3f03546..00000000 --- a/build/node_modules/gauge/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "gauge", - "version": "3.0.2", - "description": "A terminal based horizontal guage", - "main": "index.js", - "scripts": { - "test": "standard && tap test/*.js --coverage" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/gauge" - }, - "keywords": [ - "progressbar", - "progress", - "gauge" - ], - "author": "Rebecca Turner ", - "license": "ISC", - "bugs": { - "url": "https://github.com/npm/gauge/issues" - }, - "homepage": "https://github.com/npm/gauge", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "devDependencies": { - "readable-stream": "^2.0.6", - "require-inject": "^1.4.0", - "standard": "^11.0.1", - "tap": "^12.0.1", - "through2": "^2.0.0" - }, - "files": [ - "base-theme.js", - "CHANGELOG.md", - "error.js", - "has-color.js", - "index.js", - "LICENSE", - "package.json", - "plumbing.js", - "process.js", - "progress-bar.js", - "README.md", - "render-template.js", - "set-immediate.js", - "set-interval.js", - "spin.js", - "template-item.js", - "theme-set.js", - "themes.js", - "wide-truncate.js" - ], - "engines": { - "node": ">=10" - } -} diff --git a/build/node_modules/gauge/plumbing.js b/build/node_modules/gauge/plumbing.js deleted file mode 100644 index 1afb4af6..00000000 --- a/build/node_modules/gauge/plumbing.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict' -var consoleControl = require('console-control-strings') -var renderTemplate = require('./render-template.js') -var validate = require('aproba') - -var Plumbing = module.exports = function (theme, template, width) { - if (!width) width = 80 - validate('OAN', [theme, template, width]) - this.showing = false - this.theme = theme - this.width = width - this.template = template -} -Plumbing.prototype = {} - -Plumbing.prototype.setTheme = function (theme) { - validate('O', [theme]) - this.theme = theme -} - -Plumbing.prototype.setTemplate = function (template) { - validate('A', [template]) - this.template = template -} - -Plumbing.prototype.setWidth = function (width) { - validate('N', [width]) - this.width = width -} - -Plumbing.prototype.hide = function () { - return consoleControl.gotoSOL() + consoleControl.eraseLine() -} - -Plumbing.prototype.hideCursor = consoleControl.hideCursor - -Plumbing.prototype.showCursor = consoleControl.showCursor - -Plumbing.prototype.show = function (status) { - var values = Object.create(this.theme) - for (var key in status) { - values[key] = status[key] - } - - return renderTemplate(this.width, this.template, values).trim() + - consoleControl.color('reset') + - consoleControl.eraseLine() + consoleControl.gotoSOL() -} diff --git a/build/node_modules/gauge/process.js b/build/node_modules/gauge/process.js deleted file mode 100644 index 05e85694..00000000 --- a/build/node_modules/gauge/process.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' -// this exists so we can replace it during testing -module.exports = process diff --git a/build/node_modules/gauge/progress-bar.js b/build/node_modules/gauge/progress-bar.js deleted file mode 100644 index 1780a8a5..00000000 --- a/build/node_modules/gauge/progress-bar.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict' -var validate = require('aproba') -var renderTemplate = require('./render-template.js') -var wideTruncate = require('./wide-truncate') -var stringWidth = require('string-width') - -module.exports = function (theme, width, completed) { - validate('ONN', [theme, width, completed]) - if (completed < 0) completed = 0 - if (completed > 1) completed = 1 - if (width <= 0) return '' - var sofar = Math.round(width * completed) - var rest = width - sofar - var template = [ - {type: 'complete', value: repeat(theme.complete, sofar), length: sofar}, - {type: 'remaining', value: repeat(theme.remaining, rest), length: rest} - ] - return renderTemplate(width, template, theme) -} - -// lodash's way of repeating -function repeat (string, width) { - var result = '' - var n = width - do { - if (n % 2) { - result += string - } - n = Math.floor(n / 2) - /* eslint no-self-assign: 0 */ - string += string - } while (n && stringWidth(result) < width) - - return wideTruncate(result, width) -} diff --git a/build/node_modules/gauge/render-template.js b/build/node_modules/gauge/render-template.js deleted file mode 100644 index 9764c6e0..00000000 --- a/build/node_modules/gauge/render-template.js +++ /dev/null @@ -1,178 +0,0 @@ -'use strict' -var align = require('wide-align') -var validate = require('aproba') -var wideTruncate = require('./wide-truncate') -var error = require('./error') -var TemplateItem = require('./template-item') - -function renderValueWithValues (values) { - return function (item) { - return renderValue(item, values) - } -} - -var renderTemplate = module.exports = function (width, template, values) { - var items = prepareItems(width, template, values) - var rendered = items.map(renderValueWithValues(values)).join('') - return align.left(wideTruncate(rendered, width), width) -} - -function preType (item) { - var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1) - return 'pre' + cappedTypeName -} - -function postType (item) { - var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1) - return 'post' + cappedTypeName -} - -function hasPreOrPost (item, values) { - if (!item.type) return - return values[preType(item)] || values[postType(item)] -} - -function generatePreAndPost (baseItem, parentValues) { - var item = Object.assign({}, baseItem) - var values = Object.create(parentValues) - var template = [] - var pre = preType(item) - var post = postType(item) - if (values[pre]) { - template.push({value: values[pre]}) - values[pre] = null - } - item.minLength = null - item.length = null - item.maxLength = null - template.push(item) - values[item.type] = values[item.type] - if (values[post]) { - template.push({value: values[post]}) - values[post] = null - } - return function ($1, $2, length) { - return renderTemplate(length, template, values) - } -} - -function prepareItems (width, template, values) { - function cloneAndObjectify (item, index, arr) { - var cloned = new TemplateItem(item, width) - var type = cloned.type - if (cloned.value == null) { - if (!(type in values)) { - if (cloned.default == null) { - throw new error.MissingTemplateValue(cloned, values) - } else { - cloned.value = cloned.default - } - } else { - cloned.value = values[type] - } - } - if (cloned.value == null || cloned.value === '') return null - cloned.index = index - cloned.first = index === 0 - cloned.last = index === arr.length - 1 - if (hasPreOrPost(cloned, values)) cloned.value = generatePreAndPost(cloned, values) - return cloned - } - - var output = template.map(cloneAndObjectify).filter(function (item) { return item != null }) - - var remainingSpace = width - var variableCount = output.length - - function consumeSpace (length) { - if (length > remainingSpace) length = remainingSpace - remainingSpace -= length - } - - function finishSizing (item, length) { - if (item.finished) throw new error.Internal('Tried to finish template item that was already finished') - if (length === Infinity) throw new error.Internal('Length of template item cannot be infinity') - if (length != null) item.length = length - item.minLength = null - item.maxLength = null - --variableCount - item.finished = true - if (item.length == null) item.length = item.getBaseLength() - if (item.length == null) throw new error.Internal('Finished template items must have a length') - consumeSpace(item.getLength()) - } - - output.forEach(function (item) { - if (!item.kerning) return - var prevPadRight = item.first ? 0 : output[item.index - 1].padRight - if (!item.first && prevPadRight < item.kerning) item.padLeft = item.kerning - prevPadRight - if (!item.last) item.padRight = item.kerning - }) - - // Finish any that have a fixed (literal or intuited) length - output.forEach(function (item) { - if (item.getBaseLength() == null) return - finishSizing(item) - }) - - var resized = 0 - var resizing - var hunkSize - do { - resizing = false - hunkSize = Math.round(remainingSpace / variableCount) - output.forEach(function (item) { - if (item.finished) return - if (!item.maxLength) return - if (item.getMaxLength() < hunkSize) { - finishSizing(item, item.maxLength) - resizing = true - } - }) - } while (resizing && resized++ < output.length) - if (resizing) throw new error.Internal('Resize loop iterated too many times while determining maxLength') - - resized = 0 - do { - resizing = false - hunkSize = Math.round(remainingSpace / variableCount) - output.forEach(function (item) { - if (item.finished) return - if (!item.minLength) return - if (item.getMinLength() >= hunkSize) { - finishSizing(item, item.minLength) - resizing = true - } - }) - } while (resizing && resized++ < output.length) - if (resizing) throw new error.Internal('Resize loop iterated too many times while determining minLength') - - hunkSize = Math.round(remainingSpace / variableCount) - output.forEach(function (item) { - if (item.finished) return - finishSizing(item, hunkSize) - }) - - return output -} - -function renderFunction (item, values, length) { - validate('OON', arguments) - if (item.type) { - return item.value(values, values[item.type + 'Theme'] || {}, length) - } else { - return item.value(values, {}, length) - } -} - -function renderValue (item, values) { - var length = item.getBaseLength() - var value = typeof item.value === 'function' ? renderFunction(item, values, length) : item.value - if (value == null || value === '') return '' - var alignWith = align[item.align] || align.left - var leftPadding = item.padLeft ? align.left('', item.padLeft) : '' - var rightPadding = item.padRight ? align.right('', item.padRight) : '' - var truncated = wideTruncate(String(value), length) - var aligned = alignWith(truncated, length) - return leftPadding + aligned + rightPadding -} diff --git a/build/node_modules/gauge/set-immediate.js b/build/node_modules/gauge/set-immediate.js deleted file mode 100644 index 6650a485..00000000 --- a/build/node_modules/gauge/set-immediate.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' -var process = require('./process') -try { - module.exports = setImmediate -} catch (ex) { - module.exports = process.nextTick -} diff --git a/build/node_modules/gauge/set-interval.js b/build/node_modules/gauge/set-interval.js deleted file mode 100644 index 57619879..00000000 --- a/build/node_modules/gauge/set-interval.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' -// this exists so we can replace it during testing -module.exports = setInterval diff --git a/build/node_modules/gauge/spin.js b/build/node_modules/gauge/spin.js deleted file mode 100644 index 34142ee3..00000000 --- a/build/node_modules/gauge/spin.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict' - -module.exports = function spin (spinstr, spun) { - return spinstr[spun % spinstr.length] -} diff --git a/build/node_modules/gauge/template-item.js b/build/node_modules/gauge/template-item.js deleted file mode 100644 index 4f02fefa..00000000 --- a/build/node_modules/gauge/template-item.js +++ /dev/null @@ -1,72 +0,0 @@ -'use strict' -var stringWidth = require('string-width') - -module.exports = TemplateItem - -function isPercent (num) { - if (typeof num !== 'string') return false - return num.slice(-1) === '%' -} - -function percent (num) { - return Number(num.slice(0, -1)) / 100 -} - -function TemplateItem (values, outputLength) { - this.overallOutputLength = outputLength - this.finished = false - this.type = null - this.value = null - this.length = null - this.maxLength = null - this.minLength = null - this.kerning = null - this.align = 'left' - this.padLeft = 0 - this.padRight = 0 - this.index = null - this.first = null - this.last = null - if (typeof values === 'string') { - this.value = values - } else { - for (var prop in values) this[prop] = values[prop] - } - // Realize percents - if (isPercent(this.length)) { - this.length = Math.round(this.overallOutputLength * percent(this.length)) - } - if (isPercent(this.minLength)) { - this.minLength = Math.round(this.overallOutputLength * percent(this.minLength)) - } - if (isPercent(this.maxLength)) { - this.maxLength = Math.round(this.overallOutputLength * percent(this.maxLength)) - } - return this -} - -TemplateItem.prototype = {} - -TemplateItem.prototype.getBaseLength = function () { - var length = this.length - if (length == null && typeof this.value === 'string' && this.maxLength == null && this.minLength == null) { - length = stringWidth(this.value) - } - return length -} - -TemplateItem.prototype.getLength = function () { - var length = this.getBaseLength() - if (length == null) return null - return length + this.padLeft + this.padRight -} - -TemplateItem.prototype.getMaxLength = function () { - if (this.maxLength == null) return null - return this.maxLength + this.padLeft + this.padRight -} - -TemplateItem.prototype.getMinLength = function () { - if (this.minLength == null) return null - return this.minLength + this.padLeft + this.padRight -} diff --git a/build/node_modules/gauge/theme-set.js b/build/node_modules/gauge/theme-set.js deleted file mode 100644 index c022d61c..00000000 --- a/build/node_modules/gauge/theme-set.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict' -var objectAssign = require('object-assign') - -module.exports = function () { - return ThemeSetProto.newThemeSet() -} - -var ThemeSetProto = {} - -ThemeSetProto.baseTheme = require('./base-theme.js') - -ThemeSetProto.newTheme = function (parent, theme) { - if (!theme) { - theme = parent - parent = this.baseTheme - } - return objectAssign({}, parent, theme) -} - -ThemeSetProto.getThemeNames = function () { - return Object.keys(this.themes) -} - -ThemeSetProto.addTheme = function (name, parent, theme) { - this.themes[name] = this.newTheme(parent, theme) -} - -ThemeSetProto.addToAllThemes = function (theme) { - var themes = this.themes - Object.keys(themes).forEach(function (name) { - objectAssign(themes[name], theme) - }) - objectAssign(this.baseTheme, theme) -} - -ThemeSetProto.getTheme = function (name) { - if (!this.themes[name]) throw this.newMissingThemeError(name) - return this.themes[name] -} - -ThemeSetProto.setDefault = function (opts, name) { - if (name == null) { - name = opts - opts = {} - } - var platform = opts.platform == null ? 'fallback' : opts.platform - var hasUnicode = !!opts.hasUnicode - var hasColor = !!opts.hasColor - if (!this.defaults[platform]) this.defaults[platform] = {true: {}, false: {}} - this.defaults[platform][hasUnicode][hasColor] = name -} - -ThemeSetProto.getDefault = function (opts) { - if (!opts) opts = {} - var platformName = opts.platform || process.platform - var platform = this.defaults[platformName] || this.defaults.fallback - var hasUnicode = !!opts.hasUnicode - var hasColor = !!opts.hasColor - if (!platform) throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor) - if (!platform[hasUnicode][hasColor]) { - if (hasUnicode && hasColor && platform[!hasUnicode][hasColor]) { - hasUnicode = false - } else if (hasUnicode && hasColor && platform[hasUnicode][!hasColor]) { - hasColor = false - } else if (hasUnicode && hasColor && platform[!hasUnicode][!hasColor]) { - hasUnicode = false - hasColor = false - } else if (hasUnicode && !hasColor && platform[!hasUnicode][hasColor]) { - hasUnicode = false - } else if (!hasUnicode && hasColor && platform[hasUnicode][!hasColor]) { - hasColor = false - } else if (platform === this.defaults.fallback) { - throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor) - } - } - if (platform[hasUnicode][hasColor]) { - return this.getTheme(platform[hasUnicode][hasColor]) - } else { - return this.getDefault(objectAssign({}, opts, {platform: 'fallback'})) - } -} - -ThemeSetProto.newMissingThemeError = function newMissingThemeError (name) { - var err = new Error('Could not find a gauge theme named "' + name + '"') - Error.captureStackTrace.call(err, newMissingThemeError) - err.theme = name - err.code = 'EMISSINGTHEME' - return err -} - -ThemeSetProto.newMissingDefaultThemeError = function newMissingDefaultThemeError (platformName, hasUnicode, hasColor) { - var err = new Error( - 'Could not find a gauge theme for your platform/unicode/color use combo:\n' + - ' platform = ' + platformName + '\n' + - ' hasUnicode = ' + hasUnicode + '\n' + - ' hasColor = ' + hasColor) - Error.captureStackTrace.call(err, newMissingDefaultThemeError) - err.platform = platformName - err.hasUnicode = hasUnicode - err.hasColor = hasColor - err.code = 'EMISSINGTHEME' - return err -} - -ThemeSetProto.newThemeSet = function () { - var themeset = function (opts) { - return themeset.getDefault(opts) - } - return objectAssign(themeset, ThemeSetProto, { - themes: objectAssign({}, this.themes), - baseTheme: objectAssign({}, this.baseTheme), - defaults: JSON.parse(JSON.stringify(this.defaults || {})) - }) -} diff --git a/build/node_modules/gauge/themes.js b/build/node_modules/gauge/themes.js deleted file mode 100644 index df1184db..00000000 --- a/build/node_modules/gauge/themes.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict' -var color = require('console-control-strings').color -var ThemeSet = require('./theme-set.js') - -var themes = module.exports = new ThemeSet() - -themes.addTheme('ASCII', { - preProgressbar: '[', - postProgressbar: ']', - progressbarTheme: { - complete: '#', - remaining: '.' - }, - activityIndicatorTheme: '-\\|/', - preSubsection: '>' -}) - -themes.addTheme('colorASCII', themes.getTheme('ASCII'), { - progressbarTheme: { - preComplete: color('bgBrightWhite', 'brightWhite'), - complete: '#', - postComplete: color('reset'), - preRemaining: color('bgBrightBlack', 'brightBlack'), - remaining: '.', - postRemaining: color('reset') - } -}) - -themes.addTheme('brailleSpinner', { - preProgressbar: '⸨', - postProgressbar: '⸩', - progressbarTheme: { - complete: '#', - remaining: '⠂' - }, - activityIndicatorTheme: '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏', - preSubsection: '>' -}) - -themes.addTheme('colorBrailleSpinner', themes.getTheme('brailleSpinner'), { - progressbarTheme: { - preComplete: color('bgBrightWhite', 'brightWhite'), - complete: '#', - postComplete: color('reset'), - preRemaining: color('bgBrightBlack', 'brightBlack'), - remaining: '⠂', - postRemaining: color('reset') - } -}) - -themes.setDefault({}, 'ASCII') -themes.setDefault({hasColor: true}, 'colorASCII') -themes.setDefault({platform: 'darwin', hasUnicode: true}, 'brailleSpinner') -themes.setDefault({platform: 'darwin', hasUnicode: true, hasColor: true}, 'colorBrailleSpinner') -themes.setDefault({platform: 'linux', hasUnicode: true}, 'brailleSpinner') -themes.setDefault({platform: 'linux', hasUnicode: true, hasColor: true}, 'colorBrailleSpinner') diff --git a/build/node_modules/gauge/wide-truncate.js b/build/node_modules/gauge/wide-truncate.js deleted file mode 100644 index c531bc49..00000000 --- a/build/node_modules/gauge/wide-truncate.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict' -var stringWidth = require('string-width') -var stripAnsi = require('strip-ansi') - -module.exports = wideTruncate - -function wideTruncate (str, target) { - if (stringWidth(str) === 0) return str - if (target <= 0) return '' - if (stringWidth(str) <= target) return str - - // We compute the number of bytes of ansi sequences here and add - // that to our initial truncation to ensure that we don't slice one - // that we want to keep in half. - var noAnsi = stripAnsi(str) - var ansiSize = str.length + noAnsi.length - var truncated = str.slice(0, target + ansiSize) - - // we have to shrink the result to account for our ansi sequence buffer - // (if an ansi sequence was truncated) and double width characters. - while (stringWidth(truncated) > target) { - truncated = truncated.slice(0, -1) - } - return truncated -} diff --git a/build/node_modules/gensync/LICENSE b/build/node_modules/gensync/LICENSE deleted file mode 100644 index af7f781f..00000000 --- a/build/node_modules/gensync/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright 2018 Logan Smyth - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/gensync/README.md b/build/node_modules/gensync/README.md deleted file mode 100644 index f68ce1a3..00000000 --- a/build/node_modules/gensync/README.md +++ /dev/null @@ -1,196 +0,0 @@ -# gensync - -This module allows for developers to write common code that can share -implementation details, hiding whether an underlying request happens -synchronously or asynchronously. This is in contrast with many current Node -APIs which explicitly implement the same API twice, once with calls to -synchronous functions, and once with asynchronous functions. - -Take for example `fs.readFile` and `fs.readFileSync`, if you're writing an API -that loads a file and then performs a synchronous operation on the data, it -can be frustrating to maintain two parallel functions. - - -## Example - -```js -const fs = require("fs"); -const gensync = require("gensync"); - -const readFile = gensync({ - sync: fs.readFileSync, - errback: fs.readFile, -}); - -const myOperation = gensync(function* (filename) { - const code = yield* readFile(filename, "utf8"); - - return "// some custom prefix\n" + code; -}); - -// Load and add the prefix synchronously: -const result = myOperation.sync("./some-file.js"); - -// Load and add the prefix asynchronously with promises: -myOperation.async("./some-file.js").then(result => { - -}); - -// Load and add the prefix asynchronously with promises: -myOperation.errback("./some-file.js", (err, result) => { - -}); -``` - -This could even be exposed as your official API by doing -```js -// Using the common 'Sync' suffix for sync functions, and 'Async' suffix for -// promise-returning versions. -exports.myOperationSync = myOperation.sync; -exports.myOperationAsync = myOperation.async; -exports.myOperation = myOperation.errback; -``` -or potentially expose one of the async versions as the default, with a -`.sync` property on the function to expose the synchronous version. -```js -module.exports = myOperation.errback; -module.exports.sync = myOperation.sync; -```` - - -## API - -### gensync(generatorFnOrOptions) - -Returns a function that can be "await"-ed in another `gensync` generator -function, or executed via - -* `.sync(...args)` - Returns the computed value, or throws. -* `.async(...args)` - Returns a promise for the computed value. -* `.errback(...args, (err, result) => {})` - Calls the callback with the computed value, or error. - - -#### Passed a generator - -Wraps the generator to populate the `.sync`/`.async`/`.errback` helpers above to -allow for evaluation of the generator for the final value. - -##### Example - -```js -const readFile = function* () { - return 42; -}; - -const readFileAndMore = gensync(function* (){ - const val = yield* readFile(); - return 42 + val; -}); - -// In general cases -const code = readFileAndMore.sync("./file.js", "utf8"); -readFileAndMore.async("./file.js", "utf8").then(code => {}) -readFileAndMore.errback("./file.js", "utf8", (err, code) => {}); - -// In a generator being called indirectly with .sync/.async/.errback -const code = yield* readFileAndMore("./file.js", "utf8"); -``` - - -#### Passed an options object - -* `opts.sync` - - Example: `(...args) => 4` - - A function that will be called when `.sync()` is called on the `gensync()` - result, or when the result is passed to `yield*` in another generator that - is being run synchronously. - - Also called for `.async()` calls if no async handlers are provided. - -* `opts.async` - - Example: `async (...args) => 4` - - A function that will be called when `.async()` or `.errback()` is called on - the `gensync()` result, or when the result is passed to `yield*` in another - generator that is being run asynchronously. - -* `opts.errback` - - Example: `(...args, cb) => cb(null, 4)` - - A function that will be called when `.async()` or `.errback()` is called on - the `gensync()` result, or when the result is passed to `yield*` in another - generator that is being run asynchronously. - - This option allows for simpler compatibility with many existing Node APIs, - and also avoids introducing the extra even loop turns that promises introduce - to access the result value. - -* `opts.name` - - Example: `"readFile"` - - A string name to apply to the returned function. If no value is provided, - the name of `errback`/`async`/`sync` functions will be used, with any - `Sync` or `Async` suffix stripped off. If the callback is simply named - with ES6 inference (same name as the options property), the name is ignored. - -* `opts.arity` - - Example: `4` - - A number for the length to set on the returned function. If no value - is provided, the length will be carried over from the `sync` function's - `length` value. - -##### Example - -```js -const readFile = gensync({ - sync: fs.readFileSync, - errback: fs.readFile, -}); - -const code = readFile.sync("./file.js", "utf8"); -readFile.async("./file.js", "utf8").then(code => {}) -readFile.errback("./file.js", "utf8", (err, code) => {}); -``` - - -### gensync.all(iterable) - -`Promise.all`-like combinator that works with an iterable of generator objects -that could be passed to `yield*` within a gensync generator. - -#### Example - -```js -const loadFiles = gensync(function* () { - return yield* gensync.all([ - readFile("./one.js"), - readFile("./two.js"), - readFile("./three.js"), - ]); -}); -``` - - -### gensync.race(iterable) - -`Promise.race`-like combinator that works with an iterable of generator objects -that could be passed to `yield*` within a gensync generator. - -#### Example - -```js -const loadFiles = gensync(function* () { - return yield* gensync.race([ - readFile("./one.js"), - readFile("./two.js"), - readFile("./three.js"), - ]); -}); -``` diff --git a/build/node_modules/gensync/index.js b/build/node_modules/gensync/index.js deleted file mode 100644 index ee0ea616..00000000 --- a/build/node_modules/gensync/index.js +++ /dev/null @@ -1,373 +0,0 @@ -"use strict"; - -// These use the global symbol registry so that multiple copies of this -// library can work together in case they are not deduped. -const GENSYNC_START = Symbol.for("gensync:v1:start"); -const GENSYNC_SUSPEND = Symbol.for("gensync:v1:suspend"); - -const GENSYNC_EXPECTED_START = "GENSYNC_EXPECTED_START"; -const GENSYNC_EXPECTED_SUSPEND = "GENSYNC_EXPECTED_SUSPEND"; -const GENSYNC_OPTIONS_ERROR = "GENSYNC_OPTIONS_ERROR"; -const GENSYNC_RACE_NONEMPTY = "GENSYNC_RACE_NONEMPTY"; -const GENSYNC_ERRBACK_NO_CALLBACK = "GENSYNC_ERRBACK_NO_CALLBACK"; - -module.exports = Object.assign( - function gensync(optsOrFn) { - let genFn = optsOrFn; - if (typeof optsOrFn !== "function") { - genFn = newGenerator(optsOrFn); - } else { - genFn = wrapGenerator(optsOrFn); - } - - return Object.assign(genFn, makeFunctionAPI(genFn)); - }, - { - all: buildOperation({ - name: "all", - arity: 1, - sync: function(args) { - const items = Array.from(args[0]); - return items.map(item => evaluateSync(item)); - }, - async: function(args, resolve, reject) { - const items = Array.from(args[0]); - - if (items.length === 0) { - Promise.resolve().then(() => resolve([])); - return; - } - - let count = 0; - const results = items.map(() => undefined); - items.forEach((item, i) => { - evaluateAsync( - item, - val => { - results[i] = val; - count += 1; - - if (count === results.length) resolve(results); - }, - reject - ); - }); - }, - }), - race: buildOperation({ - name: "race", - arity: 1, - sync: function(args) { - const items = Array.from(args[0]); - if (items.length === 0) { - throw makeError("Must race at least 1 item", GENSYNC_RACE_NONEMPTY); - } - - return evaluateSync(items[0]); - }, - async: function(args, resolve, reject) { - const items = Array.from(args[0]); - if (items.length === 0) { - throw makeError("Must race at least 1 item", GENSYNC_RACE_NONEMPTY); - } - - for (const item of items) { - evaluateAsync(item, resolve, reject); - } - }, - }), - } -); - -/** - * Given a generator function, return the standard API object that executes - * the generator and calls the callbacks. - */ -function makeFunctionAPI(genFn) { - const fns = { - sync: function(...args) { - return evaluateSync(genFn.apply(this, args)); - }, - async: function(...args) { - return new Promise((resolve, reject) => { - evaluateAsync(genFn.apply(this, args), resolve, reject); - }); - }, - errback: function(...args) { - const cb = args.pop(); - if (typeof cb !== "function") { - throw makeError( - "Asynchronous function called without callback", - GENSYNC_ERRBACK_NO_CALLBACK - ); - } - - let gen; - try { - gen = genFn.apply(this, args); - } catch (err) { - cb(err); - return; - } - - evaluateAsync(gen, val => cb(undefined, val), err => cb(err)); - }, - }; - return fns; -} - -function assertTypeof(type, name, value, allowUndefined) { - if ( - typeof value === type || - (allowUndefined && typeof value === "undefined") - ) { - return; - } - - let msg; - if (allowUndefined) { - msg = `Expected opts.${name} to be either a ${type}, or undefined.`; - } else { - msg = `Expected opts.${name} to be a ${type}.`; - } - - throw makeError(msg, GENSYNC_OPTIONS_ERROR); -} -function makeError(msg, code) { - return Object.assign(new Error(msg), { code }); -} - -/** - * Given an options object, return a new generator that dispatches the - * correct handler based on sync or async execution. - */ -function newGenerator({ name, arity, sync, async, errback }) { - assertTypeof("string", "name", name, true /* allowUndefined */); - assertTypeof("number", "arity", arity, true /* allowUndefined */); - assertTypeof("function", "sync", sync); - assertTypeof("function", "async", async, true /* allowUndefined */); - assertTypeof("function", "errback", errback, true /* allowUndefined */); - if (async && errback) { - throw makeError( - "Expected one of either opts.async or opts.errback, but got _both_.", - GENSYNC_OPTIONS_ERROR - ); - } - - if (typeof name !== "string") { - let fnName; - if (errback && errback.name && errback.name !== "errback") { - fnName = errback.name; - } - if (async && async.name && async.name !== "async") { - fnName = async.name.replace(/Async$/, ""); - } - if (sync && sync.name && sync.name !== "sync") { - fnName = sync.name.replace(/Sync$/, ""); - } - - if (typeof fnName === "string") { - name = fnName; - } - } - - if (typeof arity !== "number") { - arity = sync.length; - } - - return buildOperation({ - name, - arity, - sync: function(args) { - return sync.apply(this, args); - }, - async: function(args, resolve, reject) { - if (async) { - async.apply(this, args).then(resolve, reject); - } else if (errback) { - errback.call(this, ...args, (err, value) => { - if (err == null) resolve(value); - else reject(err); - }); - } else { - resolve(sync.apply(this, args)); - } - }, - }); -} - -function wrapGenerator(genFn) { - return setFunctionMetadata(genFn.name, genFn.length, function(...args) { - return genFn.apply(this, args); - }); -} - -function buildOperation({ name, arity, sync, async }) { - return setFunctionMetadata(name, arity, function*(...args) { - const resume = yield GENSYNC_START; - if (!resume) { - // Break the tail call to avoid a bug in V8 v6.X with --harmony enabled. - const res = sync.call(this, args); - return res; - } - - let result; - try { - async.call( - this, - args, - value => { - if (result) return; - - result = { value }; - resume(); - }, - err => { - if (result) return; - - result = { err }; - resume(); - } - ); - } catch (err) { - result = { err }; - resume(); - } - - // Suspend until the callbacks run. Will resume synchronously if the - // callback was already called. - yield GENSYNC_SUSPEND; - - if (result.hasOwnProperty("err")) { - throw result.err; - } - - return result.value; - }); -} - -function evaluateSync(gen) { - let value; - while (!({ value } = gen.next()).done) { - assertStart(value, gen); - } - return value; -} - -function evaluateAsync(gen, resolve, reject) { - (function step() { - try { - let value; - while (!({ value } = gen.next()).done) { - assertStart(value, gen); - - // If this throws, it is considered to have broken the contract - // established for async handlers. If these handlers are called - // synchronously, it is also considered bad behavior. - let sync = true; - let didSyncResume = false; - const out = gen.next(() => { - if (sync) { - didSyncResume = true; - } else { - step(); - } - }); - sync = false; - - assertSuspend(out, gen); - - if (!didSyncResume) { - // Callback wasn't called synchronously, so break out of the loop - // and let it call 'step' later. - return; - } - } - - return resolve(value); - } catch (err) { - return reject(err); - } - })(); -} - -function assertStart(value, gen) { - if (value === GENSYNC_START) return; - - throwError( - gen, - makeError( - `Got unexpected yielded value in gensync generator: ${JSON.stringify( - value - )}. Did you perhaps mean to use 'yield*' instead of 'yield'?`, - GENSYNC_EXPECTED_START - ) - ); -} -function assertSuspend({ value, done }, gen) { - if (!done && value === GENSYNC_SUSPEND) return; - - throwError( - gen, - makeError( - done - ? "Unexpected generator completion. If you get this, it is probably a gensync bug." - : `Expected GENSYNC_SUSPEND, got ${JSON.stringify( - value - )}. If you get this, it is probably a gensync bug.`, - GENSYNC_EXPECTED_SUSPEND - ) - ); -} - -function throwError(gen, err) { - // Call `.throw` so that users can step in a debugger to easily see which - // 'yield' passed an unexpected value. If the `.throw` call didn't throw - // back to the generator, we explicitly do it to stop the error - // from being swallowed by user code try/catches. - if (gen.throw) gen.throw(err); - throw err; -} - -function isIterable(value) { - return ( - !!value && - (typeof value === "object" || typeof value === "function") && - !value[Symbol.iterator] - ); -} - -function setFunctionMetadata(name, arity, fn) { - if (typeof name === "string") { - // This should always work on the supported Node versions, but for the - // sake of users that are compiling to older versions, we check for - // configurability so we don't throw. - const nameDesc = Object.getOwnPropertyDescriptor(fn, "name"); - if (!nameDesc || nameDesc.configurable) { - Object.defineProperty( - fn, - "name", - Object.assign(nameDesc || {}, { - configurable: true, - value: name, - }) - ); - } - } - - if (typeof arity === "number") { - const lengthDesc = Object.getOwnPropertyDescriptor(fn, "length"); - if (!lengthDesc || lengthDesc.configurable) { - Object.defineProperty( - fn, - "length", - Object.assign(lengthDesc || {}, { - configurable: true, - value: arity, - }) - ); - } - } - - return fn; -} diff --git a/build/node_modules/gensync/index.js.flow b/build/node_modules/gensync/index.js.flow deleted file mode 100644 index fa22e0ba..00000000 --- a/build/node_modules/gensync/index.js.flow +++ /dev/null @@ -1,32 +0,0 @@ -// @flow - -opaque type Next = Function | void; -opaque type Yield = mixed; - -export type Gensync = { - (...args: Args): Handler, - sync(...args: Args): Return, - async(...args: Args): Promise, - // ...args: [...Args, Callback] - errback(...args: any[]): void, -}; - -export type Handler = Generator; -export type Options = { - sync(...args: Args): Return, - arity?: number, - name?: string, -} & ( - | { async?: (...args: Args) => Promise } - // ...args: [...Args, Callback] - | { errback(...args: any[]): void } -); - -declare module.exports: { - ( - Options | ((...args: Args) => Handler) - ): Gensync, - - all(Array>): Handler, - race(Array>): Handler, -}; diff --git a/build/node_modules/gensync/package.json b/build/node_modules/gensync/package.json deleted file mode 100644 index 07f87570..00000000 --- a/build/node_modules/gensync/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "gensync", - "version": "1.0.0-beta.2", - "license": "MIT", - "description": "Allows users to use generators in order to write common functions that can be both sync or async.", - "main": "index.js", - "author": "Logan Smyth ", - "homepage": "https://github.com/loganfsmyth/gensync", - "repository": { - "type": "git", - "url": "https://github.com/loganfsmyth/gensync.git" - }, - "scripts": { - "test": "jest" - }, - "engines": { - "node": ">=6.9.0" - }, - "keywords": [ - "async", - "sync", - "generators", - "async-await", - "callbacks" - ], - "devDependencies": { - "babel-core": "^6.26.3", - "babel-preset-env": "^1.6.1", - "eslint": "^4.19.1", - "eslint-config-prettier": "^2.9.0", - "eslint-plugin-node": "^6.0.1", - "eslint-plugin-prettier": "^2.6.0", - "flow-bin": "^0.71.0", - "jest": "^22.4.3", - "prettier": "^1.12.1" - } -} diff --git a/build/node_modules/get-func-name/LICENSE b/build/node_modules/get-func-name/LICENSE deleted file mode 100644 index 7ea799f0..00000000 --- a/build/node_modules/get-func-name/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013 Jake Luer (http://alogicalparadox.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/get-func-name/README.md b/build/node_modules/get-func-name/README.md deleted file mode 100644 index e9084162..00000000 --- a/build/node_modules/get-func-name/README.md +++ /dev/null @@ -1,123 +0,0 @@ -

- - ChaiJS -
- get-func-name -
-

- -

- Utility for getting a function's name for node and the browser. -

- -

- - license:mit - - - tag:? - - - build:? - - - coverage:? - - - npm:? - - - dependencies:? - - - devDependencies:? - -
- - Selenium Test Status - -
- - Join the Slack chat - - - Join the Gitter chat - -

- -## What is get-func-name? - -This is a module to retrieve a function's name securely and consistently both in NodeJS and the browser. - -## Installation - -### Node.js - -`get-func-name` is available on [npm](http://npmjs.org). To install it, type: - - $ npm install get-func-name - -### Browsers - -You can also use it within the browser; install via npm and use the `get-func-name.js` file found within the download. For example: - -```html - -``` - -## Usage - -The module `get-func-name` exports the following method: - -* `getFuncName(fn)` - Returns the name of a function. - -```js -var getFuncName = require('get-func-name'); -``` - -#### .getFuncName(fun) - -```js -var getFuncName = require('get-func-name'); - -var unknownFunction = function myCoolFunction(word) { - return word + 'is cool'; -}; - -var anonymousFunction = (function () { - return function () {}; -}()); - -getFuncName(unknownFunction) // 'myCoolFunction' -getFuncName(anonymousFunction) // '' -``` diff --git a/build/node_modules/get-func-name/get-func-name.js b/build/node_modules/get-func-name/get-func-name.js deleted file mode 100644 index 0070ed45..00000000 --- a/build/node_modules/get-func-name/get-func-name.js +++ /dev/null @@ -1 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i - * MIT Licensed - */ - -/** - * ### .getFuncName(constructorFn) - * - * Returns the name of a function. - * When a non-function instance is passed, returns `null`. - * This also includes a polyfill function if `aFunc.name` is not defined. - * - * @name getFuncName - * @param {Function} funct - * @namespace Utils - * @api public - */ - -var toString = Function.prototype.toString; -var functionNameMatch = /\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/; -var maxFunctionSourceLength = 512; -function getFuncName(aFunc) { - if (typeof aFunc !== 'function') { - return null; - } - - var name = ''; - if (typeof Function.prototype.name === 'undefined' && typeof aFunc.name === 'undefined') { - // eslint-disable-next-line prefer-reflect - var functionSource = toString.call(aFunc); - // To avoid unconstrained resource consumption due to pathalogically large function names, - // we limit the available return value to be less than 512 characters. - if (functionSource.indexOf('(') > maxFunctionSourceLength) { - return name; - } - // Here we run a polyfill if Function does not support the `name` property and if aFunc.name is not defined - var match = functionSource.match(functionNameMatch); - if (match) { - name = match[1]; - } - } else { - // If we've got a `name` property we just use it - name = aFunc.name; - } - - return name; -} - -module.exports = getFuncName; diff --git a/build/node_modules/get-func-name/package.json b/build/node_modules/get-func-name/package.json deleted file mode 100644 index 0eb8838a..00000000 --- a/build/node_modules/get-func-name/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "get-func-name", - "version": "2.0.2", - "description": "Utility for getting a function's name for node and the browser", - "keywords": [ - "get-func-name", - "chai util" - ], - "license": "MIT", - "author": "Jake Luer (http://alogicalparadox.com)", - "contributors": [ - "Keith Cirkel (https://github.com/keithamus)", - "Lucas Fernandes da Costa (https://github.com/lucasfcosta)", - "Grant Snodgrass (https://github.com/meeber)", - "Lucas Vieira (https://github.com/vieiralucas)", - "Aleksey Shvayka (https://github.com/shvaikalesh)" - ], - "files": [ - "index.js", - "get-func-name.js" - ], - "main": "./index.js", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/chaijs/get-func-name.git" - }, - "scripts": { - "build": "browserify --bare $npm_package_main --standalone getFuncName -o get-func-name.js", - "lint": "eslint --ignore-path .gitignore .", - "prepublish": "npm run build", - "semantic-release": "semantic-release pre && npm publish && semantic-release post", - "pretest": "npm run lint", - "test": "npm run test:node && npm run test:browser && npm run upload-coverage", - "test:browser": "karma start --singleRun=true", - "test:node": "istanbul cover _mocha", - "upload-coverage": "lcov-result-merger 'coverage/**/lcov.info' | coveralls; exit 0" - }, - "config": { - "ghooks": { - "commit-msg": "validate-commit-msg" - } - }, - "eslintConfig": { - "extends": [ - "strict/es5" - ], - "env": { - "es6": true - }, - "globals": { - "HTMLElement": false - }, - "rules": { - "complexity": 0, - "max-statements": 0 - } - }, - "dependencies": {}, - "devDependencies": { - "browserify": "^13.0.0", - "browserify-istanbul": "^2.0.0", - "coveralls": "2.11.14", - "eslint": "^2.4.0", - "eslint-config-strict": "^9.1.0", - "eslint-plugin-filenames": "^1.1.0", - "ghooks": "^1.0.1", - "istanbul": "^0.4.2", - "karma": "^1.3.0", - "karma-browserify": "^5.0.2", - "karma-coverage": "^1.1.1", - "karma-mocha": "^1.2.0", - "karma-phantomjs-launcher": "^1.0.0", - "karma-sauce-launcher": "^1.0.0", - "lcov-result-merger": "^1.0.2", - "mocha": "^3.1.2", - "phantomjs-prebuilt": "^2.1.5", - "semantic-release": "^4.3.5", - "simple-assert": "^1.0.0", - "travis-after-all": "^1.4.4", - "validate-commit-msg": "^2.3.1" - }, - "engines": { - "node": "*" - } -} diff --git a/build/node_modules/get-intrinsic/.eslintrc b/build/node_modules/get-intrinsic/.eslintrc deleted file mode 100644 index 83766362..00000000 --- a/build/node_modules/get-intrinsic/.eslintrc +++ /dev/null @@ -1,38 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "env": { - "es6": true, - "es2017": true, - "es2020": true, - "es2021": true, - "es2022": true, - }, - - "rules": { - "array-bracket-newline": 0, - "complexity": 0, - "eqeqeq": [2, "allow-null"], - "func-name-matching": 0, - "id-length": 0, - "max-lines": 0, - "max-lines-per-function": [2, 90], - "max-params": [2, 4], - "max-statements": 0, - "max-statements-per-line": [2, { "max": 2 }], - "multiline-comment-style": 0, - "no-magic-numbers": 0, - "sort-keys": 0, - }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "new-cap": 0, - }, - }, - ], -} diff --git a/build/node_modules/get-intrinsic/.nycrc b/build/node_modules/get-intrinsic/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/get-intrinsic/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/get-intrinsic/CHANGELOG.md b/build/node_modules/get-intrinsic/CHANGELOG.md deleted file mode 100644 index 870b590c..00000000 --- a/build/node_modules/get-intrinsic/CHANGELOG.md +++ /dev/null @@ -1,125 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.2.2](https://github.com/ljharb/get-intrinsic/compare/v1.2.1...v1.2.2) - 2023-10-20 - -### Commits - -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `call-bind`, `es-abstract`, `mock-property`, `object-inspect`, `tape` [`f51bcf2`](https://github.com/ljharb/get-intrinsic/commit/f51bcf26412d58d17ce17c91c9afd0ad271f0762) -- [Refactor] use `hasown` instead of `has` [`18d14b7`](https://github.com/ljharb/get-intrinsic/commit/18d14b799bea6b5765e1cec91890830cbcdb0587) -- [Deps] update `function-bind` [`6e109c8`](https://github.com/ljharb/get-intrinsic/commit/6e109c81e03804cc5e7824fb64353cdc3d8ee2c7) - -## [v1.2.1](https://github.com/ljharb/get-intrinsic/compare/v1.2.0...v1.2.1) - 2023-05-13 - -### Commits - -- [Fix] avoid a crash in envs without `__proto__` [`7bad8d0`](https://github.com/ljharb/get-intrinsic/commit/7bad8d061bf8721733b58b73a2565af2b6756b64) -- [Dev Deps] update `es-abstract` [`c60e6b7`](https://github.com/ljharb/get-intrinsic/commit/c60e6b7b4cf9660c7f27ed970970fd55fac48dc5) - -## [v1.2.0](https://github.com/ljharb/get-intrinsic/compare/v1.1.3...v1.2.0) - 2023-01-19 - -### Commits - -- [actions] update checkout action [`ca6b12f`](https://github.com/ljharb/get-intrinsic/commit/ca6b12f31eaacea4ea3b055e744cd61623385ffb) -- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `tape` [`41a3727`](https://github.com/ljharb/get-intrinsic/commit/41a3727d0026fa04273ae216a5f8e12eefd72da8) -- [Fix] ensure `Error.prototype` is undeniable [`c511e97`](https://github.com/ljharb/get-intrinsic/commit/c511e97ae99c764c4524b540dee7a70757af8da3) -- [Dev Deps] update `aud`, `es-abstract`, `tape` [`1bef8a8`](https://github.com/ljharb/get-intrinsic/commit/1bef8a8fd439ebb80863199b6189199e0851ac67) -- [Dev Deps] update `aud`, `es-abstract` [`0d41f16`](https://github.com/ljharb/get-intrinsic/commit/0d41f16bcd500bc28b7bfc98043ebf61ea081c26) -- [New] add `BigInt64Array` and `BigUint64Array` [`a6cca25`](https://github.com/ljharb/get-intrinsic/commit/a6cca25f29635889b7e9bd669baf9e04be90e48c) -- [Tests] use `gopd` [`ecf7722`](https://github.com/ljharb/get-intrinsic/commit/ecf7722240d15cfd16edda06acf63359c10fb9bd) - -## [v1.1.3](https://github.com/ljharb/get-intrinsic/compare/v1.1.2...v1.1.3) - 2022-09-12 - -### Commits - -- [Dev Deps] update `es-abstract`, `es-value-fixtures`, `tape` [`07ff291`](https://github.com/ljharb/get-intrinsic/commit/07ff291816406ebe5a12d7f16965bde0942dd688) -- [Fix] properly check for % signs [`50ac176`](https://github.com/ljharb/get-intrinsic/commit/50ac1760fe99c227e64eabde76e9c0e44cd881b5) - -## [v1.1.2](https://github.com/ljharb/get-intrinsic/compare/v1.1.1...v1.1.2) - 2022-06-08 - -### Fixed - -- [Fix] properly validate against extra % signs [`#16`](https://github.com/ljharb/get-intrinsic/issues/16) - -### Commits - -- [actions] reuse common workflows [`0972547`](https://github.com/ljharb/get-intrinsic/commit/0972547efd0abc863fe4c445a6ca7eb4f8c6901d) -- [meta] use `npmignore` to autogenerate an npmignore file [`5ba0b51`](https://github.com/ljharb/get-intrinsic/commit/5ba0b51d8d8d4f1c31d426d74abc0770fd106bad) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c364492`](https://github.com/ljharb/get-intrinsic/commit/c364492af4af51333e6f81c0bf21fd3d602c3661) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es-abstract`, `object-inspect`, `tape` [`dc04dad`](https://github.com/ljharb/get-intrinsic/commit/dc04dad86f6e5608775a2640cb0db5927ae29ed9) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `safe-publish-latest`, `tape` [`1c14059`](https://github.com/ljharb/get-intrinsic/commit/1c1405984e86dd2dc9366c15d8a0294a96a146a5) -- [Tests] use `mock-property` [`b396ef0`](https://github.com/ljharb/get-intrinsic/commit/b396ef05bb73b1d699811abd64b0d9b97997fdda) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c2c758d`](https://github.com/ljharb/get-intrinsic/commit/c2c758d3b90af4fef0a76910d8d3c292ec8d1d3e) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`29e3c09`](https://github.com/ljharb/get-intrinsic/commit/29e3c091c2bf3e17099969847e8729d0e46896de) -- [actions] update codecov uploader [`8cbc141`](https://github.com/ljharb/get-intrinsic/commit/8cbc1418940d7a8941f3a7985cbc4ac095c5e13d) -- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`10b6f5c`](https://github.com/ljharb/get-intrinsic/commit/10b6f5c02593fb3680c581d696ac124e30652932) -- [readme] add github actions/codecov badges [`4e25400`](https://github.com/ljharb/get-intrinsic/commit/4e25400d9f51ae9eb059cbe22d9144e70ea214e8) -- [Tests] use `for-each` instead of `foreach` [`c05b957`](https://github.com/ljharb/get-intrinsic/commit/c05b957ad9a7bc7721af7cc9e9be1edbfe057496) -- [Dev Deps] update `es-abstract` [`29b05ae`](https://github.com/ljharb/get-intrinsic/commit/29b05aec3e7330e9ad0b8e0f685a9112c20cdd97) -- [meta] use `prepublishOnly` script for npm 7+ [`95c285d`](https://github.com/ljharb/get-intrinsic/commit/95c285da810516057d3bbfa871176031af38f05d) -- [Deps] update `has-symbols` [`593cb4f`](https://github.com/ljharb/get-intrinsic/commit/593cb4fb38e7922e40e42c183f45274b636424cd) -- [readme] fix repo URLs [`1c8305b`](https://github.com/ljharb/get-intrinsic/commit/1c8305b5365827c9b6fc785434aac0e1328ff2f5) -- [Deps] update `has-symbols` [`c7138b6`](https://github.com/ljharb/get-intrinsic/commit/c7138b6c6d73132d859471fb8c13304e1e7c8b20) -- [Dev Deps] remove unused `has-bigints` [`bd63aff`](https://github.com/ljharb/get-intrinsic/commit/bd63aff6ad8f3a986c557fcda2914187bdaab359) - -## [v1.1.1](https://github.com/ljharb/get-intrinsic/compare/v1.1.0...v1.1.1) - 2021-02-03 - -### Fixed - -- [meta] export `./package.json` [`#9`](https://github.com/ljharb/get-intrinsic/issues/9) - -### Commits - -- [readme] flesh out the readme; use `evalmd` [`d12f12c`](https://github.com/ljharb/get-intrinsic/commit/d12f12c15345a0a0772cc65a7c64369529abd614) -- [eslint] set up proper globals config [`5a8c098`](https://github.com/ljharb/get-intrinsic/commit/5a8c0984e3319d1ac0e64b102f8ec18b64e79f36) -- [Dev Deps] update `eslint` [`7b9a5c0`](https://github.com/ljharb/get-intrinsic/commit/7b9a5c0d31a90ca1a1234181c74988fb046701cd) - -## [v1.1.0](https://github.com/ljharb/get-intrinsic/compare/v1.0.2...v1.1.0) - 2021-01-25 - -### Fixed - -- [Refactor] delay `Function` eval until syntax-derived values are requested [`#3`](https://github.com/ljharb/get-intrinsic/issues/3) - -### Commits - -- [Tests] migrate tests to Github Actions [`2ab762b`](https://github.com/ljharb/get-intrinsic/commit/2ab762b48164aea8af37a40ba105bbc8246ab8c4) -- [meta] do not publish github action workflow files [`5e7108e`](https://github.com/ljharb/get-intrinsic/commit/5e7108e4768b244d48d9567ba4f8a6cab9c65b8e) -- [Tests] add some coverage [`01ac7a8`](https://github.com/ljharb/get-intrinsic/commit/01ac7a87ac29738567e8524cd8c9e026b1fa8cb3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `call-bind`, `es-abstract`, `tape`; add `call-bind` [`911b672`](https://github.com/ljharb/get-intrinsic/commit/911b672fbffae433a96924c6ce013585e425f4b7) -- [Refactor] rearrange evalled constructors a bit [`7e7e4bf`](https://github.com/ljharb/get-intrinsic/commit/7e7e4bf583f3799c8ac1c6c5e10d2cb553957347) -- [meta] add Automatic Rebase and Require Allow Edits workflows [`0199968`](https://github.com/ljharb/get-intrinsic/commit/01999687a263ffce0a3cb011dfbcb761754aedbc) - -## [v1.0.2](https://github.com/ljharb/get-intrinsic/compare/v1.0.1...v1.0.2) - 2020-12-17 - -### Commits - -- [Fix] Throw for non‑existent intrinsics [`68f873b`](https://github.com/ljharb/get-intrinsic/commit/68f873b013c732a05ad6f5fc54f697e55515461b) -- [Fix] Throw for non‑existent segments in the intrinsic path [`8325dee`](https://github.com/ljharb/get-intrinsic/commit/8325deee43128f3654d3399aa9591741ebe17b21) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-bigints`, `object-inspect` [`0c227a7`](https://github.com/ljharb/get-intrinsic/commit/0c227a7d8b629166f25715fd242553892e458525) -- [meta] do not lint coverage output [`70d2419`](https://github.com/ljharb/get-intrinsic/commit/70d24199b620043cd9110fc5f426d214ebe21dc9) - -## [v1.0.1](https://github.com/ljharb/get-intrinsic/compare/v1.0.0...v1.0.1) - 2020-10-30 - -### Commits - -- [Tests] gather coverage data on every job [`d1d280d`](https://github.com/ljharb/get-intrinsic/commit/d1d280dec714e3f0519cc877dbcb193057d9cac6) -- [Fix] add missing dependencies [`5031771`](https://github.com/ljharb/get-intrinsic/commit/5031771bb1095b38be88ce7c41d5de88718e432e) -- [Tests] use `es-value-fixtures` [`af48765`](https://github.com/ljharb/get-intrinsic/commit/af48765a23c5323fb0b6b38dbf00eb5099c7bebc) - -## v1.0.0 - 2020-10-29 - -### Commits - -- Implementation [`bbce57c`](https://github.com/ljharb/get-intrinsic/commit/bbce57c6f33d05b2d8d3efa273ceeb3ee01127bb) -- Tests [`17b4f0d`](https://github.com/ljharb/get-intrinsic/commit/17b4f0d56dea6b4059b56fc30ef3ee4d9500ebc2) -- Initial commit [`3153294`](https://github.com/ljharb/get-intrinsic/commit/31532948de363b0a27dd9fd4649e7b7028ec4b44) -- npm init [`fb326c4`](https://github.com/ljharb/get-intrinsic/commit/fb326c4d2817c8419ec31de1295f06bb268a7902) -- [meta] add Automatic Rebase and Require Allow Edits workflows [`48862fb`](https://github.com/ljharb/get-intrinsic/commit/48862fb2508c8f6a57968e6d08b7c883afc9d550) -- [meta] add `auto-changelog` [`5f28ad0`](https://github.com/ljharb/get-intrinsic/commit/5f28ad019e060a353d8028f9f2591a9cc93074a1) -- [meta] add "funding"; create `FUNDING.yml` [`c2bbdde`](https://github.com/ljharb/get-intrinsic/commit/c2bbddeba73a875be61484ee4680b129a6d4e0a1) -- [Tests] add `npm run lint` [`0a84b98`](https://github.com/ljharb/get-intrinsic/commit/0a84b98b22b7cf7a748666f705b0003a493c35fd) -- Only apps should have lockfiles [`9586c75`](https://github.com/ljharb/get-intrinsic/commit/9586c75866c1ee678e4d5d4dbbdef6997e511b05) diff --git a/build/node_modules/get-intrinsic/LICENSE b/build/node_modules/get-intrinsic/LICENSE deleted file mode 100644 index 48f05d01..00000000 --- a/build/node_modules/get-intrinsic/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/get-intrinsic/README.md b/build/node_modules/get-intrinsic/README.md deleted file mode 100644 index 3aa0bba4..00000000 --- a/build/node_modules/get-intrinsic/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# get-intrinsic [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Get and robustly cache all JS language-level intrinsics at first require time. - -See the syntax described [in the JS spec](https://tc39.es/ecma262/#sec-well-known-intrinsic-objects) for reference. - -## Example - -```js -var GetIntrinsic = require('get-intrinsic'); -var assert = require('assert'); - -// static methods -assert.equal(GetIntrinsic('%Math.pow%'), Math.pow); -assert.equal(Math.pow(2, 3), 8); -assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8); -delete Math.pow; -assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8); - -// instance methods -var arr = [1]; -assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push); -assert.deepEqual(arr, [1]); - -arr.push(2); -assert.deepEqual(arr, [1, 2]); - -GetIntrinsic('%Array.prototype.push%').call(arr, 3); -assert.deepEqual(arr, [1, 2, 3]); - -delete Array.prototype.push; -GetIntrinsic('%Array.prototype.push%').call(arr, 4); -assert.deepEqual(arr, [1, 2, 3, 4]); - -// missing features -delete JSON.parse; // to simulate a real intrinsic that is missing in the environment -assert.throws(() => GetIntrinsic('%JSON.parse%')); -assert.equal(undefined, GetIntrinsic('%JSON.parse%', true)); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -## Security - -Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. - -[package-url]: https://npmjs.org/package/get-intrinsic -[npm-version-svg]: https://versionbadg.es/ljharb/get-intrinsic.svg -[deps-svg]: https://david-dm.org/ljharb/get-intrinsic.svg -[deps-url]: https://david-dm.org/ljharb/get-intrinsic -[dev-deps-svg]: https://david-dm.org/ljharb/get-intrinsic/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/get-intrinsic#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/get-intrinsic.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/get-intrinsic.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/get-intrinsic.svg -[downloads-url]: https://npm-stat.com/charts.html?package=get-intrinsic -[codecov-image]: https://codecov.io/gh/ljharb/get-intrinsic/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/get-intrinsic/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/get-intrinsic -[actions-url]: https://github.com/ljharb/get-intrinsic/actions diff --git a/build/node_modules/get-intrinsic/index.js b/build/node_modules/get-intrinsic/index.js deleted file mode 100644 index be180b0a..00000000 --- a/build/node_modules/get-intrinsic/index.js +++ /dev/null @@ -1,351 +0,0 @@ -'use strict'; - -var undefined; - -var $SyntaxError = SyntaxError; -var $Function = Function; -var $TypeError = TypeError; - -// eslint-disable-next-line consistent-return -var getEvalledConstructor = function (expressionSyntax) { - try { - return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); - } catch (e) {} -}; - -var $gOPD = Object.getOwnPropertyDescriptor; -if ($gOPD) { - try { - $gOPD({}, ''); - } catch (e) { - $gOPD = null; // this is IE 8, which has a broken gOPD - } -} - -var throwTypeError = function () { - throw new $TypeError(); -}; -var ThrowTypeError = $gOPD - ? (function () { - try { - // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties - arguments.callee; // IE 8 does not throw here - return throwTypeError; - } catch (calleeThrows) { - try { - // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') - return $gOPD(arguments, 'callee').get; - } catch (gOPDthrows) { - return throwTypeError; - } - } - }()) - : throwTypeError; - -var hasSymbols = require('has-symbols')(); -var hasProto = require('has-proto')(); - -var getProto = Object.getPrototypeOf || ( - hasProto - ? function (x) { return x.__proto__; } // eslint-disable-line no-proto - : null -); - -var needsEval = {}; - -var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, - '%Array%': Array, - '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, - '%AsyncFromSyncIteratorPrototype%': undefined, - '%AsyncFunction%': needsEval, - '%AsyncGenerator%': needsEval, - '%AsyncGeneratorFunction%': needsEval, - '%AsyncIteratorPrototype%': needsEval, - '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, - '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, - '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, - '%Boolean%': Boolean, - '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '%Date%': Date, - '%decodeURI%': decodeURI, - '%decodeURIComponent%': decodeURIComponent, - '%encodeURI%': encodeURI, - '%encodeURIComponent%': encodeURIComponent, - '%Error%': Error, - '%eval%': eval, // eslint-disable-line no-eval - '%EvalError%': EvalError, - '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, - '%Function%': $Function, - '%GeneratorFunction%': needsEval, - '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '%isFinite%': isFinite, - '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, - '%JSON%': typeof JSON === 'object' ? JSON : undefined, - '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), - '%Math%': Math, - '%Number%': Number, - '%Object%': Object, - '%parseFloat%': parseFloat, - '%parseInt%': parseInt, - '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '%RangeError%': RangeError, - '%ReferenceError%': ReferenceError, - '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '%RegExp%': RegExp, - '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), - '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '%String%': String, - '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, - '%Symbol%': hasSymbols ? Symbol : undefined, - '%SyntaxError%': $SyntaxError, - '%ThrowTypeError%': ThrowTypeError, - '%TypedArray%': TypedArray, - '%TypeError%': $TypeError, - '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '%URIError%': URIError, - '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, - '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet -}; - -if (getProto) { - try { - null.error; // eslint-disable-line no-unused-expressions - } catch (e) { - // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 - var errorProto = getProto(getProto(e)); - INTRINSICS['%Error.prototype%'] = errorProto; - } -} - -var doEval = function doEval(name) { - var value; - if (name === '%AsyncFunction%') { - value = getEvalledConstructor('async function () {}'); - } else if (name === '%GeneratorFunction%') { - value = getEvalledConstructor('function* () {}'); - } else if (name === '%AsyncGeneratorFunction%') { - value = getEvalledConstructor('async function* () {}'); - } else if (name === '%AsyncGenerator%') { - var fn = doEval('%AsyncGeneratorFunction%'); - if (fn) { - value = fn.prototype; - } - } else if (name === '%AsyncIteratorPrototype%') { - var gen = doEval('%AsyncGenerator%'); - if (gen && getProto) { - value = getProto(gen.prototype); - } - } - - INTRINSICS[name] = value; - - return value; -}; - -var LEGACY_ALIASES = { - '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], - '%ArrayPrototype%': ['Array', 'prototype'], - '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], - '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], - '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], - '%ArrayProto_values%': ['Array', 'prototype', 'values'], - '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], - '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], - '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], - '%BooleanPrototype%': ['Boolean', 'prototype'], - '%DataViewPrototype%': ['DataView', 'prototype'], - '%DatePrototype%': ['Date', 'prototype'], - '%ErrorPrototype%': ['Error', 'prototype'], - '%EvalErrorPrototype%': ['EvalError', 'prototype'], - '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], - '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], - '%FunctionPrototype%': ['Function', 'prototype'], - '%Generator%': ['GeneratorFunction', 'prototype'], - '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], - '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], - '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], - '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], - '%JSONParse%': ['JSON', 'parse'], - '%JSONStringify%': ['JSON', 'stringify'], - '%MapPrototype%': ['Map', 'prototype'], - '%NumberPrototype%': ['Number', 'prototype'], - '%ObjectPrototype%': ['Object', 'prototype'], - '%ObjProto_toString%': ['Object', 'prototype', 'toString'], - '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], - '%PromisePrototype%': ['Promise', 'prototype'], - '%PromiseProto_then%': ['Promise', 'prototype', 'then'], - '%Promise_all%': ['Promise', 'all'], - '%Promise_reject%': ['Promise', 'reject'], - '%Promise_resolve%': ['Promise', 'resolve'], - '%RangeErrorPrototype%': ['RangeError', 'prototype'], - '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], - '%RegExpPrototype%': ['RegExp', 'prototype'], - '%SetPrototype%': ['Set', 'prototype'], - '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], - '%StringPrototype%': ['String', 'prototype'], - '%SymbolPrototype%': ['Symbol', 'prototype'], - '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], - '%TypedArrayPrototype%': ['TypedArray', 'prototype'], - '%TypeErrorPrototype%': ['TypeError', 'prototype'], - '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], - '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], - '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], - '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], - '%URIErrorPrototype%': ['URIError', 'prototype'], - '%WeakMapPrototype%': ['WeakMap', 'prototype'], - '%WeakSetPrototype%': ['WeakSet', 'prototype'] -}; - -var bind = require('function-bind'); -var hasOwn = require('hasown'); -var $concat = bind.call(Function.call, Array.prototype.concat); -var $spliceApply = bind.call(Function.apply, Array.prototype.splice); -var $replace = bind.call(Function.call, String.prototype.replace); -var $strSlice = bind.call(Function.call, String.prototype.slice); -var $exec = bind.call(Function.call, RegExp.prototype.exec); - -/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ -var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; -var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ -var stringToPath = function stringToPath(string) { - var first = $strSlice(string, 0, 1); - var last = $strSlice(string, -1); - if (first === '%' && last !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); - } else if (last === '%' && first !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); - } - var result = []; - $replace(string, rePropName, function (match, number, quote, subString) { - result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; - }); - return result; -}; -/* end adaptation */ - -var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { - var intrinsicName = name; - var alias; - if (hasOwn(LEGACY_ALIASES, intrinsicName)) { - alias = LEGACY_ALIASES[intrinsicName]; - intrinsicName = '%' + alias[0] + '%'; - } - - if (hasOwn(INTRINSICS, intrinsicName)) { - var value = INTRINSICS[intrinsicName]; - if (value === needsEval) { - value = doEval(intrinsicName); - } - if (typeof value === 'undefined' && !allowMissing) { - throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } - - return { - alias: alias, - name: intrinsicName, - value: value - }; - } - - throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); -}; - -module.exports = function GetIntrinsic(name, allowMissing) { - if (typeof name !== 'string' || name.length === 0) { - throw new $TypeError('intrinsic name must be a non-empty string'); - } - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new $TypeError('"allowMissing" argument must be a boolean'); - } - - if ($exec(/^%?[^%]*%?$/, name) === null) { - throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); - } - var parts = stringToPath(name); - var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; - - var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); - var intrinsicRealName = intrinsic.name; - var value = intrinsic.value; - var skipFurtherCaching = false; - - var alias = intrinsic.alias; - if (alias) { - intrinsicBaseName = alias[0]; - $spliceApply(parts, $concat([0, 1], alias)); - } - - for (var i = 1, isOwn = true; i < parts.length; i += 1) { - var part = parts[i]; - var first = $strSlice(part, 0, 1); - var last = $strSlice(part, -1); - if ( - ( - (first === '"' || first === "'" || first === '`') - || (last === '"' || last === "'" || last === '`') - ) - && first !== last - ) { - throw new $SyntaxError('property names with quotes must have matching quotes'); - } - if (part === 'constructor' || !isOwn) { - skipFurtherCaching = true; - } - - intrinsicBaseName += '.' + part; - intrinsicRealName = '%' + intrinsicBaseName + '%'; - - if (hasOwn(INTRINSICS, intrinsicRealName)) { - value = INTRINSICS[intrinsicRealName]; - } else if (value != null) { - if (!(part in value)) { - if (!allowMissing) { - throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); - } - return void undefined; - } - if ($gOPD && (i + 1) >= parts.length) { - var desc = $gOPD(value, part); - isOwn = !!desc; - - // By convention, when a data property is converted to an accessor - // property to emulate a data property that does not suffer from - // the override mistake, that accessor's getter is marked with - // an `originalValue` property. Here, when we detect this, we - // uphold the illusion by pretending to see that original data - // property, i.e., returning the value rather than the getter - // itself. - if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { - value = desc.get; - } else { - value = value[part]; - } - } else { - isOwn = hasOwn(value, part); - value = value[part]; - } - - if (isOwn && !skipFurtherCaching) { - INTRINSICS[intrinsicRealName] = value; - } - } - } - return value; -}; diff --git a/build/node_modules/get-intrinsic/package.json b/build/node_modules/get-intrinsic/package.json deleted file mode 100644 index ffffe09c..00000000 --- a/build/node_modules/get-intrinsic/package.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "get-intrinsic", - "version": "1.2.2", - "description": "Get and robustly cache all JS language-level intrinsics at first require time", - "main": "index.js", - "exports": { - ".": [ - { - "default": "./index.js" - }, - "./index.js" - ], - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "prelint": "evalmd README.md", - "lint": "eslint --ext=.js,.mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/get-intrinsic.git" - }, - "keywords": [ - "javascript", - "ecmascript", - "es", - "js", - "intrinsic", - "getintrinsic", - "es-abstract" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/get-intrinsic/issues" - }, - "homepage": "https://github.com/ljharb/get-intrinsic#readme", - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "call-bind": "^1.0.5", - "es-abstract": "^1.22.2", - "es-value-fixtures": "^1.4.2", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "make-async-function": "^1.0.0", - "make-async-generator-function": "^1.0.0", - "make-generator-function": "^2.0.0", - "mock-property": "^1.0.2", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "object-inspect": "^1.13.1", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.2" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "testling": { - "files": "test/GetIntrinsic.js" - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/get-package-type/CHANGELOG.md b/build/node_modules/get-package-type/CHANGELOG.md deleted file mode 100644 index 5f2c4cc4..00000000 --- a/build/node_modules/get-package-type/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -## 0.1.0 (2020-05-19) - - -### Features - -* Initial implementation ([52863f4](https://github.com/cfware/get-package-type/commit/52863f4b2b7b287fe1adcd97331231a2911312dc)) diff --git a/build/node_modules/get-package-type/LICENSE b/build/node_modules/get-package-type/LICENSE deleted file mode 100644 index 971e3b7c..00000000 --- a/build/node_modules/get-package-type/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 CFWare, LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/get-package-type/README.md b/build/node_modules/get-package-type/README.md deleted file mode 100644 index 8e1ebf23..00000000 --- a/build/node_modules/get-package-type/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# get-package-type [![NPM Version][npm-image]][npm-url] - -Determine the `package.json#type` which applies to a location. - -## Usage - -```js -const getPackageType = require('get-package-type'); - -(async () => { - console.log(await getPackageType('file.js')); - console.log(getPackageType.sync('file.js')); -})(); -``` - -This function does not validate the value found in `package.json#type`. Any truthy value -found will be returned. Non-truthy values will be reported as `commonjs`. - -The argument must be a filename. -```js -// This never looks at `dir1/`, first attempts to load `./package.json`. -const type1 = await getPackageType('dir1/'); - -// This attempts to load `dir1/package.json`. -const type2 = await getPackageType('dir1/index.cjs'); -``` - -The extension of the filename does not effect the result. The primary use case for this -module is to determine if `myapp.config.js` should be loaded with `require` or `import`. - -[npm-image]: https://img.shields.io/npm/v/get-package-type.svg -[npm-url]: https://npmjs.org/package/get-package-type diff --git a/build/node_modules/get-package-type/async.cjs b/build/node_modules/get-package-type/async.cjs deleted file mode 100644 index fa7fd5cd..00000000 --- a/build/node_modules/get-package-type/async.cjs +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -const path = require('path'); -const {promisify} = require('util'); -const readFile = promisify(require('fs').readFile); - -const isNodeModules = require('./is-node-modules.cjs'); -const resultsCache = require('./cache.cjs'); - -const promiseCache = new Map(); - -async function getDirectoryTypeActual(directory) { - if (isNodeModules(directory)) { - return 'commonjs'; - } - - try { - return JSON.parse(await readFile(path.resolve(directory, 'package.json'))).type || 'commonjs'; - } catch (_) { - } - - const parent = path.dirname(directory); - if (parent === directory) { - return 'commonjs'; - } - - return getDirectoryType(parent); -} - -async function getDirectoryType(directory) { - if (resultsCache.has(directory)) { - return resultsCache.get(directory); - } - - if (promiseCache.has(directory)) { - return promiseCache.get(directory); - } - - const promise = getDirectoryTypeActual(directory); - promiseCache.set(directory, promise); - const result = await promise; - resultsCache.set(directory, result); - promiseCache.delete(directory); - - return result; -} - -function getPackageType(filename) { - return getDirectoryType(path.resolve(path.dirname(filename))); -} - -module.exports = getPackageType; diff --git a/build/node_modules/get-package-type/cache.cjs b/build/node_modules/get-package-type/cache.cjs deleted file mode 100644 index 4fd928aa..00000000 --- a/build/node_modules/get-package-type/cache.cjs +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = new Map(); diff --git a/build/node_modules/get-package-type/index.cjs b/build/node_modules/get-package-type/index.cjs deleted file mode 100644 index b5b07348..00000000 --- a/build/node_modules/get-package-type/index.cjs +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -const getPackageType = require('./async.cjs'); -const getPackageTypeSync = require('./sync.cjs'); - -module.exports = filename => getPackageType(filename); -module.exports.sync = getPackageTypeSync; diff --git a/build/node_modules/get-package-type/is-node-modules.cjs b/build/node_modules/get-package-type/is-node-modules.cjs deleted file mode 100644 index 5a37a775..00000000 --- a/build/node_modules/get-package-type/is-node-modules.cjs +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -const path = require('path'); - -function isNodeModules(directory) { - let basename = path.basename(directory); - /* istanbul ignore next: platform specific branch */ - if (path.sep === '\\') { - basename = basename.toLowerCase(); - } - - return basename === 'node_modules'; -} - -module.exports = isNodeModules; diff --git a/build/node_modules/get-package-type/package.json b/build/node_modules/get-package-type/package.json deleted file mode 100644 index dcb0ea8e..00000000 --- a/build/node_modules/get-package-type/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "get-package-type", - "version": "0.1.0", - "description": "Determine the `package.json#type` which applies to a location", - "type": "module", - "main": "index.cjs", - "exports": "./index.cjs", - "scripts": { - "pretest": "if-ver -ge 10 || exit 0; cfware-lint .", - "tests-only": "nyc -s node test.cjs", - "test": "npm run -s tests-only", - "posttest": "nyc report --check-coverage" - }, - "engines": { - "node": ">=8.0.0" - }, - "author": "Corey Farrell", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/cfware/get-package-type.git" - }, - "bugs": { - "url": "https://github.com/cfware/get-package-type/issues" - }, - "homepage": "https://github.com/cfware/get-package-type#readme", - "dependencies": {}, - "devDependencies": { - "@cfware/lint": "^1.4.3", - "@cfware/nyc": "^0.7.0", - "if-ver": "^1.1.0", - "libtap": "^0.3.0", - "nyc": "^15.0.1" - } -} diff --git a/build/node_modules/get-package-type/sync.cjs b/build/node_modules/get-package-type/sync.cjs deleted file mode 100644 index 85090a6e..00000000 --- a/build/node_modules/get-package-type/sync.cjs +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -const path = require('path'); -const {readFileSync} = require('fs'); - -const isNodeModules = require('./is-node-modules.cjs'); -const resultsCache = require('./cache.cjs'); - -function getDirectoryTypeActual(directory) { - if (isNodeModules(directory)) { - return 'commonjs'; - } - - try { - return JSON.parse(readFileSync(path.resolve(directory, 'package.json'))).type || 'commonjs'; - } catch (_) { - } - - const parent = path.dirname(directory); - if (parent === directory) { - return 'commonjs'; - } - - return getDirectoryType(parent); -} - -function getDirectoryType(directory) { - if (resultsCache.has(directory)) { - return resultsCache.get(directory); - } - - const result = getDirectoryTypeActual(directory); - resultsCache.set(directory, result); - - return result; -} - -function getPackageTypeSync(filename) { - return getDirectoryType(path.resolve(path.dirname(filename))); -} - -module.exports = getPackageTypeSync; diff --git a/build/node_modules/get-port/index.d.ts b/build/node_modules/get-port/index.d.ts deleted file mode 100644 index d930546e..00000000 --- a/build/node_modules/get-port/index.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -/// -import {ListenOptions} from 'net'; - -declare namespace getPort { - interface Options extends Omit { - /** - A preferred port or an iterable of preferred ports to use. - */ - readonly port?: number | Iterable; - - /** - The host on which port resolution should be performed. Can be either an IPv4 or IPv6 address. - */ - readonly host?: string; - } -} - -declare const getPort: { - /** - Get an available TCP port number. - - @returns Port number. - - @example - ``` - import getPort = require('get-port'); - - (async () => { - console.log(await getPort()); - //=> 51402 - - // Pass in a preferred port - console.log(await getPort({port: 3000})); - // Will use 3000 if available, otherwise fall back to a random port - - // Pass in an array of preferred ports - console.log(await getPort({port: [3000, 3001, 3002]})); - // Will use any element in the preferred ports array if available, otherwise fall back to a random port - })(); - ``` - */ - (options?: getPort.Options): Promise; - - /** - Make a range of ports `from`...`to`. - - @param from - First port of the range. Must be in the range `1024`...`65535`. - @param to - Last port of the range. Must be in the range `1024`...`65535` and must be greater than `from`. - @returns The ports in the range. - - @example - ``` - import getPort = require('get-port'); - - (async () => { - console.log(await getPort({port: getPort.makeRange(3000, 3100)})); - // Will use any port from 3000 to 3100, otherwise fall back to a random port - })(); - ``` - */ - makeRange(from: number, to: number): Iterable; -}; - -export = getPort; diff --git a/build/node_modules/get-port/index.js b/build/node_modules/get-port/index.js deleted file mode 100644 index f3e22109..00000000 --- a/build/node_modules/get-port/index.js +++ /dev/null @@ -1,109 +0,0 @@ -'use strict'; -const net = require('net'); - -class Locked extends Error { - constructor(port) { - super(`${port} is locked`); - } -} - -const lockedPorts = { - old: new Set(), - young: new Set() -}; - -// On this interval, the old locked ports are discarded, -// the young locked ports are moved to old locked ports, -// and a new young set for locked ports are created. -const releaseOldLockedPortsIntervalMs = 1000 * 15; - -// Lazily create interval on first use -let interval; - -const getAvailablePort = options => new Promise((resolve, reject) => { - const server = net.createServer(); - server.unref(); - server.on('error', reject); - server.listen(options, () => { - const {port} = server.address(); - server.close(() => { - resolve(port); - }); - }); -}); - -const portCheckSequence = function * (ports) { - if (ports) { - yield * ports; - } - - yield 0; // Fall back to 0 if anything else failed -}; - -module.exports = async options => { - let ports; - - if (options) { - ports = typeof options.port === 'number' ? [options.port] : options.port; - } - - if (interval === undefined) { - interval = setInterval(() => { - lockedPorts.old = lockedPorts.young; - lockedPorts.young = new Set(); - }, releaseOldLockedPortsIntervalMs); - - // Does not exist in some environments (Electron, Jest jsdom env, browser, etc). - if (interval.unref) { - interval.unref(); - } - } - - for (const port of portCheckSequence(ports)) { - try { - let availablePort = await getAvailablePort({...options, port}); // eslint-disable-line no-await-in-loop - while (lockedPorts.old.has(availablePort) || lockedPorts.young.has(availablePort)) { - if (port !== 0) { - throw new Locked(port); - } - - availablePort = await getAvailablePort({...options, port}); // eslint-disable-line no-await-in-loop - } - - lockedPorts.young.add(availablePort); - return availablePort; - } catch (error) { - if (!['EADDRINUSE', 'EACCES'].includes(error.code) && !(error instanceof Locked)) { - throw error; - } - } - } - - throw new Error('No available ports found'); -}; - -module.exports.makeRange = (from, to) => { - if (!Number.isInteger(from) || !Number.isInteger(to)) { - throw new TypeError('`from` and `to` must be integer numbers'); - } - - if (from < 1024 || from > 65535) { - throw new RangeError('`from` must be between 1024 and 65535'); - } - - if (to < 1024 || to > 65536) { - throw new RangeError('`to` must be between 1024 and 65536'); - } - - if (to < from) { - throw new RangeError('`to` must be greater than or equal to `from`'); - } - - const generator = function * (from, to) { - for (let port = from; port <= to; port++) { - yield port; - } - }; - - return generator(from, to); -}; diff --git a/build/node_modules/get-port/license b/build/node_modules/get-port/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/get-port/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/get-port/package.json b/build/node_modules/get-port/package.json deleted file mode 100644 index 7b9448c1..00000000 --- a/build/node_modules/get-port/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "get-port", - "version": "5.1.1", - "description": "Get an available port", - "license": "MIT", - "repository": "sindresorhus/get-port", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "port", - "find", - "finder", - "portfinder", - "free", - "available", - "connection", - "connect", - "open", - "net", - "tcp", - "scan", - "random", - "preferred", - "chosen" - ], - "devDependencies": { - "@types/node": "^12.12.21", - "ava": "^2.4.0", - "tsd": "^0.11.0", - "xo": "^0.25.3" - } -} diff --git a/build/node_modules/get-port/readme.md b/build/node_modules/get-port/readme.md deleted file mode 100644 index 05d78fb7..00000000 --- a/build/node_modules/get-port/readme.md +++ /dev/null @@ -1,109 +0,0 @@ -# get-port [![Build Status](https://travis-ci.org/sindresorhus/get-port.svg?branch=master)](https://travis-ci.org/sindresorhus/get-port) - -> Get an available [TCP port](https://en.wikipedia.org/wiki/Port_(computer_networking)) - -## Install - -``` -$ npm install get-port -``` - -## Usage - -```js -const getPort = require('get-port'); - -(async () => { - console.log(await getPort()); - //=> 51402 -})(); -``` - -Pass in a preferred port: - -```js -(async () => { - console.log(await getPort({port: 3000})); - // Will use 3000 if available, otherwise fall back to a random port -})(); -``` - -Pass in an array of preferred ports: - -```js -(async () => { - console.log(await getPort({port: [3000, 3001, 3002]})); - // Will use any element in the preferred ports array if available, otherwise fall back to a random port -})(); -``` - -Use the `makeRange()` helper in case you need a port in a certain range: - -```js -(async () => { - console.log(await getPort({port: getPort.makeRange(3000, 3100)})); - // Will use any port from 3000 to 3100, otherwise fall back to a random port -})(); -``` - -## API - -### getPort(options?) - -Returns a `Promise` for a port number. - -#### options - -Type: `object` - -##### port - -Type: `number | Iterable` - -A preferred port or an iterable of preferred ports to use. - -##### host - -Type: `string` - -The host on which port resolution should be performed. Can be either an IPv4 or IPv6 address. - -### getPort.makeRange(from, to) - -Make a range of ports `from`...`to`. - -Returns an `Iterable` for ports in the given range. - -#### from - -Type: `number` - -First port of the range. Must be in the range `1024`...`65535`. - -#### to - -Type: `number` - -Last port of the range. Must be in the range `1024`...`65535` and must be greater than `from`. - -## Beware - -There is a very tiny chance of a race condition if another process starts using the same port number as you in between the time you get the port number and you actually start using it. - -Race conditions in the same process are mitigated against by using a lightweight locking mechanism where a port will be held for a minimum of 15 seconds and a maximum of 30 seconds before being released again. - -## Related - -- [get-port-cli](https://github.com/sindresorhus/get-port-cli) - CLI for this module - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/get-source/.eslintrc b/build/node_modules/get-source/.eslintrc deleted file mode 100644 index 955b07d1..00000000 --- a/build/node_modules/get-source/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "script" - } -} \ No newline at end of file diff --git a/build/node_modules/get-source/.travis.yml b/build/node_modules/get-source/.travis.yml deleted file mode 100644 index 551eaa9f..00000000 --- a/build/node_modules/get-source/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: node_js -node_js: -- '10' -script: -- set -e -- npm run test -- npm run coveralls -# after_success: -# - git config --global user.email "travis@travis-ci.org" -# - git config --global user.name "Travis CI" -# - npm config set git-tag-version=false -# - NPM_VERSION=$(npm version patch) -# - git commit -a -m "${NPM_VERSION:1}" -m "[ci skip]" -# - git remote remove origin -# - git remote add origin https://${GITHUB_TOKEN}@github.com/xpl/get-source.git -# - git push origin HEAD:master -# deploy: -# provider: npm -# email: rocket.mind@gmail.com -# api_key: -# secure: jEWoCdiL3qadEKV36Aw1On1JNNvzSKIaZELVp0NiQLoWwbnTXzkXJuabHGDUQFnD9VXjhqtduS0GMpaV//HOXalSR72s8+VnnLYxsVj+Aslh1kDEwXW3OsQ2O5PSZY5nmGVYuZVjwFeOa70+cvMd0nE1v9HNgJBhhzeKiewgzusGrGBaW3ovXz9Bf7ITsbkVO55SbW8CroKILrQiPBTSqEUqH0Vx+ucHtb+gfJfOs7kXoCkjf8tu/yZjs5NIaHt1lKoWOmUlG3z7CjtFenieuzlQRe48jSQKnbXh5yJmziKvbiiwEfFnPhzPZqPKiXHDkBOr7Fm+geMSJcbRlu4lhB/aUfDoT5vlabnQsTcxz1wTKW+N/WR2xdl4kc5HPF9Tnx4c/MDVvQnC05NCRtcrtZNAla9r9pG/zmIvmFiP0ulPgDok8+Mq4GrDoNd5T4Dt8Xk+uD+rENjifYNetIU3Zcq7uslkwaoDZq29V/tSdbHVtXjMw+FSbUk5jJxD/4j3FxDaQGjOkjN/kqxcWc1IH5xi9bG0wCD5sKsdadPAuEMCJRFIlRP+EtyLD3CKwFYPKCQuTTvPJnZ6IOtCNGWI4Qe0eYSrmwURIdUkyxUkdeGZhjrTsGtJN7WXKq+JD2JU88978o3ZQ+CN1iqBaL8yhlDt8vhPtkzVqZXWI1LAB9A= -env: - global: - secure: SXc3ilPr7p+uac/b3ibx27zFEuKotjA0FLHkkFaU5Y74Ek++Yh++cmBbXjz8yS2XtaEmvr+EL/Z7cUsD7hbs787+lyc16AJNEf1l3PKwsFx7djsOBdXFf0mVPhmlx2BbAtgrVylPlVM0yzBDUTWOm2lFtMFp8v2vjJeSnePaWV2Gf7T4hpm4S4U0fXeVRFynFIDo+TfyJoNG6zg6iuUcIjiY5zrvE8U6pg3TtRUaQx8+JWZYdukiKEjPZ2mUHHGaHDRouM99wFz7Y1WTBkxYvyIQFNuf9zzJ/IRMFiLMhxPvSbIYHpNtimCWjYL/Hw105BWOxoTOFa2lsRT5dJAxv3LfroWrEG6vnV5BeJ35Ogcy4Mqf0N3lrMjo/vUgbn6nP2MTyADqBjNdJ0T6tqRSY4sE2M0nXddC/9/ONHOnqzOtAxqS72MJ93ZzSJ0VvMIaf2rygAnIHVHe7mzV3EEhs6l5APQYybYWI8bLD8A75LZeBG1tSBvdPdf5ny6l1GSyoQ1qIntfrl/FcGiJKbGVRl6by/XdRIGA9HOenOHdBzLrB58VF0NkOKzmizlu3O51LW21Yt/HwPRAoGb9t/7KAOT6otKplIk8qy/tTzIc0fZm6mG8FmRQsisIrfWTiWh37jSZU9FGdNGkF/tjjZ/bmEPiJ56fWiXvzVv9CQAeF/0= diff --git a/build/node_modules/get-source/LICENSE b/build/node_modules/get-source/LICENSE deleted file mode 100644 index 49dbbe1e..00000000 --- a/build/node_modules/get-source/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Vitaly Gordon (https://github.com/xpl) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/get-source/README.md b/build/node_modules/get-source/README.md deleted file mode 100644 index c0cd7fb4..00000000 --- a/build/node_modules/get-source/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# get-source - -[![Build Status](https://travis-ci.org/xpl/get-source.svg?branch=master)](https://travis-ci.org/xpl/get-source) [![Coverage Status](https://coveralls.io/repos/github/xpl/get-source/badge.svg)](https://coveralls.io/github/xpl/get-source) [![npm](https://img.shields.io/npm/v/get-source.svg)](https://npmjs.com/package/get-source) - -Fetch source-mapped sources. Peek by file, line, column. Node & browsers. Sync & async. - -```bash -npm install get-source -``` - -## Features - -- [x] Allows to read source code files in Node and browsers -- [x] Full sourcemap support (path resolving, external/embedded/inline linking, and long chains) -- [x] **Synchronous** API — good for CLI tools (e.g. [logging](https://github.com/xpl/ololog)). Works in browsers! -- [x] **Asynchronous** API — good for everything web! -- [x] Built-in cache - -## What for - -- [x] Call stacks enhanced with source code information (see the [StackTracey](https://github.com/xpl/stacktracey) library) -- [x] [Advanced logging](https://github.com/xpl/ololog) / assertion printing -- [x] [Error displaying components](https://github.com/xpl/panic-overlay) for front-end web development - -## Usage (Synchronous) - -```javascript -import getSource from 'get-source' -``` -```javascript -file = getSource ('./scripts/index.min.js') -``` - -Will read the file synchronously (either via XHR or by filesystem API, depending on the environment) and return it's cached representation. Result will contain the following fields: - -```javascript -file.path // normalized file path -file.text // text contents -file.lines // array of lines -``` - -And the `resolve` method: - -```javascript -file.resolve ({ line: 1, column: 8 }) // indexes here start from 1 (by widely accepted convention). Zero indexes are invalid. -``` - -It will look through the sourcemap chain, returning following: - -```javascript -{ - line: , - column: , - sourceFile: , - sourceLine: -} -``` - -In that returned object, `sourceFile` is the same kind of object that `getSource` returns. So you can access its `text`, `lines` and `path` fields to obtain the full information. And the `sourceLine` is returned just for the convenience, as a shortcut. - -## Usage (Asynchronous) - -Pretty much the same as synchronous, except it's `getSource.async`. It returns awaitable promises: - -```javascript -file = await getSource.async ('./scripts/index.min.js') -location = await file.resolve ({ line: 1, column: 8 }) -``` - -## Error handling - -In synchronous mode, it never throws (due to backward compatibility reasons with existing code): - -```javascript -nonsense = getSource ('/some/nonexistent/file') - -nonsense.text // should be '' (so it's safe to access without checking) -nonsense.error // should be an Error object, representing an actual error thrown during reading/parsing -``` -```javascript -resolved = nonsense.resolve ({ line: 5, column: 0 }) - -resolved.sourceLine // empty string (so it's safe to access without checking) -resolved.error // should be an Error object, representing an actual error thrown during reading/parsing -``` - -In asychronous mode, it throws an error: - -```javascript -try { - file = await getSource.async ('/some/file') - location = await file.resolve ({ line: 5, column: 0 }) -} catch (e) { - ... -} -``` - -## Resetting Cache - -E.g. when you need to force-reload files: - -```javascript -getSource.resetCache () // sync cache -getSource.async.resetCache () // async cache -``` - -Also, viewing cached files: - -```javascript -getSource.getCache () // sync cache -getSource.async.getCache () // async cache -``` diff --git a/build/node_modules/get-source/get-source.d.ts b/build/node_modules/get-source/get-source.d.ts deleted file mode 100644 index fb9b81f0..00000000 --- a/build/node_modules/get-source/get-source.d.ts +++ /dev/null @@ -1,48 +0,0 @@ - -declare interface Location { - - line: number; - column: number; -} - -declare interface ResolvedLocation extends Location { - - sourceFile: FileType; - sourceLine: string; - error?: Error; -} - -declare interface File { - - path: string; - text: string; - lines: string[]; - error?: Error; -} - -declare interface FileAsync extends File { - resolve (location: Location): Promise> -} - -declare interface FileSync extends File { - resolve (location: Location): ResolvedLocation -} - -declare interface FileCache { - - resetCache (): void; - getCache (): { [key: string]: T }; -} - -declare interface getSourceAsync extends FileCache { - (path: string): Promise; -} - -declare interface getSourceSync extends FileCache { - (path: string): FileSync; - async: getSourceAsync; -} - -declare const getSource: getSourceSync; - -export = getSource; diff --git a/build/node_modules/get-source/get-source.js b/build/node_modules/get-source/get-source.js deleted file mode 100644 index 5f2d2d76..00000000 --- a/build/node_modules/get-source/get-source.js +++ /dev/null @@ -1,176 +0,0 @@ -"use strict"; - -/* ------------------------------------------------------------------------ */ - -const { assign } = Object, - isBrowser = (typeof window !== 'undefined') && (window.window === window) && window.navigator, - SourceMapConsumer = require ('source-map').SourceMapConsumer, - SyncPromise = require ('./impl/SyncPromise'), - path = require ('./impl/path'), - dataURIToBuffer = require ('data-uri-to-buffer'), - nodeRequire = isBrowser ? null : module.require - -/* ------------------------------------------------------------------------ */ - -const memoize = f => { - - const m = x => (x in m.cache) ? m.cache[x] : (m.cache[x] = f(x)) - m.forgetEverything = () => { m.cache = Object.create (null) } - m.cache = Object.create (null) - - return m -} - -function impl (fetchFile, sync) { - - const PromiseImpl = sync ? SyncPromise : Promise - const SourceFileMemoized = memoize (path => SourceFile (path, fetchFile (path))) - - function SourceFile (srcPath, text) { - if (text === undefined) return SourceFileMemoized (path.resolve (srcPath)) - - return PromiseImpl.resolve (text).then (text => { - - let file - let lines - let resolver - let _resolve = loc => (resolver = resolver || SourceMapResolverFromFetchedFile (file)) (loc) - - return (file = { - path: srcPath, - text, - get lines () { return lines = (lines || text.split ('\n')) }, - resolve (loc) { - const result = _resolve (loc) - if (sync) { - try { return SyncPromise.valueFrom (result) } - catch (e) { return assign ({}, loc, { error: e }) } - } else { - return Promise.resolve (result) - } - }, - _resolve, - }) - }) - } - - function SourceMapResolverFromFetchedFile (file) { - - /* Extract the last sourceMap occurence (TODO: support multiple sourcemaps) */ - - const re = /\u0023 sourceMappingURL=(.+)\n?/g - let lastMatch = undefined - - while (true) { - const match = re.exec (file.text) - if (match) lastMatch = match - else break - } - - const url = lastMatch && lastMatch[1] - - const defaultResolver = loc => assign ({}, loc, { - sourceFile: file, - sourceLine: (file.lines[loc.line - 1] || '') - }) - - return url ? SourceMapResolver (file.path, url, defaultResolver) - : defaultResolver - } - - function SourceMapResolver (originalFilePath, sourceMapPath, fallbackResolve) { - - const srcFile = sourceMapPath.startsWith ('data:') - ? SourceFile (originalFilePath, dataURIToBuffer (sourceMapPath).toString ()) - : SourceFile (path.relativeToFile (originalFilePath, sourceMapPath)) - - const parsedMap = srcFile.then (f => SourceMapConsumer (JSON.parse (f.text))) - - const sourceFor = memoize (function sourceFor (filePath) { - return srcFile.then (f => { - const fullPath = path.relativeToFile (f.path, filePath) - return parsedMap.then (x => SourceFile ( - fullPath, - x.sourceContentFor (filePath, true /* return null on missing */) || undefined)) - }) - }) - - return loc => parsedMap.then (x => { - const originalLoc = x.originalPositionFor (loc) - return originalLoc.source ? sourceFor (originalLoc.source).then (x => - x._resolve (assign ({}, loc, { - line: originalLoc.line, - column: originalLoc.column + 1, - name: originalLoc.name - })) - ) - : fallbackResolve (loc) - }).catch (e => - assign (fallbackResolve (loc), { sourceMapError: e })) - } - - return assign (function getSource (path) { - const file = SourceFile (path) - if (sync) { - try { return SyncPromise.valueFrom (file) } - catch (e) { - const noFile = { - path, - text: '', - lines: [], - error: e, - resolve (loc) { - return assign ({}, loc, { error: e, sourceLine: '', sourceFile: noFile }) - } - } - return noFile - } - } - return file - }, { - resetCache: () => SourceFileMemoized.forgetEverything (), - getCache: () => SourceFileMemoized.cache - }) -} - -/* ------------------------------------------------------------------------ */ - -module.exports = impl (function fetchFileSync (path) { - return new SyncPromise (resolve => { - if (isBrowser) { - let xhr = new XMLHttpRequest () - xhr.open ('GET', path, false /* SYNCHRONOUS XHR FTW :) */) - xhr.send (null) - resolve (xhr.responseText) - } else { - resolve (nodeRequire ('fs').readFileSync (path, { encoding: 'utf8' })) - } - }) - }, true) - -/* ------------------------------------------------------------------------ */ - -module.exports.async = impl (function fetchFileAsync (path) { - return new Promise ((resolve, reject) => { - if (isBrowser) { - let xhr = new XMLHttpRequest () - xhr.open ('GET', path) - xhr.onreadystatechange = event => { - if (xhr.readyState === 4) { - if (xhr.status === 200) { - resolve (xhr.responseText) - } else { - reject (new Error (xhr.statusText)) - } - } - } - xhr.send (null) - } else { - nodeRequire ('fs').readFile (path, { encoding: 'utf8' }, (e, x) => { - e ? reject (e) : resolve (x) - }) - } - }) - }) - -/* ------------------------------------------------------------------------ */ diff --git a/build/node_modules/get-source/package.json b/build/node_modules/get-source/package.json deleted file mode 100644 index 10409824..00000000 --- a/build/node_modules/get-source/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "get-source", - "version": "2.0.12", - "description": "Fetch source-mapped sources. Peek by file, line, column. Node & browsers. Sync & async.", - "main": "get-source", - "types": "./get-source.d.ts", - "scripts": { - "test-browser": "mocha test/test.browser --reporter spec", - "test-node": "mocha test/test.node --reporter spec", - "test-path": "mocha test/test.path --reporter spec", - "test": "nyc --reporter=html --reporter=text mocha test/test.path test/test.node --reporter spec", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "repository": { - "type": "git", - "url": "https://github.com/xpl/get-source.git" - }, - "keywords": [ - "sources", - "sourcemap", - "read source", - "cached sources" - ], - "author": "Vitaly Gordon ", - "license": "Unlicense", - "bugs": { - "url": "https://github.com/xpl/get-source/issues" - }, - "homepage": "https://github.com/xpl/get-source", - "devDependencies": { - "chai": "^3.5.0", - "coveralls": "^3.0.3", - "istanbul": "^0.4.5", - "memory-fs": "^0.3.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0", - "webpack": "^4.43.0" - }, - "dependencies": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" - } -} diff --git a/build/node_modules/get-stream/buffer-stream.js b/build/node_modules/get-stream/buffer-stream.js deleted file mode 100644 index 2dd75745..00000000 --- a/build/node_modules/get-stream/buffer-stream.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; -const {PassThrough: PassThroughStream} = require('stream'); - -module.exports = options => { - options = {...options}; - - const {array} = options; - let {encoding} = options; - const isBuffer = encoding === 'buffer'; - let objectMode = false; - - if (array) { - objectMode = !(encoding || isBuffer); - } else { - encoding = encoding || 'utf8'; - } - - if (isBuffer) { - encoding = null; - } - - const stream = new PassThroughStream({objectMode}); - - if (encoding) { - stream.setEncoding(encoding); - } - - let length = 0; - const chunks = []; - - stream.on('data', chunk => { - chunks.push(chunk); - - if (objectMode) { - length = chunks.length; - } else { - length += chunk.length; - } - }); - - stream.getBufferedValue = () => { - if (array) { - return chunks; - } - - return isBuffer ? Buffer.concat(chunks, length) : chunks.join(''); - }; - - stream.getBufferedLength = () => length; - - return stream; -}; diff --git a/build/node_modules/get-stream/index.d.ts b/build/node_modules/get-stream/index.d.ts deleted file mode 100644 index 9485b2b6..00000000 --- a/build/node_modules/get-stream/index.d.ts +++ /dev/null @@ -1,105 +0,0 @@ -/// -import {Stream} from 'stream'; - -declare class MaxBufferErrorClass extends Error { - readonly name: 'MaxBufferError'; - constructor(); -} - -declare namespace getStream { - interface Options { - /** - Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected with a `MaxBufferError` error. - - @default Infinity - */ - readonly maxBuffer?: number; - } - - interface OptionsWithEncoding extends Options { - /** - [Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream. - - @default 'utf8' - */ - readonly encoding?: EncodingType; - } - - type MaxBufferError = MaxBufferErrorClass; -} - -declare const getStream: { - /** - Get the `stream` as a string. - - @returns A promise that resolves when the end event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode. - - @example - ``` - import * as fs from 'fs'; - import getStream = require('get-stream'); - - (async () => { - const stream = fs.createReadStream('unicorn.txt'); - - console.log(await getStream(stream)); - // ,,))))))));, - // __)))))))))))))), - // \|/ -\(((((''''((((((((. - // -*-==//////(('' . `)))))), - // /|\ ))| o ;-. '((((( ,(, - // ( `| / ) ;))))' ,_))^;(~ - // | | | ,))((((_ _____------~~~-. %,;(;(>';'~ - // o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~ - // ; ''''```` `: `:::|\,__,%% );`'; ~ - // | _ ) / `:|`----' `-' - // ______/\/~ | / / - // /~;;.____/;;' / ___--,-( `;;;/ - // / // _;______;'------~~~~~ /;;/\ / - // // | | / ; \;;,\ - // (<_ | ; /',/-----' _> - // \_| ||_ //~;~~~~~~~~~ - // `\_| (,~~ - // \~\ - // ~~ - })(); - ``` - */ - (stream: Stream, options?: getStream.OptionsWithEncoding): Promise; - - /** - Get the `stream` as a buffer. - - It honors the `maxBuffer` option as above, but it refers to byte length rather than string length. - */ - buffer( - stream: Stream, - options?: getStream.Options - ): Promise; - - /** - Get the `stream` as an array of values. - - It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen: - - - When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes). - - When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array. - - When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array. - */ - array( - stream: Stream, - options?: getStream.Options - ): Promise; - array( - stream: Stream, - options: getStream.OptionsWithEncoding<'buffer'> - ): Promise; - array( - stream: Stream, - options: getStream.OptionsWithEncoding - ): Promise; - - MaxBufferError: typeof MaxBufferErrorClass; -}; - -export = getStream; diff --git a/build/node_modules/get-stream/index.js b/build/node_modules/get-stream/index.js deleted file mode 100644 index 1c5d0286..00000000 --- a/build/node_modules/get-stream/index.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; -const {constants: BufferConstants} = require('buffer'); -const stream = require('stream'); -const {promisify} = require('util'); -const bufferStream = require('./buffer-stream'); - -const streamPipelinePromisified = promisify(stream.pipeline); - -class MaxBufferError extends Error { - constructor() { - super('maxBuffer exceeded'); - this.name = 'MaxBufferError'; - } -} - -async function getStream(inputStream, options) { - if (!inputStream) { - throw new Error('Expected a stream'); - } - - options = { - maxBuffer: Infinity, - ...options - }; - - const {maxBuffer} = options; - const stream = bufferStream(options); - - await new Promise((resolve, reject) => { - const rejectPromise = error => { - // Don't retrieve an oversized buffer. - if (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) { - error.bufferedData = stream.getBufferedValue(); - } - - reject(error); - }; - - (async () => { - try { - await streamPipelinePromisified(inputStream, stream); - resolve(); - } catch (error) { - rejectPromise(error); - } - })(); - - stream.on('data', () => { - if (stream.getBufferedLength() > maxBuffer) { - rejectPromise(new MaxBufferError()); - } - }); - }); - - return stream.getBufferedValue(); -} - -module.exports = getStream; -module.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'}); -module.exports.array = (stream, options) => getStream(stream, {...options, array: true}); -module.exports.MaxBufferError = MaxBufferError; diff --git a/build/node_modules/get-stream/license b/build/node_modules/get-stream/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/get-stream/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/get-stream/package.json b/build/node_modules/get-stream/package.json deleted file mode 100644 index bd47a75f..00000000 --- a/build/node_modules/get-stream/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "get-stream", - "version": "6.0.1", - "description": "Get a stream as a string, buffer, or array", - "license": "MIT", - "repository": "sindresorhus/get-stream", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "buffer-stream.js" - ], - "keywords": [ - "get", - "stream", - "promise", - "concat", - "string", - "text", - "buffer", - "read", - "data", - "consume", - "readable", - "readablestream", - "array", - "object" - ], - "devDependencies": { - "@types/node": "^14.0.27", - "ava": "^2.4.0", - "into-stream": "^5.0.0", - "tsd": "^0.13.1", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/get-stream/readme.md b/build/node_modules/get-stream/readme.md deleted file mode 100644 index 70b01fd1..00000000 --- a/build/node_modules/get-stream/readme.md +++ /dev/null @@ -1,124 +0,0 @@ -# get-stream - -> Get a stream as a string, buffer, or array - -## Install - -``` -$ npm install get-stream -``` - -## Usage - -```js -const fs = require('fs'); -const getStream = require('get-stream'); - -(async () => { - const stream = fs.createReadStream('unicorn.txt'); - - console.log(await getStream(stream)); - /* - ,,))))))));, - __)))))))))))))), - \|/ -\(((((''''((((((((. - -*-==//////(('' . `)))))), - /|\ ))| o ;-. '((((( ,(, - ( `| / ) ;))))' ,_))^;(~ - | | | ,))((((_ _____------~~~-. %,;(;(>';'~ - o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~ - ; ''''```` `: `:::|\,__,%% );`'; ~ - | _ ) / `:|`----' `-' - ______/\/~ | / / - /~;;.____/;;' / ___--,-( `;;;/ - / // _;______;'------~~~~~ /;;/\ / - // | | / ; \;;,\ - (<_ | ; /',/-----' _> - \_| ||_ //~;~~~~~~~~~ - `\_| (,~~ - \~\ - ~~ - */ -})(); -``` - -## API - -The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode. - -### getStream(stream, options?) - -Get the `stream` as a string. - -#### options - -Type: `object` - -##### encoding - -Type: `string`\ -Default: `'utf8'` - -[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream. - -##### maxBuffer - -Type: `number`\ -Default: `Infinity` - -Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected with a `getStream.MaxBufferError` error. - -### getStream.buffer(stream, options?) - -Get the `stream` as a buffer. - -It honors the `maxBuffer` option as above, but it refers to byte length rather than string length. - -### getStream.array(stream, options?) - -Get the `stream` as an array of values. - -It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen: - -- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes). - -- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array. - -- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array. - -## Errors - -If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error. - -```js -(async () => { - try { - await getStream(streamThatErrorsAtTheEnd('unicorn')); - } catch (error) { - console.log(error.bufferedData); - //=> 'unicorn' - } -})() -``` - -## FAQ - -### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)? - -This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package. - -## Related - -- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/get-value/LICENSE b/build/node_modules/get-value/LICENSE deleted file mode 100644 index 39245ac1..00000000 --- a/build/node_modules/get-value/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/get-value/index.js b/build/node_modules/get-value/index.js deleted file mode 100644 index 5879a884..00000000 --- a/build/node_modules/get-value/index.js +++ /dev/null @@ -1,50 +0,0 @@ -/*! - * get-value - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -module.exports = function(obj, prop, a, b, c) { - if (!isObject(obj) || !prop) { - return obj; - } - - prop = toString(prop); - - // allowing for multiple properties to be passed as - // a string or array, but much faster (3-4x) than doing - // `[].slice.call(arguments)` - if (a) prop += '.' + toString(a); - if (b) prop += '.' + toString(b); - if (c) prop += '.' + toString(c); - - if (prop in obj) { - return obj[prop]; - } - - var segs = prop.split('.'); - var len = segs.length; - var i = -1; - - while (obj && (++i < len)) { - var key = segs[i]; - while (key[key.length - 1] === '\\') { - key = key.slice(0, -1) + '.' + segs[++i]; - } - obj = obj[key]; - } - return obj; -}; - -function isObject(val) { - return val !== null && (typeof val === 'object' || typeof val === 'function'); -} - -function toString(val) { - if (!val) return ''; - if (Array.isArray(val)) { - return val.join('.'); - } - return val; -} diff --git a/build/node_modules/get-value/package.json b/build/node_modules/get-value/package.json deleted file mode 100644 index df168cd8..00000000 --- a/build/node_modules/get-value/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "get-value", - "description": "Use property paths (`a.b.c`) to get a nested value from an object.", - "version": "2.0.6", - "homepage": "https://github.com/jonschlinkert/get-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/get-value", - "bugs": { - "url": "https://github.com/jonschlinkert/get-value/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "ansi-bold": "^0.1.1", - "arr-reduce": "^1.0.1", - "benchmarked": "^0.1.4", - "dot-prop": "^2.2.0", - "getobject": "^0.1.0", - "gulp": "^3.9.0", - "gulp-eslint": "^1.1.1", - "gulp-format-md": "^0.1.5", - "gulp-istanbul": "^0.10.2", - "gulp-mocha": "^2.1.3", - "isobject": "^2.0.0", - "matched": "^0.3.2", - "minimist": "^1.2.0" - }, - "keywords": [ - "get", - "key", - "nested", - "object", - "path", - "paths", - "prop", - "properties", - "property", - "props", - "segment", - "value", - "values" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "has-any", - "has-any-deep", - "has-value", - "set-value", - "unset-value" - ] - }, - "reflinks": [ - "verb", - "verb-readme-generator" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/getopts/LICENSE.md b/build/node_modules/getopts/LICENSE.md deleted file mode 100644 index 6ba7a0fb..00000000 --- a/build/node_modules/getopts/LICENSE.md +++ /dev/null @@ -1,7 +0,0 @@ -Copyright © Jorge Bucaran <> - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/getopts/README.md b/build/node_modules/getopts/README.md deleted file mode 100644 index 6a9ebf83..00000000 --- a/build/node_modules/getopts/README.md +++ /dev/null @@ -1,264 +0,0 @@ -# Getopts - -> Parse CLI arguments. - -- Lightweight drop-in replacement for `minimist` and clones. -- Small (180 LOC), focused, no dependencies. -- Up to [6x faster](#benchmarks) than alternatives! - -Break up command-line arguments into key-value pairs for easy look-up and retrieval. Built upon [utility conventions](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02) that have been used for decades, Getopts sane defaults help you write CLI tools that look and feel like the real deal. - -```console -$ example --type=module -o main.js *.{js,json} -``` - -```js -import getopts from "getopts" - -const options = getopts(process.argv.slice(2), { - alias: { - output: ["o", "f"], - type: "t", - }, -}) -``` - -The result is an object populated with all the parsed arguments. - -```js -{ - _: ["index.js", "package.json"], - output: "main.js", - type: "module", - o: "main.js", - f: "main.js", - t: "module", -} -``` - -## Installation - -```console -npm install getopts -``` - -## Parsing rules - -### Short options - -A short option consists of a `-` followed by a single alphabetic character. Multiple options can be grouped together without spaces. Short options are boolean by default unless followed by an [operand](#operand) (non-option) or if adjacent to any non-alphabetic characters: - -```js -getopts(["-ab", "-c"]) //=> { _: [], a:true, b:true, c:true } -``` - -```js -getopts(["-a", "alpha"]) //=> { _: [], a:"alpha" } -``` - -```js -getopts(["-abc1"]) //=> { _: [], a:true, b:true, c:1 } -``` - -Use [`opts.string`](#optsstring) to parse an option as a string regardless. - -```js -getopts(["-kF12"], { - string: ["k"], -}) //=> { _: [], k:"F12" } -``` - -The first operand following an option will be used as its value. Use [`opts.boolean`](#optsboolean) to specify that an option should be parsed as a boolean regardless, causing the following argument to be treated as an operand instead. - -```js -getopts(["-a", "alpha"], { - boolean: ["a"], -}) //=> { _: ["alpha"], a:true } -``` - -Any character listed in the ASCII table can be used as a short option if it's the first character after the dash. - -```js -getopts(["-9", "-#10", "-%0.01"]) //=> { _:[], 9:true, #:10, %:0.01 } -``` - -### Long options - -A long option consists of a `--` followed by a name and a value separated by an `=`. Long options without a value are boolean by default. - -```js -getopts(["--turbo", "--warp=10"]) //=> { _: [], turbo:true, warp:10 } -``` - -```js -getopts(["--warp=e=mc^2"]) //=> { _: [], warp:"e=mc^2" } -``` - -```js -getopts(["--@", "alpha"]) //=> { _: [], @:"alpha" } -``` - -Negated options start with `--no-` and are always `false`. - -```js -getopts(["--no-turbo"]) //=> { _: [], turbo:false } -``` - -### Operands - -Every non-option argument is an operand. Operands are saved to the `result._` operands array. - -```js -getopts(["alpha", "-w9", "bravo"]) //=> { _: ["alpha", "bravo"], w:9 } -``` - -```js -getopts(["--code=alpha", "bravo"]) //=> { _: ["bravo"], code:"alpha" } -``` - -Everything after a standalone `--` is an operand. - -```js -getopts(["--alpha", "--", "--bravo", "--turbo"]) //=> { _:["--bravo", "--turbo"], alpha:true } -``` - -A single `-` is also treated as an operand. - -```js -getopts(["--turbo", "-"]) //=> { _:["-"], turbo:true } -``` - -### Other - -Options specified as boolean or string will be added to the result object as `false` or `""` (even if missing from the arguments array). - -```js -getopts([], { - string: ["a"], - boolean: ["b"], -}) //=> { _:[], a:"", b:false } -``` - -Repeated options are stored as arrays with every value in order of appearance. - -```js -getopts(["-x?alpha=bravo", "-x3.14", "-x"] //=> { _:[], a:["?alpha=bravo", 3.14, true] } -``` - -A value may contain newlines or other control characters. - -```js -getopts(["--text=top\n\tbottom"]) //=> { _:[], text:"top\n\tbottom" } -``` - -`="false"` is converted to boolean by default. - -```js -getopts(["--turbo=false"]) //=> { _:[], turbo:false } -``` - -## API - -### `getopts(argv, opts)` - -Parse command-line arguments. Returns an object mapping argument names to their values. - -### `argv[]` - -An array of arguments, usually [`process.argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv). - -### `opts.alias` - -An object of option aliases. An alias can be a string or an array of strings. Aliases let you declare substitute names for an option, e.g., the short (abbreviated) and long (canonical) variations. - -```js -getopts(["-t"], { - alias: { - turbo: ["t", "T"], - }, -}) //=> { _:[], t:true, T:true, turbo:true } -``` - -### `opts.boolean` - -An array of options to parse as boolean. In the example below, `t` is parsed as a boolean, causing the following argument to be treated as an operand. - -```js -getopts(["-t", "alpha"], { - boolean: ["t"], -}) //=> { _:["alpha"], t:true } -``` - -### `opts.string` - -An array of flags to parse as strings. In the example below, `t` is parsed as a string, causing all adjacent characters to be treated as a single value and not as individual options. - -```js -getopts(["-atabc"], { - string: ["t"], -}) //=> { _:[], a:true, t:"abc" } -``` - -### `opts.default` - -An object of default values for options not present in the arguments array. - -```js -getopts(["--warp=10"], { - default: { - warp: 15, - turbo: true, - }, -}) //=> { _:[], warp:10, turbo:true } -``` - -### `opts.unknown()` - -We call this function for each unknown option. Return `false` to discard the option. Unknown options are those that appear in the arguments array, but are not in `opts.string`, `opts.boolean`, `opts.default`, or `opts.alias`. - -```js -getopts(["-abc"], { - unknown: (option) => "a" === option, -}) //=> { _:[], a:true } -``` - -### `opts.stopEarly` - -A boolean property. If `true`, the operands array `_` will be populated with all the arguments after the first operand. - -```js -getopts(["-w9", "alpha", "--turbo", "bravo"], { - stopEarly: true, -}) //=> { _:["alpha", "--turbo", "bravo"], w:9 } -``` - -This property is useful when implementing sub-commands in a CLI. - -```js -import getopts from "getopts" -import { install, update, uninstall } from "./commands.js" - -const options = getopts(process.argv.slice(2), { - stopEarly: true, -}) - -const [command, subargv] = options._ - -if (command === "install") { - install(subargv) -} else if (command === "update") { - update(subargv) -} else if (command === "uninstall") { - uninstall(subargv) -} -``` - -## Benchmarks - -```console -npm --prefix bench start -``` - -## License - -[MIT](LICENSE.md) diff --git a/build/node_modules/getopts/index.cjs b/build/node_modules/getopts/index.cjs deleted file mode 100644 index a9f14367..00000000 --- a/build/node_modules/getopts/index.cjs +++ /dev/null @@ -1,193 +0,0 @@ -const EMPTYARR = [] -const SHORTSPLIT = /$|[!-@[-`{-~][\s\S]*/g -const isArray = Array.isArray - -const parseValue = function (any) { - if (any === "") return "" - if (any === "false") return false - const maybe = +any - return maybe * 0 === 0 ? maybe : any -} - -const parseAlias = function (aliases) { - let out = {}, - alias, - prev, - any - - for (let key in aliases) { - any = aliases[key] - alias = out[key] = isArray(any) ? any : [any] - - for (let i = 0; i < alias.length; i++) { - prev = out[alias[i]] = [key] - - for (let k = 0; k < alias.length; k++) { - if (i !== k) prev.push(alias[k]) - } - } - } - - return out -} - -const parseDefault = function (aliases, defaults) { - let out = {}, - alias, - value - - for (let key in defaults) { - alias = aliases[key] - value = defaults[key] - - out[key] = value - - if (alias === undefined) { - aliases[key] = EMPTYARR - } else { - for (let i = 0; i < alias.length; i++) { - out[alias[i]] = value - } - } - } - - return out -} - -const parseOptions = function (aliases, options, value) { - let out = {}, - key, - alias - - if (options !== undefined) { - for (let i = 0; i < options.length; i++) { - key = options[i] - alias = aliases[key] - - out[key] = value - - if (alias === undefined) { - aliases[key] = EMPTYARR - } else { - for (let k = 0, end = alias.length; k < end; k++) { - out[alias[k]] = value - } - } - } - } - - return out -} - -const write = function (out, key, value, aliases, unknown) { - let prev, - alias = aliases[key], - len = alias === undefined ? -1 : alias.length - - if (len >= 0 || unknown === undefined || unknown(key)) { - prev = out[key] - - if (prev === undefined) { - out[key] = value - } else { - if (isArray(prev)) { - prev.push(value) - } else { - out[key] = [prev, value] - } - } - - for (let i = 0; i < len; i++) { - out[alias[i]] = out[key] - } - } -} - -module.exports = function (argv, opts) { - let unknown = (opts = opts || {}).unknown, - aliases = parseAlias(opts.alias), - strings = parseOptions(aliases, opts.string, ""), - values = parseDefault(aliases, opts.default), - bools = parseOptions(aliases, opts.boolean, false), - stopEarly = opts.stopEarly, - _ = [], - out = { _ }, - key, - arg, - end, - match, - value - - for (let i = 0, len = argv.length; i < len; i++) { - arg = argv[i] - - if (arg[0] !== "-" || arg === "-") { - if (stopEarly) { - while (i < len) { - _.push(argv[i++]) - } - } else { - _.push(arg) - } - } else if (arg === "--") { - while (++i < len) { - _.push(argv[i]) - } - } else if (arg[1] === "-") { - end = arg.indexOf("=", 2) - if (arg[2] === "n" && arg[3] === "o" && arg[4] === "-") { - key = arg.slice(5, end >= 0 ? end : undefined) - value = false - } else if (end >= 0) { - key = arg.slice(2, end) - value = - bools[key] !== undefined || - (strings[key] === undefined - ? parseValue(arg.slice(end + 1)) - : arg.slice(end + 1)) - } else { - key = arg.slice(2) - value = - bools[key] !== undefined || - (len === i + 1 || argv[i + 1][0] === "-" - ? strings[key] === undefined - ? true - : "" - : strings[key] === undefined - ? parseValue(argv[++i]) - : argv[++i]) - } - write(out, key, value, aliases, unknown) - } else { - SHORTSPLIT.lastIndex = 2 - match = SHORTSPLIT.exec(arg) - end = match.index - value = match[0] - - for (let k = 1; k < end; k++) { - write( - out, - (key = arg[k]), - k + 1 < end - ? strings[key] === undefined || - arg.substring(k + 1, (k = end)) + value - : value === "" - ? len === i + 1 || argv[i + 1][0] === "-" - ? strings[key] === undefined || "" - : bools[key] !== undefined || - (strings[key] === undefined ? parseValue(argv[++i]) : argv[++i]) - : bools[key] !== undefined || - (strings[key] === undefined ? parseValue(value) : value), - aliases, - unknown - ) - } - } - } - - for (let key in values) if (out[key] === undefined) out[key] = values[key] - for (let key in bools) if (out[key] === undefined) out[key] = false - for (let key in strings) if (out[key] === undefined) out[key] = "" - - return out -} diff --git a/build/node_modules/getopts/index.d.ts b/build/node_modules/getopts/index.d.ts deleted file mode 100644 index 4459a238..00000000 --- a/build/node_modules/getopts/index.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @param argv Arguments to parse. - * @param options Parsing options (configuration). - * @returns The parsed arguments. - */ -declare function getopts( - argv: string[], - options?: getopts.Options -): getopts.ParsedOptions - -export = getopts - -declare namespace getopts { - export interface ParsedOptions { - _: string[] - [key: string]: any - } - - export interface Options { - alias?: { [key: string]: string | string[] } - string?: string[] - boolean?: string[] - default?: { [key: string]: any } - unknown?: (optionName: string) => boolean - stopEarly?: boolean - } -} diff --git a/build/node_modules/getopts/index.js b/build/node_modules/getopts/index.js deleted file mode 100644 index e15c70fc..00000000 --- a/build/node_modules/getopts/index.js +++ /dev/null @@ -1,193 +0,0 @@ -const EMPTYARR = [] -const SHORTSPLIT = /$|[!-@[-`{-~][\s\S]*/g -const isArray = Array.isArray - -const parseValue = function (any) { - if (any === "") return "" - if (any === "false") return false - const maybe = +any - return maybe * 0 === 0 ? maybe : any -} - -const parseAlias = function (aliases) { - let out = {}, - alias, - prev, - any - - for (let key in aliases) { - any = aliases[key] - alias = out[key] = isArray(any) ? any : [any] - - for (let i = 0; i < alias.length; i++) { - prev = out[alias[i]] = [key] - - for (let k = 0; k < alias.length; k++) { - if (i !== k) prev.push(alias[k]) - } - } - } - - return out -} - -const parseDefault = function (aliases, defaults) { - let out = {}, - alias, - value - - for (let key in defaults) { - alias = aliases[key] - value = defaults[key] - - out[key] = value - - if (alias === undefined) { - aliases[key] = EMPTYARR - } else { - for (let i = 0; i < alias.length; i++) { - out[alias[i]] = value - } - } - } - - return out -} - -const parseOptions = function (aliases, options, value) { - let out = {}, - key, - alias - - if (options !== undefined) { - for (let i = 0; i < options.length; i++) { - key = options[i] - alias = aliases[key] - - out[key] = value - - if (alias === undefined) { - aliases[key] = EMPTYARR - } else { - for (let k = 0, end = alias.length; k < end; k++) { - out[alias[k]] = value - } - } - } - } - - return out -} - -const write = function (out, key, value, aliases, unknown) { - let prev, - alias = aliases[key], - len = alias === undefined ? -1 : alias.length - - if (len >= 0 || unknown === undefined || unknown(key)) { - prev = out[key] - - if (prev === undefined) { - out[key] = value - } else { - if (isArray(prev)) { - prev.push(value) - } else { - out[key] = [prev, value] - } - } - - for (let i = 0; i < len; i++) { - out[alias[i]] = out[key] - } - } -} - -export default function (argv, opts) { - let unknown = (opts = opts || {}).unknown, - aliases = parseAlias(opts.alias), - strings = parseOptions(aliases, opts.string, ""), - values = parseDefault(aliases, opts.default), - bools = parseOptions(aliases, opts.boolean, false), - stopEarly = opts.stopEarly, - _ = [], - out = { _ }, - key, - arg, - end, - match, - value - - for (let i = 0, len = argv.length; i < len; i++) { - arg = argv[i] - - if (arg[0] !== "-" || arg === "-") { - if (stopEarly) { - while (i < len) { - _.push(argv[i++]) - } - } else { - _.push(arg) - } - } else if (arg === "--") { - while (++i < len) { - _.push(argv[i]) - } - } else if (arg[1] === "-") { - end = arg.indexOf("=", 2) - if (arg[2] === "n" && arg[3] === "o" && arg[4] === "-") { - key = arg.slice(5, end >= 0 ? end : undefined) - value = false - } else if (end >= 0) { - key = arg.slice(2, end) - value = - bools[key] !== undefined || - (strings[key] === undefined - ? parseValue(arg.slice(end + 1)) - : arg.slice(end + 1)) - } else { - key = arg.slice(2) - value = - bools[key] !== undefined || - (len === i + 1 || argv[i + 1][0] === "-" - ? strings[key] === undefined - ? true - : "" - : strings[key] === undefined - ? parseValue(argv[++i]) - : argv[++i]) - } - write(out, key, value, aliases, unknown) - } else { - SHORTSPLIT.lastIndex = 2 - match = SHORTSPLIT.exec(arg) - end = match.index - value = match[0] - - for (let k = 1; k < end; k++) { - write( - out, - (key = arg[k]), - k + 1 < end - ? strings[key] === undefined || - arg.substring(k + 1, (k = end)) + value - : value === "" - ? len === i + 1 || argv[i + 1][0] === "-" - ? strings[key] === undefined || "" - : bools[key] !== undefined || - (strings[key] === undefined ? parseValue(argv[++i]) : argv[++i]) - : bools[key] !== undefined || - (strings[key] === undefined ? parseValue(value) : value), - aliases, - unknown - ) - } - } - } - - for (let key in values) if (out[key] === undefined) out[key] = values[key] - for (let key in bools) if (out[key] === undefined) out[key] = false - for (let key in strings) if (out[key] === undefined) out[key] = "" - - return out -} diff --git a/build/node_modules/getopts/package.json b/build/node_modules/getopts/package.json deleted file mode 100644 index 9d5d3512..00000000 --- a/build/node_modules/getopts/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "getopts", - "version": "2.3.0", - "type": "module", - "main": "index.cjs", - "types": "index.d.ts", - "description": "Parse CLI arguments.", - "repository": "jorgebucaran/getopts", - "license": "MIT", - "exports": { - "./package.json": "./package.json", - ".": { - "require": "./index.cjs", - "import": "./index.js" - } - }, - "files": [ - "*.*(c)[tj]s" - ], - "author": "Jorge Bucaran", - "keywords": [ - "cli", - "argv", - "flags", - "parse", - "getopts", - "minimist", - "cli-parser" - ], - "scripts": { - "test": "c8 twist tests/*.js", - "build": "node -e \"fs.writeFileSync('index.cjs',fs.readFileSync('index.js','utf8').replace(/export default/,'module.exports ='),'utf8')\"", - "deploy": "npm test && git commit --all --message $tag && git tag --sign $tag --message $tag && git push && git push --tags", - "release": "tag=$npm_package_version npm run deploy && npm publish --access public", - "prepare": "npm run build" - }, - "devDependencies": { - "c8": "*", - "twist": "*" - } -} diff --git a/build/node_modules/glob-parent/LICENSE b/build/node_modules/glob-parent/LICENSE deleted file mode 100644 index d701b083..00000000 --- a/build/node_modules/glob-parent/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2015, 2019 Elan Shanker, 2021 Blaine Bublitz , Eric Schoffstall and other contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/glob-parent/README.md b/build/node_modules/glob-parent/README.md deleted file mode 100644 index 6ae18a1a..00000000 --- a/build/node_modules/glob-parent/README.md +++ /dev/null @@ -1,134 +0,0 @@ -

- - - -

- -# glob-parent - -[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url] - -Extract the non-magic parent path from a glob string. - -## Usage - -```js -var globParent = require('glob-parent'); - -globParent('path/to/*.js'); // 'path/to' -globParent('/root/path/to/*.js'); // '/root/path/to' -globParent('/*.js'); // '/' -globParent('*.js'); // '.' -globParent('**/*.js'); // '.' -globParent('path/{to,from}'); // 'path' -globParent('path/!(to|from)'); // 'path' -globParent('path/?(to|from)'); // 'path' -globParent('path/+(to|from)'); // 'path' -globParent('path/*(to|from)'); // 'path' -globParent('path/@(to|from)'); // 'path' -globParent('path/**/*'); // 'path' - -// if provided a non-glob path, returns the nearest dir -globParent('path/foo/bar.js'); // 'path/foo' -globParent('path/foo/'); // 'path/foo' -globParent('path/foo'); // 'path' (see issue #3 for details) -``` - -## API - -### `globParent(maybeGlobString, [options])` - -Takes a string and returns the part of the path before the glob begins. Be aware of Escaping rules and Limitations below. - -#### options - -```js -{ - // Disables the automatic conversion of slashes for Windows - flipBackslashes: true; -} -``` - -## Escaping - -The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters: - -- `?` (question mark) unless used as a path segment alone -- `*` (asterisk) -- `|` (pipe) -- `(` (opening parenthesis) -- `)` (closing parenthesis) -- `{` (opening curly brace) -- `}` (closing curly brace) -- `[` (opening bracket) -- `]` (closing bracket) - -**Example** - -```js -globParent('foo/[bar]/'); // 'foo' -globParent('foo/\\[bar]/'); // 'foo/[bar]' -``` - -## Limitations - -### Braces & Brackets - -This library attempts a quick and imperfect method of determining which path -parts have glob magic without fully parsing/lexing the pattern. There are some -advanced use cases that can trip it up, such as nested braces where the outer -pair is escaped and the inner one contains a path separator. If you find -yourself in the unlikely circumstance of being affected by this or need to -ensure higher-fidelity glob handling in your library, it is recommended that you -pre-process your input with [expand-braces] and/or [expand-brackets]. - -### Windows - -Backslashes are not valid path separators for globs. If a path with backslashes -is provided anyway, for simple cases, glob-parent will replace the path -separator for you and return the non-glob parent path (now with -forward-slashes, which are still valid as Windows path separators). - -This cannot be used in conjunction with escape characters. - -```js -// BAD -globParent('C:\\Program Files \\(x86\\)\\*.ext'); // 'C:/Program Files /(x86/)' - -// GOOD -globParent('C:/Program Files\\(x86\\)/*.ext'); // 'C:/Program Files (x86)' -``` - -If you are using escape characters for a pattern without path parts (i.e. -relative to `cwd`), prefix with `./` to avoid confusing glob-parent. - -```js -// BAD -globParent('foo \\[bar]'); // 'foo ' -globParent('foo \\[bar]*'); // 'foo ' - -// GOOD -globParent('./foo \\[bar]'); // 'foo [bar]' -globParent('./foo \\[bar]*'); // '.' -``` - -## License - -ISC - - -[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg?style=flat-square -[npm-url]: https://www.npmjs.com/package/glob-parent -[npm-image]: https://img.shields.io/npm/v/glob-parent.svg?style=flat-square - -[ci-url]: https://github.com/gulpjs/glob-parent/actions?query=workflow:dev -[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/glob-parent/dev?style=flat-square - -[coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent -[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg?style=flat-square - - - -[expand-braces]: https://github.com/jonschlinkert/expand-braces -[expand-brackets]: https://github.com/jonschlinkert/expand-brackets - diff --git a/build/node_modules/glob-parent/index.js b/build/node_modules/glob-parent/index.js deleted file mode 100644 index 09dde64b..00000000 --- a/build/node_modules/glob-parent/index.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; - -var isGlob = require('is-glob'); -var pathPosixDirname = require('path').posix.dirname; -var isWin32 = require('os').platform() === 'win32'; - -var slash = '/'; -var backslash = /\\/g; -var escaped = /\\([!*?|[\](){}])/g; - -/** - * @param {string} str - * @param {Object} opts - * @param {boolean} [opts.flipBackslashes=true] - */ -module.exports = function globParent(str, opts) { - var options = Object.assign({ flipBackslashes: true }, opts); - - // flip windows path separators - if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { - str = str.replace(backslash, slash); - } - - // special case for strings ending in enclosure containing path separator - if (isEnclosure(str)) { - str += slash; - } - - // preserves full path in case of trailing path separator - str += 'a'; - - // remove path parts that are globby - do { - str = pathPosixDirname(str); - } while (isGlobby(str)); - - // remove escape chars and return result - return str.replace(escaped, '$1'); -}; - -function isEnclosure(str) { - var lastChar = str.slice(-1); - - var enclosureStart; - switch (lastChar) { - case '}': - enclosureStart = '{'; - break; - case ']': - enclosureStart = '['; - break; - default: - return false; - } - - var foundIndex = str.indexOf(enclosureStart); - if (foundIndex < 0) { - return false; - } - - return str.slice(foundIndex + 1, -1).includes(slash); -} - -function isGlobby(str) { - if (/\([^()]+$/.test(str)) { - return true; - } - if (str[0] === '{' || str[0] === '[') { - return true; - } - if (/[^\\][{[]/.test(str)) { - return true; - } - return isGlob(str); -} diff --git a/build/node_modules/glob-parent/package.json b/build/node_modules/glob-parent/package.json deleted file mode 100644 index baeab421..00000000 --- a/build/node_modules/glob-parent/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "glob-parent", - "version": "6.0.2", - "description": "Extract the non-magic parent path from a glob string.", - "author": "Gulp Team (https://gulpjs.com/)", - "contributors": [ - "Elan Shanker (https://github.com/es128)", - "Blaine Bublitz " - ], - "repository": "gulpjs/glob-parent", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - }, - "main": "index.js", - "files": [ - "LICENSE", - "index.js" - ], - "scripts": { - "lint": "eslint .", - "pretest": "npm run lint", - "test": "nyc mocha --async-only" - }, - "dependencies": { - "is-glob": "^4.0.3" - }, - "devDependencies": { - "eslint": "^7.0.0", - "eslint-config-gulp": "^5.0.0", - "expect": "^26.0.1", - "mocha": "^7.1.2", - "nyc": "^15.0.1" - }, - "nyc": { - "reporter": [ - "lcov", - "text-summary" - ] - }, - "prettier": { - "singleQuote": true - }, - "keywords": [ - "glob", - "parent", - "strip", - "path", - "dirname", - "directory", - "base", - "wildcard" - ] -} diff --git a/build/node_modules/glob-to-regexp/.travis.yml b/build/node_modules/glob-to-regexp/.travis.yml deleted file mode 100644 index ddc9c4f9..00000000 --- a/build/node_modules/glob-to-regexp/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.8 - - "0.10" \ No newline at end of file diff --git a/build/node_modules/glob-to-regexp/README.md b/build/node_modules/glob-to-regexp/README.md deleted file mode 100644 index afb41142..00000000 --- a/build/node_modules/glob-to-regexp/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# Glob To Regular Expression - -[![Build Status](https://travis-ci.org/fitzgen/glob-to-regexp.png?branch=master)](https://travis-ci.org/fitzgen/glob-to-regexp) - -Turn a \*-wildcard style glob (`"*.min.js"`) into a regular expression -(`/^.*\.min\.js$/`)! - -To match bash-like globs, eg. `?` for any single-character match, `[a-z]` for -character ranges, and `{*.html, *.js}` for multiple alternatives, call with -`{ extended: true }`. - -To obey [globstars `**`](https://github.com/isaacs/node-glob#glob-primer) rules set option `{globstar: true}`. -NOTE: This changes the behavior of `*` when `globstar` is `true` as shown below: -When `{globstar: true}`: `/foo/**` will match any string that starts with `/foo/` -like `/foo/index.htm`, `/foo/bar/baz.txt`, etc. Also, `/foo/**/*.txt` will match -any string that starts with `/foo/` and ends with `.txt` like `/foo/bar.txt`, -`/foo/bar/baz.txt`, etc. -Whereas `/foo/*` (single `*`, not a globstar) will match strings that start with -`/foo/` like `/foo/index.htm`, `/foo/baz.txt` but will not match strings that -contain a `/` to the right like `/foo/bar/baz.txt`, `/foo/bar/baz/qux.dat`, etc. - -Set flags on the resulting `RegExp` object by adding the `flags` property to the option object, eg `{ flags: "i" }` for ignoring case. - -## Install - - npm install glob-to-regexp - -## Usage -```js -var globToRegExp = require('glob-to-regexp'); -var re = globToRegExp("p*uck"); -re.test("pot luck"); // true -re.test("pluck"); // true -re.test("puck"); // true - -re = globToRegExp("*.min.js"); -re.test("http://example.com/jquery.min.js"); // true -re.test("http://example.com/jquery.min.js.map"); // false - -re = globToRegExp("*/www/*.js"); -re.test("http://example.com/www/app.js"); // true -re.test("http://example.com/www/lib/factory-proxy-model-observer.js"); // true - -// Extended globs -re = globToRegExp("*/www/{*.js,*.html}", { extended: true }); -re.test("http://example.com/www/app.js"); // true -re.test("http://example.com/www/index.html"); // true -``` - -## License - -Copyright (c) 2013, Nick Fitzgerald - -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build/node_modules/glob-to-regexp/index.js b/build/node_modules/glob-to-regexp/index.js deleted file mode 100644 index 03bd0900..00000000 --- a/build/node_modules/glob-to-regexp/index.js +++ /dev/null @@ -1,131 +0,0 @@ -module.exports = function (glob, opts) { - if (typeof glob !== 'string') { - throw new TypeError('Expected a string'); - } - - var str = String(glob); - - // The regexp we are building, as a string. - var reStr = ""; - - // Whether we are matching so called "extended" globs (like bash) and should - // support single character matching, matching ranges of characters, group - // matching, etc. - var extended = opts ? !!opts.extended : false; - - // When globstar is _false_ (default), '/foo/*' is translated a regexp like - // '^\/foo\/.*$' which will match any string beginning with '/foo/' - // When globstar is _true_, '/foo/*' is translated to regexp like - // '^\/foo\/[^/]*$' which will match any string beginning with '/foo/' BUT - // which does not have a '/' to the right of it. - // E.g. with '/foo/*' these will match: '/foo/bar', '/foo/bar.txt' but - // these will not '/foo/bar/baz', '/foo/bar/baz.txt' - // Lastely, when globstar is _true_, '/foo/**' is equivelant to '/foo/*' when - // globstar is _false_ - var globstar = opts ? !!opts.globstar : false; - - // If we are doing extended matching, this boolean is true when we are inside - // a group (eg {*.html,*.js}), and false otherwise. - var inGroup = false; - - // RegExp flags (eg "i" ) to pass in to RegExp constructor. - var flags = opts && typeof( opts.flags ) === "string" ? opts.flags : ""; - - var c; - for (var i = 0, len = str.length; i < len; i++) { - c = str[i]; - - switch (c) { - case "\\": - case "/": - case "$": - case "^": - case "+": - case ".": - case "(": - case ")": - case "=": - case "!": - case "|": - reStr += "\\" + c; - break; - - case "?": - if (extended) { - reStr += "."; - break; - } - - case "[": - case "]": - if (extended) { - reStr += c; - break; - } - - case "{": - if (extended) { - inGroup = true; - reStr += "("; - break; - } - - case "}": - if (extended) { - inGroup = false; - reStr += ")"; - break; - } - - case ",": - if (inGroup) { - reStr += "|"; - break; - } - reStr += "\\" + c; - break; - - case "*": - // Move over all consecutive "*"'s. - // Also store the previous and next characters - var prevChar = str[i - 1]; - var starCount = 1; - while(str[i + 1] === "*") { - starCount++; - i++; - } - var nextChar = str[i + 1]; - - if (!globstar) { - // globstar is disabled, so treat any number of "*" as one - reStr += ".*"; - } else { - // globstar is enabled, so determine if this is a globstar segment - var isGlobstar = starCount > 1 // multiple "*"'s - && (prevChar === "/" || prevChar === undefined) // from the start of the segment - && (nextChar === "/" || nextChar === undefined) // to the end of the segment - - if (isGlobstar) { - // it's a globstar, so match zero or more path segments - reStr += "(?:[^/]*(?:\/|$))*"; - i++; // move over the "/" - } else { - // it's not a globstar, so only match one path segment - reStr += "[^/]*"; - } - } - break; - - default: - reStr += c; - } - } - - // When regexp 'g' flag is specified don't - // constrain the regular expression with ^ & $ - if (!flags || !~flags.indexOf('g')) { - reStr = "^" + reStr + "$"; - } - - return new RegExp(reStr, flags); -}; diff --git a/build/node_modules/glob-to-regexp/package.json b/build/node_modules/glob-to-regexp/package.json deleted file mode 100644 index 9a356a2d..00000000 --- a/build/node_modules/glob-to-regexp/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "glob-to-regexp", - "version": "0.3.0", - "description": "Convert globs to regular expressions", - "main": "index.js", - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/fitzgen/glob-to-regexp.git" - }, - "keywords": [ - "regexp", - "glob", - "regexps", - "regular expressions", - "regular expression", - "wildcard" - ], - "author": "Nick Fitzgerald ", - "license": "BSD" -} diff --git a/build/node_modules/glob-to-regexp/test.js b/build/node_modules/glob-to-regexp/test.js deleted file mode 100644 index 58f1080a..00000000 --- a/build/node_modules/glob-to-regexp/test.js +++ /dev/null @@ -1,227 +0,0 @@ -var globToRegexp = require("./index.js"); -var assert = require("assert"); - -function assertMatch(glob, str, opts) { - //console.log(glob, globToRegexp(glob, opts)); - assert.ok(globToRegexp(glob, opts).test(str)); -} - -function assertNotMatch(glob, str, opts) { - //console.log(glob, globToRegexp(glob, opts)); - assert.equal(false, globToRegexp(glob, opts).test(str)); -} - -function test(globstar) { - // Match everything - assertMatch("*", "foo"); - assertMatch("*", "foo", { flags: 'g' }); - - // Match the end - assertMatch("f*", "foo"); - assertMatch("f*", "foo", { flags: 'g' }); - - // Match the start - assertMatch("*o", "foo"); - assertMatch("*o", "foo", { flags: 'g' }); - - // Match the middle - assertMatch("f*uck", "firetruck"); - assertMatch("f*uck", "firetruck", { flags: 'g' }); - - // Don't match without Regexp 'g' - assertNotMatch("uc", "firetruck"); - // Match anywhere with RegExp 'g' - assertMatch("uc", "firetruck", { flags: 'g' }); - - // Match zero characters - assertMatch("f*uck", "fuck"); - assertMatch("f*uck", "fuck", { flags: 'g' }); - - // More complex matches - assertMatch("*.min.js", "http://example.com/jquery.min.js", {globstar: false}); - assertMatch("*.min.*", "http://example.com/jquery.min.js", {globstar: false}); - assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js", {globstar: false}); - - // More complex matches with RegExp 'g' flag (complex regression) - assertMatch("*.min.*", "http://example.com/jquery.min.js", { flags: 'g' }); - assertMatch("*.min.js", "http://example.com/jquery.min.js", { flags: 'g' }); - assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js", { flags: 'g' }); - - var testStr = "\\/$^+?.()=!|{},[].*" - assertMatch(testStr, testStr); - assertMatch(testStr, testStr, { flags: 'g' }); - - // Equivalent matches without/with using RegExp 'g' - assertNotMatch(".min.", "http://example.com/jquery.min.js"); - assertMatch("*.min.*", "http://example.com/jquery.min.js"); - assertMatch(".min.", "http://example.com/jquery.min.js", { flags: 'g' }); - - assertNotMatch("http:", "http://example.com/jquery.min.js"); - assertMatch("http:*", "http://example.com/jquery.min.js"); - assertMatch("http:", "http://example.com/jquery.min.js", { flags: 'g' }); - - assertNotMatch("min.js", "http://example.com/jquery.min.js"); - assertMatch("*.min.js", "http://example.com/jquery.min.js"); - assertMatch("min.js", "http://example.com/jquery.min.js", { flags: 'g' }); - - // Match anywhere (globally) using RegExp 'g' - assertMatch("min", "http://example.com/jquery.min.js", { flags: 'g' }); - assertMatch("/js/", "http://example.com/js/jquery.min.js", { flags: 'g' }); - - assertNotMatch("/js*jq*.js", "http://example.com/js/jquery.min.js"); - assertMatch("/js*jq*.js", "http://example.com/js/jquery.min.js", { flags: 'g' }); - - // Extended mode - - // ?: Match one character, no more and no less - assertMatch("f?o", "foo", { extended: true }); - assertNotMatch("f?o", "fooo", { extended: true }); - assertNotMatch("f?oo", "foo", { extended: true }); - - // ?: Match one character with RegExp 'g' - assertMatch("f?o", "foo", { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("f?o", "fooo", { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("f?o?", "fooo", { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("?fo", "fooo", { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("f?oo", "foo", { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("foo?", "foo", { extended: true, globstar: globstar, flags: 'g' }); - - // []: Match a character range - assertMatch("fo[oz]", "foo", { extended: true }); - assertMatch("fo[oz]", "foz", { extended: true }); - assertNotMatch("fo[oz]", "fog", { extended: true }); - - // []: Match a character range and RegExp 'g' (regresion) - assertMatch("fo[oz]", "foo", { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("fo[oz]", "foz", { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("fo[oz]", "fog", { extended: true, globstar: globstar, flags: 'g' }); - - // {}: Match a choice of different substrings - assertMatch("foo{bar,baaz}", "foobaaz", { extended: true }); - assertMatch("foo{bar,baaz}", "foobar", { extended: true }); - assertNotMatch("foo{bar,baaz}", "foobuzz", { extended: true }); - assertMatch("foo{bar,b*z}", "foobuzz", { extended: true }); - - // {}: Match a choice of different substrings and RegExp 'g' (regression) - assertMatch("foo{bar,baaz}", "foobaaz", { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("foo{bar,baaz}", "foobar", { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("foo{bar,baaz}", "foobuzz", { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("foo{bar,b*z}", "foobuzz", { extended: true, globstar: globstar, flags: 'g' }); - - // More complex extended matches - assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://foo.baaz.com/jquery.min.js", - { extended: true }); - assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://moz.buzz.com/index.html", - { extended: true }); - assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://moz.buzz.com/index.htm", - { extended: true }); - assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://moz.bar.com/index.html", - { extended: true }); - assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://flozz.buzz.com/index.html", - { extended: true }); - - // More complex extended matches and RegExp 'g' (regresion) - assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://foo.baaz.com/jquery.min.js", - { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://moz.buzz.com/index.html", - { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://moz.buzz.com/index.htm", - { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://moz.bar.com/index.html", - { extended: true, globstar: globstar, flags: 'g' }); - assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", - "http://flozz.buzz.com/index.html", - { extended: true, globstar: globstar, flags: 'g' }); - - // globstar - assertMatch("http://foo.com/**/{*.js,*.html}", - "http://foo.com/bar/jquery.min.js", - { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("http://foo.com/**/{*.js,*.html}", - "http://foo.com/bar/baz/jquery.min.js", - { extended: true, globstar: globstar, flags: 'g' }); - assertMatch("http://foo.com/**", - "http://foo.com/bar/baz/jquery.min.js", - { extended: true, globstar: globstar, flags: 'g' }); - - // Remaining special chars should still match themselves - var testExtStr = "\\/$^+.()=!|,.*" - assertMatch(testExtStr, testExtStr, { extended: true }); - assertMatch(testExtStr, testExtStr, { extended: true, globstar: globstar, flags: 'g' }); -} - -// regression -// globstar false -test(false) -// globstar true -test(true); - -// globstar specific tests -assertMatch("/foo/*", "/foo/bar.txt", {globstar: true }); -assertMatch("/foo/**", "/foo/baz.txt", {globstar: true }); -assertMatch("/foo/**", "/foo/bar/baz.txt", {globstar: true }); -assertMatch("/foo/*/*.txt", "/foo/bar/baz.txt", {globstar: true }); -assertMatch("/foo/**/*.txt", "/foo/bar/baz.txt", {globstar: true }); -assertMatch("/foo/**/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertMatch("/foo/**/bar.txt", "/foo/bar.txt", {globstar: true }); -assertMatch("/foo/**/**/bar.txt", "/foo/bar.txt", {globstar: true }); -assertMatch("/foo/**/*/baz.txt", "/foo/bar/baz.txt", {globstar: true }); -assertMatch("/foo/**/*.txt", "/foo/bar.txt", {globstar: true }); -assertMatch("/foo/**/**/*.txt", "/foo/bar.txt", {globstar: true }); -assertMatch("/foo/**/*/*.txt", "/foo/bar/baz.txt", {globstar: true }); -assertMatch("**/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertMatch("**/foo.txt", "foo.txt", {globstar: true }); -assertMatch("**/*.txt", "foo.txt", {globstar: true }); - -assertNotMatch("/foo/*", "/foo/bar/baz.txt", {globstar: true }); -assertNotMatch("/foo/*.txt", "/foo/bar/baz.txt", {globstar: true }); -assertNotMatch("/foo/*/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertNotMatch("/foo/*/bar.txt", "/foo/bar.txt", {globstar: true }); -assertNotMatch("/foo/*/*/baz.txt", "/foo/bar/baz.txt", {globstar: true }); -assertNotMatch("/foo/**.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertNotMatch("/foo/bar**/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertNotMatch("/foo/bar**", "/foo/bar/baz.txt", {globstar: true }); -assertNotMatch("**/.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertNotMatch("*/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); -assertNotMatch("*/*.txt", "foo.txt", {globstar: true }); - -assertNotMatch("http://foo.com/*", - "http://foo.com/bar/baz/jquery.min.js", - { extended: true, globstar: true }); -assertNotMatch("http://foo.com/*", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: true }); - -assertMatch("http://foo.com/*", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: false }); -assertMatch("http://foo.com/**", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: true }); - -assertMatch("http://foo.com/*/*/jquery.min.js", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: true }); -assertMatch("http://foo.com/**/jquery.min.js", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: true }); -assertMatch("http://foo.com/*/*/jquery.min.js", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: false }); -assertMatch("http://foo.com/*/jquery.min.js", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: false }); -assertNotMatch("http://foo.com/*/jquery.min.js", - "http://foo.com/bar/baz/jquery.min.js", - { globstar: true }); - -console.log("Ok!"); diff --git a/build/node_modules/glob/LICENSE b/build/node_modules/glob/LICENSE deleted file mode 100644 index 42ca266d..00000000 --- a/build/node_modules/glob/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -## Glob Logo - -Glob's logo created by Tanya Brassie , licensed -under a Creative Commons Attribution-ShareAlike 4.0 International License -https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/build/node_modules/glob/README.md b/build/node_modules/glob/README.md deleted file mode 100644 index 83f0c83a..00000000 --- a/build/node_modules/glob/README.md +++ /dev/null @@ -1,378 +0,0 @@ -# Glob - -Match files using the patterns the shell uses, like stars and stuff. - -[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) - -This is a glob implementation in JavaScript. It uses the `minimatch` -library to do its matching. - -![a fun cartoon logo made of glob characters](logo/glob.png) - -## Usage - -Install with npm - -``` -npm i glob -``` - -```javascript -var glob = require("glob") - -// options is optional -glob("**/*.js", options, function (er, files) { - // files is an array of filenames. - // If the `nonull` option is set, and nothing - // was found, then files is ["**/*.js"] - // er is an error object or null. -}) -``` - -## Glob Primer - -"Globs" are the patterns you type when you do stuff like `ls *.js` on -the command line, or put `build/*` in a `.gitignore` file. - -Before parsing the path part patterns, braced sections are expanded -into a set. Braced sections start with `{` and end with `}`, with any -number of comma-delimited sections within. Braced sections may contain -slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. - -The following characters have special magic meaning when used in a -path portion: - -* `*` Matches 0 or more characters in a single path portion -* `?` Matches 1 character -* `[...]` Matches a range of characters, similar to a RegExp range. - If the first character of the range is `!` or `^` then it matches - any character not in the range. -* `!(pattern|pattern|pattern)` Matches anything that does not match - any of the patterns provided. -* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the - patterns provided. -* `+(pattern|pattern|pattern)` Matches one or more occurrences of the - patterns provided. -* `*(a|b|c)` Matches zero or more occurrences of the patterns provided -* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns - provided -* `**` If a "globstar" is alone in a path portion, then it matches - zero or more directories and subdirectories searching for matches. - It does not crawl symlinked directories. - -### Dots - -If a file or directory path portion has a `.` as the first character, -then it will not match any glob pattern unless that pattern's -corresponding path part also has a `.` as its first character. - -For example, the pattern `a/.*/c` would match the file at `a/.b/c`. -However the pattern `a/*/c` would not, because `*` does not start with -a dot character. - -You can make glob treat dots as normal characters by setting -`dot:true` in the options. - -### Basename Matching - -If you set `matchBase:true` in the options, and the pattern has no -slashes in it, then it will seek for any file anywhere in the tree -with a matching basename. For example, `*.js` would match -`test/simple/basic.js`. - -### Empty Sets - -If no matching files are found, then an empty array is returned. This -differs from the shell, where the pattern itself is returned. For -example: - - $ echo a*s*d*f - a*s*d*f - -To get the bash-style behavior, set the `nonull:true` in the options. - -### See Also: - -* `man sh` -* `man bash` (Search for "Pattern Matching") -* `man 3 fnmatch` -* `man 5 gitignore` -* [minimatch documentation](https://github.com/isaacs/minimatch) - -## glob.hasMagic(pattern, [options]) - -Returns `true` if there are any special characters in the pattern, and -`false` otherwise. - -Note that the options affect the results. If `noext:true` is set in -the options object, then `+(a|b)` will not be considered a magic -pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` -then that is considered magical, unless `nobrace:true` is set in the -options. - -## glob(pattern, [options], cb) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* `cb` `{Function}` - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Perform an asynchronous glob search. - -## glob.sync(pattern, [options]) - -* `pattern` `{String}` Pattern to be matched -* `options` `{Object}` -* return: `{Array}` filenames found matching the pattern - -Perform a synchronous glob search. - -## Class: glob.Glob - -Create a Glob object by instantiating the `glob.Glob` class. - -```javascript -var Glob = require("glob").Glob -var mg = new Glob(pattern, options, cb) -``` - -It's an EventEmitter, and starts walking the filesystem to find matches -immediately. - -### new glob.Glob(pattern, [options], [cb]) - -* `pattern` `{String}` pattern to search for -* `options` `{Object}` -* `cb` `{Function}` Called when an error occurs, or matches are found - * `err` `{Error | null}` - * `matches` `{Array}` filenames found matching the pattern - -Note that if the `sync` flag is set in the options, then matches will -be immediately available on the `g.found` member. - -### Properties - -* `minimatch` The minimatch object that the glob uses. -* `options` The options object passed in. -* `aborted` Boolean which is set to true when calling `abort()`. There - is no way at this time to continue a glob search after aborting, but - you can re-use the statCache to avoid having to duplicate syscalls. -* `cache` Convenience object. Each field has the following possible - values: - * `false` - Path does not exist - * `true` - Path exists - * `'FILE'` - Path exists, and is not a directory - * `'DIR'` - Path exists, and is a directory - * `[file, entries, ...]` - Path exists, is a directory, and the - array value is the results of `fs.readdir` -* `statCache` Cache of `fs.stat` results, to prevent statting the same - path multiple times. -* `symlinks` A record of which paths are symbolic links, which is - relevant in resolving `**` patterns. -* `realpathCache` An optional object which is passed to `fs.realpath` - to minimize unnecessary syscalls. It is stored on the instantiated - Glob object, and may be re-used. - -### Events - -* `end` When the matching is finished, this is emitted with all the - matches found. If the `nonull` option is set, and no match was found, - then the `matches` list contains the original pattern. The matches - are sorted, unless the `nosort` flag is set. -* `match` Every time a match is found, this is emitted with the specific - thing that matched. It is not deduplicated or resolved to a realpath. -* `error` Emitted when an unexpected error is encountered, or whenever - any fs error occurs if `options.strict` is set. -* `abort` When `abort()` is called, this event is raised. - -### Methods - -* `pause` Temporarily stop the search -* `resume` Resume the search -* `abort` Stop the search forever - -### Options - -All the options that can be passed to Minimatch can also be passed to -Glob to change pattern matching behavior. Also, some have been added, -or have glob-specific ramifications. - -All options are false by default, unless otherwise noted. - -All options are added to the Glob object, as well. - -If you are running many `glob` operations, you can pass a Glob object -as the `options` argument to a subsequent operation to shortcut some -`stat` and `readdir` calls. At the very least, you may pass in shared -`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that -parallel glob operations will be sped up by sharing information about -the filesystem. - -* `cwd` The current working directory in which to search. Defaults - to `process.cwd()`. -* `root` The place where patterns starting with `/` will be mounted - onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix - systems, and `C:\` or some such on Windows.) -* `dot` Include `.dot` files in normal matches and `globstar` matches. - Note that an explicit dot in a portion of the pattern will always - match dot files. -* `nomount` By default, a pattern starting with a forward-slash will be - "mounted" onto the root setting, so that a valid filesystem path is - returned. Set this flag to disable that behavior. -* `mark` Add a `/` character to directory matches. Note that this - requires additional stat calls. -* `nosort` Don't sort the results. -* `stat` Set to true to stat *all* results. This reduces performance - somewhat, and is completely unnecessary, unless `readdir` is presumed - to be an untrustworthy indicator of file existence. -* `silent` When an unusual error is encountered when attempting to - read a directory, a warning will be printed to stderr. Set the - `silent` option to true to suppress these warnings. -* `strict` When an unusual error is encountered when attempting to - read a directory, the process will just continue on in search of - other matches. Set the `strict` option to raise an error in these - cases. -* `cache` See `cache` property above. Pass in a previously generated - cache object to save some fs calls. -* `statCache` A cache of results of filesystem information, to prevent - unnecessary stat calls. While it should not normally be necessary - to set this, you may pass the statCache from one glob() call to the - options object of another, if you know that the filesystem will not - change between calls. (See "Race Conditions" below.) -* `symlinks` A cache of known symbolic links. You may pass in a - previously generated `symlinks` object to save `lstat` calls when - resolving `**` matches. -* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. -* `nounique` In some cases, brace-expanded patterns can result in the - same file showing up multiple times in the result set. By default, - this implementation prevents duplicates in the result set. Set this - flag to disable that behavior. -* `nonull` Set to never return an empty set, instead returning a set - containing the pattern itself. This is the default in glob(3). -* `debug` Set to enable debug logging in minimatch and glob. -* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. -* `noglobstar` Do not match `**` against multiple filenames. (Ie, - treat it as a normal `*` instead.) -* `noext` Do not match `+(a|b)` "extglob" patterns. -* `nocase` Perform a case-insensitive match. Note: on - case-insensitive filesystems, non-magic patterns will match by - default, since `stat` and `readdir` will not raise errors. -* `matchBase` Perform a basename-only match if the pattern does not - contain any slash characters. That is, `*.js` would be treated as - equivalent to `**/*.js`, matching all js files in all directories. -* `nodir` Do not match directories, only files. (Note: to match - *only* directories, simply put a `/` at the end of the pattern.) -* `ignore` Add a pattern or an array of glob patterns to exclude matches. - Note: `ignore` patterns are *always* in `dot:true` mode, regardless - of any other settings. -* `follow` Follow symlinked directories when expanding `**` patterns. - Note that this can result in a lot of duplicate references in the - presence of cyclic links. -* `realpath` Set to true to call `fs.realpath` on all of the results. - In the case of a symlink that cannot be resolved, the full absolute - path to the matched entry is returned (though it will usually be a - broken symlink) -* `absolute` Set to true to always receive absolute paths for matched - files. Unlike `realpath`, this also affects the values returned in - the `match` event. -* `fs` File-system object with Node's `fs` API. By default, the built-in - `fs` module will be used. Set to a volume provided by a library like - `memfs` to avoid using the "real" file-system. - -## Comparisons to other fnmatch/glob implementations - -While strict compliance with the existing standards is a worthwhile -goal, some discrepancies exist between node-glob and other -implementations, and are intentional. - -The double-star character `**` is supported by default, unless the -`noglobstar` flag is set. This is supported in the manner of bsdglob -and bash 4.3, where `**` only has special significance if it is the only -thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but -`a/**b` will not. - -Note that symlinked directories are not crawled as part of a `**`, -though their contents may match against subsequent portions of the -pattern. This prevents infinite loops and duplicates and the like. - -If an escaped pattern has no matches, and the `nonull` flag is set, -then glob returns the pattern as-provided, rather than -interpreting the character escapes. For example, -`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than -`"*a?"`. This is akin to setting the `nullglob` option in bash, except -that it does not resolve escaped pattern characters. - -If brace expansion is not disabled, then it is performed before any -other interpretation of the glob pattern. Thus, a pattern like -`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded -**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are -checked for validity. Since those two are valid, matching proceeds. - -### Comments and Negation - -Previously, this module let you mark a pattern as a "comment" if it -started with a `#` character, or a "negated" pattern if it started -with a `!` character. - -These options were deprecated in version 5, and removed in version 6. - -To specify things that should not match, use the `ignore` option. - -## Windows - -**Please only use forward-slashes in glob expressions.** - -Though windows uses either `/` or `\` as its path separator, only `/` -characters are used by this glob implementation. You must use -forward-slashes **only** in glob expressions. Back-slashes will always -be interpreted as escape characters, not path separators. - -Results from absolute patterns such as `/foo/*` are mounted onto the -root setting using `path.join`. On windows, this will by default result -in `/foo/*` matching `C:\foo\bar.txt`. - -## Race Conditions - -Glob searching, by its very nature, is susceptible to race conditions, -since it relies on directory walking and such. - -As a result, it is possible that a file that exists when glob looks for -it may have been deleted or modified by the time it returns the result. - -As part of its internal implementation, this program caches all stat -and readdir calls that it makes, in order to cut down on system -overhead. However, this also makes it even more susceptible to races, -especially if the cache or statCache objects are reused between glob -calls. - -Users are thus advised not to use a glob result as a guarantee of -filesystem state in the face of rapid changes. For the vast majority -of operations, this is never a problem. - -## Glob Logo -Glob's logo was created by [Tanya Brassie](http://tanyabrassie.com/). Logo files can be found [here](https://github.com/isaacs/node-glob/tree/master/logo). - -The logo is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/). - -## Contributing - -Any change to behavior (including bugfixes) must come with a test. - -Patches that fail tests or reduce performance will be rejected. - -``` -# to run tests -npm test - -# to re-generate test fixtures -npm run test-regen - -# to benchmark against bash/zsh -npm run bench - -# to profile javascript -npm run prof -``` - -![](oh-my-glob.gif) diff --git a/build/node_modules/glob/common.js b/build/node_modules/glob/common.js deleted file mode 100644 index 424c46e1..00000000 --- a/build/node_modules/glob/common.js +++ /dev/null @@ -1,238 +0,0 @@ -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var fs = require("fs") -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasort (a, b) { - return a.localeCompare(b, 'en') -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -// ignore patterns are always in dot:true mode. -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern, { dot: true }) - } - - return { - matcher: new Minimatch(pattern, { dot: true }), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - self.absolute = !!options.absolute - self.fs = options.fs || fs - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = path.resolve(options.cwd) - self.changedCwd = self.cwd !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - // TODO: is an absolute `cwd` supposed to be resolved against `root`? - // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') - self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) - if (process.platform === "win32") - self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") - self.nomount = !!options.nomount - - // disable comments and negation in Minimatch. - // Note that they are not supported in Glob itself anyway. - options.nonegate = true - options.nocomment = true - // always treat \ in patterns as escapes, not path separators - options.allowWindowsEscape = false - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - var notDir = !(/\/$/.test(e)) - var c = self.cache[e] || self.cache[makeAbs(self, e)] - if (notDir && c) - notDir = c !== 'DIR' && !Array.isArray(c) - return notDir - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - - if (process.platform === 'win32') - abs = abs.replace(/\\/g, '/') - - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} diff --git a/build/node_modules/glob/glob.js b/build/node_modules/glob/glob.js deleted file mode 100644 index 37a4d7e6..00000000 --- a/build/node_modules/glob/glob.js +++ /dev/null @@ -1,790 +0,0 @@ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var rp = require('fs.realpath') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -function extend (origin, add) { - if (add === null || typeof add !== 'object') { - return origin - } - - var keys = Object.keys(add) - var i = keys.length - while (i--) { - origin[keys[i]] = add[keys[i]] - } - return origin -} - -glob.hasMagic = function (pattern, options_) { - var options = extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - - if (!pattern) - return false - - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - this._processing = 0 - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - var sync = true - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - sync = false - - function done () { - --self._processing - if (self._processing <= 0) { - if (sync) { - process.nextTick(function () { - self._finish() - }) - } else { - self._finish() - } - } - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - rp.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || - isAbsolute(pattern.map(function (p) { - return typeof p === 'string' ? p : '[*]' - }).join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = isAbsolute(e) ? e : this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) - e = abs - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - self.fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er && er.code === 'ENOENT') - return cb() - - var isSym = lstat && lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - self.fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - this.emit('error', error) - this.abort() - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - self.fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return self.fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) - return cb(null, false, stat) - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return cb() - - return cb(null, c, stat) -} diff --git a/build/node_modules/glob/package.json b/build/node_modules/glob/package.json deleted file mode 100644 index 5940b649..00000000 --- a/build/node_modules/glob/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "glob", - "description": "a little globber", - "version": "7.2.3", - "publishConfig": { - "tag": "v7-legacy" - }, - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" - }, - "main": "glob.js", - "files": [ - "glob.js", - "sync.js", - "common.js" - ], - "engines": { - "node": "*" - }, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "devDependencies": { - "memfs": "^3.2.0", - "mkdirp": "0", - "rimraf": "^2.2.8", - "tap": "^15.0.6", - "tick": "0.0.6" - }, - "tap": { - "before": "test/00-setup.js", - "after": "test/zz-cleanup.js", - "jobs": 1 - }, - "scripts": { - "prepublish": "npm run benchclean", - "profclean": "rm -f v8.log profile.txt", - "test": "tap", - "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", - "bench": "bash benchmark.sh", - "prof": "bash prof.sh && cat profile.txt", - "benchclean": "node benchclean.js" - }, - "license": "ISC", - "funding": { - "url": "https://github.com/sponsors/isaacs" - } -} diff --git a/build/node_modules/glob/sync.js b/build/node_modules/glob/sync.js deleted file mode 100644 index 2c4f4801..00000000 --- a/build/node_modules/glob/sync.js +++ /dev/null @@ -1,486 +0,0 @@ -module.exports = globSync -globSync.GlobSync = GlobSync - -var rp = require('fs.realpath') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert.ok(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = rp.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert.ok(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || - isAbsolute(pattern.map(function (p) { - return typeof p === 'string' ? p : '[*]' - }).join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - if (isIgnored(this, e)) - return - - var abs = this._makeAbs(e) - - if (this.mark) - e = this._mark(e) - - if (this.absolute) { - e = abs - } - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = this.fs.lstatSync(abs) - } catch (er) { - if (er.code === 'ENOENT') { - // lstat failed, doesn't exist - return null - } - } - - var isSym = lstat && lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && lstat && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, this.fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - var abs = this._makeAbs(f) - this.cache[abs] = 'FILE' - if (abs === this.cwdAbs) { - var error = new Error(er.code + ' invalid cwd ' + this.cwd) - error.path = this.cwd - error.code = er.code - throw error - } - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = this.fs.lstatSync(abs) - } catch (er) { - if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { - this.statCache[abs] = false - return false - } - } - - if (lstat && lstat.isSymbolicLink()) { - try { - stat = this.fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = true - if (stat) - c = stat.isDirectory() ? 'DIR' : 'FILE' - - this.cache[abs] = this.cache[abs] || c - - if (needDir && c === 'FILE') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} diff --git a/build/node_modules/globals/globals.json b/build/node_modules/globals/globals.json deleted file mode 100644 index 96d98d72..00000000 --- a/build/node_modules/globals/globals.json +++ /dev/null @@ -1,1974 +0,0 @@ -{ - "builtin": { - "AggregateError": false, - "Array": false, - "ArrayBuffer": false, - "Atomics": false, - "BigInt": false, - "BigInt64Array": false, - "BigUint64Array": false, - "Boolean": false, - "constructor": false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "FinalizationRegistry": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - "globalThis": false, - "hasOwnProperty": false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - "isPrototypeOf": false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - "propertyIsEnumerable": false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "SharedArrayBuffer": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - "toLocaleString": false, - "toString": false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - "valueOf": false, - "WeakMap": false, - "WeakRef": false, - "WeakSet": false - }, - "es5": { - "Array": false, - "Boolean": false, - "constructor": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Function": false, - "hasOwnProperty": false, - "Infinity": false, - "isFinite": false, - "isNaN": false, - "isPrototypeOf": false, - "JSON": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "propertyIsEnumerable": false, - "RangeError": false, - "ReferenceError": false, - "RegExp": false, - "String": false, - "SyntaxError": false, - "toLocaleString": false, - "toString": false, - "TypeError": false, - "undefined": false, - "unescape": false, - "URIError": false, - "valueOf": false - }, - "es2015": { - "Array": false, - "ArrayBuffer": false, - "Boolean": false, - "constructor": false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - "hasOwnProperty": false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - "isPrototypeOf": false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - "propertyIsEnumerable": false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - "toLocaleString": false, - "toString": false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - "valueOf": false, - "WeakMap": false, - "WeakSet": false - }, - "es2017": { - "Array": false, - "ArrayBuffer": false, - "Atomics": false, - "Boolean": false, - "constructor": false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - "hasOwnProperty": false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - "isPrototypeOf": false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - "propertyIsEnumerable": false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "SharedArrayBuffer": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - "toLocaleString": false, - "toString": false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - "valueOf": false, - "WeakMap": false, - "WeakSet": false - }, - "es2020": { - "Array": false, - "ArrayBuffer": false, - "Atomics": false, - "BigInt": false, - "BigInt64Array": false, - "BigUint64Array": false, - "Boolean": false, - "constructor": false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - "globalThis": false, - "hasOwnProperty": false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - "isPrototypeOf": false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - "propertyIsEnumerable": false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "SharedArrayBuffer": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - "toLocaleString": false, - "toString": false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - "valueOf": false, - "WeakMap": false, - "WeakSet": false - }, - "es2021": { - "AggregateError": false, - "Array": false, - "ArrayBuffer": false, - "Atomics": false, - "BigInt": false, - "BigInt64Array": false, - "BigUint64Array": false, - "Boolean": false, - "constructor": false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "FinalizationRegistry": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - "globalThis": false, - "hasOwnProperty": false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - "isPrototypeOf": false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - "propertyIsEnumerable": false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "SharedArrayBuffer": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - "toLocaleString": false, - "toString": false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - "valueOf": false, - "WeakMap": false, - "WeakRef": false, - "WeakSet": false - }, - "browser": { - "AbortController": false, - "AbortSignal": false, - "addEventListener": false, - "alert": false, - "AnalyserNode": false, - "Animation": false, - "AnimationEffectReadOnly": false, - "AnimationEffectTiming": false, - "AnimationEffectTimingReadOnly": false, - "AnimationEvent": false, - "AnimationPlaybackEvent": false, - "AnimationTimeline": false, - "applicationCache": false, - "ApplicationCache": false, - "ApplicationCacheErrorEvent": false, - "atob": false, - "Attr": false, - "Audio": false, - "AudioBuffer": false, - "AudioBufferSourceNode": false, - "AudioContext": false, - "AudioDestinationNode": false, - "AudioListener": false, - "AudioNode": false, - "AudioParam": false, - "AudioProcessingEvent": false, - "AudioScheduledSourceNode": false, - "AudioWorkletGlobalScope": false, - "AudioWorkletNode": false, - "AudioWorkletProcessor": false, - "BarProp": false, - "BaseAudioContext": false, - "BatteryManager": false, - "BeforeUnloadEvent": false, - "BiquadFilterNode": false, - "Blob": false, - "BlobEvent": false, - "blur": false, - "BroadcastChannel": false, - "btoa": false, - "BudgetService": false, - "ByteLengthQueuingStrategy": false, - "Cache": false, - "caches": false, - "CacheStorage": false, - "cancelAnimationFrame": false, - "cancelIdleCallback": false, - "CanvasCaptureMediaStreamTrack": false, - "CanvasGradient": false, - "CanvasPattern": false, - "CanvasRenderingContext2D": false, - "ChannelMergerNode": false, - "ChannelSplitterNode": false, - "CharacterData": false, - "clearInterval": false, - "clearTimeout": false, - "clientInformation": false, - "ClipboardEvent": false, - "ClipboardItem": false, - "close": false, - "closed": false, - "CloseEvent": false, - "Comment": false, - "CompositionEvent": false, - "CompressionStream": false, - "confirm": false, - "console": false, - "ConstantSourceNode": false, - "ConvolverNode": false, - "CountQueuingStrategy": false, - "createImageBitmap": false, - "Credential": false, - "CredentialsContainer": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CSS": false, - "CSSConditionRule": false, - "CSSFontFaceRule": false, - "CSSGroupingRule": false, - "CSSImportRule": false, - "CSSKeyframeRule": false, - "CSSKeyframesRule": false, - "CSSMatrixComponent": false, - "CSSMediaRule": false, - "CSSNamespaceRule": false, - "CSSPageRule": false, - "CSSPerspective": false, - "CSSRotate": false, - "CSSRule": false, - "CSSRuleList": false, - "CSSScale": false, - "CSSSkew": false, - "CSSSkewX": false, - "CSSSkewY": false, - "CSSStyleDeclaration": false, - "CSSStyleRule": false, - "CSSStyleSheet": false, - "CSSSupportsRule": false, - "CSSTransformValue": false, - "CSSTranslate": false, - "CustomElementRegistry": false, - "customElements": false, - "CustomEvent": false, - "DataTransfer": false, - "DataTransferItem": false, - "DataTransferItemList": false, - "DecompressionStream": false, - "defaultstatus": false, - "defaultStatus": false, - "DelayNode": false, - "DeviceMotionEvent": false, - "DeviceOrientationEvent": false, - "devicePixelRatio": false, - "dispatchEvent": false, - "document": false, - "Document": false, - "DocumentFragment": false, - "DocumentType": false, - "DOMError": false, - "DOMException": false, - "DOMImplementation": false, - "DOMMatrix": false, - "DOMMatrixReadOnly": false, - "DOMParser": false, - "DOMPoint": false, - "DOMPointReadOnly": false, - "DOMQuad": false, - "DOMRect": false, - "DOMRectList": false, - "DOMRectReadOnly": false, - "DOMStringList": false, - "DOMStringMap": false, - "DOMTokenList": false, - "DragEvent": false, - "DynamicsCompressorNode": false, - "Element": false, - "ErrorEvent": false, - "event": false, - "Event": false, - "EventSource": false, - "EventTarget": false, - "external": false, - "fetch": false, - "File": false, - "FileList": false, - "FileReader": false, - "find": false, - "focus": false, - "FocusEvent": false, - "FontFace": false, - "FontFaceSetLoadEvent": false, - "FormData": false, - "FormDataEvent": false, - "frameElement": false, - "frames": false, - "GainNode": false, - "Gamepad": false, - "GamepadButton": false, - "GamepadEvent": false, - "getComputedStyle": false, - "getSelection": false, - "HashChangeEvent": false, - "Headers": false, - "history": false, - "History": false, - "HTMLAllCollection": false, - "HTMLAnchorElement": false, - "HTMLAreaElement": false, - "HTMLAudioElement": false, - "HTMLBaseElement": false, - "HTMLBodyElement": false, - "HTMLBRElement": false, - "HTMLButtonElement": false, - "HTMLCanvasElement": false, - "HTMLCollection": false, - "HTMLContentElement": false, - "HTMLDataElement": false, - "HTMLDataListElement": false, - "HTMLDetailsElement": false, - "HTMLDialogElement": false, - "HTMLDirectoryElement": false, - "HTMLDivElement": false, - "HTMLDListElement": false, - "HTMLDocument": false, - "HTMLElement": false, - "HTMLEmbedElement": false, - "HTMLFieldSetElement": false, - "HTMLFontElement": false, - "HTMLFormControlsCollection": false, - "HTMLFormElement": false, - "HTMLFrameElement": false, - "HTMLFrameSetElement": false, - "HTMLHeadElement": false, - "HTMLHeadingElement": false, - "HTMLHRElement": false, - "HTMLHtmlElement": false, - "HTMLIFrameElement": false, - "HTMLImageElement": false, - "HTMLInputElement": false, - "HTMLLabelElement": false, - "HTMLLegendElement": false, - "HTMLLIElement": false, - "HTMLLinkElement": false, - "HTMLMapElement": false, - "HTMLMarqueeElement": false, - "HTMLMediaElement": false, - "HTMLMenuElement": false, - "HTMLMetaElement": false, - "HTMLMeterElement": false, - "HTMLModElement": false, - "HTMLObjectElement": false, - "HTMLOListElement": false, - "HTMLOptGroupElement": false, - "HTMLOptionElement": false, - "HTMLOptionsCollection": false, - "HTMLOutputElement": false, - "HTMLParagraphElement": false, - "HTMLParamElement": false, - "HTMLPictureElement": false, - "HTMLPreElement": false, - "HTMLProgressElement": false, - "HTMLQuoteElement": false, - "HTMLScriptElement": false, - "HTMLSelectElement": false, - "HTMLShadowElement": false, - "HTMLSlotElement": false, - "HTMLSourceElement": false, - "HTMLSpanElement": false, - "HTMLStyleElement": false, - "HTMLTableCaptionElement": false, - "HTMLTableCellElement": false, - "HTMLTableColElement": false, - "HTMLTableElement": false, - "HTMLTableRowElement": false, - "HTMLTableSectionElement": false, - "HTMLTemplateElement": false, - "HTMLTextAreaElement": false, - "HTMLTimeElement": false, - "HTMLTitleElement": false, - "HTMLTrackElement": false, - "HTMLUListElement": false, - "HTMLUnknownElement": false, - "HTMLVideoElement": false, - "IDBCursor": false, - "IDBCursorWithValue": false, - "IDBDatabase": false, - "IDBFactory": false, - "IDBIndex": false, - "IDBKeyRange": false, - "IDBObjectStore": false, - "IDBOpenDBRequest": false, - "IDBRequest": false, - "IDBTransaction": false, - "IDBVersionChangeEvent": false, - "IdleDeadline": false, - "IIRFilterNode": false, - "Image": false, - "ImageBitmap": false, - "ImageBitmapRenderingContext": false, - "ImageCapture": false, - "ImageData": false, - "indexedDB": false, - "innerHeight": false, - "innerWidth": false, - "InputEvent": false, - "IntersectionObserver": false, - "IntersectionObserverEntry": false, - "Intl": false, - "isSecureContext": false, - "KeyboardEvent": false, - "KeyframeEffect": false, - "KeyframeEffectReadOnly": false, - "length": false, - "localStorage": false, - "location": true, - "Location": false, - "locationbar": false, - "matchMedia": false, - "MediaDeviceInfo": false, - "MediaDevices": false, - "MediaElementAudioSourceNode": false, - "MediaEncryptedEvent": false, - "MediaError": false, - "MediaKeyMessageEvent": false, - "MediaKeySession": false, - "MediaKeyStatusMap": false, - "MediaKeySystemAccess": false, - "MediaList": false, - "MediaMetadata": false, - "MediaQueryList": false, - "MediaQueryListEvent": false, - "MediaRecorder": false, - "MediaSettingsRange": false, - "MediaSource": false, - "MediaStream": false, - "MediaStreamAudioDestinationNode": false, - "MediaStreamAudioSourceNode": false, - "MediaStreamConstraints": false, - "MediaStreamEvent": false, - "MediaStreamTrack": false, - "MediaStreamTrackEvent": false, - "menubar": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "MIDIAccess": false, - "MIDIConnectionEvent": false, - "MIDIInput": false, - "MIDIInputMap": false, - "MIDIMessageEvent": false, - "MIDIOutput": false, - "MIDIOutputMap": false, - "MIDIPort": false, - "MimeType": false, - "MimeTypeArray": false, - "MouseEvent": false, - "moveBy": false, - "moveTo": false, - "MutationEvent": false, - "MutationObserver": false, - "MutationRecord": false, - "name": false, - "NamedNodeMap": false, - "NavigationPreloadManager": false, - "navigator": false, - "Navigator": false, - "NavigatorUAData": false, - "NetworkInformation": false, - "Node": false, - "NodeFilter": false, - "NodeIterator": false, - "NodeList": false, - "Notification": false, - "OfflineAudioCompletionEvent": false, - "OfflineAudioContext": false, - "offscreenBuffering": false, - "OffscreenCanvas": true, - "OffscreenCanvasRenderingContext2D": false, - "onabort": true, - "onafterprint": true, - "onanimationend": true, - "onanimationiteration": true, - "onanimationstart": true, - "onappinstalled": true, - "onauxclick": true, - "onbeforeinstallprompt": true, - "onbeforeprint": true, - "onbeforeunload": true, - "onblur": true, - "oncancel": true, - "oncanplay": true, - "oncanplaythrough": true, - "onchange": true, - "onclick": true, - "onclose": true, - "oncontextmenu": true, - "oncuechange": true, - "ondblclick": true, - "ondevicemotion": true, - "ondeviceorientation": true, - "ondeviceorientationabsolute": true, - "ondrag": true, - "ondragend": true, - "ondragenter": true, - "ondragleave": true, - "ondragover": true, - "ondragstart": true, - "ondrop": true, - "ondurationchange": true, - "onemptied": true, - "onended": true, - "onerror": true, - "onfocus": true, - "ongotpointercapture": true, - "onhashchange": true, - "oninput": true, - "oninvalid": true, - "onkeydown": true, - "onkeypress": true, - "onkeyup": true, - "onlanguagechange": true, - "onload": true, - "onloadeddata": true, - "onloadedmetadata": true, - "onloadstart": true, - "onlostpointercapture": true, - "onmessage": true, - "onmessageerror": true, - "onmousedown": true, - "onmouseenter": true, - "onmouseleave": true, - "onmousemove": true, - "onmouseout": true, - "onmouseover": true, - "onmouseup": true, - "onmousewheel": true, - "onoffline": true, - "ononline": true, - "onpagehide": true, - "onpageshow": true, - "onpause": true, - "onplay": true, - "onplaying": true, - "onpointercancel": true, - "onpointerdown": true, - "onpointerenter": true, - "onpointerleave": true, - "onpointermove": true, - "onpointerout": true, - "onpointerover": true, - "onpointerup": true, - "onpopstate": true, - "onprogress": true, - "onratechange": true, - "onrejectionhandled": true, - "onreset": true, - "onresize": true, - "onscroll": true, - "onsearch": true, - "onseeked": true, - "onseeking": true, - "onselect": true, - "onstalled": true, - "onstorage": true, - "onsubmit": true, - "onsuspend": true, - "ontimeupdate": true, - "ontoggle": true, - "ontransitionend": true, - "onunhandledrejection": true, - "onunload": true, - "onvolumechange": true, - "onwaiting": true, - "onwheel": true, - "open": false, - "openDatabase": false, - "opener": false, - "Option": false, - "origin": false, - "OscillatorNode": false, - "outerHeight": false, - "outerWidth": false, - "OverconstrainedError": false, - "PageTransitionEvent": false, - "pageXOffset": false, - "pageYOffset": false, - "PannerNode": false, - "parent": false, - "Path2D": false, - "PaymentAddress": false, - "PaymentRequest": false, - "PaymentRequestUpdateEvent": false, - "PaymentResponse": false, - "performance": false, - "Performance": false, - "PerformanceEntry": false, - "PerformanceLongTaskTiming": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceNavigation": false, - "PerformanceNavigationTiming": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformancePaintTiming": false, - "PerformanceResourceTiming": false, - "PerformanceTiming": false, - "PeriodicWave": false, - "Permissions": false, - "PermissionStatus": false, - "personalbar": false, - "PhotoCapabilities": false, - "Plugin": false, - "PluginArray": false, - "PointerEvent": false, - "PopStateEvent": false, - "postMessage": false, - "Presentation": false, - "PresentationAvailability": false, - "PresentationConnection": false, - "PresentationConnectionAvailableEvent": false, - "PresentationConnectionCloseEvent": false, - "PresentationConnectionList": false, - "PresentationReceiver": false, - "PresentationRequest": false, - "print": false, - "ProcessingInstruction": false, - "ProgressEvent": false, - "PromiseRejectionEvent": false, - "prompt": false, - "PushManager": false, - "PushSubscription": false, - "PushSubscriptionOptions": false, - "queueMicrotask": false, - "RadioNodeList": false, - "Range": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "registerProcessor": false, - "RemotePlayback": false, - "removeEventListener": false, - "reportError": false, - "Request": false, - "requestAnimationFrame": false, - "requestIdleCallback": false, - "resizeBy": false, - "ResizeObserver": false, - "ResizeObserverEntry": false, - "resizeTo": false, - "Response": false, - "RTCCertificate": false, - "RTCDataChannel": false, - "RTCDataChannelEvent": false, - "RTCDtlsTransport": false, - "RTCIceCandidate": false, - "RTCIceGatherer": false, - "RTCIceTransport": false, - "RTCPeerConnection": false, - "RTCPeerConnectionIceEvent": false, - "RTCRtpContributingSource": false, - "RTCRtpReceiver": false, - "RTCRtpSender": false, - "RTCSctpTransport": false, - "RTCSessionDescription": false, - "RTCStatsReport": false, - "RTCTrackEvent": false, - "screen": false, - "Screen": false, - "screenLeft": false, - "ScreenOrientation": false, - "screenTop": false, - "screenX": false, - "screenY": false, - "ScriptProcessorNode": false, - "scroll": false, - "scrollbars": false, - "scrollBy": false, - "scrollTo": false, - "scrollX": false, - "scrollY": false, - "SecurityPolicyViolationEvent": false, - "Selection": false, - "self": false, - "ServiceWorker": false, - "ServiceWorkerContainer": false, - "ServiceWorkerRegistration": false, - "sessionStorage": false, - "setInterval": false, - "setTimeout": false, - "ShadowRoot": false, - "SharedWorker": false, - "SourceBuffer": false, - "SourceBufferList": false, - "speechSynthesis": false, - "SpeechSynthesisEvent": false, - "SpeechSynthesisUtterance": false, - "StaticRange": false, - "status": false, - "statusbar": false, - "StereoPannerNode": false, - "stop": false, - "Storage": false, - "StorageEvent": false, - "StorageManager": false, - "structuredClone": false, - "styleMedia": false, - "StyleSheet": false, - "StyleSheetList": false, - "SubmitEvent": false, - "SubtleCrypto": false, - "SVGAElement": false, - "SVGAngle": false, - "SVGAnimatedAngle": false, - "SVGAnimatedBoolean": false, - "SVGAnimatedEnumeration": false, - "SVGAnimatedInteger": false, - "SVGAnimatedLength": false, - "SVGAnimatedLengthList": false, - "SVGAnimatedNumber": false, - "SVGAnimatedNumberList": false, - "SVGAnimatedPreserveAspectRatio": false, - "SVGAnimatedRect": false, - "SVGAnimatedString": false, - "SVGAnimatedTransformList": false, - "SVGAnimateElement": false, - "SVGAnimateMotionElement": false, - "SVGAnimateTransformElement": false, - "SVGAnimationElement": false, - "SVGCircleElement": false, - "SVGClipPathElement": false, - "SVGComponentTransferFunctionElement": false, - "SVGDefsElement": false, - "SVGDescElement": false, - "SVGDiscardElement": false, - "SVGElement": false, - "SVGEllipseElement": false, - "SVGFEBlendElement": false, - "SVGFEColorMatrixElement": false, - "SVGFEComponentTransferElement": false, - "SVGFECompositeElement": false, - "SVGFEConvolveMatrixElement": false, - "SVGFEDiffuseLightingElement": false, - "SVGFEDisplacementMapElement": false, - "SVGFEDistantLightElement": false, - "SVGFEDropShadowElement": false, - "SVGFEFloodElement": false, - "SVGFEFuncAElement": false, - "SVGFEFuncBElement": false, - "SVGFEFuncGElement": false, - "SVGFEFuncRElement": false, - "SVGFEGaussianBlurElement": false, - "SVGFEImageElement": false, - "SVGFEMergeElement": false, - "SVGFEMergeNodeElement": false, - "SVGFEMorphologyElement": false, - "SVGFEOffsetElement": false, - "SVGFEPointLightElement": false, - "SVGFESpecularLightingElement": false, - "SVGFESpotLightElement": false, - "SVGFETileElement": false, - "SVGFETurbulenceElement": false, - "SVGFilterElement": false, - "SVGForeignObjectElement": false, - "SVGGElement": false, - "SVGGeometryElement": false, - "SVGGradientElement": false, - "SVGGraphicsElement": false, - "SVGImageElement": false, - "SVGLength": false, - "SVGLengthList": false, - "SVGLinearGradientElement": false, - "SVGLineElement": false, - "SVGMarkerElement": false, - "SVGMaskElement": false, - "SVGMatrix": false, - "SVGMetadataElement": false, - "SVGMPathElement": false, - "SVGNumber": false, - "SVGNumberList": false, - "SVGPathElement": false, - "SVGPatternElement": false, - "SVGPoint": false, - "SVGPointList": false, - "SVGPolygonElement": false, - "SVGPolylineElement": false, - "SVGPreserveAspectRatio": false, - "SVGRadialGradientElement": false, - "SVGRect": false, - "SVGRectElement": false, - "SVGScriptElement": false, - "SVGSetElement": false, - "SVGStopElement": false, - "SVGStringList": false, - "SVGStyleElement": false, - "SVGSVGElement": false, - "SVGSwitchElement": false, - "SVGSymbolElement": false, - "SVGTextContentElement": false, - "SVGTextElement": false, - "SVGTextPathElement": false, - "SVGTextPositioningElement": false, - "SVGTitleElement": false, - "SVGTransform": false, - "SVGTransformList": false, - "SVGTSpanElement": false, - "SVGUnitTypes": false, - "SVGUseElement": false, - "SVGViewElement": false, - "TaskAttributionTiming": false, - "Text": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TextEvent": false, - "TextMetrics": false, - "TextTrack": false, - "TextTrackCue": false, - "TextTrackCueList": false, - "TextTrackList": false, - "TimeRanges": false, - "ToggleEvent": false, - "toolbar": false, - "top": false, - "Touch": false, - "TouchEvent": false, - "TouchList": false, - "TrackEvent": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "TransitionEvent": false, - "TreeWalker": false, - "UIEvent": false, - "URL": false, - "URLSearchParams": false, - "ValidityState": false, - "visualViewport": false, - "VisualViewport": false, - "VTTCue": false, - "WaveShaperNode": false, - "WebAssembly": false, - "WebGL2RenderingContext": false, - "WebGLActiveInfo": false, - "WebGLBuffer": false, - "WebGLContextEvent": false, - "WebGLFramebuffer": false, - "WebGLProgram": false, - "WebGLQuery": false, - "WebGLRenderbuffer": false, - "WebGLRenderingContext": false, - "WebGLSampler": false, - "WebGLShader": false, - "WebGLShaderPrecisionFormat": false, - "WebGLSync": false, - "WebGLTexture": false, - "WebGLTransformFeedback": false, - "WebGLUniformLocation": false, - "WebGLVertexArrayObject": false, - "WebSocket": false, - "WheelEvent": false, - "window": false, - "Window": false, - "Worker": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false, - "XMLDocument": false, - "XMLHttpRequest": false, - "XMLHttpRequestEventTarget": false, - "XMLHttpRequestUpload": false, - "XMLSerializer": false, - "XPathEvaluator": false, - "XPathExpression": false, - "XPathResult": false, - "XSLTProcessor": false - }, - "worker": { - "addEventListener": false, - "applicationCache": false, - "atob": false, - "Blob": false, - "BroadcastChannel": false, - "btoa": false, - "ByteLengthQueuingStrategy": false, - "Cache": false, - "caches": false, - "clearInterval": false, - "clearTimeout": false, - "close": true, - "CompressionStream": false, - "console": false, - "CountQueuingStrategy": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CustomEvent": false, - "DecompressionStream": false, - "ErrorEvent": false, - "Event": false, - "fetch": false, - "File": false, - "FileReaderSync": false, - "FormData": false, - "Headers": false, - "IDBCursor": false, - "IDBCursorWithValue": false, - "IDBDatabase": false, - "IDBFactory": false, - "IDBIndex": false, - "IDBKeyRange": false, - "IDBObjectStore": false, - "IDBOpenDBRequest": false, - "IDBRequest": false, - "IDBTransaction": false, - "IDBVersionChangeEvent": false, - "ImageData": false, - "importScripts": true, - "indexedDB": false, - "location": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "name": false, - "navigator": false, - "Notification": false, - "onclose": true, - "onconnect": true, - "onerror": true, - "onlanguagechange": true, - "onmessage": true, - "onoffline": true, - "ononline": true, - "onrejectionhandled": true, - "onunhandledrejection": true, - "performance": false, - "Performance": false, - "PerformanceEntry": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceNavigation": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformanceResourceTiming": false, - "PerformanceTiming": false, - "postMessage": true, - "Promise": false, - "queueMicrotask": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "removeEventListener": false, - "reportError": false, - "Request": false, - "Response": false, - "self": true, - "ServiceWorkerRegistration": false, - "setInterval": false, - "setTimeout": false, - "SubtleCrypto": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "URL": false, - "URLSearchParams": false, - "WebAssembly": false, - "WebSocket": false, - "Worker": false, - "WorkerGlobalScope": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false, - "XMLHttpRequest": false - }, - "node": { - "__dirname": false, - "__filename": false, - "AbortController": false, - "AbortSignal": false, - "atob": false, - "Blob": false, - "BroadcastChannel": false, - "btoa": false, - "Buffer": false, - "ByteLengthQueuingStrategy": false, - "clearImmediate": false, - "clearInterval": false, - "clearTimeout": false, - "CompressionStream": false, - "console": false, - "CountQueuingStrategy": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CustomEvent": false, - "DecompressionStream": false, - "DOMException": false, - "Event": false, - "EventTarget": false, - "exports": true, - "fetch": false, - "File": false, - "FormData": false, - "global": false, - "Headers": false, - "Intl": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "module": false, - "performance": false, - "PerformanceEntry": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformanceResourceTiming": false, - "process": false, - "queueMicrotask": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "Request": false, - "require": false, - "Response": false, - "setImmediate": false, - "setInterval": false, - "setTimeout": false, - "structuredClone": false, - "SubtleCrypto": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "URL": false, - "URLSearchParams": false, - "WebAssembly": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false - }, - "nodeBuiltin": { - "AbortController": false, - "AbortSignal": false, - "atob": false, - "Blob": false, - "BroadcastChannel": false, - "btoa": false, - "Buffer": false, - "ByteLengthQueuingStrategy": false, - "clearImmediate": false, - "clearInterval": false, - "clearTimeout": false, - "CompressionStream": false, - "console": false, - "CountQueuingStrategy": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CustomEvent": false, - "DecompressionStream": false, - "DOMException": false, - "Event": false, - "EventTarget": false, - "fetch": false, - "File": false, - "FormData": false, - "global": false, - "Headers": false, - "Intl": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "performance": false, - "PerformanceEntry": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformanceResourceTiming": false, - "process": false, - "queueMicrotask": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "Request": false, - "Response": false, - "setImmediate": false, - "setInterval": false, - "setTimeout": false, - "structuredClone": false, - "SubtleCrypto": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "URL": false, - "URLSearchParams": false, - "WebAssembly": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false - }, - "commonjs": { - "exports": true, - "global": false, - "module": false, - "require": false - }, - "amd": { - "define": false, - "require": false - }, - "mocha": { - "after": false, - "afterEach": false, - "before": false, - "beforeEach": false, - "context": false, - "describe": false, - "it": false, - "mocha": false, - "run": false, - "setup": false, - "specify": false, - "suite": false, - "suiteSetup": false, - "suiteTeardown": false, - "teardown": false, - "test": false, - "xcontext": false, - "xdescribe": false, - "xit": false, - "xspecify": false - }, - "jasmine": { - "afterAll": false, - "afterEach": false, - "beforeAll": false, - "beforeEach": false, - "describe": false, - "expect": false, - "expectAsync": false, - "fail": false, - "fdescribe": false, - "fit": false, - "it": false, - "jasmine": false, - "pending": false, - "runs": false, - "spyOn": false, - "spyOnAllFunctions": false, - "spyOnProperty": false, - "waits": false, - "waitsFor": false, - "xdescribe": false, - "xit": false - }, - "jest": { - "afterAll": false, - "afterEach": false, - "beforeAll": false, - "beforeEach": false, - "describe": false, - "expect": false, - "fdescribe": false, - "fit": false, - "it": false, - "jest": false, - "pit": false, - "require": false, - "test": false, - "xdescribe": false, - "xit": false, - "xtest": false - }, - "qunit": { - "asyncTest": false, - "deepEqual": false, - "equal": false, - "expect": false, - "module": false, - "notDeepEqual": false, - "notEqual": false, - "notOk": false, - "notPropEqual": false, - "notStrictEqual": false, - "ok": false, - "propEqual": false, - "QUnit": false, - "raises": false, - "start": false, - "stop": false, - "strictEqual": false, - "test": false, - "throws": false - }, - "phantomjs": { - "console": true, - "exports": true, - "phantom": true, - "require": true, - "WebPage": true - }, - "couch": { - "emit": false, - "exports": false, - "getRow": false, - "log": false, - "module": false, - "provides": false, - "require": false, - "respond": false, - "send": false, - "start": false, - "sum": false - }, - "rhino": { - "defineClass": false, - "deserialize": false, - "gc": false, - "help": false, - "importClass": false, - "importPackage": false, - "java": false, - "load": false, - "loadClass": false, - "Packages": false, - "print": false, - "quit": false, - "readFile": false, - "readUrl": false, - "runCommand": false, - "seal": false, - "serialize": false, - "spawn": false, - "sync": false, - "toint32": false, - "version": false - }, - "nashorn": { - "__DIR__": false, - "__FILE__": false, - "__LINE__": false, - "com": false, - "edu": false, - "exit": false, - "java": false, - "Java": false, - "javafx": false, - "JavaImporter": false, - "javax": false, - "JSAdapter": false, - "load": false, - "loadWithNewGlobal": false, - "org": false, - "Packages": false, - "print": false, - "quit": false - }, - "wsh": { - "ActiveXObject": false, - "CollectGarbage": false, - "Debug": false, - "Enumerator": false, - "GetObject": false, - "RuntimeObject": false, - "ScriptEngine": false, - "ScriptEngineBuildVersion": false, - "ScriptEngineMajorVersion": false, - "ScriptEngineMinorVersion": false, - "VBArray": false, - "WScript": false, - "WSH": false - }, - "jquery": { - "$": false, - "jQuery": false - }, - "yui": { - "YAHOO": false, - "YAHOO_config": false, - "YUI": false, - "YUI_config": false - }, - "shelljs": { - "cat": false, - "cd": false, - "chmod": false, - "config": false, - "cp": false, - "dirs": false, - "echo": false, - "env": false, - "error": false, - "exec": false, - "exit": false, - "find": false, - "grep": false, - "ln": false, - "ls": false, - "mkdir": false, - "mv": false, - "popd": false, - "pushd": false, - "pwd": false, - "rm": false, - "sed": false, - "set": false, - "target": false, - "tempdir": false, - "test": false, - "touch": false, - "which": false - }, - "prototypejs": { - "$": false, - "$$": false, - "$A": false, - "$break": false, - "$continue": false, - "$F": false, - "$H": false, - "$R": false, - "$w": false, - "Abstract": false, - "Ajax": false, - "Autocompleter": false, - "Builder": false, - "Class": false, - "Control": false, - "Draggable": false, - "Draggables": false, - "Droppables": false, - "Effect": false, - "Element": false, - "Enumerable": false, - "Event": false, - "Field": false, - "Form": false, - "Hash": false, - "Insertion": false, - "ObjectRange": false, - "PeriodicalExecuter": false, - "Position": false, - "Prototype": false, - "Scriptaculous": false, - "Selector": false, - "Sortable": false, - "SortableObserver": false, - "Sound": false, - "Template": false, - "Toggle": false, - "Try": false - }, - "meteor": { - "$": false, - "Accounts": false, - "AccountsClient": false, - "AccountsCommon": false, - "AccountsServer": false, - "App": false, - "Assets": false, - "Blaze": false, - "check": false, - "Cordova": false, - "DDP": false, - "DDPRateLimiter": false, - "DDPServer": false, - "Deps": false, - "EJSON": false, - "Email": false, - "HTTP": false, - "Log": false, - "Match": false, - "Meteor": false, - "Mongo": false, - "MongoInternals": false, - "Npm": false, - "Package": false, - "Plugin": false, - "process": false, - "Random": false, - "ReactiveDict": false, - "ReactiveVar": false, - "Router": false, - "ServiceConfiguration": false, - "Session": false, - "share": false, - "Spacebars": false, - "Template": false, - "Tinytest": false, - "Tracker": false, - "UI": false, - "Utils": false, - "WebApp": false, - "WebAppInternals": false - }, - "mongo": { - "_isWindows": false, - "_rand": false, - "BulkWriteResult": false, - "cat": false, - "cd": false, - "connect": false, - "db": false, - "getHostName": false, - "getMemInfo": false, - "hostname": false, - "ISODate": false, - "listFiles": false, - "load": false, - "ls": false, - "md5sumFile": false, - "mkdir": false, - "Mongo": false, - "NumberInt": false, - "NumberLong": false, - "ObjectId": false, - "PlanCache": false, - "print": false, - "printjson": false, - "pwd": false, - "quit": false, - "removeFile": false, - "rs": false, - "sh": false, - "UUID": false, - "version": false, - "WriteResult": false - }, - "applescript": { - "$": false, - "Application": false, - "Automation": false, - "console": false, - "delay": false, - "Library": false, - "ObjC": false, - "ObjectSpecifier": false, - "Path": false, - "Progress": false, - "Ref": false - }, - "serviceworker": { - "addEventListener": false, - "applicationCache": false, - "atob": false, - "Blob": false, - "BroadcastChannel": false, - "btoa": false, - "ByteLengthQueuingStrategy": false, - "Cache": false, - "caches": false, - "CacheStorage": false, - "clearInterval": false, - "clearTimeout": false, - "Client": false, - "clients": false, - "Clients": false, - "close": true, - "CompressionStream": false, - "console": false, - "CountQueuingStrategy": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CustomEvent": false, - "DecompressionStream": false, - "ErrorEvent": false, - "Event": false, - "ExtendableEvent": false, - "ExtendableMessageEvent": false, - "fetch": false, - "FetchEvent": false, - "File": false, - "FileReaderSync": false, - "FormData": false, - "Headers": false, - "IDBCursor": false, - "IDBCursorWithValue": false, - "IDBDatabase": false, - "IDBFactory": false, - "IDBIndex": false, - "IDBKeyRange": false, - "IDBObjectStore": false, - "IDBOpenDBRequest": false, - "IDBRequest": false, - "IDBTransaction": false, - "IDBVersionChangeEvent": false, - "ImageData": false, - "importScripts": false, - "indexedDB": false, - "location": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "name": false, - "navigator": false, - "Notification": false, - "onclose": true, - "onconnect": true, - "onerror": true, - "onfetch": true, - "oninstall": true, - "onlanguagechange": true, - "onmessage": true, - "onmessageerror": true, - "onnotificationclick": true, - "onnotificationclose": true, - "onoffline": true, - "ononline": true, - "onpush": true, - "onpushsubscriptionchange": true, - "onrejectionhandled": true, - "onsync": true, - "onunhandledrejection": true, - "performance": false, - "Performance": false, - "PerformanceEntry": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceNavigation": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformanceResourceTiming": false, - "PerformanceTiming": false, - "postMessage": true, - "Promise": false, - "queueMicrotask": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "registration": false, - "removeEventListener": false, - "Request": false, - "Response": false, - "self": false, - "ServiceWorker": false, - "ServiceWorkerContainer": false, - "ServiceWorkerGlobalScope": false, - "ServiceWorkerMessageEvent": false, - "ServiceWorkerRegistration": false, - "setInterval": false, - "setTimeout": false, - "skipWaiting": false, - "SubtleCrypto": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "URL": false, - "URLSearchParams": false, - "WebAssembly": false, - "WebSocket": false, - "WindowClient": false, - "Worker": false, - "WorkerGlobalScope": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false, - "XMLHttpRequest": false - }, - "atomtest": { - "advanceClock": false, - "atom": false, - "fakeClearInterval": false, - "fakeClearTimeout": false, - "fakeSetInterval": false, - "fakeSetTimeout": false, - "resetTimeouts": false, - "waitsForPromise": false - }, - "embertest": { - "andThen": false, - "click": false, - "currentPath": false, - "currentRouteName": false, - "currentURL": false, - "fillIn": false, - "find": false, - "findAll": false, - "findWithAssert": false, - "keyEvent": false, - "pauseTest": false, - "resumeTest": false, - "triggerEvent": false, - "visit": false, - "wait": false - }, - "protractor": { - "$": false, - "$$": false, - "browser": false, - "by": false, - "By": false, - "DartObject": false, - "element": false, - "protractor": false - }, - "shared-node-browser": { - "AbortController": false, - "AbortSignal": false, - "atob": false, - "Blob": false, - "BroadcastChannel": false, - "btoa": false, - "ByteLengthQueuingStrategy": false, - "clearInterval": false, - "clearTimeout": false, - "CompressionStream": false, - "console": false, - "CountQueuingStrategy": false, - "crypto": false, - "Crypto": false, - "CryptoKey": false, - "CustomEvent": false, - "DecompressionStream": false, - "DOMException": false, - "Event": false, - "EventTarget": false, - "fetch": false, - "File": false, - "FormData": false, - "Headers": false, - "Intl": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "performance": false, - "PerformanceEntry": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformanceResourceTiming": false, - "queueMicrotask": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "Request": false, - "Response": false, - "setInterval": false, - "setTimeout": false, - "structuredClone": false, - "SubtleCrypto": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "URL": false, - "URLSearchParams": false, - "WebAssembly": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false - }, - "webextensions": { - "browser": false, - "chrome": false, - "opr": false - }, - "greasemonkey": { - "cloneInto": false, - "createObjectIn": false, - "exportFunction": false, - "GM": false, - "GM_addElement": false, - "GM_addStyle": false, - "GM_addValueChangeListener": false, - "GM_deleteValue": false, - "GM_download": false, - "GM_getResourceText": false, - "GM_getResourceURL": false, - "GM_getTab": false, - "GM_getTabs": false, - "GM_getValue": false, - "GM_info": false, - "GM_listValues": false, - "GM_log": false, - "GM_notification": false, - "GM_openInTab": false, - "GM_registerMenuCommand": false, - "GM_removeValueChangeListener": false, - "GM_saveTab": false, - "GM_setClipboard": false, - "GM_setValue": false, - "GM_unregisterMenuCommand": false, - "GM_xmlhttpRequest": false, - "unsafeWindow": false - }, - "devtools": { - "$": false, - "$_": false, - "$$": false, - "$0": false, - "$1": false, - "$2": false, - "$3": false, - "$4": false, - "$x": false, - "chrome": false, - "clear": false, - "copy": false, - "debug": false, - "dir": false, - "dirxml": false, - "getEventListeners": false, - "inspect": false, - "keys": false, - "monitor": false, - "monitorEvents": false, - "profile": false, - "profileEnd": false, - "queryObjects": false, - "table": false, - "undebug": false, - "unmonitor": false, - "unmonitorEvents": false, - "values": false - } -} diff --git a/build/node_modules/globals/index.d.ts b/build/node_modules/globals/index.d.ts deleted file mode 100644 index a842e4c8..00000000 --- a/build/node_modules/globals/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import {ReadonlyDeep} from 'type-fest'; -import globalsJson = require('./globals.json'); - -declare const globals: ReadonlyDeep; - -export = globals; diff --git a/build/node_modules/globals/index.js b/build/node_modules/globals/index.js deleted file mode 100644 index a951582e..00000000 --- a/build/node_modules/globals/index.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -module.exports = require('./globals.json'); diff --git a/build/node_modules/globals/license b/build/node_modules/globals/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/globals/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/globals/package.json b/build/node_modules/globals/package.json deleted file mode 100644 index a13be946..00000000 --- a/build/node_modules/globals/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "globals", - "version": "13.23.0", - "description": "Global identifiers from different JavaScript environments", - "license": "MIT", - "repository": "sindresorhus/globals", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava" - }, - "files": [ - "index.js", - "index.d.ts", - "globals.json" - ], - "keywords": [ - "globals", - "global", - "identifiers", - "variables", - "vars", - "jshint", - "eslint", - "environments" - ], - "dependencies": { - "type-fest": "^0.20.2" - }, - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.14.0", - "xo": "^0.36.1" - }, - "xo": { - "ignores": [ - "get-browser-globals.js" - ], - "rules": { - "node/no-unsupported-features/es-syntax": "off" - } - }, - "tsd": { - "compilerOptions": { - "resolveJsonModule": true - } - } -} diff --git a/build/node_modules/globals/readme.md b/build/node_modules/globals/readme.md deleted file mode 100644 index 0ef22c30..00000000 --- a/build/node_modules/globals/readme.md +++ /dev/null @@ -1,56 +0,0 @@ -# globals - -> Global identifiers from different JavaScript environments - -It's just a [JSON file](globals.json), so use it in any environment. - -This package is used by ESLint. - -**This package [no longer accepts](https://github.com/sindresorhus/globals/issues/82) new environments. If you need it for ESLint, just [create a plugin](http://eslint.org/docs/developer-guide/working-with-plugins#environments-in-plugins).** - -## Install - -``` -$ npm install globals -``` - -## Usage - -```js -const globals = require('globals'); - -console.log(globals.browser); -/* -{ - addEventListener: false, - applicationCache: false, - ArrayBuffer: false, - atob: false, - … -} -*/ -``` - -Each global is given a value of `true` or `false`. A value of `true` indicates that the variable may be overwritten. A value of `false` indicates that the variable should be considered read-only. This information is used by static analysis tools to flag incorrect behavior. We assume all variables should be `false` unless we hear otherwise. - -For Node.js this package provides two sets of globals: - -- `globals.nodeBuiltin`: Globals available to all code running in Node.js. - These will usually be available as properties on the `global` object and include `process`, `Buffer`, but not CommonJS arguments like `require`. - See: https://nodejs.org/api/globals.html -- `globals.node`: A combination of the globals from `nodeBuiltin` plus all CommonJS arguments ("CommonJS module scope"). - See: https://nodejs.org/api/modules.html#modules_the_module_scope - -When analyzing code that is known to run outside of a CommonJS wrapper, for example, JavaScript modules, `nodeBuiltin` can find accidental CommonJS references. - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/globby/gitignore.js b/build/node_modules/globby/gitignore.js deleted file mode 100644 index 982834c1..00000000 --- a/build/node_modules/globby/gitignore.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; -const fs = require('fs'); -const path = require('path'); -const fastGlob = require('fast-glob'); -const gitIgnore = require('ignore'); -const pify = require('pify'); -const slash = require('slash'); - -const DEFAULT_IGNORE = [ - '**/node_modules/**', - '**/bower_components/**', - '**/flow-typed/**', - '**/coverage/**', - '**/.git' -]; - -const readFileP = pify(fs.readFile); - -const mapGitIgnorePatternTo = base => ignore => { - if (ignore.startsWith('!')) { - return '!' + path.posix.join(base, ignore.slice(1)); - } - - return path.posix.join(base, ignore); -}; - -const parseGitIgnore = (content, options) => { - const base = slash(path.relative(options.cwd, path.dirname(options.fileName))); - - return content - .split(/\r?\n/) - .filter(Boolean) - .filter(line => line.charAt(0) !== '#') - .map(mapGitIgnorePatternTo(base)); -}; - -const reduceIgnore = files => { - return files.reduce((ignores, file) => { - ignores.add(parseGitIgnore(file.content, { - cwd: file.cwd, - fileName: file.filePath - })); - return ignores; - }, gitIgnore()); -}; - -const getIsIgnoredPredecate = (ignores, cwd) => { - return p => ignores.ignores(slash(path.relative(cwd, p))); -}; - -const getFile = (file, cwd) => { - const filePath = path.join(cwd, file); - return readFileP(filePath, 'utf8') - .then(content => ({ - content, - cwd, - filePath - })); -}; - -const getFileSync = (file, cwd) => { - const filePath = path.join(cwd, file); - const content = fs.readFileSync(filePath, 'utf8'); - - return { - content, - cwd, - filePath - }; -}; - -const normalizeOptions = (options = {}) => { - const ignore = options.ignore || []; - const cwd = options.cwd || process.cwd(); - return {ignore, cwd}; -}; - -module.exports = options => { - options = normalizeOptions(options); - - return fastGlob('**/.gitignore', { - ignore: DEFAULT_IGNORE.concat(options.ignore), - cwd: options.cwd - }) - .then(paths => Promise.all(paths.map(file => getFile(file, options.cwd)))) - .then(files => reduceIgnore(files)) - .then(ignores => getIsIgnoredPredecate(ignores, options.cwd)); -}; - -module.exports.sync = options => { - options = normalizeOptions(options); - - const paths = fastGlob.sync('**/.gitignore', { - ignore: DEFAULT_IGNORE.concat(options.ignore), - cwd: options.cwd - }); - const files = paths.map(file => getFileSync(file, options.cwd)); - const ignores = reduceIgnore(files); - - return getIsIgnoredPredecate(ignores, options.cwd); -}; diff --git a/build/node_modules/globby/index.d.ts b/build/node_modules/globby/index.d.ts deleted file mode 100644 index cae3e97e..00000000 --- a/build/node_modules/globby/index.d.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {IOptions as NodeGlobOptions} from 'glob'; -import {Options as FastGlobOptions} from 'fast-glob'; - -declare namespace globby { - type ExpandDirectoriesOption = - | boolean - | ReadonlyArray - | {files: ReadonlyArray; extensions: ReadonlyArray}; - - interface GlobbyOptions extends FastGlobOptions { - /** - If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. - - Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. - - @default true - - @example - ``` - import globby = require('globby'); - - (async () => { - const paths = await globby('images', { - expandDirectories: { - files: ['cat', 'unicorn', '*.jpg'], - extensions: ['png'] - } - }); - console.log(paths); - //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] - })(); - ``` - */ - readonly expandDirectories?: ExpandDirectoriesOption; - - /** - Respect ignore patterns in `.gitignore` files that apply to the globbed files. - - @default false - */ - readonly gitignore?: boolean; - } - - interface GlobTask { - readonly pattern: string; - readonly options: globby.GlobbyOptions; - } - - interface GitignoreOptions { - readonly cwd?: string; - readonly ignore?: ReadonlyArray; - } - - type FilterFunction = (path: string) => boolean; -} - -interface Gitignore { - /** - `.gitignore` files matched by the ignore config are not used for the resulting filter function. - - @returns A `Promise` for a filter function indicating whether a given path is ignored via a `.gitignore` file. - - @example - ``` - import {gitignore} from 'globby'; - - (async () => { - const isIgnored = await gitignore(); - console.log(isIgnored('some/file')); - })(); - ``` - */ - (options?: globby.GitignoreOptions): Promise; - - /** - @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. - */ - sync(options?: globby.GitignoreOptions): globby.FilterFunction; -} - -declare const globby: { - /** - @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. - @returns A `Promise` of matching paths. - - @example - ``` - import globby = require('globby'); - - (async () => { - const paths = await globby(['*', '!cake']); - - console.log(paths); - //=> ['unicorn', 'rainbow'] - })(); - ``` - */ - ( - patterns: string | ReadonlyArray, - options?: globby.GlobbyOptions - ): Promise; - - /** - @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. - @returns An `Array` of matching paths. - */ - sync( - patterns: string | ReadonlyArray, - options?: globby.GlobbyOptions - ): string[]; - - /** - Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. - - @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones in this package. - @returns An `Array` in the format `{ pattern: string, options: Object }`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. - */ - generateGlobTasks( - patterns: string | ReadonlyArray, - options?: globby.GlobbyOptions - ): globby.GlobTask[]; - - /** - Note that the options affect the results. If `noext: true` is set, then `+(a|b)` will not be considered a magic pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`, then that is considered magical, unless `nobrace: true` is set. - - This function is backed by [`node-glob`](https://github.com/isaacs/node-glob#globhasmagicpattern-options). - - @param patterns - See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). - @param options - See the [`node-glob` options](https://github.com/isaacs/node-glob#globhasmagicpattern-options). - @returns A boolean of whether there are any special glob characters in the `patterns`. - */ - hasMagic( - patterns: string | ReadonlyArray, - options?: NodeGlobOptions - ): boolean; - - readonly gitignore: Gitignore; - - // TODO: Remove this for the next major release - default: typeof globby; -}; - -export = globby; diff --git a/build/node_modules/globby/index.js b/build/node_modules/globby/index.js deleted file mode 100644 index dc0b2253..00000000 --- a/build/node_modules/globby/index.js +++ /dev/null @@ -1,148 +0,0 @@ -'use strict'; -const fs = require('fs'); -const arrayUnion = require('array-union'); -const glob = require('glob'); -const fastGlob = require('fast-glob'); -const dirGlob = require('dir-glob'); -const gitignore = require('./gitignore'); - -const DEFAULT_FILTER = () => false; - -const isNegative = pattern => pattern[0] === '!'; - -const assertPatternsInput = patterns => { - if (!patterns.every(x => typeof x === 'string')) { - throw new TypeError('Patterns must be a string or an array of strings'); - } -}; - -const checkCwdOption = options => { - if (options && options.cwd && !fs.statSync(options.cwd).isDirectory()) { - throw new Error('The `cwd` option must be a path to a directory'); - } -}; - -const generateGlobTasks = (patterns, taskOptions) => { - patterns = arrayUnion([].concat(patterns)); - assertPatternsInput(patterns); - checkCwdOption(taskOptions); - - const globTasks = []; - - taskOptions = Object.assign({ - ignore: [], - expandDirectories: true - }, taskOptions); - - patterns.forEach((pattern, i) => { - if (isNegative(pattern)) { - return; - } - - const ignore = patterns - .slice(i) - .filter(isNegative) - .map(pattern => pattern.slice(1)); - - const options = Object.assign({}, taskOptions, { - ignore: taskOptions.ignore.concat(ignore) - }); - - globTasks.push({pattern, options}); - }); - - return globTasks; -}; - -const globDirs = (task, fn) => { - let options = {}; - if (task.options.cwd) { - options.cwd = task.options.cwd; - } - - if (Array.isArray(task.options.expandDirectories)) { - options = Object.assign(options, {files: task.options.expandDirectories}); - } else if (typeof task.options.expandDirectories === 'object') { - options = Object.assign(options, task.options.expandDirectories); - } - - return fn(task.pattern, options); -}; - -const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern]; - -const globToTask = task => glob => { - const {options} = task; - if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { - options.ignore = dirGlob.sync(options.ignore); - } - - return { - pattern: glob, - options - }; -}; - -const globby = (patterns, options) => { - let globTasks; - - try { - globTasks = generateGlobTasks(patterns, options); - } catch (error) { - return Promise.reject(error); - } - - const getTasks = Promise.all(globTasks.map(task => Promise.resolve(getPattern(task, dirGlob)) - .then(globs => Promise.all(globs.map(globToTask(task)))) - )) - .then(tasks => arrayUnion(...tasks)); - - const getFilter = () => { - return Promise.resolve( - options && options.gitignore ? - gitignore({cwd: options.cwd, ignore: options.ignore}) : - DEFAULT_FILTER - ); - }; - - return getFilter() - .then(filter => { - return getTasks - .then(tasks => Promise.all(tasks.map(task => fastGlob(task.pattern, task.options)))) - .then(paths => arrayUnion(...paths)) - .then(paths => paths.filter(p => !filter(p))); - }); -}; - -module.exports = globby; -// TODO: Remove this for the next major release -module.exports.default = globby; - -module.exports.sync = (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - - const getFilter = () => { - return options && options.gitignore ? - gitignore.sync({cwd: options.cwd, ignore: options.ignore}) : - DEFAULT_FILTER; - }; - - const tasks = globTasks.reduce((tasks, task) => { - const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); - - const filter = getFilter(); - return tasks.reduce( - (matches, task) => arrayUnion(matches, fastGlob.sync(task.pattern, task.options)), - [] - ).filter(p => !filter(p)); -}; - -module.exports.generateGlobTasks = generateGlobTasks; - -module.exports.hasMagic = (patterns, options) => [] - .concat(patterns) - .some(pattern => glob.hasMagic(pattern, options)); - -module.exports.gitignore = gitignore; diff --git a/build/node_modules/globby/license b/build/node_modules/globby/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/globby/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/globby/package.json b/build/node_modules/globby/package.json deleted file mode 100644 index e6d9ada6..00000000 --- a/build/node_modules/globby/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "globby", - "version": "9.2.0", - "description": "Extends `glob` with support for multiple patterns and exposes a Promise API", - "license": "MIT", - "repository": "sindresorhus/globby", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "bench": "npm update glob-stream fast-glob && matcha bench.js", - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "gitignore.js", - "index.d.ts" - ], - "keywords": [ - "all", - "array", - "directories", - "dirs", - "expand", - "files", - "filesystem", - "filter", - "find", - "fnmatch", - "folders", - "fs", - "glob", - "globbing", - "globs", - "gulpfriendly", - "match", - "matcher", - "minimatch", - "multi", - "multiple", - "paths", - "pattern", - "patterns", - "traverse", - "util", - "utility", - "wildcard", - "wildcards", - "promise", - "gitignore", - "git" - ], - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "glob-stream": "^6.1.0", - "globby": "sindresorhus/globby#master", - "matcha": "^0.7.0", - "rimraf": "^2.6.3", - "tsd": "^0.7.1", - "xo": "^0.24.0" - }, - "xo": { - "ignores": [ - "fixtures" - ] - } -} diff --git a/build/node_modules/globby/readme.md b/build/node_modules/globby/readme.md deleted file mode 100644 index 70c2b84e..00000000 --- a/build/node_modules/globby/readme.md +++ /dev/null @@ -1,156 +0,0 @@ -# globby [![Build Status](https://travis-ci.org/sindresorhus/globby.svg?branch=master)](https://travis-ci.org/sindresorhus/globby) - -> User-friendly glob matching - -Based on [`fast-glob`](https://github.com/mrmlnc/fast-glob), but adds a bunch of useful features and a nicer API. - - -## Features - -- Promise API -- Multiple patterns -- Negated patterns: `['foo*', '!foobar']` -- Expands directories: `dir` → `dir/**/*` -- Supports `.gitignore` - - -## Install - -``` -$ npm install globby -``` - - -## Usage - -``` -├── unicorn -├── cake -└── rainbow -``` - -```js -const globby = require('globby'); - -(async () => { - const paths = await globby(['*', '!cake']); - - console.log(paths); - //=> ['unicorn', 'rainbow'] -})(); -``` - - -## API - -### globby(patterns, [options]) - -Returns a `Promise` of matching paths. - -#### patterns - -Type: `string` `Array` - -See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). - -#### options - -Type: `Object` - -See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-1) in addition to the ones below. - -##### expandDirectories - -Type: `boolean` `Array` `Object`
-Default: `true` - -If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like below: - -```js -(async () => { - const paths = await globby('images', { - expandDirectories: { - files: ['cat', 'unicorn', '*.jpg'], - extensions: ['png'] - } - }); - - console.log(paths); - //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] -})(); -``` - -Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. - -##### gitignore - -Type: `boolean`
-Default: `false` - -Respect ignore patterns in `.gitignore` files that apply to the globbed files. - -### globby.sync(patterns, [options]) - -Returns an `Array` of matching paths. - -### globby.generateGlobTasks(patterns, [options]) - -Returns an `Array` in the format `{pattern: string, options: Object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. - -Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. - -### globby.hasMagic(patterns, [options]) - -Returns a `boolean` of whether there are any special glob characters in the `patterns`. - -Note that the options affect the results. If `noext: true` is set, then `+(a|b)` will not be considered a magic pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`, then that is considered magical, unless `nobrace: true` is set. - -This function is backed by [`node-glob`](https://github.com/isaacs/node-glob#globhasmagicpattern-options) - -### globby.gitignore([options]) - -Returns a `Promise<(path: string) => boolean>` indicating whether a given path is ignored via a `.gitignore` file. - -Takes `cwd?: string` and `ignore?: string[]` as options. `.gitignore` files matched by the ignore config are not -used for the resulting filter function. - -```js -const {gitignore} = require('globby'); - -(async () => { - const isIgnored = await gitignore(); - console.log(isIgnored('some/file')); -})(); -``` - -### globby.gitignore.sync([options]) - -Returns a `(path: string) => boolean` indicating whether a given path is ignored via a `.gitignore` file. - -Takes the same options as `globby.gitignore`. - - -## Globbing patterns - -Just a quick overview. - -- `*` matches any number of characters, but not `/` -- `?` matches a single character, but not `/` -- `**` matches any number of characters, including `/`, as long as it's the only thing in a path part -- `{}` allows for a comma-separated list of "or" expressions -- `!` at the beginning of a pattern will negate the match - -[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) - - -## Related - -- [multimatch](https://github.com/sindresorhus/multimatch) - Match against a list instead of the filesystem -- [matcher](https://github.com/sindresorhus/matcher) - Simple wildcard matching -- [del](https://github.com/sindresorhus/del) - Delete files and directories -- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/gopd/.eslintrc b/build/node_modules/gopd/.eslintrc deleted file mode 100644 index e2550c0f..00000000 --- a/build/node_modules/gopd/.eslintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-style": [2, "declaration"], - "id-length": 0, - "multiline-comment-style": 0, - "new-cap": [2, { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - }, -} diff --git a/build/node_modules/gopd/CHANGELOG.md b/build/node_modules/gopd/CHANGELOG.md deleted file mode 100644 index f111eb17..00000000 --- a/build/node_modules/gopd/CHANGELOG.md +++ /dev/null @@ -1,25 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.1](https://github.com/ljharb/gopd/compare/v1.0.0...v1.0.1) - 2022-11-01 - -### Commits - -- [Fix] actually export gOPD instead of dP [`4b624bf`](https://github.com/ljharb/gopd/commit/4b624bfbeff788c5e3ff16d9443a83627847234f) - -## v1.0.0 - 2022-11-01 - -### Commits - -- Initial implementation, tests, readme [`0911e01`](https://github.com/ljharb/gopd/commit/0911e012cd642092bd88b732c161c58bf4f20bea) -- Initial commit [`b84e33f`](https://github.com/ljharb/gopd/commit/b84e33f5808a805ac57ff88d4247ad935569acbe) -- [actions] add reusable workflows [`12ae28a`](https://github.com/ljharb/gopd/commit/12ae28ae5f50f86e750215b6e2188901646d0119) -- npm init [`280118b`](https://github.com/ljharb/gopd/commit/280118badb45c80b4483836b5cb5315bddf6e582) -- [meta] add `auto-changelog` [`bb78de5`](https://github.com/ljharb/gopd/commit/bb78de5639a180747fb290c28912beaaf1615709) -- [meta] create FUNDING.yml; add `funding` in package.json [`11c22e6`](https://github.com/ljharb/gopd/commit/11c22e6355bb01f24e7fac4c9bb3055eb5b25002) -- [meta] use `npmignore` to autogenerate an npmignore file [`4f4537a`](https://github.com/ljharb/gopd/commit/4f4537a843b39f698c52f072845092e6fca345bb) -- Only apps should have lockfiles [`c567022`](https://github.com/ljharb/gopd/commit/c567022a18573aa7951cf5399445d9840e23e98b) diff --git a/build/node_modules/gopd/LICENSE b/build/node_modules/gopd/LICENSE deleted file mode 100644 index 6abfe143..00000000 --- a/build/node_modules/gopd/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/gopd/README.md b/build/node_modules/gopd/README.md deleted file mode 100644 index 784e56a0..00000000 --- a/build/node_modules/gopd/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# gopd [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation. - -## Usage - -```javascript -var gOPD = require('gopd'); -var assert = require('assert'); - -if (gOPD) { - assert.equal(typeof gOPD, 'function', 'descriptors supported'); - // use gOPD like Object.getOwnPropertyDescriptor here -} else { - assert.ok(!gOPD, 'descriptors not supported'); -} -``` - -[package-url]: https://npmjs.org/package/gopd -[npm-version-svg]: https://versionbadg.es/ljharb/gopd.svg -[deps-svg]: https://david-dm.org/ljharb/gopd.svg -[deps-url]: https://david-dm.org/ljharb/gopd -[dev-deps-svg]: https://david-dm.org/ljharb/gopd/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/gopd#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/gopd.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/gopd.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/gopd.svg -[downloads-url]: https://npm-stat.com/charts.html?package=gopd -[codecov-image]: https://codecov.io/gh/ljharb/gopd/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/gopd/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/gopd -[actions-url]: https://github.com/ljharb/gopd/actions diff --git a/build/node_modules/gopd/index.js b/build/node_modules/gopd/index.js deleted file mode 100644 index fb6d3bbe..00000000 --- a/build/node_modules/gopd/index.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); - -if ($gOPD) { - try { - $gOPD([], 'length'); - } catch (e) { - // IE 8 has a broken gOPD - $gOPD = null; - } -} - -module.exports = $gOPD; diff --git a/build/node_modules/gopd/package.json b/build/node_modules/gopd/package.json deleted file mode 100644 index d5e1fa4a..00000000 --- a/build/node_modules/gopd/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "gopd", - "version": "1.0.1", - "description": "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "sideEffects": false, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "lint": "eslint --ext=js,mjs .", - "postlint": "evalmd README.md", - "pretest": "npm run lint", - "tests-only": "tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/gopd.git" - }, - "keywords": [ - "ecmascript", - "javascript", - "getownpropertydescriptor", - "property", - "descriptor" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/gopd/issues" - }, - "homepage": "https://github.com/ljharb/gopd#readme", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.0.0", - "aud": "^2.0.1", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "safe-publish-latest": "^2.0.0", - "tape": "^5.6.1" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/graceful-fs/LICENSE b/build/node_modules/graceful-fs/LICENSE deleted file mode 100644 index e906a25a..00000000 --- a/build/node_modules/graceful-fs/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/graceful-fs/README.md b/build/node_modules/graceful-fs/README.md deleted file mode 100644 index 82d6e4da..00000000 --- a/build/node_modules/graceful-fs/README.md +++ /dev/null @@ -1,143 +0,0 @@ -# graceful-fs - -graceful-fs functions as a drop-in replacement for the fs module, -making various improvements. - -The improvements are meant to normalize behavior across different -platforms and environments, and to make filesystem access more -resilient to errors. - -## Improvements over [fs module](https://nodejs.org/api/fs.html) - -* Queues up `open` and `readdir` calls, and retries them once - something closes if there is an EMFILE error from too many file - descriptors. -* fixes `lchmod` for Node versions prior to 0.6.2. -* implements `fs.lutimes` if possible. Otherwise it becomes a noop. -* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or - `lchown` if the user isn't root. -* makes `lchmod` and `lchown` become noops, if not available. -* retries reading a file if `read` results in EAGAIN error. - -On Windows, it retries renaming a file for up to one second if `EACCESS` -or `EPERM` error occurs, likely because antivirus software has locked -the directory. - -## USAGE - -```javascript -// use just like fs -var fs = require('graceful-fs') - -// now go and do stuff with it... -fs.readFile('some-file-or-whatever', (err, data) => { - // Do stuff here. -}) -``` - -## Sync methods - -This module cannot intercept or handle `EMFILE` or `ENFILE` errors from sync -methods. If you use sync methods which open file descriptors then you are -responsible for dealing with any errors. - -This is a known limitation, not a bug. - -## Global Patching - -If you want to patch the global fs module (or any other fs-like -module) you can do this: - -```javascript -// Make sure to read the caveat below. -var realFs = require('fs') -var gracefulFs = require('graceful-fs') -gracefulFs.gracefulify(realFs) -``` - -This should only ever be done at the top-level application layer, in -order to delay on EMFILE errors from any fs-using dependencies. You -should **not** do this in a library, because it can cause unexpected -delays in other parts of the program. - -## Changes - -This module is fairly stable at this point, and used by a lot of -things. That being said, because it implements a subtle behavior -change in a core part of the node API, even modest changes can be -extremely breaking, and the versioning is thus biased towards -bumping the major when in doubt. - -The main change between major versions has been switching between -providing a fully-patched `fs` module vs monkey-patching the node core -builtin, and the approach by which a non-monkey-patched `fs` was -created. - -The goal is to trade `EMFILE` errors for slower fs operations. So, if -you try to open a zillion files, rather than crashing, `open` -operations will be queued up and wait for something else to `close`. - -There are advantages to each approach. Monkey-patching the fs means -that no `EMFILE` errors can possibly occur anywhere in your -application, because everything is using the same core `fs` module, -which is patched. However, it can also obviously cause undesirable -side-effects, especially if the module is loaded multiple times. - -Implementing a separate-but-identical patched `fs` module is more -surgical (and doesn't run the risk of patching multiple times), but -also imposes the challenge of keeping in sync with the core module. - -The current approach loads the `fs` module, and then creates a -lookalike object that has all the same methods, except a few that are -patched. It is safe to use in all versions of Node from 0.8 through -7.0. - -### v4 - -* Do not monkey-patch the fs module. This module may now be used as a - drop-in dep, and users can opt into monkey-patching the fs builtin - if their app requires it. - -### v3 - -* Monkey-patch fs, because the eval approach no longer works on recent - node. -* fixed possible type-error throw if rename fails on windows -* verify that we *never* get EMFILE errors -* Ignore ENOSYS from chmod/chown -* clarify that graceful-fs must be used as a drop-in - -### v2.1.0 - -* Use eval rather than monkey-patching fs. -* readdir: Always sort the results -* win32: requeue a file if error has an OK status - -### v2.0 - -* A return to monkey patching -* wrap process.cwd - -### v1.1 - -* wrap readFile -* Wrap fs.writeFile. -* readdir protection -* Don't clobber the fs builtin -* Handle fs.read EAGAIN errors by trying again -* Expose the curOpen counter -* No-op lchown/lchmod if not implemented -* fs.rename patch only for win32 -* Patch fs.rename to handle AV software on Windows -* Close #4 Chown should not fail on einval or eperm if non-root -* Fix isaacs/fstream#1 Only wrap fs one time -* Fix #3 Start at 1024 max files, then back off on EMFILE -* lutimes that doens't blow up on Linux -* A full on-rewrite using a queue instead of just swallowing the EMFILE error -* Wrap Read/Write streams as well - -### 1.0 - -* Update engines for node 0.6 -* Be lstat-graceful on Windows -* first diff --git a/build/node_modules/graceful-fs/clone.js b/build/node_modules/graceful-fs/clone.js deleted file mode 100644 index dff3cc8c..00000000 --- a/build/node_modules/graceful-fs/clone.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict' - -module.exports = clone - -var getPrototypeOf = Object.getPrototypeOf || function (obj) { - return obj.__proto__ -} - -function clone (obj) { - if (obj === null || typeof obj !== 'object') - return obj - - if (obj instanceof Object) - var copy = { __proto__: getPrototypeOf(obj) } - else - var copy = Object.create(null) - - Object.getOwnPropertyNames(obj).forEach(function (key) { - Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) - }) - - return copy -} diff --git a/build/node_modules/graceful-fs/graceful-fs.js b/build/node_modules/graceful-fs/graceful-fs.js deleted file mode 100644 index 8d5b89e4..00000000 --- a/build/node_modules/graceful-fs/graceful-fs.js +++ /dev/null @@ -1,448 +0,0 @@ -var fs = require('fs') -var polyfills = require('./polyfills.js') -var legacy = require('./legacy-streams.js') -var clone = require('./clone.js') - -var util = require('util') - -/* istanbul ignore next - node 0.x polyfill */ -var gracefulQueue -var previousSymbol - -/* istanbul ignore else - node 0.x polyfill */ -if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { - gracefulQueue = Symbol.for('graceful-fs.queue') - // This is used in testing by future versions - previousSymbol = Symbol.for('graceful-fs.previous') -} else { - gracefulQueue = '___graceful-fs.queue' - previousSymbol = '___graceful-fs.previous' -} - -function noop () {} - -function publishQueue(context, queue) { - Object.defineProperty(context, gracefulQueue, { - get: function() { - return queue - } - }) -} - -var debug = noop -if (util.debuglog) - debug = util.debuglog('gfs4') -else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) - debug = function() { - var m = util.format.apply(util, arguments) - m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') - console.error(m) - } - -// Once time initialization -if (!fs[gracefulQueue]) { - // This queue can be shared by multiple loaded instances - var queue = global[gracefulQueue] || [] - publishQueue(fs, queue) - - // Patch fs.close/closeSync to shared queue version, because we need - // to retry() whenever a close happens *anywhere* in the program. - // This is essential when multiple graceful-fs instances are - // in play at the same time. - fs.close = (function (fs$close) { - function close (fd, cb) { - return fs$close.call(fs, fd, function (err) { - // This function uses the graceful-fs shared queue - if (!err) { - resetQueue() - } - - if (typeof cb === 'function') - cb.apply(this, arguments) - }) - } - - Object.defineProperty(close, previousSymbol, { - value: fs$close - }) - return close - })(fs.close) - - fs.closeSync = (function (fs$closeSync) { - function closeSync (fd) { - // This function uses the graceful-fs shared queue - fs$closeSync.apply(fs, arguments) - resetQueue() - } - - Object.defineProperty(closeSync, previousSymbol, { - value: fs$closeSync - }) - return closeSync - })(fs.closeSync) - - if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug(fs[gracefulQueue]) - require('assert').equal(fs[gracefulQueue].length, 0) - }) - } -} - -if (!global[gracefulQueue]) { - publishQueue(global, fs[gracefulQueue]); -} - -module.exports = patch(clone(fs)) -if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { - module.exports = patch(fs) - fs.__patched = true; -} - -function patch (fs) { - // Everything that references the open() function needs to be in here - polyfills(fs) - fs.gracefulify = patch - - fs.createReadStream = createReadStream - fs.createWriteStream = createWriteStream - var fs$readFile = fs.readFile - fs.readFile = readFile - function readFile (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$readFile(path, options, cb) - - function go$readFile (path, options, cb, startTime) { - return fs$readFile(path, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - - var fs$writeFile = fs.writeFile - fs.writeFile = writeFile - function writeFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$writeFile(path, data, options, cb) - - function go$writeFile (path, data, options, cb, startTime) { - return fs$writeFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - - var fs$appendFile = fs.appendFile - if (fs$appendFile) - fs.appendFile = appendFile - function appendFile (path, data, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - return go$appendFile(path, data, options, cb) - - function go$appendFile (path, data, options, cb, startTime) { - return fs$appendFile(path, data, options, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - - var fs$copyFile = fs.copyFile - if (fs$copyFile) - fs.copyFile = copyFile - function copyFile (src, dest, flags, cb) { - if (typeof flags === 'function') { - cb = flags - flags = 0 - } - return go$copyFile(src, dest, flags, cb) - - function go$copyFile (src, dest, flags, cb, startTime) { - return fs$copyFile(src, dest, flags, function (err) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - - var fs$readdir = fs.readdir - fs.readdir = readdir - var noReaddirOptionVersions = /^v[0-5]\./ - function readdir (path, options, cb) { - if (typeof options === 'function') - cb = options, options = null - - var go$readdir = noReaddirOptionVersions.test(process.version) - ? function go$readdir (path, options, cb, startTime) { - return fs$readdir(path, fs$readdirCallback( - path, options, cb, startTime - )) - } - : function go$readdir (path, options, cb, startTime) { - return fs$readdir(path, options, fs$readdirCallback( - path, options, cb, startTime - )) - } - - return go$readdir(path, options, cb) - - function fs$readdirCallback (path, options, cb, startTime) { - return function (err, files) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([ - go$readdir, - [path, options, cb], - err, - startTime || Date.now(), - Date.now() - ]) - else { - if (files && files.sort) - files.sort() - - if (typeof cb === 'function') - cb.call(this, err, files) - } - } - } - } - - if (process.version.substr(0, 4) === 'v0.8') { - var legStreams = legacy(fs) - ReadStream = legStreams.ReadStream - WriteStream = legStreams.WriteStream - } - - var fs$ReadStream = fs.ReadStream - if (fs$ReadStream) { - ReadStream.prototype = Object.create(fs$ReadStream.prototype) - ReadStream.prototype.open = ReadStream$open - } - - var fs$WriteStream = fs.WriteStream - if (fs$WriteStream) { - WriteStream.prototype = Object.create(fs$WriteStream.prototype) - WriteStream.prototype.open = WriteStream$open - } - - Object.defineProperty(fs, 'ReadStream', { - get: function () { - return ReadStream - }, - set: function (val) { - ReadStream = val - }, - enumerable: true, - configurable: true - }) - Object.defineProperty(fs, 'WriteStream', { - get: function () { - return WriteStream - }, - set: function (val) { - WriteStream = val - }, - enumerable: true, - configurable: true - }) - - // legacy names - var FileReadStream = ReadStream - Object.defineProperty(fs, 'FileReadStream', { - get: function () { - return FileReadStream - }, - set: function (val) { - FileReadStream = val - }, - enumerable: true, - configurable: true - }) - var FileWriteStream = WriteStream - Object.defineProperty(fs, 'FileWriteStream', { - get: function () { - return FileWriteStream - }, - set: function (val) { - FileWriteStream = val - }, - enumerable: true, - configurable: true - }) - - function ReadStream (path, options) { - if (this instanceof ReadStream) - return fs$ReadStream.apply(this, arguments), this - else - return ReadStream.apply(Object.create(ReadStream.prototype), arguments) - } - - function ReadStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - if (that.autoClose) - that.destroy() - - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - that.read() - } - }) - } - - function WriteStream (path, options) { - if (this instanceof WriteStream) - return fs$WriteStream.apply(this, arguments), this - else - return WriteStream.apply(Object.create(WriteStream.prototype), arguments) - } - - function WriteStream$open () { - var that = this - open(that.path, that.flags, that.mode, function (err, fd) { - if (err) { - that.destroy() - that.emit('error', err) - } else { - that.fd = fd - that.emit('open', fd) - } - }) - } - - function createReadStream (path, options) { - return new fs.ReadStream(path, options) - } - - function createWriteStream (path, options) { - return new fs.WriteStream(path, options) - } - - var fs$open = fs.open - fs.open = open - function open (path, flags, mode, cb) { - if (typeof mode === 'function') - cb = mode, mode = null - - return go$open(path, flags, mode, cb) - - function go$open (path, flags, mode, cb, startTime) { - return fs$open(path, flags, mode, function (err, fd) { - if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) - enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()]) - else { - if (typeof cb === 'function') - cb.apply(this, arguments) - } - }) - } - } - - return fs -} - -function enqueue (elem) { - debug('ENQUEUE', elem[0].name, elem[1]) - fs[gracefulQueue].push(elem) - retry() -} - -// keep track of the timeout between retry() calls -var retryTimer - -// reset the startTime and lastTime to now -// this resets the start of the 60 second overall timeout as well as the -// delay between attempts so that we'll retry these jobs sooner -function resetQueue () { - var now = Date.now() - for (var i = 0; i < fs[gracefulQueue].length; ++i) { - // entries that are only a length of 2 are from an older version, don't - // bother modifying those since they'll be retried anyway. - if (fs[gracefulQueue][i].length > 2) { - fs[gracefulQueue][i][3] = now // startTime - fs[gracefulQueue][i][4] = now // lastTime - } - } - // call retry to make sure we're actively processing the queue - retry() -} - -function retry () { - // clear the timer and remove it to help prevent unintended concurrency - clearTimeout(retryTimer) - retryTimer = undefined - - if (fs[gracefulQueue].length === 0) - return - - var elem = fs[gracefulQueue].shift() - var fn = elem[0] - var args = elem[1] - // these items may be unset if they were added by an older graceful-fs - var err = elem[2] - var startTime = elem[3] - var lastTime = elem[4] - - // if we don't have a startTime we have no way of knowing if we've waited - // long enough, so go ahead and retry this item now - if (startTime === undefined) { - debug('RETRY', fn.name, args) - fn.apply(null, args) - } else if (Date.now() - startTime >= 60000) { - // it's been more than 60 seconds total, bail now - debug('TIMEOUT', fn.name, args) - var cb = args.pop() - if (typeof cb === 'function') - cb.call(null, err) - } else { - // the amount of time between the last attempt and right now - var sinceAttempt = Date.now() - lastTime - // the amount of time between when we first tried, and when we last tried - // rounded up to at least 1 - var sinceStart = Math.max(lastTime - startTime, 1) - // backoff. wait longer than the total time we've been retrying, but only - // up to a maximum of 100ms - var desiredDelay = Math.min(sinceStart * 1.2, 100) - // it's been long enough since the last retry, do it again - if (sinceAttempt >= desiredDelay) { - debug('RETRY', fn.name, args) - fn.apply(null, args.concat([startTime])) - } else { - // if we can't do this job yet, push it to the end of the queue - // and let the next iteration check again - fs[gracefulQueue].push(elem) - } - } - - // schedule our next run if one isn't already scheduled - if (retryTimer === undefined) { - retryTimer = setTimeout(retry, 0) - } -} diff --git a/build/node_modules/graceful-fs/legacy-streams.js b/build/node_modules/graceful-fs/legacy-streams.js deleted file mode 100644 index d617b50f..00000000 --- a/build/node_modules/graceful-fs/legacy-streams.js +++ /dev/null @@ -1,118 +0,0 @@ -var Stream = require('stream').Stream - -module.exports = legacy - -function legacy (fs) { - return { - ReadStream: ReadStream, - WriteStream: WriteStream - } - - function ReadStream (path, options) { - if (!(this instanceof ReadStream)) return new ReadStream(path, options); - - Stream.call(this); - - var self = this; - - this.path = path; - this.fd = null; - this.readable = true; - this.paused = false; - - this.flags = 'r'; - this.mode = 438; /*=0666*/ - this.bufferSize = 64 * 1024; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.encoding) this.setEncoding(this.encoding); - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.end === undefined) { - this.end = Infinity; - } else if ('number' !== typeof this.end) { - throw TypeError('end must be a Number'); - } - - if (this.start > this.end) { - throw new Error('start must be <= end'); - } - - this.pos = this.start; - } - - if (this.fd !== null) { - process.nextTick(function() { - self._read(); - }); - return; - } - - fs.open(this.path, this.flags, this.mode, function (err, fd) { - if (err) { - self.emit('error', err); - self.readable = false; - return; - } - - self.fd = fd; - self.emit('open', fd); - self._read(); - }) - } - - function WriteStream (path, options) { - if (!(this instanceof WriteStream)) return new WriteStream(path, options); - - Stream.call(this); - - this.path = path; - this.fd = null; - this.writable = true; - - this.flags = 'w'; - this.encoding = 'binary'; - this.mode = 438; /*=0666*/ - this.bytesWritten = 0; - - options = options || {}; - - // Mixin options into this - var keys = Object.keys(options); - for (var index = 0, length = keys.length; index < length; index++) { - var key = keys[index]; - this[key] = options[key]; - } - - if (this.start !== undefined) { - if ('number' !== typeof this.start) { - throw TypeError('start must be a Number'); - } - if (this.start < 0) { - throw new Error('start must be >= zero'); - } - - this.pos = this.start; - } - - this.busy = false; - this._queue = []; - - if (this.fd === null) { - this._open = fs.open; - this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); - this.flush(); - } - } -} diff --git a/build/node_modules/graceful-fs/package.json b/build/node_modules/graceful-fs/package.json deleted file mode 100644 index 87babf02..00000000 --- a/build/node_modules/graceful-fs/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "graceful-fs", - "description": "A drop-in replacement for fs, making various improvements.", - "version": "4.2.11", - "repository": { - "type": "git", - "url": "https://github.com/isaacs/node-graceful-fs" - }, - "main": "graceful-fs.js", - "directories": { - "test": "test" - }, - "scripts": { - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags", - "test": "nyc --silent node test.js | tap -c -", - "posttest": "nyc report" - }, - "keywords": [ - "fs", - "module", - "reading", - "retry", - "retries", - "queue", - "error", - "errors", - "handling", - "EMFILE", - "EAGAIN", - "EINVAL", - "EPERM", - "EACCESS" - ], - "license": "ISC", - "devDependencies": { - "import-fresh": "^2.0.0", - "mkdirp": "^0.5.0", - "rimraf": "^2.2.8", - "tap": "^16.3.4" - }, - "files": [ - "fs.js", - "graceful-fs.js", - "legacy-streams.js", - "polyfills.js", - "clone.js" - ], - "tap": { - "reporter": "classic" - } -} diff --git a/build/node_modules/graceful-fs/polyfills.js b/build/node_modules/graceful-fs/polyfills.js deleted file mode 100644 index 453f1a9e..00000000 --- a/build/node_modules/graceful-fs/polyfills.js +++ /dev/null @@ -1,355 +0,0 @@ -var constants = require('constants') - -var origCwd = process.cwd -var cwd = null - -var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform - -process.cwd = function() { - if (!cwd) - cwd = origCwd.call(process) - return cwd -} -try { - process.cwd() -} catch (er) {} - -// This check is needed until node.js 12 is required -if (typeof process.chdir === 'function') { - var chdir = process.chdir - process.chdir = function (d) { - cwd = null - chdir.call(process, d) - } - if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir) -} - -module.exports = patch - -function patch (fs) { - // (re-)implement some things that are known busted or missing. - - // lchmod, broken prior to 0.6.2 - // back-port the fix here. - if (constants.hasOwnProperty('O_SYMLINK') && - process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { - patchLchmod(fs) - } - - // lutimes implementation, or no-op - if (!fs.lutimes) { - patchLutimes(fs) - } - - // https://github.com/isaacs/node-graceful-fs/issues/4 - // Chown should not fail on einval or eperm if non-root. - // It should not fail on enosys ever, as this just indicates - // that a fs doesn't support the intended operation. - - fs.chown = chownFix(fs.chown) - fs.fchown = chownFix(fs.fchown) - fs.lchown = chownFix(fs.lchown) - - fs.chmod = chmodFix(fs.chmod) - fs.fchmod = chmodFix(fs.fchmod) - fs.lchmod = chmodFix(fs.lchmod) - - fs.chownSync = chownFixSync(fs.chownSync) - fs.fchownSync = chownFixSync(fs.fchownSync) - fs.lchownSync = chownFixSync(fs.lchownSync) - - fs.chmodSync = chmodFixSync(fs.chmodSync) - fs.fchmodSync = chmodFixSync(fs.fchmodSync) - fs.lchmodSync = chmodFixSync(fs.lchmodSync) - - fs.stat = statFix(fs.stat) - fs.fstat = statFix(fs.fstat) - fs.lstat = statFix(fs.lstat) - - fs.statSync = statFixSync(fs.statSync) - fs.fstatSync = statFixSync(fs.fstatSync) - fs.lstatSync = statFixSync(fs.lstatSync) - - // if lchmod/lchown do not exist, then make them no-ops - if (fs.chmod && !fs.lchmod) { - fs.lchmod = function (path, mode, cb) { - if (cb) process.nextTick(cb) - } - fs.lchmodSync = function () {} - } - if (fs.chown && !fs.lchown) { - fs.lchown = function (path, uid, gid, cb) { - if (cb) process.nextTick(cb) - } - fs.lchownSync = function () {} - } - - // on Windows, A/V software can lock the directory, causing this - // to fail with an EACCES or EPERM if the directory contains newly - // created files. Try again on failure, for up to 60 seconds. - - // Set the timeout this long because some Windows Anti-Virus, such as Parity - // bit9, may lock files for up to a minute, causing npm package install - // failures. Also, take care to yield the scheduler. Windows scheduling gives - // CPU to a busy looping process, which can cause the program causing the lock - // contention to be starved of CPU by node, so the contention doesn't resolve. - if (platform === "win32") { - fs.rename = typeof fs.rename !== 'function' ? fs.rename - : (function (fs$rename) { - function rename (from, to, cb) { - var start = Date.now() - var backoff = 0; - fs$rename(from, to, function CB (er) { - if (er - && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY") - && Date.now() - start < 60000) { - setTimeout(function() { - fs.stat(to, function (stater, st) { - if (stater && stater.code === "ENOENT") - fs$rename(from, to, CB); - else - cb(er) - }) - }, backoff) - if (backoff < 100) - backoff += 10; - return; - } - if (cb) cb(er) - }) - } - if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename) - return rename - })(fs.rename) - } - - // if read() returns EAGAIN, then just try it again. - fs.read = typeof fs.read !== 'function' ? fs.read - : (function (fs$read) { - function read (fd, buffer, offset, length, position, callback_) { - var callback - if (callback_ && typeof callback_ === 'function') { - var eagCounter = 0 - callback = function (er, _, __) { - if (er && er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } - callback_.apply(this, arguments) - } - } - return fs$read.call(fs, fd, buffer, offset, length, position, callback) - } - - // This ensures `util.promisify` works as it does for native `fs.read`. - if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read) - return read - })(fs.read) - - fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync - : (function (fs$readSync) { return function (fd, buffer, offset, length, position) { - var eagCounter = 0 - while (true) { - try { - return fs$readSync.call(fs, fd, buffer, offset, length, position) - } catch (er) { - if (er.code === 'EAGAIN' && eagCounter < 10) { - eagCounter ++ - continue - } - throw er - } - } - }})(fs.readSync) - - function patchLchmod (fs) { - fs.lchmod = function (path, mode, callback) { - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - if (callback) callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - if (callback) callback(err || err2) - }) - }) - }) - } - - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) - - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var threw = true - var ret - try { - ret = fs.fchmodSync(fd, mode) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } - } - - function patchLutimes (fs) { - if (constants.hasOwnProperty("O_SYMLINK") && fs.futimes) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - if (er) { - if (cb) cb(er) - return - } - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - if (cb) cb(er || er2) - }) - }) - }) - } - - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - var ret - var threw = true - try { - ret = fs.futimesSync(fd, at, mt) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } - - } else if (fs.futimes) { - fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } - fs.lutimesSync = function () {} - } - } - - function chmodFix (orig) { - if (!orig) return orig - return function (target, mode, cb) { - return orig.call(fs, target, mode, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } - } - - function chmodFixSync (orig) { - if (!orig) return orig - return function (target, mode) { - try { - return orig.call(fs, target, mode) - } catch (er) { - if (!chownErOk(er)) throw er - } - } - } - - - function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) - } - } - - function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er - } - } - } - - function statFix (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - function callback (er, stats) { - if (stats) { - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - } - if (cb) cb.apply(this, arguments) - } - return options ? orig.call(fs, target, options, callback) - : orig.call(fs, target, callback) - } - } - - function statFixSync (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, options) { - var stats = options ? orig.call(fs, target, options) - : orig.call(fs, target) - if (stats) { - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - } - return stats; - } - } - - // ENOSYS means that the fs doesn't support the op. Just ignore - // that, because it doesn't matter. - // - // if there's no getuid, or if getuid() is something other - // than 0, and the error is EINVAL or EPERM, then just ignore - // it. - // - // This specific case is a silent failure in cp, install, tar, - // and most other unix tools that manage permissions. - // - // When running as root, or if other types of errors are - // encountered, then it's strict. - function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") - return true - } - - return false - } -} diff --git a/build/node_modules/graphemer/CHANGELOG.md b/build/node_modules/graphemer/CHANGELOG.md deleted file mode 100644 index dc1dd423..00000000 --- a/build/node_modules/graphemer/CHANGELOG.md +++ /dev/null @@ -1,30 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [1.3.0] - 2021-12-13 - -### Added - -- Updated to include support for Unicode 14 - -## [1.2.0] - 2021-01-29 - -### Updated - -- Refactored to increase speed - -## [1.1.0] - 2020-09-14 - -### Added - -- Updated to include support for Unicode 13 - -## [1.0.0] - 2020-09-13 - -- Forked from work by @JLHwung on original `Grapheme-Splitter` library: https://github.com/JLHwung/grapheme-splitter/tree/next -- Converted to Typescript -- Added development and build tooling diff --git a/build/node_modules/graphemer/LICENSE b/build/node_modules/graphemer/LICENSE deleted file mode 100644 index 51f38310..00000000 --- a/build/node_modules/graphemer/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright 2020 Filament (Anomalous Technologies Limited) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/graphemer/README.md b/build/node_modules/graphemer/README.md deleted file mode 100644 index 0ac98ad3..00000000 --- a/build/node_modules/graphemer/README.md +++ /dev/null @@ -1,132 +0,0 @@ -# Graphemer: Unicode Character Splitter 🪓 - -## Introduction - -This library continues the work of [Grapheme Splitter](https://github.com/orling/grapheme-splitter) and supports the following unicode versions: - -- Unicode 15 and below `[v1.4.0]` -- Unicode 14 and below `[v1.3.0]` -- Unicode 13 and below `[v1.1.0]` -- Unicode 11 and below `[v1.0.0]` (Unicode 10 supported by `grapheme-splitter`) - -In JavaScript there is not always a one-to-one relationship between string characters and what a user would call a separate visual "letter". Some symbols are represented by several characters. This can cause issues when splitting strings and inadvertently cutting a multi-char letter in half, or when you need the actual number of letters in a string. - -For example, emoji characters like "🌷","🎁","💩","😜" and "👍" are represented by two JavaScript characters each (high surrogate and low surrogate). That is, - -```javascript -'🌷'.length == 2; -``` - -The combined emoji are even longer: - -```javascript -'🏳️‍🌈'.length == 6; -``` - -What's more, some languages often include combining marks - characters that are used to modify the letters before them. Common examples are the German letter ü and the Spanish letter ñ. Sometimes they can be represented alternatively both as a single character and as a letter + combining mark, with both forms equally valid: - -```javascript -var two = 'ñ'; // unnormalized two-char n+◌̃, i.e. "\u006E\u0303"; -var one = 'ñ'; // normalized single-char, i.e. "\u00F1" - -console.log(one != two); // prints 'true' -``` - -Unicode normalization, as performed by the popular punycode.js library or ECMAScript 6's String.normalize, can **sometimes** fix those differences and turn two-char sequences into single characters. But it is **not** enough in all cases. Some languages like Hindi make extensive use of combining marks on their letters, that have no dedicated single-codepoint Unicode sequences, due to the sheer number of possible combinations. -For example, the Hindi word "अनुच्छेद" is comprised of 5 letters and 3 combining marks: - -अ + न + ु + च + ् + छ + े + द - -which is in fact just 5 user-perceived letters: - -अ + नु + च् + छे + द - -and which Unicode normalization would not combine properly. -There are also the unusual letter+combining mark combinations which have no dedicated Unicode codepoint. The string Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘ obviously has 5 separate letters, but is in fact comprised of 58 JavaScript characters, most of which are combining marks. - -Enter the `graphemer` library. It can be used to properly split JavaScript strings into what a human user would call separate letters (or "extended grapheme clusters" in Unicode terminology), no matter what their internal representation is. It is an implementation on the [Default Grapheme Cluster Boundary](http://unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table) of [UAX #29](http://www.unicode.org/reports/tr29/). - -## Installation - -Install `graphemer` using the NPM command below: - -``` -$ npm i graphemer -``` - -## Usage - -If you're using [Typescript](https://www.typescriptlang.org/) or a compiler like [Babel](https://babeljs.io/) (or something like Create React App) things are pretty simple; just import, initialize and use! - -```javascript -import Graphemer from 'graphemer'; - -const splitter = new Graphemer(); - -// split the string to an array of grapheme clusters (one string each) -const graphemes = splitter.splitGraphemes(string); - -// iterate the string to an iterable iterator of grapheme clusters (one string each) -const graphemeIterator = splitter.iterateGraphemes(string); - -// or do this if you just need their number -const graphemeCount = splitter.countGraphemes(string); -``` - -If you're using vanilla Node you can use the `require()` method. - -```javascript -const Graphemer = require('graphemer').default; - -const splitter = new Graphemer(); - -const graphemes = splitter.splitGraphemes(string); -``` - -## Examples - -```javascript -import Graphemer from 'graphemer'; - -const splitter = new Graphemer(); - -// plain latin alphabet - nothing spectacular -splitter.splitGraphemes('abcd'); // returns ["a", "b", "c", "d"] - -// two-char emojis and six-char combined emoji -splitter.splitGraphemes('🌷🎁💩😜👍🏳️‍🌈'); // returns ["🌷","🎁","💩","😜","👍","🏳️‍🌈"] - -// diacritics as combining marks, 10 JavaScript chars -splitter.splitGraphemes('Ĺo͂řȩm̅'); // returns ["Ĺ","o͂","ř","ȩ","m̅"] - -// individual Korean characters (Jamo), 4 JavaScript chars -splitter.splitGraphemes('뎌쉐'); // returns ["뎌","쉐"] - -// Hindi text with combining marks, 8 JavaScript chars -splitter.splitGraphemes('अनुच्छेद'); // returns ["अ","नु","च्","छे","द"] - -// demonic multiple combining marks, 75 JavaScript chars -splitter.splitGraphemes('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞'); // returns ["Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍","A̴̵̜̰͔ͫ͗͢","L̠ͨͧͩ͘","G̴̻͈͍͔̹̑͗̎̅͛́","Ǫ̵̹̻̝̳͂̌̌͘","!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞"] -``` - -## TypeScript - -Graphemer is built with TypeScript and, of course, includes type declarations. - -```javascript -import Graphemer from 'graphemer'; - -const splitter = new Graphemer(); - -const split: string[] = splitter.splitGraphemes('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞'); -``` - -## Contributing - -See [Contribution Guide](./CONTRIBUTING.md). - -## Acknowledgements - -This library is a fork of the incredible work done by Orlin Georgiev and Huáng Jùnliàng at https://github.com/orling/grapheme-splitter. - -The original library was heavily influenced by Devon Govett's excellent [grapheme-breaker](https://github.com/devongovett/grapheme-breaker) CoffeeScript library. diff --git a/build/node_modules/graphemer/package.json b/build/node_modules/graphemer/package.json deleted file mode 100644 index cf0315dd..00000000 --- a/build/node_modules/graphemer/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "graphemer", - "version": "1.4.0", - "description": "A JavaScript library that breaks strings into their individual user-perceived characters (including emojis!)", - "homepage": "https://github.com/flmnt/graphemer", - "author": "Matt Davies (https://github.com/mattpauldavies)", - "contributors": [ - "Orlin Georgiev (https://github.com/orling)", - "Huáng Jùnliàng (https://github.com/JLHwung)" - ], - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "files": [ - "lib" - ], - "license": "MIT", - "keywords": [ - "utf-8", - "strings", - "emoji", - "split" - ], - "scripts": { - "prepublishOnly": "npm run build", - "build": "tsc --project tsconfig.json", - "pretest": "npm run build", - "test": "ts-node node_modules/tape/bin/tape tests/**.ts", - "prettier:check": "prettier --check .", - "prettier:fix": "prettier --write ." - }, - "repository": { - "type": "git", - "url": "https://github.com/flmnt/graphemer.git" - }, - "bugs": "https://github.com/flmnt/graphemer/issues", - "devDependencies": { - "@types/tape": "^4.13.0", - "husky": "^4.3.0", - "lint-staged": "^10.3.0", - "prettier": "^2.1.1", - "tape": "^4.6.3", - "ts-node": "^9.0.0", - "typescript": "^4.0.2" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged", - "pre-push": "npm test" - } - }, - "lint-staged": { - "*.{js,ts,md,json}": "prettier --write" - } -} diff --git a/build/node_modules/handle-thing/.travis.yml b/build/node_modules/handle-thing/.travis.yml deleted file mode 100644 index 789c9495..00000000 --- a/build/node_modules/handle-thing/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "6" - - "8" - - "10" - - "11.1" - - "12" - -script: - - npm run lint - - npm test - - npm run coverage diff --git a/build/node_modules/handle-thing/README.md b/build/node_modules/handle-thing/README.md deleted file mode 100644 index 5d0574b5..00000000 --- a/build/node_modules/handle-thing/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Handle Thing - -[![Build Status](https://travis-ci.org/spdy-http2/handle-thing.svg?branch=master)](http://travis-ci.org/spdy-http2/handle-thing) -[![NPM version](https://badge.fury.io/js/handle-thing.svg)](http://badge.fury.io/js/handle-thing) -[![dependencies Status](https://david-dm.org/spdy-http2/handle-thing/status.svg?style=flat-square)](https://david-dm.org/spdy-http2/handle-thing) -[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg?style=flat-square)](http://standardjs.com/) -[![Waffle](https://img.shields.io/badge/track-waffle-blue.svg?style=flat-square)](https://waffle.io/spdy-http2/node-spdy) - -> Wrap Streams2 instance into a HandleWrap. The right thing when you need it - -## Usage - -### Examples - -`soon™` - -### API - -`soon™` - -## LICENSE - -This software is licensed under the MIT License. - -Copyright Fedor Indutny, 2015. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/handle-thing/package.json b/build/node_modules/handle-thing/package.json deleted file mode 100644 index 2a36fcf5..00000000 --- a/build/node_modules/handle-thing/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "handle-thing", - "version": "2.0.1", - "description": "Wrap Streams2 instance into a HandleWrap", - "main": "lib/handle.js", - "scripts": { - "lint": "standard", - "test": "mocha --reporter=spec test/*-test.js", - "coverage": "istanbul cover node_modules/.bin/_mocha -- --reporter=spec test/**/*-test.js" - }, - "pre-commit": [ - "lint", - "test" - ], - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/handle-thing.git" - }, - "keywords": [ - "handle", - "net", - "streams2" - ], - "author": "Fedor Indutny ", - "license": "MIT", - "bugs": { - "url": "https://github.com/spdy-http2/handle-thing/issues" - }, - "homepage": "https://github.com/spdy-http2/handle-thing#readme", - "devDependencies": { - "istanbul": "^0.4.5", - "mocha": "^5.2.0", - "pre-commit": "^1.2.2", - "readable-stream": "^3.0.6", - "standard": "^12.0.1", - "stream-pair": "^1.0.3" - } -} diff --git a/build/node_modules/has-ansi/index.js b/build/node_modules/has-ansi/index.js deleted file mode 100644 index 98fae067..00000000 --- a/build/node_modules/has-ansi/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -var ansiRegex = require('ansi-regex'); -var re = new RegExp(ansiRegex().source); // remove the `g` flag -module.exports = re.test.bind(re); diff --git a/build/node_modules/has-ansi/license b/build/node_modules/has-ansi/license deleted file mode 100644 index 654d0bfe..00000000 --- a/build/node_modules/has-ansi/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/has-ansi/package.json b/build/node_modules/has-ansi/package.json deleted file mode 100644 index 01e08d4f..00000000 --- a/build/node_modules/has-ansi/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "has-ansi", - "version": "2.0.0", - "description": "Check if a string has ANSI escape codes", - "license": "MIT", - "repository": "sindresorhus/has-ansi", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "maintainers": [ - "Sindre Sorhus (sindresorhus.com)", - "Joshua Appelman (jbnicolai.com)" - ], - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "node test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern", - "has" - ], - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "devDependencies": { - "ava": "0.0.4" - } -} diff --git a/build/node_modules/has-ansi/readme.md b/build/node_modules/has-ansi/readme.md deleted file mode 100644 index 02bc7c23..00000000 --- a/build/node_modules/has-ansi/readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# has-ansi [![Build Status](https://travis-ci.org/sindresorhus/has-ansi.svg?branch=master)](https://travis-ci.org/sindresorhus/has-ansi) - -> Check if a string has [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save has-ansi -``` - - -## Usage - -```js -var hasAnsi = require('has-ansi'); - -hasAnsi('\u001b[4mcake\u001b[0m'); -//=> true - -hasAnsi('cake'); -//=> false -``` - - -## Related - -- [has-ansi-cli](https://github.com/sindresorhus/has-ansi-cli) - CLI for this module -- [strip-ansi](https://github.com/sindresorhus/strip-ansi) - Strip ANSI escape codes -- [ansi-regex](https://github.com/sindresorhus/ansi-regex) - Regular expression for matching ANSI escape codes -- [chalk](https://github.com/sindresorhus/chalk) - Terminal string styling done right - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/build/node_modules/has-flag/index.d.ts b/build/node_modules/has-flag/index.d.ts deleted file mode 100644 index a0a48c89..00000000 --- a/build/node_modules/has-flag/index.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** -Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag. - -@param flag - CLI flag to look for. The `--` prefix is optional. -@param argv - CLI arguments. Default: `process.argv`. -@returns Whether the flag exists. - -@example -``` -// $ ts-node foo.ts -f --unicorn --foo=bar -- --rainbow - -// foo.ts -import hasFlag = require('has-flag'); - -hasFlag('unicorn'); -//=> true - -hasFlag('--unicorn'); -//=> true - -hasFlag('f'); -//=> true - -hasFlag('-f'); -//=> true - -hasFlag('foo=bar'); -//=> true - -hasFlag('foo'); -//=> false - -hasFlag('rainbow'); -//=> false -``` -*/ -declare function hasFlag(flag: string, argv?: string[]): boolean; - -export = hasFlag; diff --git a/build/node_modules/has-flag/index.js b/build/node_modules/has-flag/index.js deleted file mode 100644 index b6f80b1f..00000000 --- a/build/node_modules/has-flag/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -module.exports = (flag, argv = process.argv) => { - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf('--'); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -}; diff --git a/build/node_modules/has-flag/license b/build/node_modules/has-flag/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/has-flag/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/has-flag/package.json b/build/node_modules/has-flag/package.json deleted file mode 100644 index a9cba4b8..00000000 --- a/build/node_modules/has-flag/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "has-flag", - "version": "4.0.0", - "description": "Check if argv has a specific flag", - "license": "MIT", - "repository": "sindresorhus/has-flag", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "has", - "check", - "detect", - "contains", - "find", - "flag", - "cli", - "command-line", - "argv", - "process", - "arg", - "args", - "argument", - "arguments", - "getopt", - "minimist", - "optimist" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/has-flag/readme.md b/build/node_modules/has-flag/readme.md deleted file mode 100644 index 3f72dff2..00000000 --- a/build/node_modules/has-flag/readme.md +++ /dev/null @@ -1,89 +0,0 @@ -# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag) - -> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag - -Correctly stops looking after an `--` argument terminator. - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
- ---- - - -## Install - -``` -$ npm install has-flag -``` - - -## Usage - -```js -// foo.js -const hasFlag = require('has-flag'); - -hasFlag('unicorn'); -//=> true - -hasFlag('--unicorn'); -//=> true - -hasFlag('f'); -//=> true - -hasFlag('-f'); -//=> true - -hasFlag('foo=bar'); -//=> true - -hasFlag('foo'); -//=> false - -hasFlag('rainbow'); -//=> false -``` - -``` -$ node foo.js -f --unicorn --foo=bar -- --rainbow -``` - - -## API - -### hasFlag(flag, [argv]) - -Returns a boolean for whether the flag exists. - -#### flag - -Type: `string` - -CLI flag to look for. The `--` prefix is optional. - -#### argv - -Type: `string[]`
-Default: `process.argv` - -CLI arguments. - - -## Security - -To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/has-glob/LICENSE b/build/node_modules/has-glob/LICENSE deleted file mode 100644 index 65251717..00000000 --- a/build/node_modules/has-glob/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2016, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/has-glob/README.md b/build/node_modules/has-glob/README.md deleted file mode 100644 index ece2c2ef..00000000 --- a/build/node_modules/has-glob/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# has-glob [![NPM version](https://img.shields.io/npm/v/has-glob.svg?style=flat)](https://www.npmjs.com/package/has-glob) [![NPM downloads](https://img.shields.io/npm/dm/has-glob.svg?style=flat)](https://npmjs.org/package/has-glob) [![Build Status](https://img.shields.io/travis/jonschlinkert/has-glob.svg?style=flat)](https://travis-ci.org/jonschlinkert/has-glob) - -> Returns `true` if an array has a glob pattern. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save has-glob -``` - -## Usage - -```js -var hasGlob = require('has-glob'); - -hasGlob(['foo', 'bar', '*.js']); -//=> true - -hasGlob(['foo', 'bar', 'baz']); -//=> false -``` - -**True** - -The following all return `true`: - -```js -hasGlob(['foo', 'bar', '*.js']) -hasGlob(['foo', 'bar', '!*.js']) -hasGlob(['foo', 'bar', '!foo']) -hasGlob(['foo', 'bar', '!foo.js']) -hasGlob(['foo', 'bar', '**/abc.js']) -hasGlob(['foo', 'bar', 'abc/*.js']) -hasGlob(['foo', 'bar', 'abc/{a,b}.js']) -hasGlob(['foo', 'bar', 'abc/{a..z}.js']) -hasGlob(['foo', 'bar', 'abc/{a..z..2}.js']) -hasGlob(['foo', 'bar', 'abc/@(a).js']) -hasGlob(['foo', 'bar', 'abc/!(a).js']) -hasGlob(['foo', 'bar', 'abc/+(a).js']) -hasGlob(['foo', 'bar', 'abc/*(a).js']) -hasGlob(['foo', 'bar', 'abc/?(a).js']) -hasGlob(['foo', 'bar', 'abc/@.js']) -hasGlob(['foo', 'bar', 'abc/!.js']) -hasGlob(['foo', 'bar', 'abc/+.js']) -hasGlob(['foo', 'bar', 'abc/*.js']) -hasGlob(['foo', 'bar', 'abc/?.js']) -hasGlob(['foo', 'bar', 'abc/(aaa|bbb).js']) -hasGlob(['foo', 'bar', 'abc/?.js']) -hasGlob(['foo', 'bar', '?.js']) -hasGlob(['foo', 'bar', '[abc].js']) -hasGlob(['foo', 'bar', '[^abc].js']) -hasGlob(['foo', 'bar', 'a/b/c/[a-z].js']) -hasGlob(['foo', 'bar', '[a-j]*[^c]b/c']) -//=> true -``` - -Also works with strings: - -```js -hasGlob('*.js') -hasGlob('!*.js') -hasGlob('!foo') -hasGlob('!foo.js') -hasGlob('**/abc.js') -hasGlob('abc/*.js') -//=> true -``` - -**False** - -The following all return `false`: - -```js -hasGlob([]) -hasGlob([null]) -hasGlob([undefined]) -hasGlob([{}]) -hasGlob(['.']) -hasGlob(['foo', 'bar', 'aa']) -hasGlob(['foo', 'bar', 'abc.js']) -hasGlob(['foo', 'bar', 'abc/def/ghi.js']) -//=> false -``` - -## About - -### Related projects - -* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") -* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") -* [is-negated-glob](https://www.npmjs.com/package/is-negated-glob): Returns an object with a `negated` boolean and the `!` stripped from negation patterns. Also… [more](https://github.com/jonschlinkert/is-negated-glob) | [homepage](https://github.com/jonschlinkert/is-negated-glob "Returns an object with a `negated` boolean and the `!` stripped from negation patterns. Also respects extglobs.") -* [is-valid-glob](https://www.npmjs.com/package/is-valid-glob): Return true if a value is a valid glob pattern or patterns. | [homepage](https://github.com/jonschlinkert/is-valid-glob "Return true if a value is a valid glob pattern or patterns.") -* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ - -To generate the readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm install -g verb verb-generate-readme && verb -``` - -### Running tests - -Install dev dependencies: - -```sh -$ npm install -d && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -### License - -Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT license](https://github.com/jonschlinkert/has-glob/blob/master/LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 08, 2016._ \ No newline at end of file diff --git a/build/node_modules/has-glob/index.js b/build/node_modules/has-glob/index.js deleted file mode 100644 index 957ee1f3..00000000 --- a/build/node_modules/has-glob/index.js +++ /dev/null @@ -1,26 +0,0 @@ -/*! - * has-glob - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -var isGlob = require('is-glob'); - -module.exports = function hasGlob(val) { - if (val == null) return false; - if (typeof val === 'string') { - return isGlob(val); - } - if (Array.isArray(val)) { - var len = val.length; - while (len--) { - if (isGlob(val[len])) { - return true; - } - } - } - return false; -}; diff --git a/build/node_modules/has-glob/package.json b/build/node_modules/has-glob/package.json deleted file mode 100644 index 7ea2c727..00000000 --- a/build/node_modules/has-glob/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "has-glob", - "description": "Returns `true` if an array has a glob pattern.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/has-glob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/has-glob", - "bugs": { - "url": "https://github.com/jonschlinkert/has-glob/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "is-glob": "^3.0.0" - }, - "devDependencies": { - "gulp-format-md": "^0.1.10", - "mocha": "^3.0.2" - }, - "keywords": [ - "bash", - "braces", - "check", - "exec", - "expression", - "extglob", - "glob", - "globbing", - "globstar", - "has", - "match", - "matches", - "pattern", - "regex", - "regular", - "string", - "test" - ], - "verb": { - "related": { - "list": [ - "has-glob", - "is-glob", - "is-negated-glob", - "is-valid-glob", - "micromatch" - ] - }, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - }, - "reflinks": [ - "verb", - "verb-generate-readme" - ] - } -} diff --git a/build/node_modules/has-own-prop/index.d.ts b/build/node_modules/has-own-prop/index.d.ts deleted file mode 100644 index b74bd5f5..00000000 --- a/build/node_modules/has-own-prop/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** -Shortcut for `Object.prototype.hasOwnProperty.call(object, property)`. - -@example -``` -import hasOwnProp = require('has-own-prop'); - -hasOwnProp({}, 'hello'); -//=> false - -hasOwnProp([1, 2, 3], 0); -//=> true -``` -*/ -declare function hasOwnProp(object: unknown, key: string | number | symbol): boolean; - -export = hasOwnProp; diff --git a/build/node_modules/has-own-prop/index.js b/build/node_modules/has-own-prop/index.js deleted file mode 100644 index bb1d3357..00000000 --- a/build/node_modules/has-own-prop/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -const hasOwnProp = Object.prototype.hasOwnProperty; - -module.exports = (object, property) => hasOwnProp.call(object, property); diff --git a/build/node_modules/has-own-prop/license b/build/node_modules/has-own-prop/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/has-own-prop/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/has-own-prop/package.json b/build/node_modules/has-own-prop/package.json deleted file mode 100644 index 1964af4f..00000000 --- a/build/node_modules/has-own-prop/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "has-own-prop", - "version": "2.0.0", - "description": "A safer `.hasOwnProperty()`", - "license": "MIT", - "repository": "sindresorhus/has-own-prop", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "object", - "has", - "own", - "property" - ], - "devDependencies": { - "ava": "^2.1.0", - "tsd": "^0.7.3", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/has-own-prop/readme.md b/build/node_modules/has-own-prop/readme.md deleted file mode 100644 index b934b60c..00000000 --- a/build/node_modules/has-own-prop/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -# has-own-prop [![Build Status](https://travis-ci.org/sindresorhus/has-own-prop.svg?branch=master)](https://travis-ci.org/sindresorhus/has-own-prop) - -> A safer `.hasOwnProperty()` - -Shortcut for `Object.prototype.hasOwnProperty.call(object, property)`. - -You shouldn't use `.hasOwnProperty()` as it won't exist on [objects created with `Object.create(null)`](https://stackoverflow.com/a/12017703/64949) or it can have been overridden. - - -## Install - -``` -$ npm install has-own-prop -``` - - -## Usage - -```js -const hasOwnProp = require('has-own-prop'); - -const object = Object.create(null); -object.unicorn = true; - -object.hasOwnProperty('unicorn'); -//=> 'TypeError: undefined is not a function' - -hasOwnProp(object, 'unicorn'); -//=> true -``` diff --git a/build/node_modules/has-property-descriptors/.eslintrc b/build/node_modules/has-property-descriptors/.eslintrc deleted file mode 100644 index 2fcc002b..00000000 --- a/build/node_modules/has-property-descriptors/.eslintrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "id-length": 0, - "new-cap": [2, { - "capIsNewExceptions": ["GetIntrinsic"], - }], - }, -} diff --git a/build/node_modules/has-property-descriptors/.nycrc b/build/node_modules/has-property-descriptors/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/has-property-descriptors/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/has-property-descriptors/CHANGELOG.md b/build/node_modules/has-property-descriptors/CHANGELOG.md deleted file mode 100644 index 2cec99c8..00000000 --- a/build/node_modules/has-property-descriptors/CHANGELOG.md +++ /dev/null @@ -1,27 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.1](https://github.com/inspect-js/has-property-descriptors/compare/v1.0.0...v1.0.1) - 2023-10-20 - -### Commits - -- [meta] use `npmignore` to autogenerate an npmignore file [`5bbf4da`](https://github.com/inspect-js/has-property-descriptors/commit/5bbf4dae1b58950d87bb3af508bee7513e640868) -- [actions] update rebase action to use reusable workflow [`3a5585b`](https://github.com/inspect-js/has-property-descriptors/commit/3a5585bf74988f71a8f59e67a07d594e62c51fd8) -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`e5c1212`](https://github.com/inspect-js/has-property-descriptors/commit/e5c1212048a8fda549794c47863724ca60b89cae) -- [Dev Deps] update `aud`, `tape` [`e942917`](https://github.com/inspect-js/has-property-descriptors/commit/e942917b6c2f7c090d5623048989cf20d0834ebf) -- [Deps] update `get-intrinsic` [`f4a44ec`](https://github.com/inspect-js/has-property-descriptors/commit/f4a44ec6d94146fa6c550d3c15c31a2062c83ef4) -- [Deps] update `get-intrinsic` [`eeb275b`](https://github.com/inspect-js/has-property-descriptors/commit/eeb275b473e5d72ca843b61ca25cfcb06a5d4300) - -## v1.0.0 - 2022-04-14 - -### Commits - -- Initial implementation, tests [`303559f`](https://github.com/inspect-js/has-property-descriptors/commit/303559f2a72dfe7111573a1aec475ed4a184c35a) -- Initial commit [`3a7ca2d`](https://github.com/inspect-js/has-property-descriptors/commit/3a7ca2dc49f1fff0279a28bb16265e7615e14749) -- read me [`dd73dce`](https://github.com/inspect-js/has-property-descriptors/commit/dd73dce09d89d0f7a4a6e3b1e562a506f979a767) -- npm init [`c1e6557`](https://github.com/inspect-js/has-property-descriptors/commit/c1e655779de632d68cb944c50da6b71bcb7b8c85) -- Only apps should have lockfiles [`e72f7c6`](https://github.com/inspect-js/has-property-descriptors/commit/e72f7c68de534b2d273ee665f8b18d4ecc7f70b0) diff --git a/build/node_modules/has-property-descriptors/LICENSE b/build/node_modules/has-property-descriptors/LICENSE deleted file mode 100644 index 2e7b9a3e..00000000 --- a/build/node_modules/has-property-descriptors/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/has-property-descriptors/README.md b/build/node_modules/has-property-descriptors/README.md deleted file mode 100644 index d81fbd99..00000000 --- a/build/node_modules/has-property-descriptors/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# has-property-descriptors [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD. - -## Example - -```js -var hasPropertyDescriptors = require('has-property-descriptors'); -var assert = require('assert'); - -assert.equal(hasPropertyDescriptors(), true); // will be `false` in IE 6-8, and ES5 engines - -// Arrays can not have their length `[[Defined]]` in some engines -assert.equal(hasPropertyDescriptors.hasArrayLengthDefineBug(), false); // will be `true` in Firefox 4-22, and node v0.6 -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/has-property-descriptors -[npm-version-svg]: https://versionbadg.es/inspect-js/has-property-descriptors.svg -[deps-svg]: https://david-dm.org/inspect-js/has-property-descriptors.svg -[deps-url]: https://david-dm.org/inspect-js/has-property-descriptors -[dev-deps-svg]: https://david-dm.org/inspect-js/has-property-descriptors/dev-status.svg -[dev-deps-url]: https://david-dm.org/inspect-js/has-property-descriptors#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/has-property-descriptors.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/has-property-descriptors.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/has-property-descriptors.svg -[downloads-url]: https://npm-stat.com/charts.html?package=has-property-descriptors -[codecov-image]: https://codecov.io/gh/inspect-js/has-property-descriptors/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/has-property-descriptors/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-property-descriptors -[actions-url]: https://github.com/inspect-js/has-property-descriptors/actions diff --git a/build/node_modules/has-property-descriptors/index.js b/build/node_modules/has-property-descriptors/index.js deleted file mode 100644 index 8e30683e..00000000 --- a/build/node_modules/has-property-descriptors/index.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); - -var hasPropertyDescriptors = function hasPropertyDescriptors() { - if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - return true; - } catch (e) { - // IE 8 has a broken defineProperty - return false; - } - } - return false; -}; - -hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { - // node v0.6 has a bug where array lengths can be Set but not Defined - if (!hasPropertyDescriptors()) { - return null; - } - try { - return $defineProperty([], 'length', { value: 1 }).length !== 1; - } catch (e) { - // In Firefox 4-22, defining length on an array throws an exception. - return true; - } -}; - -module.exports = hasPropertyDescriptors; diff --git a/build/node_modules/has-property-descriptors/package.json b/build/node_modules/has-property-descriptors/package.json deleted file mode 100644 index 831e0184..00000000 --- a/build/node_modules/has-property-descriptors/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "name": "has-property-descriptors", - "version": "1.0.1", - "description": "Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD.", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "sideEffects": false, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run lint", - "prelint": "evalmd README.md", - "lint": "eslint --ext=js,mjs .", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/has-property-descriptors.git" - }, - "keywords": [ - "property", - "descriptors", - "has", - "environment", - "env", - "defineProperty", - "getOwnPropertyDescriptor" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/has-property-descriptors/issues" - }, - "homepage": "https://github.com/inspect-js/has-property-descriptors#readme", - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.2" - }, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/has-proto/.eslintrc b/build/node_modules/has-proto/.eslintrc deleted file mode 100644 index 3b5d9e90..00000000 --- a/build/node_modules/has-proto/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", -} diff --git a/build/node_modules/has-proto/CHANGELOG.md b/build/node_modules/has-proto/CHANGELOG.md deleted file mode 100644 index c350e809..00000000 --- a/build/node_modules/has-proto/CHANGELOG.md +++ /dev/null @@ -1,23 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.1](https://github.com/inspect-js/has-proto/compare/v1.0.0...v1.0.1) - 2022-12-21 - -### Commits - -- [meta] correct URLs and description [`ef34483`](https://github.com/inspect-js/has-proto/commit/ef34483ca0d35680f271b6b96e35526151b25dfc) -- [patch] add an additional criteria [`e81959e`](https://github.com/inspect-js/has-proto/commit/e81959ed7c7a77fbf459f00cb4ef824f1099497f) -- [Dev Deps] update `aud` [`2bec2c4`](https://github.com/inspect-js/has-proto/commit/2bec2c47b072b122ff5443fba0263f6dc649531f) - -## v1.0.0 - 2022-12-12 - -### Commits - -- Initial implementation, tests, readme [`6886fea`](https://github.com/inspect-js/has-proto/commit/6886fea578f67daf69a7920b2eb7637ea6ebb0bc) -- Initial commit [`99129c8`](https://github.com/inspect-js/has-proto/commit/99129c8f42471ac89cb681ba9cb9d52a583eb94f) -- npm init [`2844ad8`](https://github.com/inspect-js/has-proto/commit/2844ad8e75b84d66a46765b3bab9d2e8ea692e10) -- Only apps should have lockfiles [`c65bc5e`](https://github.com/inspect-js/has-proto/commit/c65bc5e40b9004463f7336d47c67245fb139a36a) diff --git a/build/node_modules/has-proto/LICENSE b/build/node_modules/has-proto/LICENSE deleted file mode 100644 index 2e7b9a3e..00000000 --- a/build/node_modules/has-proto/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/has-proto/README.md b/build/node_modules/has-proto/README.md deleted file mode 100644 index 14567654..00000000 --- a/build/node_modules/has-proto/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# has-proto [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Does this environment have the ability to set the [[Prototype]] of an object on creation with `__proto__`? - -## Example - -```js -var hasProto = require('has-proto'); -var assert = require('assert'); - -assert.equal(typeof hasProto(), 'boolean'); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/has-proto -[npm-version-svg]: https://versionbadg.es/inspect-js/has-proto.svg -[deps-svg]: https://david-dm.org/inspect-js/has-proto.svg -[deps-url]: https://david-dm.org/inspect-js/has-proto -[dev-deps-svg]: https://david-dm.org/inspect-js/has-proto/dev-status.svg -[dev-deps-url]: https://david-dm.org/inspect-js/has-proto#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/has-proto.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/has-proto.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/has-proto.svg -[downloads-url]: https://npm-stat.com/charts.html?package=has-proto -[codecov-image]: https://codecov.io/gh/inspect-js/has-proto/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/has-proto/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-proto -[actions-url]: https://github.com/inspect-js/has-proto/actions diff --git a/build/node_modules/has-proto/index.js b/build/node_modules/has-proto/index.js deleted file mode 100644 index d3e4be4e..00000000 --- a/build/node_modules/has-proto/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var test = { - foo: {} -}; - -var $Object = Object; - -module.exports = function hasProto() { - return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object); -}; diff --git a/build/node_modules/has-proto/package.json b/build/node_modules/has-proto/package.json deleted file mode 100644 index 706f9510..00000000 --- a/build/node_modules/has-proto/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "has-proto", - "version": "1.0.1", - "description": "Does this environment have the ability to get the [[Prototype]] of an object on creation with `__proto__`?", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "lint": "eslint --ext=js,mjs .", - "pretest": "npm run lint", - "tests-only": "tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/has-proto.git" - }, - "keywords": [ - "prototype", - "proto", - "set", - "get", - "__proto__", - "getPrototypeOf", - "setPrototypeOf", - "has" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/has-proto/issues" - }, - "homepage": "https://github.com/inspect-js/has-proto#readme", - "testling": { - "files": "test/index.js" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.0.0", - "aud": "^2.0.2", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "safe-publish-latest": "^2.0.0", - "tape": "^5.6.1" - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/has-symbols/.eslintrc b/build/node_modules/has-symbols/.eslintrc deleted file mode 100644 index 2d9a66a8..00000000 --- a/build/node_modules/has-symbols/.eslintrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "max-statements-per-line": [2, { "max": 2 }], - "no-magic-numbers": 0, - "multiline-comment-style": 0, - } -} diff --git a/build/node_modules/has-symbols/.nycrc b/build/node_modules/has-symbols/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/has-symbols/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/has-symbols/CHANGELOG.md b/build/node_modules/has-symbols/CHANGELOG.md deleted file mode 100644 index cd532a2b..00000000 --- a/build/node_modules/has-symbols/CHANGELOG.md +++ /dev/null @@ -1,75 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.3](https://github.com/inspect-js/has-symbols/compare/v1.0.2...v1.0.3) - 2022-03-01 - -### Commits - -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`518b28f`](https://github.com/inspect-js/has-symbols/commit/518b28f6c5a516cbccae30794e40aa9f738b1693) -- [meta] add `bugs` and `homepage` fields; reorder package.json [`c480b13`](https://github.com/inspect-js/has-symbols/commit/c480b13fd6802b557e1cef9749872cb5fdeef744) -- [actions] reuse common workflows [`01d0ee0`](https://github.com/inspect-js/has-symbols/commit/01d0ee0a8d97c0947f5edb73eb722027a77b2b07) -- [actions] update codecov uploader [`6424ebe`](https://github.com/inspect-js/has-symbols/commit/6424ebe86b2c9c7c3d2e9bd4413a4e4f168cb275) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`dfa7e7f`](https://github.com/inspect-js/has-symbols/commit/dfa7e7ff38b594645d8c8222aab895157fa7e282) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`0c8d436`](https://github.com/inspect-js/has-symbols/commit/0c8d43685c45189cea9018191d4fd7eca91c9d02) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`9026554`](https://github.com/inspect-js/has-symbols/commit/902655442a1bf88e72b42345494ef0c60f5d36ab) -- [readme] add actions and codecov badges [`eaa9682`](https://github.com/inspect-js/has-symbols/commit/eaa9682f990f481d3acf7a1c7600bec36f7b3adc) -- [Dev Deps] update `eslint`, `tape` [`bc7a3ba`](https://github.com/inspect-js/has-symbols/commit/bc7a3ba46f27b7743f8a2579732d59d1b9ac791e) -- [Dev Deps] update `eslint`, `auto-changelog` [`0ace00a`](https://github.com/inspect-js/has-symbols/commit/0ace00af08a88cdd1e6ce0d60357d941c60c2d9f) -- [meta] use `prepublishOnly` script for npm 7+ [`093f72b`](https://github.com/inspect-js/has-symbols/commit/093f72bc2b0ed00c781f444922a5034257bf561d) -- [Tests] test on all 16 minors [`9b80d3d`](https://github.com/inspect-js/has-symbols/commit/9b80d3d9102529f04c20ec5b1fcc6e38426c6b03) - -## [v1.0.2](https://github.com/inspect-js/has-symbols/compare/v1.0.1...v1.0.2) - 2021-02-27 - -### Fixed - -- [Fix] use a universal way to get the original Symbol [`#11`](https://github.com/inspect-js/has-symbols/issues/11) - -### Commits - -- [Tests] migrate tests to Github Actions [`90ae798`](https://github.com/inspect-js/has-symbols/commit/90ae79820bdfe7bc703d67f5f3c5e205f98556d3) -- [meta] do not publish github action workflow files [`29e60a1`](https://github.com/inspect-js/has-symbols/commit/29e60a1b7c25c7f1acf7acff4a9320d0d10c49b4) -- [Tests] run `nyc` on all tests [`8476b91`](https://github.com/inspect-js/has-symbols/commit/8476b915650d360915abe2522505abf4b0e8f0ae) -- [readme] fix repo URLs, remove defunct badges [`126288e`](https://github.com/inspect-js/has-symbols/commit/126288ecc1797c0a40247a6b78bcb2e0bc5d7036) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `get-own-property-symbols` [`d84bdfa`](https://github.com/inspect-js/has-symbols/commit/d84bdfa48ac5188abbb4904b42614cd6c030940a) -- [Tests] fix linting errors [`0df3070`](https://github.com/inspect-js/has-symbols/commit/0df3070b981b6c9f2ee530c09189a7f5c6def839) -- [actions] add "Allow Edits" workflow [`1e6bc29`](https://github.com/inspect-js/has-symbols/commit/1e6bc29b188f32b9648657b07eda08504be5aa9c) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`36cea2a`](https://github.com/inspect-js/has-symbols/commit/36cea2addd4e6ec435f35a2656b4e9ef82498e9b) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1278338`](https://github.com/inspect-js/has-symbols/commit/127833801865fbc2cc8979beb9ca869c7bfe8222) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1493254`](https://github.com/inspect-js/has-symbols/commit/1493254eda13db5fb8fc5e4a3e8324b3d196029d) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js` [`b090bf2`](https://github.com/inspect-js/has-symbols/commit/b090bf214d3679a30edc1e2d729d466ab5183e1d) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`4addb7a`](https://github.com/inspect-js/has-symbols/commit/4addb7ab4dc73f927ae99928d68817554fc21dc0) -- [Dev Deps] update `auto-changelog`, `tape` [`81d0baf`](https://github.com/inspect-js/has-symbols/commit/81d0baf3816096a89a8558e8043895f7a7d10d8b) -- [Dev Deps] update `auto-changelog`; add `aud` [`1a4e561`](https://github.com/inspect-js/has-symbols/commit/1a4e5612c25d91c3a03d509721d02630bc4fe3da) -- [readme] remove unused testling URLs [`3000941`](https://github.com/inspect-js/has-symbols/commit/3000941f958046e923ed8152edb1ef4a599e6fcc) -- [Tests] only audit prod deps [`692e974`](https://github.com/inspect-js/has-symbols/commit/692e9743c912410e9440207631a643a34b4741a1) -- [Dev Deps] update `@ljharb/eslint-config` [`51c946c`](https://github.com/inspect-js/has-symbols/commit/51c946c7f6baa793ec5390bb5a45cdce16b4ba76) - -## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-16 - -### Commits - -- [Tests] use shared travis-ci configs [`ce396c9`](https://github.com/inspect-js/has-symbols/commit/ce396c9419ff11c43d0da5d05cdbb79f7fb42229) -- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v4.9`; use `nvm install-latest-npm` [`0690732`](https://github.com/inspect-js/has-symbols/commit/0690732801f47ab429f39ba1962f522d5c462d6b) -- [meta] add `auto-changelog` [`2163d0b`](https://github.com/inspect-js/has-symbols/commit/2163d0b7f36343076b8f947cd1667dd1750f26fc) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`8e0951f`](https://github.com/inspect-js/has-symbols/commit/8e0951f1a7a2e52068222b7bb73511761e6e4d9c) -- [actions] add automatic rebasing / merge commit blocking [`b09cdb7`](https://github.com/inspect-js/has-symbols/commit/b09cdb7cd7ee39e7a769878f56e2d6066f5ccd1d) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `core-js`, `get-own-property-symbols`, `tape` [`1dd42cd`](https://github.com/inspect-js/has-symbols/commit/1dd42cd86183ed0c50f99b1062345c458babca91) -- [meta] create FUNDING.yml [`aa57a17`](https://github.com/inspect-js/has-symbols/commit/aa57a17b19708906d1927f821ea8e73394d84ca4) -- Only apps should have lockfiles [`a2d8bea`](https://github.com/inspect-js/has-symbols/commit/a2d8bea23a97d15c09eaf60f5b107fcf9a4d57aa) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`9e96cb7`](https://github.com/inspect-js/has-symbols/commit/9e96cb783746cbed0c10ef78e599a8eaa7ebe193) -- [meta] add `funding` field [`a0b32cf`](https://github.com/inspect-js/has-symbols/commit/a0b32cf68e803f963c1639b6d47b0a9d6440bab0) -- [Dev Deps] update `safe-publish-latest` [`cb9f0a5`](https://github.com/inspect-js/has-symbols/commit/cb9f0a521a3a1790f1064d437edd33bb6c3d6af0) - -## v1.0.0 - 2016-09-19 - -### Commits - -- Tests. [`ecb6eb9`](https://github.com/inspect-js/has-symbols/commit/ecb6eb934e4883137f3f93b965ba5e0a98df430d) -- package.json [`88a337c`](https://github.com/inspect-js/has-symbols/commit/88a337cee0864a0da35f5d19e69ff0ef0150e46a) -- Initial commit [`42e1e55`](https://github.com/inspect-js/has-symbols/commit/42e1e5502536a2b8ac529c9443984acd14836b1c) -- Initial implementation. [`33f5cc6`](https://github.com/inspect-js/has-symbols/commit/33f5cc6cdff86e2194b081ee842bfdc63caf43fb) -- read me [`01f1170`](https://github.com/inspect-js/has-symbols/commit/01f1170188ff7cb1558aa297f6ba5b516c6d7b0c) diff --git a/build/node_modules/has-symbols/LICENSE b/build/node_modules/has-symbols/LICENSE deleted file mode 100644 index df31cbf3..00000000 --- a/build/node_modules/has-symbols/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/has-symbols/README.md b/build/node_modules/has-symbols/README.md deleted file mode 100644 index 33905f0f..00000000 --- a/build/node_modules/has-symbols/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# has-symbols [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Determine if the JS environment has Symbol support. Supports spec, or shams. - -## Example - -```js -var hasSymbols = require('has-symbols'); - -hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable. - -var hasSymbolsKinda = require('has-symbols/shams'); -hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec. -``` - -## Supported Symbol shams - - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) - - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/has-symbols -[2]: https://versionbadg.es/inspect-js/has-symbols.svg -[5]: https://david-dm.org/inspect-js/has-symbols.svg -[6]: https://david-dm.org/inspect-js/has-symbols -[7]: https://david-dm.org/inspect-js/has-symbols/dev-status.svg -[8]: https://david-dm.org/inspect-js/has-symbols#info=devDependencies -[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/has-symbols.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg -[downloads-url]: https://npm-stat.com/charts.html?package=has-symbols -[codecov-image]: https://codecov.io/gh/inspect-js/has-symbols/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/has-symbols/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-symbols -[actions-url]: https://github.com/inspect-js/has-symbols/actions diff --git a/build/node_modules/has-symbols/index.js b/build/node_modules/has-symbols/index.js deleted file mode 100644 index 17044fa2..00000000 --- a/build/node_modules/has-symbols/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var origSymbol = typeof Symbol !== 'undefined' && Symbol; -var hasSymbolSham = require('./shams'); - -module.exports = function hasNativeSymbols() { - if (typeof origSymbol !== 'function') { return false; } - if (typeof Symbol !== 'function') { return false; } - if (typeof origSymbol('foo') !== 'symbol') { return false; } - if (typeof Symbol('bar') !== 'symbol') { return false; } - - return hasSymbolSham(); -}; diff --git a/build/node_modules/has-symbols/package.json b/build/node_modules/has-symbols/package.json deleted file mode 100644 index fe7004a1..00000000 --- a/build/node_modules/has-symbols/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "name": "has-symbols", - "version": "1.0.3", - "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", - "main": "index.js", - "scripts": { - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "pretest": "npm run --silent lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams", - "test:stock": "nyc node test", - "test:staging": "nyc node --harmony --es-staging test", - "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", - "test:shams:corejs": "nyc node test/shams/core-js.js", - "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", - "lint": "eslint --ext=js,mjs .", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git://github.com/inspect-js/has-symbols.git" - }, - "keywords": [ - "Symbol", - "symbols", - "typeof", - "sham", - "polyfill", - "native", - "core-js", - "ES6" - ], - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/has-symbols/issues" - }, - "homepage": "https://github.com/ljharb/has-symbols#readme", - "devDependencies": { - "@ljharb/eslint-config": "^20.2.3", - "aud": "^2.0.0", - "auto-changelog": "^2.4.0", - "core-js": "^2.6.12", - "eslint": "=8.8.0", - "get-own-property-symbols": "^0.9.5", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.5.2" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "greenkeeper": { - "ignore": [ - "core-js" - ] - } -} diff --git a/build/node_modules/has-symbols/shams.js b/build/node_modules/has-symbols/shams.js deleted file mode 100644 index 1285210e..00000000 --- a/build/node_modules/has-symbols/shams.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -/* eslint complexity: [2, 18], max-statements: [2, 33] */ -module.exports = function hasSymbols() { - if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } - if (typeof Symbol.iterator === 'symbol') { return true; } - - var obj = {}; - var sym = Symbol('test'); - var symObj = Object(sym); - if (typeof sym === 'string') { return false; } - - if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } - if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } - - // temp disabled per https://github.com/ljharb/object.assign/issues/17 - // if (sym instanceof Symbol) { return false; } - // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 - // if (!(symObj instanceof Symbol)) { return false; } - - // if (typeof Symbol.prototype.toString !== 'function') { return false; } - // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } - - var symVal = 42; - obj[sym] = symVal; - for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop - if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } - - if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } - - var syms = Object.getOwnPropertySymbols(obj); - if (syms.length !== 1 || syms[0] !== sym) { return false; } - - if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } - - if (typeof Object.getOwnPropertyDescriptor === 'function') { - var descriptor = Object.getOwnPropertyDescriptor(obj, sym); - if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } - } - - return true; -}; diff --git a/build/node_modules/has-unicode/LICENSE b/build/node_modules/has-unicode/LICENSE deleted file mode 100644 index d42e25e9..00000000 --- a/build/node_modules/has-unicode/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2014, Rebecca Turner - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/build/node_modules/has-unicode/README.md b/build/node_modules/has-unicode/README.md deleted file mode 100644 index 5a03e599..00000000 --- a/build/node_modules/has-unicode/README.md +++ /dev/null @@ -1,43 +0,0 @@ -has-unicode -=========== - -Try to guess if your terminal supports unicode - -```javascript -var hasUnicode = require("has-unicode") - -if (hasUnicode()) { - // the terminal probably has unicode support -} -``` -```javascript -var hasUnicode = require("has-unicode").tryHarder -hasUnicode(function(unicodeSupported) { - if (unicodeSupported) { - // the terminal probably has unicode support - } -}) -``` - -## Detecting Unicode - -What we actually detect is UTF-8 support, as that's what Node itself supports. -If you have a UTF-16 locale then you won't be detected as unicode capable. - -### Windows - -Since at least Windows 7, `cmd` and `powershell` have been unicode capable, -but unfortunately even then it's not guaranteed. In many localizations it -still uses legacy code pages and there's no facility short of running -programs or linking C++ that will let us detect this. As such, we -report any Windows installation as NOT unicode capable, and recommend -that you encourage your users to override this via config. - -### Unix Like Operating Systems - -We look at the environment variables `LC_ALL`, `LC_CTYPE`, and `LANG` in -that order. For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. -For `LC_CTYPE` it looks to see if the value is `UTF-8`. This is sufficient -for most POSIX systems. While locale data can be put in `/etc/locale.conf` -as well, AFAIK it's always copied into the environment. - diff --git a/build/node_modules/has-unicode/index.js b/build/node_modules/has-unicode/index.js deleted file mode 100644 index 9b0fe445..00000000 --- a/build/node_modules/has-unicode/index.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict" -var os = require("os") - -var hasUnicode = module.exports = function () { - // Recent Win32 platforms (>XP) CAN support unicode in the console but - // don't have to, and in non-english locales often use traditional local - // code pages. There's no way, short of windows system calls or execing - // the chcp command line program to figure this out. As such, we default - // this to false and encourage your users to override it via config if - // appropriate. - if (os.type() == "Windows_NT") { return false } - - var isUTF8 = /UTF-?8$/i - var ctype = process.env.LC_ALL || process.env.LC_CTYPE || process.env.LANG - return isUTF8.test(ctype) -} diff --git a/build/node_modules/has-unicode/package.json b/build/node_modules/has-unicode/package.json deleted file mode 100644 index ebe9d76d..00000000 --- a/build/node_modules/has-unicode/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "has-unicode", - "version": "2.0.1", - "description": "Try to guess if your terminal supports unicode", - "main": "index.js", - "scripts": { - "test": "tap test/*.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/iarna/has-unicode" - }, - "keywords": [ - "unicode", - "terminal" - ], - "files": [ - "index.js" - ], - "author": "Rebecca Turner ", - "license": "ISC", - "bugs": { - "url": "https://github.com/iarna/has-unicode/issues" - }, - "homepage": "https://github.com/iarna/has-unicode", - "devDependencies": { - "require-inject": "^1.3.0", - "tap": "^2.3.1" - } -} diff --git a/build/node_modules/has-value/LICENSE b/build/node_modules/has-value/LICENSE deleted file mode 100644 index d734237b..00000000 --- a/build/node_modules/has-value/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/has-value/README.md b/build/node_modules/has-value/README.md deleted file mode 100644 index f9b428c9..00000000 --- a/build/node_modules/has-value/README.md +++ /dev/null @@ -1,149 +0,0 @@ -# has-value [![NPM version](https://img.shields.io/npm/v/has-value.svg?style=flat)](https://www.npmjs.com/package/has-value) [![NPM monthly downloads](https://img.shields.io/npm/dm/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![NPM total downloads](https://img.shields.io/npm/dt/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/has-value.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/has-value) - -> Returns true if a value exists, false if empty. Works with deeply nested values using object paths. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save has-value -``` - -**Works for:** - -* booleans -* functions -* numbers -* strings -* nulls -* object -* arrays - -## Usage - -Works with property values (supports object-path notation, like `foo.bar`) or a single value: - -```js -var hasValue = require('has-value'); - -hasValue('foo'); -hasValue({foo: 'bar'}, 'foo'); -hasValue({a: {b: {c: 'foo'}}}, 'a.b.c'); -//=> true - -hasValue(''); -hasValue({foo: ''}, 'foo'); -//=> false - -hasValue(0); -hasValue(1); -hasValue({foo: 0}, 'foo'); -hasValue({foo: 1}, 'foo'); -hasValue({foo: null}, 'foo'); -hasValue({foo: {bar: 'a'}}}, 'foo'); -hasValue({foo: {bar: 'a'}}}, 'foo.bar'); -//=> true - -hasValue({foo: {}}}, 'foo'); -hasValue({foo: {bar: {}}}}, 'foo.bar'); -hasValue({foo: undefined}, 'foo'); -//=> false - -hasValue([]); -hasValue([[]]); -hasValue([[], []]); -hasValue([undefined]); -hasValue({foo: []}, 'foo'); -//=> false - -hasValue([0]); -hasValue([null]); -hasValue(['foo']); -hasValue({foo: ['a']}, 'foo'); -//=> true - -hasValue(function() {}) -hasValue(function(foo) {}) -hasValue({foo: function(foo) {}}, 'foo'); -hasValue({foo: function() {}}, 'foo'); -//=> true - -hasValue(true); -hasValue(false); -hasValue({foo: true}, 'foo'); -hasValue({foo: false}, 'foo'); -//=> true -``` - -## isEmpty - -To do the opposite and test for empty values, do: - -```js -function isEmpty(o) { - return !hasValue.apply(hasValue, arguments); -} -``` - -## Release history - -### v1.0.0 - -* `zero` always returns true -* `array` now recurses, so that an array of empty arrays will return `false` -* `null` now returns true - -## About - -### Related projects - -* [define-property](https://www.npmjs.com/package/define-property): Define a non-enumerable property on an object. | [homepage](https://github.com/jonschlinkert/define-property "Define a non-enumerable property on an object.") -* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.") -* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.") -* [unset-value](https://www.npmjs.com/package/unset-value): Delete nested properties from an object using dot notation. | [homepage](https://github.com/jonschlinkert/unset-value "Delete nested properties from an object using dot notation.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 17 | [jonschlinkert](https://github.com/jonschlinkert) | -| 2 | [rmharrison](https://github.com/rmharrison) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._ \ No newline at end of file diff --git a/build/node_modules/has-value/index.js b/build/node_modules/has-value/index.js deleted file mode 100644 index c2374948..00000000 --- a/build/node_modules/has-value/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * has-value - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -var isObject = require('isobject'); -var hasValues = require('has-values'); -var get = require('get-value'); - -module.exports = function(val, prop) { - return hasValues(isObject(val) && prop ? get(val, prop) : val); -}; diff --git a/build/node_modules/has-value/package.json b/build/node_modules/has-value/package.json deleted file mode 100644 index e65d4380..00000000 --- a/build/node_modules/has-value/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "has-value", - "description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/has-value", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Ryan M Harrison (https://linkedin.com/in/harrisonrm)" - ], - "repository": "jonschlinkert/has-value", - "bugs": { - "url": "https://github.com/jonschlinkert/has-value/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "devDependencies": { - "gulp-format-md": "^0.1.12", - "mocha": "^3.4.1" - }, - "keywords": [ - "array", - "boolean", - "empty", - "find", - "function", - "has", - "hasOwn", - "javascript", - "js", - "key", - "keys", - "node.js", - "null", - "number", - "object", - "properties", - "property", - "string", - "type", - "util", - "utilities", - "utility", - "value" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "define-property", - "get-value", - "set-value", - "unset-value" - ] - }, - "reflinks": [], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/has-values/LICENSE b/build/node_modules/has-values/LICENSE deleted file mode 100644 index d734237b..00000000 --- a/build/node_modules/has-values/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/has-values/README.md b/build/node_modules/has-values/README.md deleted file mode 100644 index 98d4367a..00000000 --- a/build/node_modules/has-values/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# has-values [![NPM version](https://img.shields.io/npm/v/has-values.svg?style=flat)](https://www.npmjs.com/package/has-values) [![NPM monthly downloads](https://img.shields.io/npm/dm/has-values.svg?style=flat)](https://npmjs.org/package/has-values) [![NPM total downloads](https://img.shields.io/npm/dt/has-values.svg?style=flat)](https://npmjs.org/package/has-values) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/has-values.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/has-values) - -> Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save has-values -``` - -## Usage - -```js -var hasValue = require('has-values'); - -hasValue('a'); -//=> true - -hasValue(''); -//=> false - -hasValue(1); -//=> true - -hasValue(0); -//=> false - -hasValue({a: 'a'}}); -//=> true - -hasValue({}); -hasValue({foo: undefined}); -//=> false - -hasValue({foo: null}); -//=> true - -hasValue(['a']); -//=> true - -hasValue([]); -hasValue([[], []]); -hasValue([[[]]]); -//=> false - -hasValue(['foo']); -hasValue([0]); -//=> true - -hasValue(function(foo) {}); -//=> true - -hasValue(function() {}); -//=> true - -hasValue(true); -//=> true - -hasValue(false); -//=> true -``` - -## isEmpty - -To test for empty values, do: - -```js -function isEmpty(o, isZero) { - return !hasValue(o, isZero); -} -``` - -## Release history - -### v1.0.0 - -* `zero` always returns true -* `array` now recurses, so that an array of empty arrays will return `false` -* `null` now returns true - -## About - -### Related projects - -* [has-value](https://www.npmjs.com/package/has-value): Returns true if a value exists, false if empty. Works with deeply nested values using… [more](https://github.com/jonschlinkert/has-value) | [homepage](https://github.com/jonschlinkert/has-value "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.") -* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.") -* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") -* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") -* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._ \ No newline at end of file diff --git a/build/node_modules/has-values/index.js b/build/node_modules/has-values/index.js deleted file mode 100644 index 9bebb9fc..00000000 --- a/build/node_modules/has-values/index.js +++ /dev/null @@ -1,60 +0,0 @@ -/*! - * has-values - * - * Copyright (c) 2014-2015, 2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -var typeOf = require('kind-of'); -var isNumber = require('is-number'); - -module.exports = function hasValue(val) { - // is-number checks for NaN and other edge cases - if (isNumber(val)) { - return true; - } - - switch (typeOf(val)) { - case 'null': - case 'boolean': - case 'function': - return true; - case 'string': - case 'arguments': - return val.length !== 0; - case 'error': - return val.message !== ''; - case 'array': - var len = val.length; - if (len === 0) { - return false; - } - for (var i = 0; i < len; i++) { - if (hasValue(val[i])) { - return true; - } - } - return false; - case 'file': - case 'map': - case 'set': - return val.size !== 0; - case 'object': - var keys = Object.keys(val); - if (keys.length === 0) { - return false; - } - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (hasValue(val[key])) { - return true; - } - } - return false; - default: { - return false; - } - } -}; diff --git a/build/node_modules/has-values/package.json b/build/node_modules/has-values/package.json deleted file mode 100644 index bdd841d9..00000000 --- a/build/node_modules/has-values/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "has-values", - "description": "Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. ", - "version": "1.0.0", - "homepage": "https://github.com/jonschlinkert/has-values", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/has-values", - "bugs": { - "url": "https://github.com/jonschlinkert/has-values/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "devDependencies": { - "gulp-format-md": "^0.1.12", - "mocha": "^3.4.1" - }, - "keywords": [ - "array", - "boolean", - "empty", - "find", - "function", - "has", - "hasOwn", - "javascript", - "js", - "key", - "keys", - "node.js", - "null", - "number", - "object", - "properties", - "property", - "string", - "type", - "util", - "utilities", - "utility", - "value", - "values" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "has-value", - "kind-of", - "is-number", - "is-plain-object", - "isobject" - ] - }, - "reflinks": [ - "verb" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/has-yarn/index.d.ts b/build/node_modules/has-yarn/index.d.ts deleted file mode 100644 index 5e2af4c9..00000000 --- a/build/node_modules/has-yarn/index.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare const hasYarn: { - /** - * Check if a project is using [Yarn](https://yarnpkg.com). - * - * @param cwd - Current working directory. Default: `process.cwd()`. - * @returns Whether the project uses Yarn. - */ - (cwd?: string): boolean; - - // TODO: Remove this for the next major release, refactor the whole definition to: - // declare function hasYarn(cwd?: string): boolean; - // export = hasYarn; - default: typeof hasYarn; -}; - -export = hasYarn; diff --git a/build/node_modules/has-yarn/index.js b/build/node_modules/has-yarn/index.js deleted file mode 100644 index a1f4eed8..00000000 --- a/build/node_modules/has-yarn/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -const path = require('path'); -const fs = require('fs'); - -const hasYarn = (cwd = process.cwd()) => fs.existsSync(path.resolve(cwd, 'yarn.lock')); - -module.exports = hasYarn; -// TODO: Remove this for the next major release -module.exports.default = hasYarn; diff --git a/build/node_modules/has-yarn/license b/build/node_modules/has-yarn/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/has-yarn/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/has-yarn/package.json b/build/node_modules/has-yarn/package.json deleted file mode 100644 index be7aaa5c..00000000 --- a/build/node_modules/has-yarn/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "has-yarn", - "version": "2.1.0", - "description": "Check if a project is using Yarn", - "license": "MIT", - "repository": "sindresorhus/has-yarn", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "yarn", - "has", - "detect", - "is", - "project", - "app", - "module", - "package", - "manager", - "npm" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.1", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/has-yarn/readme.md b/build/node_modules/has-yarn/readme.md deleted file mode 100644 index 0315c20c..00000000 --- a/build/node_modules/has-yarn/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# has-yarn [![Build Status](https://travis-ci.org/sindresorhus/has-yarn.svg?branch=master)](https://travis-ci.org/sindresorhus/has-yarn) - -> Check if a project is using [Yarn](https://yarnpkg.com) - -Useful for tools that needs to know whether to use `yarn` or `npm` to install dependencies. - -It checks if a `yarn.lock` file is present in the working directory. - - -## Install - -``` -$ npm install has-yarn -``` - - -## Usage - -``` -. -├── foo -│   └── package.json -└── bar - ├── package.json - └── yarn.lock -``` - -```js -const hasYarn = require('has-yarn'); - -hasYarn('foo'); -//=> false - -hasYarn('bar'); -//=> true -``` - - -## API - -### hasYarn([cwd]) - -Returns a `boolean` of whether the project uses Yarn. - -#### cwd - -Type: `string`
-Default: `process.cwd()` - -Current working directory. - - -## Related - -- [has-yarn-cli](https://github.com/sindresorhus/has-yarn-cli) - CLI for this module - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/hasown/.eslintrc b/build/node_modules/hasown/.eslintrc deleted file mode 100644 index 3b5d9e90..00000000 --- a/build/node_modules/hasown/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", -} diff --git a/build/node_modules/hasown/.nycrc b/build/node_modules/hasown/.nycrc deleted file mode 100644 index 1826526e..00000000 --- a/build/node_modules/hasown/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/hasown/CHANGELOG.md b/build/node_modules/hasown/CHANGELOG.md deleted file mode 100644 index 1cbd1f5f..00000000 --- a/build/node_modules/hasown/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v2.0.0](https://github.com/inspect-js/hasOwn/compare/v1.0.1...v2.0.0) - 2023-10-19 - -### Commits - -- revamped implementation, tests, readme [`72bf8b3`](https://github.com/inspect-js/hasOwn/commit/72bf8b338e77a638f0a290c63ffaed18339c36b4) -- [meta] revamp package.json [`079775f`](https://github.com/inspect-js/hasOwn/commit/079775fb1ec72c1c6334069593617a0be3847458) -- Only apps should have lockfiles [`6640e23`](https://github.com/inspect-js/hasOwn/commit/6640e233d1bb8b65260880f90787637db157d215) - -## v1.0.1 - 2023-10-10 - -### Commits - -- Initial commit [`8dbfde6`](https://github.com/inspect-js/hasOwn/commit/8dbfde6e8fb0ebb076fab38d138f2984eb340a62) diff --git a/build/node_modules/hasown/LICENSE b/build/node_modules/hasown/LICENSE deleted file mode 100644 index 03149290..00000000 --- a/build/node_modules/hasown/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Jordan Harband and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/hasown/README.md b/build/node_modules/hasown/README.md deleted file mode 100644 index f759b8a8..00000000 --- a/build/node_modules/hasown/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# hasown [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -A robust, ES3 compatible, "has own property" predicate. - -## Example - -```js -const assert = require('assert'); -const hasOwn = require('hasown'); - -assert.equal(hasOwn({}, 'toString'), false); -assert.equal(hasOwn([], 'length'), true); -assert.equal(hasOwn({ a: 42 }, 'a'), true); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/hasown -[npm-version-svg]: https://versionbadg.es/inspect-js/hasown.svg -[deps-svg]: https://david-dm.org/inspect-js/hasOwn.svg -[deps-url]: https://david-dm.org/inspect-js/hasOwn -[dev-deps-svg]: https://david-dm.org/inspect-js/hasOwn/dev-status.svg -[dev-deps-url]: https://david-dm.org/inspect-js/hasOwn#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/hasown.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/hasown.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/hasown.svg -[downloads-url]: https://npm-stat.com/charts.html?package=hasown -[codecov-image]: https://codecov.io/gh/inspect-js/hasOwn/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/hasOwn/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/hasOwn -[actions-url]: https://github.com/inspect-js/hasOwn/actions diff --git a/build/node_modules/hasown/index.d.ts b/build/node_modules/hasown/index.d.ts deleted file mode 100644 index caf4a060..00000000 --- a/build/node_modules/hasown/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const _exports: (o: {}, p: PropertyKey) => p is never; -export = _exports; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/node_modules/hasown/index.d.ts.map b/build/node_modules/hasown/index.d.ts.map deleted file mode 100644 index d40068a5..00000000 --- a/build/node_modules/hasown/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"4BAMe,EAAE,KAAK,WAAW"} \ No newline at end of file diff --git a/build/node_modules/hasown/index.js b/build/node_modules/hasown/index.js deleted file mode 100644 index 3b916183..00000000 --- a/build/node_modules/hasown/index.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var call = Function.prototype.call; -var $hasOwn = Object.prototype.hasOwnProperty; -var bind = require('function-bind'); - -/** @type {(o: {}, p: PropertyKey) => p is keyof o} */ -module.exports = bind.call(call, $hasOwn); diff --git a/build/node_modules/hasown/package.json b/build/node_modules/hasown/package.json deleted file mode 100644 index 95450064..00000000 --- a/build/node_modules/hasown/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "hasown", - "version": "2.0.0", - "description": "A robust, ES3 compatible, \"has own property\" predicate.", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated && npm run emit-types", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "prelint": "evalmd README.md", - "lint": "eslint --ext=js,mjs .", - "postlint": "npm run tsc", - "preemit-types": "rm -f *.ts *.ts.map test/*.ts test/*.ts.map", - "emit-types": "npm run tsc -- --noEmit false --emitDeclarationOnly", - "pretest": "npm run lint", - "tsc": "tsc -p .", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/hasOwn.git" - }, - "keywords": [ - "has", - "hasOwnProperty", - "hasOwn", - "has-own", - "own", - "has", - "property", - "in", - "javascript", - "ecmascript" - ], - "author": "Jordan Harband ", - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/hasOwn/issues" - }, - "homepage": "https://github.com/inspect-js/hasOwn#readme", - "dependencies": { - "function-bind": "^1.1.2" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "@types/function-bind": "^1.1.9", - "@types/mock-property": "^1.0.1", - "@types/tape": "^5.6.3", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "in-publish": "^2.0.1", - "mock-property": "^1.0.2", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.1", - "typescript": "^5.3.0-dev.20231019" - }, - "engines": { - "node": ">= 0.4" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows", - "test", - "!*.d.ts", - "!*.d.ts.map" - ] - } -} diff --git a/build/node_modules/hasown/tsconfig.json b/build/node_modules/hasown/tsconfig.json deleted file mode 100644 index fdab34fe..00000000 --- a/build/node_modules/hasown/tsconfig.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - - /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */ - "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - - /* JavaScript Support */ - "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - "declarationMap": true, /* Create sourcemaps for d.ts files. */ - "noEmit": true, /* Disable emitting files from a compilation. */ - - /* Interop Constraints */ - "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - - /* Completeness */ - //"skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "exclude": [ - "coverage" - ] -} diff --git a/build/node_modules/haye/CHANGELOG.md b/build/node_modules/haye/CHANGELOG.md deleted file mode 100644 index d1480aec..00000000 --- a/build/node_modules/haye/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ - -## [2.0.2](https://github.com/poppinss/haye/compare/v2.0.1...v2.0.2) (2018-06-18) - - - - -## [2.0.1](https://github.com/poppinss/haye/compare/v2.0.0...v2.0.1) (2017-12-08) - - - - -# [2.0.0](https://github.com/poppinss/haye/compare/v1.0.1...v2.0.0) (2017-12-01) - - -### Features - -* rewrite ([d825339](https://github.com/poppinss/haye/commit/d825339)) - - - - -## [1.0.1](https://github.com/poppinss/haye/compare/v1.0.0...v1.0.1) (2016-09-30) - - - - -# 1.0.0 (2016-09-30) - - -### Features - -* initial commit ([8568757](https://github.com/poppinss/haye/commit/8568757)) - - - diff --git a/build/node_modules/haye/README.md b/build/node_modules/haye/README.md deleted file mode 100644 index d49b1264..00000000 --- a/build/node_modules/haye/README.md +++ /dev/null @@ -1,174 +0,0 @@ -# Haye - -Haye is a simple super fast string expression parser. In support `pipe` and `qs` string expressions ( explained below ). - -> **Limitations** -The keys/values inside the expression cannot have any of the reserved keywords, otherwise parser will mis-behave. - ---- - -
- Benchmarks -
-
-haye #pipeToArray x 741,030 ops/sec ±0.97% (90 runs sampled)
-haye #pipeToJson x 313,101 ops/sec ±0.95% (87 runs sampled)
-haye #qsToArray x 698,688 ops/sec ±0.74% (91 runs sampled)
-haye #qsToJson x 303,482 ops/sec ±1.10% (89 runs sampled)
-
-
-
- -
- Comparison with 1.0.1 -

Legacy

-
-
-219,138 op/s » haye #pipeToArray #legacy
-170,068 op/s » haye #pipeToJson #legacy
-147,594 op/s » haye #qsToArray #legacy
-121,094 op/s » haye #qsToJson #legacy
-
-
- -

Latest

-
-
-747,298 op/s » haye #pipeToArray
-363,152 op/s » haye #pipeToJson
-742,310 op/s » haye #qsToArray
-349,075 op/s » haye #qsToJson
-
-
-
- -
- Upgrading from 1.0.1 -

There are couple of breaking changes from 1.0.1 to 2.x.x

- -
    -
  1. - All methods to convert Arrays and Objects have been removed. -
  2. - -
  3. - The `args` property in `toArray` methods is always an array. Earlier it used to be string for single values and array for multiple. -
  4. - -
  5. - The value in `key/value` pair is always an array. Earlier it used to be string for single values and array for multiple. -
  6. -
- -
- -### Pipe expression -The pipe based expression is very popular in Laravel community, due to their [Validation engine](https://laravel.com/docs/validation), and same is adopted by [Indicative](http://indicative.adonisjs.com). - -#### Syntax example: - -```js -required|email|max:4|range:10,30 -``` - -1. Each item is separated by `|` -2. The values are defined after `:` -3. Multiple values are separated by `,`. -4. White spaces in keys are trimmed. - ---- - -### Qs expression -The query string expression is almost similar to the URL query string, with couple of small modifications to make the expression readable. - -#### Syntax example: -``` -required,email,max=4,range=[1, 10] -``` - -1. Each item is separated by `,` -2. The values are defined after `=` -3. Multiple values are separated by `,` inside `[]`. -4. White spaces in keys are trimmed. - -## Installation - -The module is available on npm - -```bash -npm i haye - -# yarn -yarn add haye -``` - -## Usage -Below is the bunch of usage examples - -#### Pipe -> Array - -```js -const haye = require('haye') -const expression = 'required|email:unique,users' - -const parsed = haye.fromPipe(expression).toArray() -``` - -Output -```js -[ - { name: 'required', args: [] }, - { name: 'email', args: ['unique', 'users'] } -] -``` - -#### Pipe -> JSON - -```js -const haye = require('haye') -const expression = 'required|email:unique,users' - -const parsed = haye.fromPipe(expression).toJSON() -``` - -Output -```js -{ - required: [], - email: [ 'unique', 'users' ] -} -``` - -#### Qs -> Array - -```js -const haye = require('haye') -const expression = 'required,email=[unique,users]' - -const parsed = haye.fromQS(expression).toArray() -``` - -Output -```js -[ - { name: 'required', args: [] }, - { name: 'email', args: ['unique', 'users'] } -] -``` - -#### Qs -> JSON - -```js -const haye = require('haye') -const expression = 'required,email=[unique,users]' - -const parsed = haye.fromQS(expression).toJSON() -``` - -Output -```js -{ - required: [], - email: [ 'unique', 'users' ] -} -``` diff --git a/build/node_modules/haye/package.json b/build/node_modules/haye/package.json deleted file mode 100644 index d885c048..00000000 --- a/build/node_modules/haye/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "haye", - "version": "3.0.0", - "description": "Haye is a super fast string based expression parser for Node.js", - "main": "dist/haye.js", - "module": "dist/haye.es.js", - "browser": "dist/haye.browser.js", - "files": [ - "dist" - ], - "scripts": { - "prepublishOnly": "npm run build", - "pretest": "npm run lint && npm run build", - "test": "node japaFile.js", - "build": "rollup -c rollup.config.js", - "lint": "standard src/**/*.js index.js test/**/*.js", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "benchmark": "matcha benchmarks/index.js" - }, - "keywords": [ - "string-parser", - "indicative", - "expression" - ], - "author": "virk", - "license": "MIT", - "dependencies": {}, - "devDependencies": { - "@babel/core": "^7.13.10", - "@rollup/plugin-babel": "^5.3.0", - "babel-preset-env": "^1.7.0", - "benchmark": "^2.1.4", - "coveralls": "^3.1.0", - "cz-conventional-changelog": "^3.3.0", - "japa": "^3.1.1", - "rollup": "^2.42.2", - "rollup-plugin-terser": "^7.0.2", - "standard": "^16.0.3" - }, - "config": { - "commitizen": { - "path": "./node_modules/cz-conventional-changelog" - } - }, - "directories": { - "test": "test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/poppinss/haye.git" - }, - "bugs": { - "url": "https://github.com/poppinss/haye/issues" - }, - "homepage": "https://github.com/poppinss/haye#readme" -} diff --git a/build/node_modules/he/LICENSE-MIT.txt b/build/node_modules/he/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7e..00000000 --- a/build/node_modules/he/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/he/README.md b/build/node_modules/he/README.md deleted file mode 100644 index b2223a91..00000000 --- a/build/node_modules/he/README.md +++ /dev/null @@ -1,379 +0,0 @@ -# he [![Build status](https://travis-ci.org/mathiasbynens/he.svg?branch=master)](https://travis-ci.org/mathiasbynens/he) [![Code coverage status](https://codecov.io/github/mathiasbynens/he/coverage.svg?branch=master)](https://codecov.io/github/mathiasbynens/he?branch=master) [![Dependency status](https://gemnasium.com/mathiasbynens/he.svg)](https://gemnasium.com/mathiasbynens/he) - -_he_ (for “HTML entities”) is a robust HTML entity encoder/decoder written in JavaScript. It supports [all standardized named character references as per HTML](https://html.spec.whatwg.org/multipage/syntax.html#named-character-references), handles [ambiguous ampersands](https://mathiasbynens.be/notes/ambiguous-ampersands) and other edge cases [just like a browser would](https://html.spec.whatwg.org/multipage/syntax.html#tokenizing-character-references), has an extensive test suite, and — contrary to many other JavaScript solutions — _he_ handles astral Unicode symbols just fine. [An online demo is available.](https://mothereff.in/html-entities) - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install he -``` - -Via [Bower](http://bower.io/): - -```bash -bower install he -``` - -Via [Component](https://github.com/component/component): - -```bash -component install mathiasbynens/he -``` - -In a browser: - -```html - -``` - -In [Node.js](https://nodejs.org/), [io.js](https://iojs.org/), [Narwhal](http://narwhaljs.org/), and [RingoJS](http://ringojs.org/): - -```js -var he = require('he'); -``` - -In [Rhino](http://www.mozilla.org/rhino/): - -```js -load('he.js'); -``` - -Using an AMD loader like [RequireJS](http://requirejs.org/): - -```js -require( - { - 'paths': { - 'he': 'path/to/he' - } - }, - ['he'], - function(he) { - console.log(he); - } -); -``` - -## API - -### `he.version` - -A string representing the semantic version number. - -### `he.encode(text, options)` - -This function takes a string of text and encodes (by default) any symbols that aren’t printable ASCII symbols and `&`, `<`, `>`, `"`, `'`, and `` ` ``, replacing them with character references. - -```js -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -As long as the input string contains [allowed code points](https://html.spec.whatwg.org/multipage/parsing.html#preprocessing-the-input-stream) only, the return value of this function is always valid HTML. Any [(invalid) code points that cannot be represented using a character reference](https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides) in the input are not encoded: - -```js -he.encode('foo \0 bar'); -// → 'foo \0 bar' -``` - -However, enabling [the `strict` option](https://github.com/mathiasbynens/he#strict) causes invalid code points to throw an exception. With `strict` enabled, `he.encode` either throws (if the input contains invalid code points) or returns a string of valid HTML. - -The `options` object is optional. It recognizes the following properties: - -#### `useNamedReferences` - -The default value for the `useNamedReferences` option is `false`. This means that `encode()` will not use any named character references (e.g. `©`) in the output — hexadecimal escapes (e.g. `©`) will be used instead. Set it to `true` to enable the use of named references. - -**Note that if compatibility with older browsers is a concern, this option should remain disabled.** - -```js -// Using the global default setting (defaults to `false`): -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly disallow named references: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'useNamedReferences': false -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly allow named references: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'useNamedReferences': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -#### `decimal` - -The default value for the `decimal` option is `false`. If the option is enabled, `encode` will generally use decimal escapes (e.g. `©`) rather than hexadecimal escapes (e.g. `©`). Beside of this replacement, the basic behavior remains the same when combined with other options. For example: if both options `useNamedReferences` and `decimal` are enabled, named references (e.g. `©`) are used over decimal escapes. HTML entities without a named reference are encoded using decimal escapes. - -```js -// Using the global default setting (defaults to `false`): -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly disable decimal escapes: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'decimal': false -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly enable decimal escapes: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'decimal': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly allow named references and decimal escapes: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'useNamedReferences': true, - 'decimal': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -#### `encodeEverything` - -The default value for the `encodeEverything` option is `false`. This means that `encode()` will not use any character references for printable ASCII symbols that don’t need escaping. Set it to `true` to encode every symbol in the input string. When set to `true`, this option takes precedence over `allowUnsafeSymbols` (i.e. setting the latter to `true` in such a case has no effect). - -```js -// Using the global default setting (defaults to `false`): -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly encode all symbols: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'encodeEverything': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// This setting can be combined with the `useNamedReferences` option: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'encodeEverything': true, - 'useNamedReferences': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -#### `strict` - -The default value for the `strict` option is `false`. This means that `encode()` will encode any HTML text content you feed it, even if it contains any symbols that cause [parse errors](https://html.spec.whatwg.org/multipage/parsing.html#preprocessing-the-input-stream). To throw an error when such invalid HTML is encountered, set the `strict` option to `true`. This option makes it possible to use _he_ as part of HTML parsers and HTML validators. - -```js -// Using the global default setting (defaults to `false`, i.e. error-tolerant mode): -he.encode('\x01'); -// → '' - -// Passing an `options` object to `encode`, to explicitly enable error-tolerant mode: -he.encode('\x01', { - 'strict': false -}); -// → '' - -// Passing an `options` object to `encode`, to explicitly enable strict mode: -he.encode('\x01', { - 'strict': true -}); -// → Parse error -``` - -#### `allowUnsafeSymbols` - -The default value for the `allowUnsafeSymbols` option is `false`. This means that characters that are unsafe for use in HTML content (`&`, `<`, `>`, `"`, `'`, and `` ` ``) will be encoded. When set to `true`, only non-ASCII characters will be encoded. If the `encodeEverything` option is set to `true`, this option will be ignored. - -```js -he.encode('foo © and & ampersand', { - 'allowUnsafeSymbols': true -}); -// → 'foo © and & ampersand' -``` - -#### Overriding default `encode` options globally - -The global default setting can be overridden by modifying the `he.encode.options` object. This saves you from passing in an `options` object for every call to `encode` if you want to use the non-default setting. - -```js -// Read the global default setting: -he.encode.options.useNamedReferences; -// → `false` by default - -// Override the global default setting: -he.encode.options.useNamedReferences = true; - -// Using the global default setting, which is now `true`: -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -### `he.decode(html, options)` - -This function takes a string of HTML and decodes any named and numerical character references in it using [the algorithm described in section 12.2.4.69 of the HTML spec](https://html.spec.whatwg.org/multipage/syntax.html#tokenizing-character-references). - -```js -he.decode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -The `options` object is optional. It recognizes the following properties: - -#### `isAttributeValue` - -The default value for the `isAttributeValue` option is `false`. This means that `decode()` will decode the string as if it were used in [a text context in an HTML document](https://html.spec.whatwg.org/multipage/syntax.html#data-state). HTML has different rules for [parsing character references in attribute values](https://html.spec.whatwg.org/multipage/syntax.html#character-reference-in-attribute-value-state) — set this option to `true` to treat the input string as if it were used as an attribute value. - -```js -// Using the global default setting (defaults to `false`, i.e. HTML text context): -he.decode('foo&bar'); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly assume an HTML text context: -he.decode('foo&bar', { - 'isAttributeValue': false -}); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly assume an HTML attribute value context: -he.decode('foo&bar', { - 'isAttributeValue': true -}); -// → 'foo&bar' -``` - -#### `strict` - -The default value for the `strict` option is `false`. This means that `decode()` will decode any HTML text content you feed it, even if it contains any entities that cause [parse errors](https://html.spec.whatwg.org/multipage/syntax.html#tokenizing-character-references). To throw an error when such invalid HTML is encountered, set the `strict` option to `true`. This option makes it possible to use _he_ as part of HTML parsers and HTML validators. - -```js -// Using the global default setting (defaults to `false`, i.e. error-tolerant mode): -he.decode('foo&bar'); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly enable error-tolerant mode: -he.decode('foo&bar', { - 'strict': false -}); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly enable strict mode: -he.decode('foo&bar', { - 'strict': true -}); -// → Parse error -``` - -#### Overriding default `decode` options globally - -The global default settings for the `decode` function can be overridden by modifying the `he.decode.options` object. This saves you from passing in an `options` object for every call to `decode` if you want to use a non-default setting. - -```js -// Read the global default setting: -he.decode.options.isAttributeValue; -// → `false` by default - -// Override the global default setting: -he.decode.options.isAttributeValue = true; - -// Using the global default setting, which is now `true`: -he.decode('foo&bar'); -// → 'foo&bar' -``` - -### `he.escape(text)` - -This function takes a string of text and escapes it for use in text contexts in XML or HTML documents. Only the following characters are escaped: `&`, `<`, `>`, `"`, `'`, and `` ` ``. - -```js -he.escape(''); -// → '<img src='x' onerror="prompt(1)">' -``` - -### `he.unescape(html, options)` - -`he.unescape` is an alias for `he.decode`. It takes a string of HTML and decodes any named and numerical character references in it. - -### Using the `he` binary - -To use the `he` binary in your shell, simply install _he_ globally using npm: - -```bash -npm install -g he -``` - -After that you will be able to encode/decode HTML entities from the command line: - -```bash -$ he --encode 'föo ♥ bår 𝌆 baz' -föo ♥ bår 𝌆 baz - -$ he --encode --use-named-refs 'föo ♥ bår 𝌆 baz' -föo ♥ bår 𝌆 baz - -$ he --decode 'föo ♥ bår 𝌆 baz' -föo ♥ bår 𝌆 baz -``` - -Read a local text file, encode it for use in an HTML text context, and save the result to a new file: - -```bash -$ he --encode < foo.txt > foo-escaped.html -``` - -Or do the same with an online text file: - -```bash -$ curl -sL "http://git.io/HnfEaw" | he --encode > escaped.html -``` - -Or, the opposite — read a local file containing a snippet of HTML in a text context, decode it back to plain text, and save the result to a new file: - -```bash -$ he --decode < foo-escaped.html > foo.txt -``` - -Or do the same with an online HTML snippet: - -```bash -$ curl -sL "http://git.io/HnfEaw" | he --decode > decoded.txt -``` - -See `he --help` for the full list of options. - -## Support - -_he_ has been tested in at least: - -* Chrome 27-50 -* Firefox 3-45 -* Safari 4-9 -* Opera 10-12, 15–37 -* IE 6–11 -* Edge -* Narwhal 0.3.2 -* Node.js v0.10, v0.12, v4, v5 -* PhantomJS 1.9.0 -* Rhino 1.7RC4 -* RingoJS 0.8-0.11 - -## Unit tests & code coverage - -After cloning this repository, run `npm install` to install the dependencies needed for he development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. - -Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use `grunt test`. - -To generate the code coverage report, use `grunt cover`. - -## Acknowledgements - -Thanks to [Simon Pieters](https://simon.html5.org/) ([@zcorpan](https://twitter.com/zcorpan)) for the many suggestions. - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## License - -_he_ is available under the [MIT](https://mths.be/mit) license. diff --git a/build/node_modules/he/he.js b/build/node_modules/he/he.js deleted file mode 100644 index 14a58e9d..00000000 --- a/build/node_modules/he/he.js +++ /dev/null @@ -1,345 +0,0 @@ -/*! https://mths.be/he v1.2.0 by @mathias | MIT license */ -;(function(root) { - - // Detect free variables `exports`. - var freeExports = typeof exports == 'object' && exports; - - // Detect free variable `module`. - var freeModule = typeof module == 'object' && module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root`. - var freeGlobal = typeof global == 'object' && global; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - // All astral symbols. - var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - // All ASCII symbols (not just printable ASCII) except those listed in the - // first column of the overrides table. - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides - var regexAsciiWhitelist = /[\x01-\x7F]/g; - // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or - // code points listed in the first column of the overrides table on - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. - var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; - - var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; - var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; - - var regexEscape = /["&'<>`]/g; - var escapeMap = { - '"': '"', - '&': '&', - '\'': ''', - '<': '<', - // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the - // following is not strictly necessary unless it’s part of a tag or an - // unquoted attribute value. We’re only escaping it to support those - // situations, and for XML support. - '>': '>', - // In Internet Explorer ≤ 8, the backtick character can be used - // to break out of (un)quoted attribute values or HTML comments. - // See http://html5sec.org/#102, http://html5sec.org/#108, and - // http://html5sec.org/#133. - '`': '`' - }; - - var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; - var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g; - var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; - var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; - var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; - var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; - - /*--------------------------------------------------------------------------*/ - - var stringFromCharCode = String.fromCharCode; - - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var has = function(object, propertyName) { - return hasOwnProperty.call(object, propertyName); - }; - - var contains = function(array, value) { - var index = -1; - var length = array.length; - while (++index < length) { - if (array[index] == value) { - return true; - } - } - return false; - }; - - var merge = function(options, defaults) { - if (!options) { - return defaults; - } - var result = {}; - var key; - for (key in defaults) { - // A `hasOwnProperty` check is not needed here, since only recognized - // option names are used anyway. Any others are ignored. - result[key] = has(options, key) ? options[key] : defaults[key]; - } - return result; - }; - - // Modified version of `ucs2encode`; see https://mths.be/punycode. - var codePointToSymbol = function(codePoint, strict) { - var output = ''; - if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { - // See issue #4: - // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is - // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD - // REPLACEMENT CHARACTER.” - if (strict) { - parseError('character reference outside the permissible Unicode range'); - } - return '\uFFFD'; - } - if (has(decodeMapNumeric, codePoint)) { - if (strict) { - parseError('disallowed character reference'); - } - return decodeMapNumeric[codePoint]; - } - if (strict && contains(invalidReferenceCodePoints, codePoint)) { - parseError('disallowed character reference'); - } - if (codePoint > 0xFFFF) { - codePoint -= 0x10000; - output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - output += stringFromCharCode(codePoint); - return output; - }; - - var hexEscape = function(codePoint) { - return '&#x' + codePoint.toString(16).toUpperCase() + ';'; - }; - - var decEscape = function(codePoint) { - return '&#' + codePoint + ';'; - }; - - var parseError = function(message) { - throw Error('Parse error: ' + message); - }; - - /*--------------------------------------------------------------------------*/ - - var encode = function(string, options) { - options = merge(options, encode.options); - var strict = options.strict; - if (strict && regexInvalidRawCodePoint.test(string)) { - parseError('forbidden code point'); - } - var encodeEverything = options.encodeEverything; - var useNamedReferences = options.useNamedReferences; - var allowUnsafeSymbols = options.allowUnsafeSymbols; - var escapeCodePoint = options.decimal ? decEscape : hexEscape; - - var escapeBmpSymbol = function(symbol) { - return escapeCodePoint(symbol.charCodeAt(0)); - }; - - if (encodeEverything) { - // Encode ASCII symbols. - string = string.replace(regexAsciiWhitelist, function(symbol) { - // Use named references if requested & possible. - if (useNamedReferences && has(encodeMap, symbol)) { - return '&' + encodeMap[symbol] + ';'; - } - return escapeBmpSymbol(symbol); - }); - // Shorten a few escapes that represent two symbols, of which at least one - // is within the ASCII range. - if (useNamedReferences) { - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒') - .replace(/fj/g, 'fj'); - } - // Encode non-ASCII symbols. - if (useNamedReferences) { - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } - // Note: any remaining non-ASCII symbols are handled outside of the `if`. - } else if (useNamedReferences) { - // Apply named character references. - // Encode `<>"'&` using named character references. - if (!allowUnsafeSymbols) { - string = string.replace(regexEscape, function(string) { - return '&' + encodeMap[string] + ';'; // no need to check `has()` here - }); - } - // Shorten escapes that represent two symbols, of which at least one is - // `<>"'&`. - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒'); - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } else if (!allowUnsafeSymbols) { - // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled - // using named character references. - string = string.replace(regexEscape, escapeBmpSymbol); - } - return string - // Encode astral symbols. - .replace(regexAstralSymbols, function($0) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - var high = $0.charCodeAt(0); - var low = $0.charCodeAt(1); - var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; - return escapeCodePoint(codePoint); - }) - // Encode any remaining BMP symbols that are not printable ASCII symbols - // using a hexadecimal escape. - .replace(regexBmpWhitelist, escapeBmpSymbol); - }; - // Expose default options (so they can be overridden globally). - encode.options = { - 'allowUnsafeSymbols': false, - 'encodeEverything': false, - 'strict': false, - 'useNamedReferences': false, - 'decimal' : false - }; - - var decode = function(html, options) { - options = merge(options, decode.options); - var strict = options.strict; - if (strict && regexInvalidEntity.test(html)) { - parseError('malformed character reference'); - } - return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) { - var codePoint; - var semicolon; - var decDigits; - var hexDigits; - var reference; - var next; - - if ($1) { - reference = $1; - // Note: there is no need to check `has(decodeMap, reference)`. - return decodeMap[reference]; - } - - if ($2) { - // Decode named character references without trailing `;`, e.g. `&`. - // This is only a parse error if it gets converted to `&`, or if it is - // followed by `=` in an attribute context. - reference = $2; - next = $3; - if (next && options.isAttributeValue) { - if (strict && next == '=') { - parseError('`&` did not start a character reference'); - } - return $0; - } else { - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - // Note: there is no need to check `has(decodeMapLegacy, reference)`. - return decodeMapLegacy[reference] + (next || ''); - } - } - - if ($4) { - // Decode decimal escapes, e.g. `𝌆`. - decDigits = $4; - semicolon = $5; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(decDigits, 10); - return codePointToSymbol(codePoint, strict); - } - - if ($6) { - // Decode hexadecimal escapes, e.g. `𝌆`. - hexDigits = $6; - semicolon = $7; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(hexDigits, 16); - return codePointToSymbol(codePoint, strict); - } - - // If we’re still here, `if ($7)` is implied; it’s an ambiguous - // ampersand for sure. https://mths.be/notes/ambiguous-ampersands - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - return $0; - }); - }; - // Expose default options (so they can be overridden globally). - decode.options = { - 'isAttributeValue': false, - 'strict': false - }; - - var escape = function(string) { - return string.replace(regexEscape, function($0) { - // Note: there is no need to check `has(escapeMap, $0)` here. - return escapeMap[$0]; - }); - }; - - /*--------------------------------------------------------------------------*/ - - var he = { - 'version': '1.2.0', - 'encode': encode, - 'decode': decode, - 'escape': escape, - 'unescape': decode - }; - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define(function() { - return he; - }); - } else if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = he; - } else { // in Narwhal or RingoJS v0.7.0- - for (var key in he) { - has(he, key) && (freeExports[key] = he[key]); - } - } - } else { // in Rhino or a web browser - root.he = he; - } - -}(this)); diff --git a/build/node_modules/he/package.json b/build/node_modules/he/package.json deleted file mode 100644 index 76eff317..00000000 --- a/build/node_modules/he/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "he", - "version": "1.2.0", - "description": "A robust HTML entities encoder/decoder with full Unicode support.", - "homepage": "https://mths.be/he", - "main": "he.js", - "bin": "bin/he", - "keywords": [ - "string", - "entities", - "entity", - "html", - "encode", - "decode", - "unicode" - ], - "license": "MIT", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/he.git" - }, - "bugs": "https://github.com/mathiasbynens/he/issues", - "files": [ - "LICENSE-MIT.txt", - "he.js", - "bin/", - "man/" - ], - "directories": { - "bin": "bin", - "man": "man", - "test": "tests" - }, - "scripts": { - "test": "node tests/tests.js", - "build": "grunt build" - }, - "devDependencies": { - "codecov.io": "^0.1.6", - "grunt": "^0.4.5", - "grunt-cli": "^1.3.1", - "grunt-shell": "^1.1.1", - "grunt-template": "^0.2.3", - "istanbul": "^0.4.2", - "jsesc": "^1.0.0", - "lodash": "^4.8.2", - "qunit-extras": "^1.4.5", - "qunitjs": "~1.11.0", - "regenerate": "^1.2.1", - "regexgen": "^1.3.0", - "requirejs": "^2.1.22", - "sort-object": "^3.0.2" - } -} diff --git a/build/node_modules/header-case/LICENSE b/build/node_modules/header-case/LICENSE deleted file mode 100644 index 983fbe8a..00000000 --- a/build/node_modules/header-case/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/header-case/README.md b/build/node_modules/header-case/README.md deleted file mode 100644 index 30084e37..00000000 --- a/build/node_modules/header-case/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Header Case - -[![NPM version][npm-image]][npm-url] -[![NPM downloads][downloads-image]][downloads-url] -[![Bundle size][bundlephobia-image]][bundlephobia-url] - -> Transform into a dash separated string of capitalized words. - -## Installation - -``` -npm install header-case --save -``` - -## Usage - -```js -import { headerCase } from "header-case"; - -headerCase("string"); //=> "String" -headerCase("dot.case"); //=> "Dot-Case" -headerCase("PascalCase"); //=> "Pascal-Case" -headerCase("version 1.2.10"); //=> "Version-1-2-10" -``` - -The function also accepts [`options`](https://github.com/blakeembrey/change-case#options). - -## License - -MIT - -[npm-image]: https://img.shields.io/npm/v/header-case.svg?style=flat -[npm-url]: https://npmjs.org/package/header-case -[downloads-image]: https://img.shields.io/npm/dm/header-case.svg?style=flat -[downloads-url]: https://npmjs.org/package/header-case -[bundlephobia-image]: https://img.shields.io/bundlephobia/minzip/header-case.svg -[bundlephobia-url]: https://bundlephobia.com/result?p=header-case diff --git a/build/node_modules/header-case/package.json b/build/node_modules/header-case/package.json deleted file mode 100644 index b117174a..00000000 --- a/build/node_modules/header-case/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "header-case", - "version": "2.0.4", - "description": "Transform into a dash separated string of capitalized words", - "main": "dist/index.js", - "typings": "dist/index.d.ts", - "module": "dist.es2015/index.js", - "sideEffects": false, - "jsnext:main": "dist.es2015/index.js", - "files": [ - "dist/", - "dist.es2015/", - "LICENSE" - ], - "scripts": { - "lint": "tslint \"src/**/*\" --project tsconfig.json", - "build": "rimraf dist/ dist.es2015/ && tsc && tsc -P tsconfig.es2015.json", - "specs": "jest --coverage", - "test": "npm run build && npm run lint && npm run specs", - "size": "size-limit", - "prepare": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/blakeembrey/change-case.git" - }, - "keywords": [ - "header", - "case", - "dash", - "hyphen", - "capitalize", - "convert", - "transform" - ], - "author": { - "name": "Blake Embrey", - "email": "hello@blakeembrey.com", - "url": "http://blakeembrey.me" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/blakeembrey/change-case/issues" - }, - "homepage": "https://github.com/blakeembrey/change-case/tree/master/packages/header-case#readme", - "size-limit": [ - { - "path": "dist/index.js", - "limit": "400 B" - } - ], - "jest": { - "roots": [ - "/src/" - ], - "transform": { - "\\.tsx?$": "ts-jest" - }, - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "jsx", - "json", - "node" - ] - }, - "publishConfig": { - "access": "public" - }, - "dependencies": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - }, - "devDependencies": { - "@size-limit/preset-small-lib": "^2.2.1", - "@types/jest": "^24.0.23", - "@types/node": "^12.12.14", - "jest": "^24.9.0", - "rimraf": "^3.0.0", - "ts-jest": "^24.2.0", - "tslint": "^5.20.1", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.2" - }, - "gitHead": "76a21a7f6f2a226521ef6abd345ff309cbd01fb0" -} diff --git a/build/node_modules/helmet-csp/CHANGELOG.md b/build/node_modules/helmet-csp/CHANGELOG.md deleted file mode 100644 index 0df09600..00000000 --- a/build/node_modules/helmet-csp/CHANGELOG.md +++ /dev/null @@ -1,122 +0,0 @@ -# Changelog - -## 3.4.0 - 2021-05-02 - -### Added - -- New `useDefaults` option, defaulting to `false`, lets you selectively override defaults more easily - -## 3.3.1 - 2020-12-27 - -### Fixed - -- Broken TypeScript types. See [#283](https://github.com/helmetjs/helmet/issues/283) - -## 3.3.0 - 2020-12-27 - -### Added - -- Setting the `default-src` to `contentSecurityPolicy.dangerouslyDisableDefaultSrc` disables it - -## 3.2.0 - 2020-11-01 - -### Added - -- Get the default directives with `contentSecurityPolicy.getDefaultDirectives()` - -## 3.1.0 - 2020-08-15 - -### Added - -- Directive values can now include functions, as they could in Helmet 3. See [#243](https://github.com/helmetjs/helmet/issues/243) - -## 3.0.0 - 2020-08-02 - -### Added - -- If no `default-src` directive is supplied, an error is thrown -- Directive lists can be any iterable, not just arrays - -### Changed - -- There is now a default set of directives if none are supplied -- Duplicate keys now throw an error. See [helmetjs/csp#73](https://github.com/helmetjs/csp/issues/73) -- This middleware is more lenient, allowing more directive names or values - -### Removed - -- Removed browser sniffing (including the `browserSniff` parameter). See [#97](https://github.com/helmetjs/csp/issues/97) -- Removed conditional support. This includes directive functions and support for a function as the `reportOnly`. [Read this if you need help.](https://github.com/helmetjs/helmet/wiki/Conditionally-using-middleware) -- Removed a lot of checks—you should be checking your CSP with a different tool -- Removed support for legacy headers (and therefore the `setAllHeaders` parameter). [Read this if you need help.](https://github.com/helmetjs/helmet/wiki/Setting-legacy-Content-Security-Policy-headers-in-Helmet-4) -- Dropped support for old Node versions. Node 10+ is now required -- Removed the `loose` option -- Removed support for functions as directive values. You must supply an iterable of strings -- Removed the `disableAndroid` option - -## 2.9.5 - 2020-02-22 - -### Changed - -- Updated `bowser` subdependency from 2.7.0 to 2.9.0 - -### Fixed - -- Fixed an issue some people were having when importing the `bowser` subdependency. See [#96](https://github.com/helmetjs/csp/issues/96) and [#101](https://github.com/helmetjs/csp/pull/101) -- Fixed a link in the readme. See [#100](https://github.com/helmetjs/csp/pull/100) - -## 2.9.4 - 2019-10-21 - -### Changed - -- Updated `bowser` subdependency from 2.6.1 to 2.7.0. See [#94](https://github.com/helmetjs/csp/pull/94) - -## 2.9.3 - 2019-09-30 - -### Fixed - -- Published a missing TypeScript type definition file. See [#90](https://github.com/helmetjs/csp/issues/90) - -## 2.9.2 - 2019-09-20 - -### Fixed - -- Fixed a bug where a request from Firefox 4 could delete `default-src` from future responses -- Fixed tablet PC detection by updating `bowser` subdependency to latest version - -## 2.9.1 - 2019-09-04 - -### Changed - -- Updated `bowser` subdependency from 2.5.3 to 2.5.4. See [#88](https://github.com/helmetjs/csp/pull/88) - -### Fixed - -- The "security" keyword was declared twice in package metadata. See [#87](https://github.com/helmetjs/csp/pull/87) - -## 2.9.0 - 2019-08-28 - -### Added - -- Added TypeScript type definitions. See [#86](https://github.com/helmetjs/csp/pull/86) - -### Fixed - -- Switched from `platform` to `bowser` to quiet a security vulnerability warning. See [#80](https://github.com/helmetjs/csp/issues/80) - -## 2.8.0 - 2019-07-24 - -### Added - -- Added a new `sandbox` directive, `allow-downloads-without-user-activation` (see [#85](https://github.com/helmetjs/csp/pull/85)) -- Created a changelog -- Added some package metadata - -### Changed - -- Updated documentation to use ES2015 -- Updated documentation to remove dependency on UUID package -- Updated `content-security-policy-builder` to 2.1.0 -- Excluded some files from the npm package - -Changes in versions 2.7.1 and below can be found in [Helmet's changelog](https://github.com/helmetjs/helmet/blob/master/CHANGELOG.md). diff --git a/build/node_modules/helmet-csp/LICENSE b/build/node_modules/helmet-csp/LICENSE deleted file mode 100644 index 7b6811c9..00000000 --- a/build/node_modules/helmet-csp/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2012-2021 Evan Hahn, Adam Baldwin - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/helmet-csp/README.md b/build/node_modules/helmet-csp/README.md deleted file mode 100644 index 7081c131..00000000 --- a/build/node_modules/helmet-csp/README.md +++ /dev/null @@ -1,83 +0,0 @@ -# Content Security Policy middleware - -Content Security Policy (CSP) helps prevent unwanted content from being injected/loaded into your webpages. This can mitigate cross-site scripting (XSS) vulnerabilities, clickjacking, formjacking, malicious frames, unwanted trackers, and other web client-side attacks. - -If you want to learn how CSP works, check out the fantastic [HTML5 Rocks guide](https://www.html5rocks.com/en/tutorials/security/content-security-policy/), the [Content Security Policy Reference](https://content-security-policy.com/), and the [Content Security Policy specification](https://www.w3.org/TR/CSP/). - -This middleware helps set Content Security Policies. - -Basic usage: - -```javascript -const contentSecurityPolicy = require("helmet-csp"); - -app.use( - contentSecurityPolicy({ - useDefaults: true, - directives: { - defaultSrc: ["'self'", "default.example"], - scriptSrc: ["'self'", "js.example.com"], - objectSrc: ["'none'"], - upgradeInsecureRequests: [], - }, - reportOnly: false, - }) -); -``` - -If no directives are supplied, the following policy is set (whitespace added for readability): - - default-src 'self'; - base-uri 'self'; - block-all-mixed-content; - font-src 'self' https: data:; - frame-ancestors 'self'; - img-src 'self' data:; - object-src 'none'; - script-src 'self'; - script-src-attr 'none'; - style-src 'self' https: 'unsafe-inline'; - upgrade-insecure-requests - -You can use this default with the `useDefaults` option. `useDefaults` is `false` by default, but will be `true` in the next major version of this module. - -You can also get the default directives object with `contentSecurityPolicy.getDefaultDirectives()`. - -You can set any directives you wish. `defaultSrc` is required, but can be explicitly disabled by setting its value to `contentSecurityPolicy.dangerouslyDisableDefaultSrc`. Directives can be kebab-cased (like `script-src`) or camel-cased (like `scriptSrc`). They are equivalent, but duplicates are not allowed. - -The `reportOnly` option, if set to `true`, sets the `Content-Security-Policy-Report-Only` header instead. - -This middleware does minimal validation. You should use a more sophisticated CSP validator, like [Google's CSP Evaluator](https://csp-evaluator.withgoogle.com/), to make sure your CSP looks good. - -## Recipe: generating nonces - -You can dynamically generate nonces to allow inline ``); -}); -``` - -## See also - -- [Google's CSP Evaluator tool](https://csp-evaluator.withgoogle.com/) -- [CSP Scanner](https://cspscanner.com/) -- [GitHub's CSP journey](https://githubengineering.com/githubs-csp-journey/) -- [Content Security Policy for Single Page Web Apps](https://developer.squareup.com/blog/content-security-policy-for-single-page-web-apps/) diff --git a/build/node_modules/helmet-csp/index.d.ts b/build/node_modules/helmet-csp/index.d.ts deleted file mode 100644 index dea65e2c..00000000 --- a/build/node_modules/helmet-csp/index.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/// -import { IncomingMessage, ServerResponse } from "http" -interface ContentSecurityPolicyDirectiveValueFunction { - (req: IncomingMessage, res: ServerResponse): string -} -declare type ContentSecurityPolicyDirectiveValue = string | ContentSecurityPolicyDirectiveValueFunction -export interface ContentSecurityPolicyOptions { - useDefaults?: boolean - directives?: Record | typeof dangerouslyDisableDefaultSrc> - reportOnly?: boolean -} -interface ContentSecurityPolicy { - (options?: Readonly): (req: IncomingMessage, res: ServerResponse, next: (err?: Error) => void) => void - getDefaultDirectives: typeof getDefaultDirectives - dangerouslyDisableDefaultSrc: typeof dangerouslyDisableDefaultSrc -} -declare const dangerouslyDisableDefaultSrc: unique symbol -declare const getDefaultDirectives: () => { - [x: string]: Iterable -} -declare const contentSecurityPolicy: ContentSecurityPolicy -export default contentSecurityPolicy -export { getDefaultDirectives, dangerouslyDisableDefaultSrc } diff --git a/build/node_modules/helmet-csp/index.js b/build/node_modules/helmet-csp/index.js deleted file mode 100644 index 02dfdbb2..00000000 --- a/build/node_modules/helmet-csp/index.js +++ /dev/null @@ -1,131 +0,0 @@ -"use strict" -Object.defineProperty(exports, "__esModule", { value: true }) -exports.dangerouslyDisableDefaultSrc = exports.getDefaultDirectives = void 0 -const dangerouslyDisableDefaultSrc = Symbol("dangerouslyDisableDefaultSrc") -exports.dangerouslyDisableDefaultSrc = dangerouslyDisableDefaultSrc -const DEFAULT_DIRECTIVES = { - "default-src": ["'self'"], - "base-uri": ["'self'"], - "block-all-mixed-content": [], - "font-src": ["'self'", "https:", "data:"], - "frame-ancestors": ["'self'"], - "img-src": ["'self'", "data:"], - "object-src": ["'none'"], - "script-src": ["'self'"], - "script-src-attr": ["'none'"], - "style-src": ["'self'", "https:", "'unsafe-inline'"], - "upgrade-insecure-requests": [] -} -const getDefaultDirectives = () => Object.assign({}, DEFAULT_DIRECTIVES) -exports.getDefaultDirectives = getDefaultDirectives -const dashify = str => str.replace(/[A-Z]/g, capitalLetter => "-" + capitalLetter.toLowerCase()) -const isDirectiveValueInvalid = directiveValue => /;|,/.test(directiveValue) -const has = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key) -function normalizeDirectives(options) { - const defaultDirectives = getDefaultDirectives() - const { useDefaults = false, directives: rawDirectives = defaultDirectives } = options - const result = new Map() - const directiveNamesSeen = new Set() - const directivesExplicitlyDisabled = new Set() - for (const rawDirectiveName in rawDirectives) { - if (!has(rawDirectives, rawDirectiveName)) { - continue - } - if (rawDirectiveName.length === 0 || /[^a-zA-Z0-9-]/.test(rawDirectiveName)) { - throw new Error(`Content-Security-Policy received an invalid directive name ${JSON.stringify(rawDirectiveName)}`) - } - const directiveName = dashify(rawDirectiveName) - if (directiveNamesSeen.has(directiveName)) { - throw new Error(`Content-Security-Policy received a duplicate directive ${JSON.stringify(directiveName)}`) - } - directiveNamesSeen.add(directiveName) - const rawDirectiveValue = rawDirectives[rawDirectiveName] - let directiveValue - if (rawDirectiveValue === null) { - if (directiveName === "default-src") { - throw new Error("Content-Security-Policy needs a default-src but it was set to `null`. If you really want to disable it, set it to `contentSecurityPolicy.dangerouslyDisableDefaultSrc`.") - } - directivesExplicitlyDisabled.add(directiveName) - continue - } else if (typeof rawDirectiveValue === "string") { - directiveValue = [rawDirectiveValue] - } else if (!rawDirectiveValue) { - throw new Error(`Content-Security-Policy received an invalid directive value for ${JSON.stringify(directiveName)}`) - } else if (rawDirectiveValue === dangerouslyDisableDefaultSrc) { - if (directiveName === "default-src") { - directivesExplicitlyDisabled.add("default-src") - continue - } else { - throw new Error(`Content-Security-Policy: tried to disable ${JSON.stringify(directiveName)} as if it were default-src; simply omit the key`) - } - } else { - directiveValue = rawDirectiveValue - } - for (const element of directiveValue) { - if (typeof element === "string" && isDirectiveValueInvalid(element)) { - throw new Error(`Content-Security-Policy received an invalid directive value for ${JSON.stringify(directiveName)}`) - } - } - result.set(directiveName, directiveValue) - } - if (useDefaults) { - Object.entries(defaultDirectives).forEach(([defaultDirectiveName, defaultDirectiveValue]) => { - if (!result.has(defaultDirectiveName) && !directivesExplicitlyDisabled.has(defaultDirectiveName)) { - result.set(defaultDirectiveName, defaultDirectiveValue) - } - }) - } - if (!result.size) { - throw new Error("Content-Security-Policy has no directives. Either set some or disable the header") - } - if (!result.has("default-src") && !directivesExplicitlyDisabled.has("default-src")) { - throw new Error("Content-Security-Policy needs a default-src but none was provided. If you really want to disable it, set it to `contentSecurityPolicy.dangerouslyDisableDefaultSrc`.") - } - return result -} -function getHeaderValue(req, res, normalizedDirectives) { - let err - const result = [] - normalizedDirectives.forEach((rawDirectiveValue, directiveName) => { - let directiveValue = "" - for (const element of rawDirectiveValue) { - directiveValue += " " + (element instanceof Function ? element(req, res) : element) - } - if (!directiveValue) { - result.push(directiveName) - } else if (isDirectiveValueInvalid(directiveValue)) { - err = new Error(`Content-Security-Policy received an invalid directive value for ${JSON.stringify(directiveName)}`) - } else { - result.push(`${directiveName}${directiveValue}`) - } - }) - return err ? err : result.join(";") -} -const contentSecurityPolicy = function contentSecurityPolicy(options = {}) { - if ("loose" in options) { - console.warn("Content-Security-Policy middleware no longer needs the `loose` parameter. You should remove it.") - } - if ("setAllHeaders" in options) { - console.warn("Content-Security-Policy middleware no longer supports the `setAllHeaders` parameter. See .") - } - ;["disableAndroid", "browserSniff"].forEach(deprecatedOption => { - if (deprecatedOption in options) { - console.warn(`Content-Security-Policy middleware no longer does browser sniffing, so you can remove the \`${deprecatedOption}\` option. See for discussion.`) - } - }) - const headerName = options.reportOnly ? "Content-Security-Policy-Report-Only" : "Content-Security-Policy" - const normalizedDirectives = normalizeDirectives(options) - return function contentSecurityPolicyMiddleware(req, res, next) { - const result = getHeaderValue(req, res, normalizedDirectives) - if (result instanceof Error) { - next(result) - } else { - res.setHeader(headerName, result) - next() - } - } -} -contentSecurityPolicy.getDefaultDirectives = getDefaultDirectives -contentSecurityPolicy.dangerouslyDisableDefaultSrc = dangerouslyDisableDefaultSrc -module.exports = contentSecurityPolicy -exports.default = contentSecurityPolicy diff --git a/build/node_modules/helmet-csp/package.json b/build/node_modules/helmet-csp/package.json deleted file mode 100644 index 873b3fd3..00000000 --- a/build/node_modules/helmet-csp/package.json +++ /dev/null @@ -1 +0,0 @@ -{"author":"Adam Baldwin (https://evilpacket.net)","contributors":["Evan Hahn (https://evanhahn.com)","Ryan Cannon (https://ryancannon.com)"],"license":"MIT","homepage":"https://helmetjs.github.io/","bugs":{"url":"https://github.com/helmetjs/helmet/issues","email":"me@evanhahn.com"},"repository":{"type":"git","url":"git://github.com/helmetjs/helmet.git"},"engines":{"node":">=10.0.0"},"files":["CHANGELOG.md","LICENSE","README.md","index.js","index.d.ts"],"main":"index.js","typings":"index.d.ts","name":"helmet-csp","description":"Content Security Policy middleware","version":"3.4.0","keywords":["express","security","content-security-policy","csp","xss"]} \ No newline at end of file diff --git a/build/node_modules/help-me/LICENSE b/build/node_modules/help-me/LICENSE deleted file mode 100644 index bc090c01..00000000 --- a/build/node_modules/help-me/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2022 Matteo Collina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/build/node_modules/help-me/README.md b/build/node_modules/help-me/README.md deleted file mode 100644 index c0c55c87..00000000 --- a/build/node_modules/help-me/README.md +++ /dev/null @@ -1,66 +0,0 @@ -help-me -======= - -Help command for node, to use with [minimist](http://npm.im/minimist) and [commist](http://npm.im/commist). - -Example -------- - -```js -'use strict' - -var helpMe = require('help-me') -var path = require('path') -var help = helpMe({ - dir: path.join(__dirname, 'doc'), - // the default - ext: '.txt' -}) - -help - .createStream(['hello']) // can support also strings - .pipe(process.stdout) - -// little helper to do the same -help.toStdout(['hello']) -``` - -Using ESM and top-level await:: - -```js -import { help } from 'help-me' -import { join } from 'desm' - -await help({ - dir: join(import.meta.url, 'doc'), - // the default - ext: '.txt' -}, ['hello']) -``` - -Usage with commist ------------------- - -[Commist](http://npm.im/commist) provide a command system for node. - -```js -var commist = require('commist')() -var path = require('path') -var help = require('help-me')({ - dir: path.join(__dirname, 'doc') -}) - -commist.register('help', help.toStdout) - -commist.parse(process.argv.splice(2)) -``` - -Acknowledgements ----------------- - -This project was kindly sponsored by [nearForm](http://nearform.com). - -License -------- - -MIT diff --git a/build/node_modules/help-me/example.js b/build/node_modules/help-me/example.js deleted file mode 100644 index ad22a4ad..00000000 --- a/build/node_modules/help-me/example.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict' - -const path = require('path') -const commist = require('commist')() -const help = require('./')({ - dir: path.join(path.dirname(require.main.filename), 'doc') -}) - -commist.register('help', help.toStdout) -commist.register('start', function () { - console.log('Starting the script!') -}) - -const res = commist.parse(process.argv.splice(2)) - -if (res) { - help.toStdout() -} diff --git a/build/node_modules/help-me/help-me.js b/build/node_modules/help-me/help-me.js deleted file mode 100644 index f730d7b3..00000000 --- a/build/node_modules/help-me/help-me.js +++ /dev/null @@ -1,130 +0,0 @@ -'use strict' - -const fs = require('fs') -const { PassThrough, Writable, pipeline } = require('stream') -const glob = require('glob') -const process = require('process') - -const defaults = { - ext: '.txt', - help: 'help' -} - -function isDirectory (path) { - try { - const stat = fs.lstatSync(path) - return stat.isDirectory() - } catch (err) { - return false - } -} - -function createDefaultStream () { - return new Writable({ - write (chunk, encoding, callback) { - process.stdout.write(chunk, callback) - } - }) -} - -function helpMe (opts) { - opts = Object.assign({}, defaults, opts) - - if (!opts.dir) { - throw new Error('missing dir') - } - - if (!isDirectory(opts.dir)) { - throw new Error(`${opts.dir} is not a directory`) - } - - return { - createStream: createStream, - toStdout: toStdout - } - - function createStream (args) { - if (typeof args === 'string') { - args = args.split(' ') - } else if (!args || args.length === 0) { - args = [opts.help] - } - - const out = new PassThrough() - const re = new RegExp( - args - .map(function (arg) { - return arg + '[a-zA-Z0-9]*' - }) - .join('[ /]+') - ) - - if (process.platform === 'win32') { - opts.dir = opts.dir.split('\\').join('/') - } - - glob(opts.dir + '/**/*' + opts.ext, function (err, files) { - if (err) return out.emit('error', err) - - files = files - .map(function (file) { - const relative = file.replace(opts.dir, '').replace(/^\//, '') - return { file, relative } - }) - .filter(function (file) { - return file.relative.match(re) - }) - - if (files.length === 0) { - return out.emit('error', new Error('no such help file')) - } else if (files.length > 1) { - const exactMatch = files.find( - (file) => file.relative === `${args[0]}${opts.ext}` - ) - if (!exactMatch) { - out.write('There are ' + files.length + ' help pages ') - out.write('that matches the given request, please disambiguate:\n') - files.forEach(function (file) { - out.write(' * ') - out.write(file.relative.replace(opts.ext, '')) - out.write('\n') - }) - out.end() - return - } - files = [exactMatch] - } - - pipeline(fs.createReadStream(files[0].file), out, () => {}) - }) - - return out - } - - function toStdout (args = [], opts) { - opts = opts || {} - const stream = opts.stream || createDefaultStream() - const _onMissingHelp = opts.onMissingHelp || onMissingHelp - return new Promise((resolve, reject) => { - createStream(args) - .on('error', (err) => { - _onMissingHelp(err, args, stream).then(resolve, reject) - }) - .pipe(stream) - .on('close', resolve) - .on('end', resolve) - }) - } - - function onMissingHelp (_, args, stream) { - stream.write(`no such help file: ${args.join(' ')}.\n\n`) - return toStdout([], { stream, async onMissingHelp () {} }) - } -} - -function help (opts, args) { - return helpMe(opts).toStdout(args, opts) -} - -module.exports = helpMe -module.exports.help = help diff --git a/build/node_modules/help-me/package.json b/build/node_modules/help-me/package.json deleted file mode 100644 index 49e814cc..00000000 --- a/build/node_modules/help-me/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "help-me", - "version": "4.2.0", - "description": "Help command for node, partner of minimist and commist", - "main": "help-me.js", - "scripts": { - "test": "standard && node test.js | tap-spec" - }, - "repository": { - "type": "git", - "url": "https://github.com/mcollina/help-me.git" - }, - "keywords": [ - "help", - "command", - "minimist", - "commist" - ], - "author": "Matteo Collina ", - "license": "MIT", - "bugs": { - "url": "https://github.com/mcollina/help-me/issues" - }, - "homepage": "https://github.com/mcollina/help-me", - "devDependencies": { - "commist": "^2.0.0", - "concat-stream": "^2.0.0", - "pre-commit": "^1.1.3", - "proxyquire": "^2.1.3", - "standard": "^16.0.0", - "tap-spec": "^5.0.0", - "tape": "^5.0.0" - }, - "dependencies": { - "glob": "^8.0.0", - "readable-stream": "^3.6.0" - } -} diff --git a/build/node_modules/help-me/test.js b/build/node_modules/help-me/test.js deleted file mode 100644 index acc8a62e..00000000 --- a/build/node_modules/help-me/test.js +++ /dev/null @@ -1,348 +0,0 @@ -'use strict' - -const test = require('tape') -const concat = require('concat-stream') -const fs = require('fs') -const os = require('os') -const path = require('path') -const helpMe = require('./') -const proxyquire = require('proxyquire') - -test('throws if no directory is passed', function (t) { - try { - helpMe() - t.fail() - } catch (err) { - t.equal(err.message, 'missing dir') - } - t.end() -}) - -test('throws if a normal file is passed', function (t) { - try { - helpMe({ - dir: __filename - }) - t.fail() - } catch (err) { - t.equal(err.message, `${__filename} is not a directory`) - } - t.end() -}) - -test('throws if the directory cannot be accessed', function (t) { - try { - helpMe({ - dir: './foo' - }) - t.fail() - } catch (err) { - t.equal(err.message, './foo is not a directory') - } - t.end() -}) - -test('show a generic help.txt from a folder to a stream with relative path in dir', function (t) { - t.plan(2) - - helpMe({ - dir: 'fixture/basic' - }).createStream() - .pipe(concat(function (data) { - fs.readFile('fixture/basic/help.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) -}) - -test('show a generic help.txt from a folder to a stream with absolute path in dir', function (t) { - t.plan(2) - - helpMe({ - dir: path.join(__dirname, 'fixture/basic') - }).createStream() - .pipe(concat(function (data) { - fs.readFile('fixture/basic/help.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) -}) - -test('custom help command with an array', function (t) { - t.plan(2) - - helpMe({ - dir: 'fixture/basic' - }).createStream(['hello']) - .pipe(concat(function (data) { - fs.readFile('fixture/basic/hello.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) -}) - -test('custom help command without an ext', function (t) { - t.plan(2) - - helpMe({ - dir: 'fixture/no-ext', - ext: '' - }).createStream(['hello']) - .pipe(concat(function (data) { - fs.readFile('fixture/no-ext/hello', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) -}) - -test('custom help command with a string', function (t) { - t.plan(2) - - helpMe({ - dir: 'fixture/basic' - }).createStream('hello') - .pipe(concat(function (data) { - fs.readFile('fixture/basic/hello.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) -}) - -test('missing help file', function (t) { - t.plan(1) - - helpMe({ - dir: 'fixture/basic' - }).createStream('abcde') - .on('error', function (err) { - t.equal(err.message, 'no such help file') - }) - .resume() -}) - -test('custom help command with an array', function (t) { - const helper = helpMe({ - dir: 'fixture/shortnames' - }) - - t.test('abbreviates two words in one', function (t) { - t.plan(2) - - helper - .createStream(['world']) - .pipe(concat(function (data) { - fs.readFile('fixture/shortnames/hello world.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) - }) - - t.test('abbreviates three words in two', function (t) { - t.plan(2) - - helper - .createStream(['abcde', 'fghi']) - .pipe(concat(function (data) { - fs.readFile('fixture/shortnames/abcde fghi lmno.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) - }) - - t.test('abbreviates a word', function (t) { - t.plan(2) - - helper - .createStream(['abc', 'fg']) - .pipe(concat(function (data) { - fs.readFile('fixture/shortnames/abcde fghi lmno.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) - }) - - t.test('abbreviates a word using strings', function (t) { - t.plan(2) - - helper - .createStream('abc fg') - .pipe(concat(function (data) { - fs.readFile('fixture/shortnames/abcde fghi lmno.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) - }) - - t.test('print a disambiguation', function (t) { - t.plan(1) - - const expected = '' + - 'There are 2 help pages that matches the given request, please disambiguate:\n' + - ' * abcde fghi lmno\n' + - ' * abcde hello\n' - - helper - .createStream(['abc']) - .pipe(concat({ encoding: 'string' }, function (data) { - t.equal(data, expected) - })) - }) - - t.test('choose exact match over partial', function (t) { - t.plan(1) - - helpMe({ - dir: 'fixture/sameprefix' - }).createStream(['hello']) - .pipe(concat({ encoding: 'string' }, function (data) { - t.equal(data, 'hello') - })) - }) -}) - -test('support for help files organized in folders', function (t) { - const helper = helpMe({ - dir: 'fixture/dir' - }) - - t.test('passing an array', function (t) { - t.plan(2) - - helper - .createStream(['a', 'b']) - .pipe(concat(function (data) { - fs.readFile('fixture/dir/a/b.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) - }) - - t.test('passing a string', function (t) { - t.plan(2) - - helper - .createStream('a b') - .pipe(concat(function (data) { - fs.readFile('fixture/dir/a/b.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - })) - }) -}) - -test('toStdout helper', async function (t) { - t.plan(2) - - let completed = false - const stream = concat(function (data) { - completed = true - fs.readFile('fixture/basic/help.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - }) - - await helpMe({ - dir: 'fixture/basic' - }).toStdout([], { stream }) - - t.ok(completed) -}) - -test('handle error in toStdout', async function (t) { - t.plan(2) - - let completed = false - const stream = concat(function (data) { - completed = true - fs.readFile('fixture/basic/help.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), 'no such help file: something.\n\n' + expected.toString()) - }) - }) - - await helpMe({ - dir: 'fixture/basic' - }).toStdout(['something'], { - stream - }) - - t.ok(completed) -}) - -test('customize missing help fle message', async function (t) { - t.plan(3) - - const stream = concat(function (data) { - t.equal(data.toString(), 'kaboom\n\n') - }) - - await helpMe({ - dir: 'fixture/basic' - }).toStdout(['something'], { - stream, - async onMissingHelp (err, args, stream) { - t.equal(err.message, 'no such help file') - t.deepEquals(args, ['something']) - stream.end('kaboom\n\n') - } - }) -}) - -test('toStdout without factory', async function (t) { - t.plan(2) - - let completed = false - const stream = concat(function (data) { - completed = true - fs.readFile('fixture/basic/help.txt', function (err, expected) { - t.error(err) - t.equal(data.toString(), expected.toString()) - }) - }) - - await helpMe.help({ - dir: 'fixture/basic', - stream - }, []) - - t.ok(completed) -}) - -test('should allow for awaiting the response with default stdout stream', async function (t) { - t.plan(2) - - const _process = Object.create(process) - const stdout = Object.create(process.stdout) - Object.defineProperty(_process, 'stdout', { - value: stdout - }) - - let completed = false - stdout.write = (data, cb) => { - t.equal(data.toString(), 'hello world' + os.EOL) - completed = true - cb() - } - - const helpMe = proxyquire('./help-me', { - process: _process - }) - - await helpMe.help({ - dir: 'fixture/basic' - }) - - t.ok(completed) -}) diff --git a/build/node_modules/hexoid/hexoid.d.ts b/build/node_modules/hexoid/hexoid.d.ts deleted file mode 100644 index 9b030692..00000000 --- a/build/node_modules/hexoid/hexoid.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function (len?: number): () => string; diff --git a/build/node_modules/hexoid/license b/build/node_modules/hexoid/license deleted file mode 100644 index fa6089fa..00000000 --- a/build/node_modules/hexoid/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Luke Edwards (lukeed.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/hexoid/package.json b/build/node_modules/hexoid/package.json deleted file mode 100644 index df7097c2..00000000 --- a/build/node_modules/hexoid/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "hexoid", - "version": "1.0.0", - "repository": "lukeed/hexoid", - "description": "A tiny (190B) and extremely fast utility to generate random IDs of fixed length", - "unpkg": "dist/index.min.js", - "module": "dist/index.mjs", - "main": "dist/index.js", - "types": "hexoid.d.ts", - "license": "MIT", - "author": { - "name": "Luke Edwards", - "email": "luke.edwards05@gmail.com", - "url": "https://lukeed.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "build": "bundt", - "pretest": "npm run build", - "test": "tape -r esm test/*.js | tap-spec" - }, - "files": [ - "*.d.ts", - "dist" - ], - "keywords": [ - "id", - "uid", - "uuid", - "random", - "generate" - ], - "devDependencies": { - "bundt": "1.0.0", - "esm": "3.2.25", - "tap-spec": "5.0.0", - "tape": "4.9.1" - } -} diff --git a/build/node_modules/hexoid/readme.md b/build/node_modules/hexoid/readme.md deleted file mode 100644 index b5a48faa..00000000 --- a/build/node_modules/hexoid/readme.md +++ /dev/null @@ -1,119 +0,0 @@ -# hexoid [![build status](https://badgen.net/github/status/lukeed/hexoid)](https://github.com/lukeed/hexoid/actions) [![codecov](https://badgen.now.sh/codecov/c/github/lukeed/hexoid)](https://codecov.io/gh/lukeed/hexoid) - -> A tiny (190B) and [extremely fast](#benchmarks) utility to generate random IDs of fixed length - -_**Hexadecimal object IDs.** Available for Node.js and the browser._
Generate randomized output strings of fixed length using lowercased hexadecimal pairs. - -> **Notice:** Please note that this is not a cryptographically secure (CSPRNG) generator. - -Additionally, this module is delivered as: - -* **CommonJS**: [`dist/index.js`](https://unpkg.com/hexoid/dist/index.js) -* **ES Module**: [`dist/index.mjs`](https://unpkg.com/hexoid/dist/index.mjs) -* **UMD**: [`dist/index.min.js`](https://unpkg.com/hexoid/dist/index.min.js) - -## Install - -``` -$ npm install --save hexoid -``` - - -## Usage - -```js -import hexoid from 'hexoid'; - -const toID = hexoid(); -// length = 16 (default) -toID(); //=> '52032fedb951da00' -toID(); //=> '52032fedb951da01' -toID(); //=> '52032fedb951da02' - -// customize length -hexoid(25)(); //=> '065359875047c63a037200e00' -hexoid(32)(); //=> 'ca8e4aec7f139d94fcab9cab2eb89f00' -hexoid(48)(); //=> 'c19a4deb5cdeca68534930e67bd0a2f4ed45988724d8d200' -``` - - -## API - -### hexoid(length?) -Returns: `() => string` - -Creates the function that will generate strings. - -#### length -Type: `Number`
-Default: `16` - -Then length of the output string. - -> **Important:** Your risk of collisions decreases with longer strings!
Please be aware of the [Birthday Problem](https://betterexplained.com/articles/understanding-the-birthday-paradox/)! You may need more combinations than you'd expect. - -The **maximum combinations** are known given the following formula: - -```js -const combos = 256 ** (len/2); -``` - - -## Benchmarks - -> Running on Node.js v10.13.0 - -``` -Validation (length = 16): - ✔ hashids/fixed (example: "LkQWjnegYbwZ1p0G") - ✔ nanoid/non-secure (example: "sLlVL5X3M5k2fo58") - ✔ uid (example: "3d0ckwcnjiuu91hj") - ✔ hexoid (example: "de96b62e663ef300") -Benchmark (length = 16): - hashids/fixed x 349,462 ops/sec ±0.28% (93 runs sampled) - nanoid/non-secure x 3,337,573 ops/sec ±0.28% (96 runs sampled) - uid x 3,553,482 ops/sec ±0.51% (90 runs sampled) - hexoid x 81,081,364 ops/sec ±0.18% (96 runs sampled) - - -Validation (length = 25): - ✔ cuid (example: "ck7lj5hbf00000v7c9gox6yfh") - ✔ hashids/fixed (example: "r9JOyLkQWjnegYbwZ1p0GDXNm") - ✔ nanoid/non-secure (example: "hI202PVPJQRNrP6o6z4pXz4m0") - ✔ uid (example: "9904e9w130buxaw7n8358mn2f") - ✔ hexoid (example: "01dfab2c14e37768eb7605a00") -Benchmark (length = 25): - cuid x 161,636 ops/sec ±1.36% (89 runs sampled) - hashids/fixed x 335,439 ops/sec ±2.40% (94 runs sampled) - nanoid/non-secure x 2,254,073 ops/sec ±0.23% (96 runs sampled) - uid x 2,483,275 ops/sec ±0.38% (95 runs sampled) - hexoid x 75,715,843 ops/sec ±0.27% (95 runs sampled) - - -Validation (length = 36): - ✔ uuid/v1 (example: "c3dc1ed0-629a-11ea-8bfb-8ffc49585f54") - ✔ uuid/v4 (example: "8c89f0ca-f01e-4c84-bd71-e645bab84552") - ✔ hashids/fixed (example: "EVq3Pr9JOyLkQWjnegYbwZ1p0GDXNmRBlAxg") - ✔ @lukeed/uuid (example: "069ad676-48f9-4452-b11d-f20c3872dc1f") - ✔ nanoid/non-secure (example: "jAZjrcDmHH6P1rT9EFdCdHUpF440SjAKwb2A") - ✔ uid (example: "5mhi30lgy5d0glmuy81llelbzdko518ow1sx") - ✔ hexoid (example: "615209331f0b4630acf69999ccfc95a23200") -Benchmark (length = 36): - uuid/v1 x 1,487,947 ops/sec ±0.18% (98 runs sampled) - uuid/v4 x 334,868 ops/sec ±1.08% (90 runs sampled) - @lukeed/uuid x 6,352,445 ops/sec ±0.27% (91 runs sampled) - hashids/fixed x 322,914 ops/sec ±0.27% (93 runs sampled) - nanoid/non-secure x 1,592,708 ops/sec ±0.25% (91 runs sampled) - uid x 1,789,492 ops/sec ±0.29% (92 runs sampled) - hexoid x 71,746,692 ops/sec ±0.29% (93 runs sampled) -``` - -## Related - -- [uid](https://github.com/lukeed/uid) - A smaller (134B) but slower variant of this module with a different API -- [@lukeed/uuid](https://github.com/lukeed/uuid) - A tiny (230B), fast, and cryptographically secure UUID (V4) generator for Node and the browser - - -## License - -MIT © [Luke Edwards](https://lukeed.com) diff --git a/build/node_modules/hpack.js/.npmignore b/build/node_modules/hpack.js/.npmignore deleted file mode 100644 index 1ca95717..00000000 --- a/build/node_modules/hpack.js/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -npm-debug.log diff --git a/build/node_modules/hpack.js/.travis.yml b/build/node_modules/hpack.js/.travis.yml deleted file mode 100644 index 1ec5eac5..00000000 --- a/build/node_modules/hpack.js/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js -node_js: - - "iojs" -branches: - only: - - master diff --git a/build/node_modules/hpack.js/README.md b/build/node_modules/hpack.js/README.md deleted file mode 100644 index 6eb37009..00000000 --- a/build/node_modules/hpack.js/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# HPACK.js - -[![Build Status](https://secure.travis-ci.org/indutny/hpack.js.png)](http://travis-ci.org/indutny/hpack.js) -[![NPM version](https://badge.fury.io/js/hpack.js.svg)](http://badge.fury.io/js/hpack.js) - -Plain-JS implementation of [HPACK][0]. - -## Usage - -```javascript -var hpack = require('hpack.js'); - -var comp = hpack.compressor.create({ table: { size: 256 } }); -var decomp = hpack.decompressor.create({ table: { size: 256 } }); - -comp.write([ { name: 'host', value: 'localhost' } ]); -var raw = comp.read(); -console.log(raw); -// - -decomp.write(raw); -decomp.execute(); -console.log(decomp.read()); -// { name: 'host', value: 'localhost', neverIndex: false } -``` - -#### LICENSE - -This software is licensed under the MIT License. - -Copyright Fedor Indutny, 2015. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. - -[0]: https://tools.ietf.org/html/rfc7541 diff --git a/build/node_modules/hpack.js/package.json b/build/node_modules/hpack.js/package.json deleted file mode 100644 index 35f8d492..00000000 --- a/build/node_modules/hpack.js/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "hpack.js", - "version": "2.1.6", - "description": "HPACK implementation", - "main": "lib/hpack.js", - "scripts": { - "test": "mocha test/*-test.js" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/indutny/hpack.js.git" - }, - "keywords": [ - "HPACK", - "HTTP2", - "compress", - "decompress", - "headers" - ], - "author": "Fedor Indutny ", - "license": "MIT", - "bugs": { - "url": "https://github.com/indutny/hpack.js/issues" - }, - "homepage": "https://github.com/indutny/hpack.js#readme", - "devDependencies": { - "mocha": "^2.2.5" - }, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } -} diff --git a/build/node_modules/html-entities/LICENSE b/build/node_modules/html-entities/LICENSE deleted file mode 100644 index d565fb3a..00000000 --- a/build/node_modules/html-entities/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2021 Dulin Marat - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/html-entities/README.md b/build/node_modules/html-entities/README.md deleted file mode 100644 index 7f0f66f4..00000000 --- a/build/node_modules/html-entities/README.md +++ /dev/null @@ -1,217 +0,0 @@ -html-entities -============= - -Fastest HTML entities library. - -Comes with both TypeScript and Flow types. - -Installation ------------- - -```bash -$ npm install html-entities -``` - -Usage ------ - -### encode(text, options) - -Encodes text replacing HTML special characters (`<>&"'`) and/or other character ranges depending on `mode` option value. - -```js -import {encode} from 'html-entities'; - -encode('< > " \' & © ∆'); -// -> '< > " ' & © ∆' - -encode('< ©', {mode: 'nonAsciiPrintable'}); -// -> '< ©' - -encode('< ©', {mode: 'nonAsciiPrintable', level: 'xml'}); -// -> '< ©' - -encode('< > " \' & ©', {mode: 'nonAsciiPrintableOnly', level: 'xml'}); -// -> '< > " \' & ©' -``` - -Options: - -#### level - - * `all` alias to `html5` (default). - * `html5` uses `HTML5` named references. - * `html4` uses `HTML4` named references. - * `xml` uses `XML` named references. - -#### mode - - * `specialChars` encodes only HTML special characters (default). - * `nonAscii` encodes HTML special characters and everything outside the [ASCII character range](https://en.wikipedia.org/wiki/ASCII). - * `nonAsciiPrintable` encodes HTML special characters and everything outiside of the [ASCII printable characters](https://en.wikipedia.org/wiki/ASCII#Printable_characters). - * `nonAsciiPrintableOnly` everything outiside of the [ASCII printable characters](https://en.wikipedia.org/wiki/ASCII#Printable_characters) keeping HTML special characters intact. - * `extensive` encodes all non-printable characters, non-ASCII characters and all characters with named references. - -#### numeric - - * `decimal` uses decimal numbers when encoding html entities. i.e. `©` (default). - * `hexadecimal` uses hexadecimal numbers when encoding html entities. i.e. `©`. - - -### decode(text, options) - -Decodes text replacing entities to characters. Unknown entities are left as is. - -```js -import {decode} from 'html-entities'; - -decode('< > " ' & © ∆'); -// -> '< > " \' & © ∆' - -decode('©', {level: 'html5'}); -// -> '©' - -decode('©', {level: 'xml'}); -// -> '©' -``` - -Options: - -#### level - - * `all` alias to `html5` (default). - * `html5` uses `HTML5` named references. - * `html4` uses `HTML4` named references. - * `xml` uses `XML` named references. - -#### scope - - * `body` emulates behavior of browser when parsing tag bodies: entities without semicolon are also replaced (default). - * `attribute` emulates behavior of browser when parsing tag attributes: entities without semicolon are replaced when not followed by equality sign `=`. - * `strict` ignores entities without semicolon. - -### decodeEntity(text, options) - -Decodes a single HTML entity. Unknown entitiy is left as is. - -```js -import {decodeEntity} from 'html-entities'; - -decodeEntity('<'); -// -> '<' - -decodeEntity('©', {level: 'html5'}); -// -> '©' - -decodeEntity('©', {level: 'xml'}); -// -> '©' -``` - -Options: - -#### level - - * `all` alias to `html5` (default). - * `html5` uses `HTML5` named references. - * `html4` uses `HTML4` named references. - * `xml` uses `XML` named references. - -Performance ------------ - -Statistically significant comparison with other libraries using `benchmark.js`. -Results by this library are marked with `*`. -The source code of the benchmark is available at `benchmark/benchmark.ts`. - -``` -Common - - Initialization / Load speed - - * #1: html-entities x 2,632,942 ops/sec ±3.71% (72 runs sampled) - #2: entities x 1,379,154 ops/sec ±5.87% (75 runs sampled) - #3: he x 1,334,035 ops/sec ±3.14% (83 runs sampled) - -HTML5 - - Encode test - - * #1: html-entities.encode - html5, nonAscii x 415,806 ops/sec ±0.73% (85 runs sampled) - * #2: html-entities.encode - html5, nonAsciiPrintable x 401,420 ops/sec ±0.35% (93 runs sampled) - #3: entities.encodeNonAsciiHTML x 401,235 ops/sec ±0.41% (88 runs sampled) - #4: entities.encodeHTML x 284,868 ops/sec ±0.45% (93 runs sampled) - * #5: html-entities.encode - html5, extensive x 237,613 ops/sec ±0.42% (93 runs sampled) - #6: he.encode x 91,459 ops/sec ±0.50% (84 runs sampled) - - Decode test - - #1: entities.decodeHTMLStrict x 614,920 ops/sec ±0.41% (89 runs sampled) - #2: entities.decodeHTML x 577,698 ops/sec ±0.44% (90 runs sampled) - * #3: html-entities.decode - html5, strict x 323,680 ops/sec ±0.39% (92 runs sampled) - * #4: html-entities.decode - html5, body x 297,548 ops/sec ±0.45% (91 runs sampled) - * #5: html-entities.decode - html5, attribute x 293,617 ops/sec ±0.37% (94 runs sampled) - #6: he.decode x 145,383 ops/sec ±0.36% (94 runs sampled) - -HTML4 - - Encode test - - * #1: html-entities.encode - html4, nonAscii x 379,799 ops/sec ±0.29% (96 runs sampled) - * #2: html-entities.encode - html4, nonAsciiPrintable x 350,003 ops/sec ±0.42% (92 runs sampled) - * #3: html-entities.encode - html4, extensive x 169,759 ops/sec ±0.43% (90 runs sampled) - - Decode test - - * #1: html-entities.decode - html4, attribute x 291,048 ops/sec ±0.42% (92 runs sampled) - * #2: html-entities.decode - html4, strict x 287,110 ops/sec ±0.56% (93 runs sampled) - * #3: html-entities.decode - html4, body x 285,529 ops/sec ±0.57% (93 runs sampled) - -XML - - Encode test - - #1: entities.encodeXML x 418,561 ops/sec ±0.80% (90 runs sampled) - * #2: html-entities.encode - xml, nonAsciiPrintable x 402,868 ops/sec ±0.30% (89 runs sampled) - * #3: html-entities.encode - xml, nonAscii x 403,669 ops/sec ±7.87% (83 runs sampled) - * #4: html-entities.encode - xml, extensive x 237,766 ops/sec ±0.45% (93 runs sampled) - - Decode test - - #1: entities.decodeXML x 888,700 ops/sec ±0.48% (93 runs sampled) - * #2: html-entities.decode - xml, strict x 353,127 ops/sec ±0.40% (92 runs sampled) - * #3: html-entities.decode - xml, body x 355,796 ops/sec ±1.58% (86 runs sampled) - * #4: html-entities.decode - xml, attribute x 369,454 ops/sec ±8.74% (84 runs sampled) - -Escaping - - Escape test - - #1: entities.escapeUTF8 x 1,308,013 ops/sec ±0.37% (91 runs sampled) - * #2: html-entities.encode - xml, specialChars x 1,258,760 ops/sec ±1.00% (93 runs sampled) - #3: he.escape x 822,569 ops/sec ±0.24% (94 runs sampled) - #4: entities.escape x 434,243 ops/sec ±0.34% (91 runs sampled) -``` - -License -------- - -MIT - -Security contact information ----------------------------- - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). Tidelift will -coordinate the fix and disclosure. - -`html-entities` for enterprise ------------------------------- - -Available as part of the Tidelift Subscription - -The maintainers of `html-entities` and thousands of other packages are working with -Tidelift to deliver commercial support and maintenance for the open source -dependencies you use to build your applications. Save time, reduce risk, and -improve code health, while paying the maintainers of the exact dependencies you -use. -[Learn more.](https://tidelift.com/subscription/pkg/npm-html-entities?utm_source=npm-html-entities&utm_medium=referral&utm_campaign=enterprise) diff --git a/build/node_modules/html-entities/package.json b/build/node_modules/html-entities/package.json deleted file mode 100644 index 0e6851da..00000000 --- a/build/node_modules/html-entities/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "html-entities", - "version": "2.4.0", - "description": "Fastest HTML entities encode/decode library.", - "keywords": [ - "html", - "html entities", - "html entities encode", - "html entities decode", - "entities", - "entities encode", - "entities decode" - ], - "author": { - "name": "Marat Dulin", - "email": "mdevils@yandex.ru" - }, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "devDependencies": { - "@types/benchmark": "^2.1.0", - "@types/chai": "^4.2.11", - "@types/he": "^1.1.1", - "@types/mocha": "^7.0.2", - "@types/node": "^13.13.4", - "@typescript-eslint/eslint-plugin": "^4.6.1", - "@typescript-eslint/parser": "^4.6.1", - "benchmark": "^2.1.4", - "chai": "^4.2.0", - "entities": "^4.5.0", - "eslint": "^7.12.1", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-prettier": "^3.1.4", - "flowgen": "^1.13.0", - "he": "^1.2.0", - "husky": "^4.3.6", - "mocha": "^9.2.2", - "prettier": "^2.1.2", - "terser": "^5.6.1", - "ts-node": "^8.9.1", - "ttypescript": "^1.5.15", - "typescript": "^3.8.3", - "typescript-transform-macros": "^1.1.1" - }, - "repository": { - "type": "git", - "url": "https://github.com/mdevils/html-entities.git" - }, - "sideEffects": false, - "main": "./lib/index.js", - "typings": "./lib/index.d.ts", - "types": "./lib/index.d.ts", - "scripts": { - "test": "TS_NODE_COMPILER=ttypescript mocha --recursive -r ts-node/register test/**/*.ts", - "test:lib": "TEST_LIB=1 npm run test", - "benchmark": "TS_NODE_COMPILER=ttypescript ts-node benchmark/benchmark", - "lint": "eslint src/**.ts", - "flow-type-gen": "flowgen --add-flow-header lib/index.d.ts -o lib/index.js.flow", - "remove-unused-declarations": "find lib -type f \\( -name '*.d.ts' ! -name index.d.ts \\) | xargs rm", - "minimize-lib-files": "find lib -type f \\( -name '*.js' ! -name index.js \\) | while read fn; do terser $fn -o $fn; done", - "build": "rm -Rf lib/* && ttsc && npm run remove-unused-declarations && npm run flow-type-gen && npm run minimize-lib-files && npm run test:lib", - "prepublishOnly": "npm run build" - }, - "files": [ - "lib", - "LICENSE" - ], - "husky": { - "hooks": { - "pre-commit": "npm run lint && npm run test" - } - }, - "license": "MIT" -} diff --git a/build/node_modules/htmlparser2/LICENSE b/build/node_modules/htmlparser2/LICENSE deleted file mode 100644 index 0a35e029..00000000 --- a/build/node_modules/htmlparser2/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright 2010, 2011, Chris Winberry . All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/htmlparser2/README.md b/build/node_modules/htmlparser2/README.md deleted file mode 100644 index 5ec9095a..00000000 --- a/build/node_modules/htmlparser2/README.md +++ /dev/null @@ -1,164 +0,0 @@ -# htmlparser2 - -[![NPM version](http://img.shields.io/npm/v/htmlparser2.svg?style=flat)](https://npmjs.org/package/htmlparser2) -[![Downloads](https://img.shields.io/npm/dm/htmlparser2.svg?style=flat)](https://npmjs.org/package/htmlparser2) -[![Build Status](https://img.shields.io/github/workflow/status/fb55/htmlparser2/Node.js%20Test?label=tests&style=flat)](https://github.com/fb55/htmlparser2/actions?query=workflow%3A%22Node.js+Test%22) -[![Coverage](http://img.shields.io/coveralls/fb55/htmlparser2.svg?style=flat)](https://coveralls.io/r/fb55/htmlparser2) - -The fast & forgiving HTML/XML parser. - -## Installation - - npm install htmlparser2 - -A live demo of `htmlparser2` is available [here](https://astexplorer.net/#/2AmVrGuGVJ). - -## Ecosystem - -| Name | Description | -| ------------------------------------------------------------- | ------------------------------------------------------- | -| [htmlparser2](https://github.com/fb55/htmlparser2) | Fast & forgiving HTML/XML parser | -| [domhandler](https://github.com/fb55/domhandler) | Handler for htmlparser2 that turns documents into a DOM | -| [domutils](https://github.com/fb55/domutils) | Utilities for working with domhandler's DOM | -| [css-select](https://github.com/fb55/css-select) | CSS selector engine, compatible with domhandler's DOM | -| [cheerio](https://github.com/cheeriojs/cheerio) | The jQuery API for domhandler's DOM | -| [dom-serializer](https://github.com/cheeriojs/dom-serializer) | Serializer for domhandler's DOM | - -## Usage - -`htmlparser2` itself provides a callback interface that allows consumption of documents with minimal allocations. -For a more ergonomic experience, read [Getting a DOM](#getting-a-dom) below. - -```javascript -const htmlparser2 = require("htmlparser2"); -const parser = new htmlparser2.Parser({ - onopentag(name, attributes) { - /* - * This fires when a new tag is opened. - * - * If you don't need an aggregated `attributes` object, - * have a look at the `onopentagname` and `onattribute` events. - */ - if (name === "script" && attributes.type === "text/javascript") { - console.log("JS! Hooray!"); - } - }, - ontext(text) { - /* - * Fires whenever a section of text was processed. - * - * Note that this can fire at any point within text and you might - * have to stich together multiple pieces. - */ - console.log("-->", text); - }, - onclosetag(tagname) { - /* - * Fires when a tag is closed. - * - * You can rely on this event only firing when you have received an - * equivalent opening tag before. Closing tags without corresponding - * opening tags will be ignored. - */ - if (tagname === "script") { - console.log("That's it?!"); - } - }, -}); -parser.write( - "Xyz - -``` - ---- - -To use iMurmurHash in Node.js, install the module using NPM: - -```bash -npm install imurmurhash -``` - -Then simply include it in your scripts: - -```javascript -MurmurHash3 = require('imurmurhash'); -``` - -Quick Example -------------- - -```javascript -// Create the initial hash -var hashState = MurmurHash3('string'); - -// Incrementally add text -hashState.hash('more strings'); -hashState.hash('even more strings'); - -// All calls can be chained if desired -hashState.hash('and').hash('some').hash('more'); - -// Get a result -hashState.result(); -// returns 0xe4ccfe6b -``` - -Functions ---------- - -### MurmurHash3 ([string], [seed]) -Get a hash state object, optionally initialized with the given _string_ and _seed_. _Seed_ must be a positive integer if provided. Calling this function without the `new` keyword will return a cached state object that has been reset. This is safe to use as long as the object is only used from a single thread and no other hashes are created while operating on this one. If this constraint cannot be met, you can use `new` to create a new state object. For example: - -```javascript -// Use the cached object, calling the function again will return the same -// object (but reset, so the current state would be lost) -hashState = MurmurHash3(); -... - -// Create a new object that can be safely used however you wish. Calling the -// function again will simply return a new state object, and no state loss -// will occur, at the cost of creating more objects. -hashState = new MurmurHash3(); -``` - -Both methods can be mixed however you like if you have different use cases. - ---- - -### MurmurHash3.prototype.hash (string) -Incrementally add _string_ to the hash. This can be called as many times as you want for the hash state object, including after a call to `result()`. Returns `this` so calls can be chained. - ---- - -### MurmurHash3.prototype.result () -Get the result of the hash as a 32-bit positive integer. This performs the tail and finalizer portions of the algorithm, but does not store the result in the state object. This means that it is perfectly safe to get results and then continue adding strings via `hash`. - -```javascript -// Do the whole string at once -MurmurHash3('this is a test string').result(); -// 0x70529328 - -// Do part of the string, get a result, then the other part -var m = MurmurHash3('this is a'); -m.result(); -// 0xbfc4f834 -m.hash(' test string').result(); -// 0x70529328 (same as above) -``` - ---- - -### MurmurHash3.prototype.reset ([seed]) -Reset the state object for reuse, optionally using the given _seed_ (defaults to 0 like the constructor). Returns `this` so calls can be chained. - ---- - -License (MIT) -------------- -Copyright (c) 2013 Gary Court, Jens Taylor - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/imurmurhash/imurmurhash.js b/build/node_modules/imurmurhash/imurmurhash.js deleted file mode 100644 index e63146a2..00000000 --- a/build/node_modules/imurmurhash/imurmurhash.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -(function(){ - var cache; - - // Call this function without `new` to use the cached object (good for - // single-threaded environments), or with `new` to create a new object. - // - // @param {string} key A UTF-16 or ASCII string - // @param {number} seed An optional positive integer - // @return {object} A MurmurHash3 object for incremental hashing - function MurmurHash3(key, seed) { - var m = this instanceof MurmurHash3 ? this : cache; - m.reset(seed) - if (typeof key === 'string' && key.length > 0) { - m.hash(key); - } - - if (m !== this) { - return m; - } - }; - - // Incrementally add a string to this hash - // - // @param {string} key A UTF-16 or ASCII string - // @return {object} this - MurmurHash3.prototype.hash = function(key) { - var h1, k1, i, top, len; - - len = key.length; - this.len += len; - - k1 = this.k1; - i = 0; - switch (this.rem) { - case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0; - case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0; - case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0; - case 3: - k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0; - k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0; - } - - this.rem = (len + this.rem) & 3; // & 3 is same as % 4 - len -= this.rem; - if (len > 0) { - h1 = this.h1; - while (1) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - - h1 ^= k1; - h1 = (h1 << 13) | (h1 >>> 19); - h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff; - - if (i >= len) { - break; - } - - k1 = ((key.charCodeAt(i++) & 0xffff)) ^ - ((key.charCodeAt(i++) & 0xffff) << 8) ^ - ((key.charCodeAt(i++) & 0xffff) << 16); - top = key.charCodeAt(i++); - k1 ^= ((top & 0xff) << 24) ^ - ((top & 0xff00) >> 8); - } - - k1 = 0; - switch (this.rem) { - case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16; - case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8; - case 1: k1 ^= (key.charCodeAt(i) & 0xffff); - } - - this.h1 = h1; - } - - this.k1 = k1; - return this; - }; - - // Get the result of this hash - // - // @return {number} The 32-bit hash - MurmurHash3.prototype.result = function() { - var k1, h1; - - k1 = this.k1; - h1 = this.h1; - - if (k1 > 0) { - k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff; - k1 = (k1 << 15) | (k1 >>> 17); - k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff; - h1 ^= k1; - } - - h1 ^= this.len; - - h1 ^= h1 >>> 16; - h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff; - h1 ^= h1 >>> 13; - h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff; - h1 ^= h1 >>> 16; - - return h1 >>> 0; - }; - - // Reset the hash object for reuse - // - // @param {number} seed An optional positive integer - MurmurHash3.prototype.reset = function(seed) { - this.h1 = typeof seed === 'number' ? seed : 0; - this.rem = this.k1 = this.len = 0; - return this; - }; - - // A cached object to use. This can be safely used if you're in a single- - // threaded environment, otherwise you need to create new hashes to use. - cache = new MurmurHash3(); - - if (typeof(module) != 'undefined') { - module.exports = MurmurHash3; - } else { - this.MurmurHash3 = MurmurHash3; - } -}()); diff --git a/build/node_modules/imurmurhash/imurmurhash.min.js b/build/node_modules/imurmurhash/imurmurhash.min.js deleted file mode 100644 index dc0ee88d..00000000 --- a/build/node_modules/imurmurhash/imurmurhash.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * @preserve - * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013) - * - * @author Jens Taylor - * @see http://github.com/homebrewing/brauhaus-diff - * @author Gary Court - * @see http://github.com/garycourt/murmurhash-js - * @author Austin Appleby - * @see http://sites.google.com/site/murmurhash/ - */ -!function(){function t(h,r){var s=this instanceof t?this:e;return s.reset(r),"string"==typeof h&&h.length>0&&s.hash(h),s!==this?s:void 0}var e;t.prototype.hash=function(t){var e,h,r,s,i;switch(i=t.length,this.len+=i,h=this.k1,r=0,this.rem){case 0:h^=i>r?65535&t.charCodeAt(r++):0;case 1:h^=i>r?(65535&t.charCodeAt(r++))<<8:0;case 2:h^=i>r?(65535&t.charCodeAt(r++))<<16:0;case 3:h^=i>r?(255&t.charCodeAt(r))<<24:0,h^=i>r?(65280&t.charCodeAt(r++))>>8:0}if(this.rem=3&i+this.rem,i-=this.rem,i>0){for(e=this.h1;;){if(h=4294967295&11601*h+3432906752*(65535&h),h=h<<15|h>>>17,h=4294967295&13715*h+461832192*(65535&h),e^=h,e=e<<13|e>>>19,e=4294967295&5*e+3864292196,r>=i)break;h=65535&t.charCodeAt(r++)^(65535&t.charCodeAt(r++))<<8^(65535&t.charCodeAt(r++))<<16,s=t.charCodeAt(r++),h^=(255&s)<<24^(65280&s)>>8}switch(h=0,this.rem){case 3:h^=(65535&t.charCodeAt(r+2))<<16;case 2:h^=(65535&t.charCodeAt(r+1))<<8;case 1:h^=65535&t.charCodeAt(r)}this.h1=e}return this.k1=h,this},t.prototype.result=function(){var t,e;return t=this.k1,e=this.h1,t>0&&(t=4294967295&11601*t+3432906752*(65535&t),t=t<<15|t>>>17,t=4294967295&13715*t+461832192*(65535&t),e^=t),e^=this.len,e^=e>>>16,e=4294967295&51819*e+2246770688*(65535&e),e^=e>>>13,e=4294967295&44597*e+3266445312*(65535&e),e^=e>>>16,e>>>0},t.prototype.reset=function(t){return this.h1="number"==typeof t?t:0,this.rem=this.k1=this.len=0,this},e=new t,"undefined"!=typeof module?module.exports=t:this.MurmurHash3=t}(); \ No newline at end of file diff --git a/build/node_modules/imurmurhash/package.json b/build/node_modules/imurmurhash/package.json deleted file mode 100644 index 8a93edb5..00000000 --- a/build/node_modules/imurmurhash/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "imurmurhash", - "version": "0.1.4", - "description": "An incremental implementation of MurmurHash3", - "homepage": "https://github.com/jensyt/imurmurhash-js", - "main": "imurmurhash.js", - "files": [ - "imurmurhash.js", - "imurmurhash.min.js", - "package.json", - "README.md" - ], - "repository": { - "type": "git", - "url": "https://github.com/jensyt/imurmurhash-js" - }, - "bugs": { - "url": "https://github.com/jensyt/imurmurhash-js/issues" - }, - "keywords": [ - "murmur", - "murmurhash", - "murmurhash3", - "hash", - "incremental" - ], - "author": { - "name": "Jens Taylor", - "email": "jensyt@gmail.com", - "url": "https://github.com/homebrewing" - }, - "license": "MIT", - "dependencies": { - }, - "devDependencies": { - }, - "engines": { - "node": ">=0.8.19" - } -} diff --git a/build/node_modules/inclusion/LICENSE b/build/node_modules/inclusion/LICENSE deleted file mode 100644 index caf2fa79..00000000 --- a/build/node_modules/inclusion/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -Copyright (c) 2021 David Mark Clements - -Permission to -use, copy, modify, and /or distribute this software for any purpose with or -without fee is hereby granted, provided that the above copyright notice and this -permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND -David Mark Clements DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT -SHALL David Mark Clements BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA -OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS -ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/inclusion/index.js b/build/node_modules/inclusion/index.js deleted file mode 100644 index 3ea139d0..00000000 --- a/build/node_modules/inclusion/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' -const parentModule = require('parent-module') -const { createRequire } = require('module') -module.exports = async (req) => { - const { resolve } = createRequire(parentModule()) - try { - const mod = await import(resolve(req)) - return mod - } catch (err) { - console.error(err) - process.exit(1) - } -} diff --git a/build/node_modules/inclusion/package.json b/build/node_modules/inclusion/package.json deleted file mode 100644 index 8b41f6fd..00000000 --- a/build/node_modules/inclusion/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "inclusion", - "version": "1.0.1", - "description": "Dynamic imports for all", - "main": "index.js", - "scripts": { - "test": "tap --no-esm" - }, - "keywords": [ - "import", - "require", - "dynamic", - "typescript", - "babel", - "esm", - "cjs" - ], - "author": "@davidmarkclem", - "license": "ISC", - "dependencies": { - "parent-module": "^2.0.0" - }, - "devDependencies": { - "tap": "^14.11.0" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/davidmarkclements/inclusion.git" - }, - "bugs": { - "url": "https://github.com/davidmarkclements/inclusion/issues" - }, - "homepage": "https://github.com/davidmarkclements/inclusion#readme" -} diff --git a/build/node_modules/inclusion/readme.md b/build/node_modules/inclusion/readme.md deleted file mode 100644 index 10548c32..00000000 --- a/build/node_modules/inclusion/readme.md +++ /dev/null @@ -1,50 +0,0 @@ -# inclusion - -> Dynamic imports for all - -Using dynamic `import` in legacy compiled-to-JS environments can be problematic. It's often transpiled to `require` by Babel, TypeScript etc. Configurations can be changed to not do this, but that can have other unintended side effects on resulting compiled code. - -`inclusion` wraps `import` so that it can be used in these scenarios. It's also fine to use it for other scenarios. - -## API - -### `inclusion(modulePath) => Promise => exports` - -Given an ESM module (`someEsmModule`) like the following: - -```js -export default function () { return 'hi' } -export const ABC = 123 -``` - -We can import and interact with it in a CJS environment (which is what most compile-to-JS libraries still currently do, as used in the wild), like so: - -```js -'use strict' -async function doSomething () { - const { default: someEsmModule, ABC } = await inclusion('some-esm-module') - console.log(someEsmModule(), ABC) // hi 123 -} -``` - -## Test - -```sh -npm test -``` - -``` -Suites: 1 passed, 1 of 1 completed -Asserts: 3 passed, of 3 -Time: 456.13ms -----------|----------|----------|----------|----------|-------------------| -File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | -----------|----------|----------|----------|----------|-------------------| -All files | 100 | 100 | 100 | 100 | | - index.js | 100 | 100 | 100 | 100 | | -----------|----------|----------|----------|----------|-------------------| -``` - -## LICENSE - -ISC \ No newline at end of file diff --git a/build/node_modules/inclusion/test.js b/build/node_modules/inclusion/test.js deleted file mode 100644 index e0d4e103..00000000 --- a/build/node_modules/inclusion/test.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict' -const { test } = require('tap') -const parentModule = require('parent-module') -const include = require('.') -test('dynamically imports module', async ({ same }) => { - const mod = await include('parent-module') - same(mod.default, parentModule) -}) - -test('dynamically outputs error and exits with 1 on error', async ({ plan, is, match, teardown }) => { - const { error } = console - const { exit } = process - teardown(async () => { - console.error = error - process.exit = exit - }) - plan(2) - console.error = (err) => { - match(err.message, 'Cannot find module \'not-a-module\'') - } - process.exit = (code) => { - is(code, 1) - } - await include('not-a-module') -}) diff --git a/build/node_modules/indent-string/index.d.ts b/build/node_modules/indent-string/index.d.ts deleted file mode 100644 index 11852311..00000000 --- a/build/node_modules/indent-string/index.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -declare namespace indentString { - interface Options { - /** - The string to use for the indent. - - @default ' ' - */ - readonly indent?: string; - - /** - Also indent empty lines. - - @default false - */ - readonly includeEmptyLines?: boolean; - } -} - -/** -Indent each line in a string. - -@param string - The string to indent. -@param count - How many times you want `options.indent` repeated. Default: `1`. - -@example -``` -import indentString = require('indent-string'); - -indentString('Unicorns\nRainbows', 4); -//=> ' Unicorns\n Rainbows' - -indentString('Unicorns\nRainbows', 4, {indent: '♥'}); -//=> '♥♥♥♥Unicorns\n♥♥♥♥Rainbows' -``` -*/ -declare function indentString( - string: string, - count?: number, - options?: indentString.Options -): string; - -export = indentString; diff --git a/build/node_modules/indent-string/index.js b/build/node_modules/indent-string/index.js deleted file mode 100644 index e1ab804f..00000000 --- a/build/node_modules/indent-string/index.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -module.exports = (string, count = 1, options) => { - options = { - indent: ' ', - includeEmptyLines: false, - ...options - }; - - if (typeof string !== 'string') { - throw new TypeError( - `Expected \`input\` to be a \`string\`, got \`${typeof string}\`` - ); - } - - if (typeof count !== 'number') { - throw new TypeError( - `Expected \`count\` to be a \`number\`, got \`${typeof count}\`` - ); - } - - if (typeof options.indent !== 'string') { - throw new TypeError( - `Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\`` - ); - } - - if (count === 0) { - return string; - } - - const regex = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; - - return string.replace(regex, options.indent.repeat(count)); -}; diff --git a/build/node_modules/indent-string/license b/build/node_modules/indent-string/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/indent-string/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/indent-string/package.json b/build/node_modules/indent-string/package.json deleted file mode 100644 index 497bb83b..00000000 --- a/build/node_modules/indent-string/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "indent-string", - "version": "4.0.0", - "description": "Indent each line in a string", - "license": "MIT", - "repository": "sindresorhus/indent-string", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "indent", - "string", - "pad", - "align", - "line", - "text", - "each", - "every" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/indent-string/readme.md b/build/node_modules/indent-string/readme.md deleted file mode 100644 index 49967de0..00000000 --- a/build/node_modules/indent-string/readme.md +++ /dev/null @@ -1,70 +0,0 @@ -# indent-string [![Build Status](https://travis-ci.org/sindresorhus/indent-string.svg?branch=master)](https://travis-ci.org/sindresorhus/indent-string) - -> Indent each line in a string - - -## Install - -``` -$ npm install indent-string -``` - - -## Usage - -```js -const indentString = require('indent-string'); - -indentString('Unicorns\nRainbows', 4); -//=> ' Unicorns\n Rainbows' - -indentString('Unicorns\nRainbows', 4, {indent: '♥'}); -//=> '♥♥♥♥Unicorns\n♥♥♥♥Rainbows' -``` - - -## API - -### indentString(string, [count], [options]) - -#### string - -Type: `string` - -The string to indent. - -#### count - -Type: `number`
-Default: `1` - -How many times you want `options.indent` repeated. - -#### options - -Type: `object` - -##### indent - -Type: `string`
-Default: `' '` - -The string to use for the indent. - -##### includeEmptyLines - -Type: `boolean`
-Default: `false` - -Also indent empty lines. - - -## Related - -- [indent-string-cli](https://github.com/sindresorhus/indent-string-cli) - CLI for this module -- [strip-indent](https://github.com/sindresorhus/strip-indent) - Strip leading whitespace from every line in a string - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/infer-owner/LICENSE b/build/node_modules/infer-owner/LICENSE deleted file mode 100644 index 20a47625..00000000 --- a/build/node_modules/infer-owner/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) npm, Inc. and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/infer-owner/README.md b/build/node_modules/infer-owner/README.md deleted file mode 100644 index 146caf7b..00000000 --- a/build/node_modules/infer-owner/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# infer-owner - -Infer the owner of a path based on the owner of its nearest existing parent - -## USAGE - -```js -const inferOwner = require('infer-owner') - -inferOwner('/some/cache/folder/file').then(owner => { - // owner is {uid, gid} that should be attached to - // the /some/cache/folder/file, based on ownership - // of /some/cache/folder, /some/cache, /some, or /, - // whichever is the first to exist -}) - -// same, but not async -const owner = inferOwner.sync('/some/cache/folder/file') - -// results are cached! to reset the cache (eg, to change -// permissions for whatever reason), do this: -inferOwner.clearCache() -``` - -This module endeavors to be as performant as possible. Parallel requests -for ownership of the same path will only stat the directories one time. - -## API - -* `inferOwner(path) -> Promise<{ uid, gid }>` - - If the path exists, return its uid and gid. If it does not, look to - its parent, then its grandparent, and so on. - -* `inferOwner(path) -> { uid, gid }` - - Sync form of `inferOwner(path)`. - -* `inferOwner.clearCache()` - - Delete all cached ownership information and in-flight tracking. diff --git a/build/node_modules/infer-owner/index.js b/build/node_modules/infer-owner/index.js deleted file mode 100644 index a7bddcbd..00000000 --- a/build/node_modules/infer-owner/index.js +++ /dev/null @@ -1,71 +0,0 @@ -const cache = new Map() -const fs = require('fs') -const { dirname, resolve } = require('path') - - -const lstat = path => new Promise((res, rej) => - fs.lstat(path, (er, st) => er ? rej(er) : res(st))) - -const inferOwner = path => { - path = resolve(path) - if (cache.has(path)) - return Promise.resolve(cache.get(path)) - - const statThen = st => { - const { uid, gid } = st - cache.set(path, { uid, gid }) - return { uid, gid } - } - const parent = dirname(path) - const parentTrap = parent === path ? null : er => { - return inferOwner(parent).then((owner) => { - cache.set(path, owner) - return owner - }) - } - return lstat(path).then(statThen, parentTrap) -} - -const inferOwnerSync = path => { - path = resolve(path) - if (cache.has(path)) - return cache.get(path) - - const parent = dirname(path) - - // avoid obscuring call site by re-throwing - // "catch" the error by returning from a finally, - // only if we're not at the root, and the parent call works. - let threw = true - try { - const st = fs.lstatSync(path) - threw = false - const { uid, gid } = st - cache.set(path, { uid, gid }) - return { uid, gid } - } finally { - if (threw && parent !== path) { - const owner = inferOwnerSync(parent) - cache.set(path, owner) - return owner // eslint-disable-line no-unsafe-finally - } - } -} - -const inflight = new Map() -module.exports = path => { - path = resolve(path) - if (inflight.has(path)) - return Promise.resolve(inflight.get(path)) - const p = inferOwner(path).then(owner => { - inflight.delete(path) - return owner - }) - inflight.set(path, p) - return p -} -module.exports.sync = inferOwnerSync -module.exports.clearCache = () => { - cache.clear() - inflight.clear() -} diff --git a/build/node_modules/infer-owner/package.json b/build/node_modules/infer-owner/package.json deleted file mode 100644 index c4b2b6e6..00000000 --- a/build/node_modules/infer-owner/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "infer-owner", - "version": "1.0.4", - "description": "Infer the owner of a path based on the owner of its nearest existing parent", - "author": "Isaac Z. Schlueter (https://izs.me)", - "license": "ISC", - "scripts": { - "test": "tap -J test/*.js --100", - "snap": "TAP_SNAPSHOT=1 tap -J test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" - }, - "devDependencies": { - "mutate-fs": "^2.1.1", - "tap": "^12.4.2" - }, - "main": "index.js", - "repository": "https://github.com/npm/infer-owner", - "publishConfig": { - "access": "public" - }, - "files": [ - "index.js" - ] -} diff --git a/build/node_modules/inflation/LICENSE b/build/node_modules/inflation/LICENSE deleted file mode 100644 index a7ae8ee9..00000000 --- a/build/node_modules/inflation/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/inflation/README.md b/build/node_modules/inflation/README.md deleted file mode 100644 index 55dd2a26..00000000 --- a/build/node_modules/inflation/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# inflation - -[![NPM version](https://badge.fury.io/js/inflation.svg)](http://badge.fury.io/js/inflation) -[![CI](https://github.com/stream-utils/inflation/actions/workflows/nodejs.yml/badge.svg)](https://github.com/stream-utils/inflation/actions/workflows/nodejs.yml) - -Automatically unzip an HTTP stream. - -## API - -```js -var inflate = require('inflation') -``` - -### inflate(stream, options) - -Returns a stream that emits inflated data from the given stream. - -Options: - -- `encoding` - The encoding of the stream (`gzip` or `deflate`). - If not given, will look in `stream.headers['content-encoding']`. -- `brotli` - [`BrotliOptions`](https://nodejs.org/api/zlib.html#class-brotlioptions) to use for Brotli decompression - -## Example - -```js -var inflate = require('inflation') -var raw = require('raw-body') - -http.createServer(function (req, res) { - raw(inflate(req), 'utf-8', function (err, string) { - console.dir(string) - }) -}) -``` - - - -## Contributors - -|[
dougwilson](https://github.com/dougwilson)
|[
bminer](https://github.com/bminer)
|[
fengmk2](https://github.com/fengmk2)
| -| :---: | :---: | :---: | - - -This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Sat Oct 14 2023 12:55:08 GMT+0800`. - - diff --git a/build/node_modules/inflation/index.js b/build/node_modules/inflation/index.js deleted file mode 100644 index 1c418d74..00000000 --- a/build/node_modules/inflation/index.js +++ /dev/null @@ -1,41 +0,0 @@ - -var zlib = require('zlib') - -module.exports = inflate - -function inflate(stream, options) { - if (!stream) { - throw new TypeError('argument stream is required') - } - - options = options || {} - - var encoding = options.encoding - || (stream.headers && stream.headers['content-encoding']) - || 'identity' - - var decompression - switch (encoding) { - case 'gzip': - case 'deflate': - delete options.brotli - delete options.encoding - decompression = zlib.createUnzip(options) - break - case 'br': - if (zlib.createBrotliDecompress) { - decompression = zlib.createBrotliDecompress(options.brotli) - } - break - case 'identity': - return stream - } - - if (!decompression) { - var err = new Error('Unsupported Content-Encoding: ' + encoding) - err.status = 415 - throw err - } - - return stream.pipe(decompression) -} diff --git a/build/node_modules/inflation/package.json b/build/node_modules/inflation/package.json deleted file mode 100644 index defe2b77..00000000 --- a/build/node_modules/inflation/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "inflation", - "description": "Easily unzip an HTTP stream", - "version": "2.1.0", - "author": "Jonathan Ong (http://jongleberry.com)", - "license": "MIT", - "repository": "stream-utils/inflation", - "keywords": [ - "decompress", - "unzip", - "inflate", - "zlib", - "gunzip", - "brotli" - ], - "devDependencies": { - "git-contributor": "^2.1.5", - "istanbul": "0.2.10", - "mocha": "^10.2.0", - "readable-stream": "~1.0.27", - "should": "4.0.4" - }, - "engines": { - "node": ">= 0.8.0" - }, - "scripts": { - "test": "mocha --reporter spec --bail test/*.js", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/", - "contributor": "git-contributor" - }, - "files": [ - "index.js" - ] -} diff --git a/build/node_modules/inflight/LICENSE b/build/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb88..00000000 --- a/build/node_modules/inflight/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/inflight/README.md b/build/node_modules/inflight/README.md deleted file mode 100644 index 6dc89291..00000000 --- a/build/node_modules/inflight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# inflight - -Add callbacks to requests in flight to avoid async duplication - -## USAGE - -```javascript -var inflight = require('inflight') - -// some request that does some stuff -function req(key, callback) { - // key is any random string. like a url or filename or whatever. - // - // will return either a falsey value, indicating that the - // request for this key is already in flight, or a new callback - // which when called will call all callbacks passed to inflightk - // with the same key - callback = inflight(key, callback) - - // If we got a falsey value back, then there's already a req going - if (!callback) return - - // this is where you'd fetch the url or whatever - // callback is also once()-ified, so it can safely be assigned - // to multiple events etc. First call wins. - setTimeout(function() { - callback(null, key) - }, 100) -} - -// only assigns a single setTimeout -// when it dings, all cbs get called -req('foo', cb1) -req('foo', cb2) -req('foo', cb3) -req('foo', cb4) -``` diff --git a/build/node_modules/inflight/inflight.js b/build/node_modules/inflight/inflight.js deleted file mode 100644 index 48202b3c..00000000 --- a/build/node_modules/inflight/inflight.js +++ /dev/null @@ -1,54 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/build/node_modules/inflight/package.json b/build/node_modules/inflight/package.json deleted file mode 100644 index 6084d350..00000000 --- a/build/node_modules/inflight/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "inflight", - "version": "1.0.6", - "description": "Add callbacks to requests in flight to avoid async duplication", - "main": "inflight.js", - "files": [ - "inflight.js" - ], - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - }, - "devDependencies": { - "tap": "^7.1.2" - }, - "scripts": { - "test": "tap test.js --100" - }, - "repository": { - "type": "git", - "url": "https://github.com/npm/inflight.git" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" - }, - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC" -} diff --git a/build/node_modules/inherits/LICENSE b/build/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d..00000000 --- a/build/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/build/node_modules/inherits/README.md b/build/node_modules/inherits/README.md deleted file mode 100644 index b1c56658..00000000 --- a/build/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/build/node_modules/inherits/inherits.js b/build/node_modules/inherits/inherits.js deleted file mode 100644 index f71f2d93..00000000 --- a/build/node_modules/inherits/inherits.js +++ /dev/null @@ -1,9 +0,0 @@ -try { - var util = require('util'); - /* istanbul ignore next */ - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - /* istanbul ignore next */ - module.exports = require('./inherits_browser.js'); -} diff --git a/build/node_modules/inherits/inherits_browser.js b/build/node_modules/inherits/inherits_browser.js deleted file mode 100644 index 86bbb3dc..00000000 --- a/build/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,27 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }) - } - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } -} diff --git a/build/node_modules/inherits/package.json b/build/node_modules/inherits/package.json deleted file mode 100644 index 37b4366b..00000000 --- a/build/node_modules/inherits/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.4", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", - "license": "ISC", - "scripts": { - "test": "tap" - }, - "devDependencies": { - "tap": "^14.2.4" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] -} diff --git a/build/node_modules/ini/LICENSE b/build/node_modules/ini/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/build/node_modules/ini/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/ini/README.md b/build/node_modules/ini/README.md deleted file mode 100644 index 33df2582..00000000 --- a/build/node_modules/ini/README.md +++ /dev/null @@ -1,102 +0,0 @@ -An ini format parser and serializer for node. - -Sections are treated as nested objects. Items before the first -heading are saved on the object directly. - -## Usage - -Consider an ini-file `config.ini` that looks like this: - - ; this comment is being ignored - scope = global - - [database] - user = dbuser - password = dbpassword - database = use_this_database - - [paths.default] - datadir = /var/lib/data - array[] = first value - array[] = second value - array[] = third value - -You can read, manipulate and write the ini-file like so: - - var fs = require('fs') - , ini = require('ini') - - var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8')) - - config.scope = 'local' - config.database.database = 'use_another_database' - config.paths.default.tmpdir = '/tmp' - delete config.paths.default.datadir - config.paths.default.array.push('fourth value') - - fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' })) - -This will result in a file called `config_modified.ini` being written -to the filesystem with the following content: - - [section] - scope=local - [section.database] - user=dbuser - password=dbpassword - database=use_another_database - [section.paths.default] - tmpdir=/tmp - array[]=first value - array[]=second value - array[]=third value - array[]=fourth value - - -## API - -### decode(inistring) - -Decode the ini-style formatted `inistring` into a nested object. - -### parse(inistring) - -Alias for `decode(inistring)` - -### encode(object, [options]) - -Encode the object `object` into an ini-style formatted string. If the -optional parameter `section` is given, then all top-level properties -of the object are put into this section and the `section`-string is -prepended to all sub-sections, see the usage example above. - -The `options` object may contain the following: - -* `section` A string which will be the first `section` in the encoded - ini data. Defaults to none. -* `whitespace` Boolean to specify whether to put whitespace around the - `=` character. By default, whitespace is omitted, to be friendly to - some persnickety old parsers that don't tolerate it well. But some - find that it's more human-readable and pretty with the whitespace. - -For backwards compatibility reasons, if a `string` options is passed -in, then it is assumed to be the `section` value. - -### stringify(object, [options]) - -Alias for `encode(object, [options])` - -### safe(val) - -Escapes the string `val` such that it is safe to be used as a key or -value in an ini-file. Basically escapes quotes. For example - - ini.safe('"unsafe string"') - -would result in - - "\"unsafe string\"" - -### unsafe(val) - -Unescapes the string `val` diff --git a/build/node_modules/ini/ini.js b/build/node_modules/ini/ini.js deleted file mode 100644 index b576f08d..00000000 --- a/build/node_modules/ini/ini.js +++ /dev/null @@ -1,206 +0,0 @@ -exports.parse = exports.decode = decode - -exports.stringify = exports.encode = encode - -exports.safe = safe -exports.unsafe = unsafe - -var eol = typeof process !== 'undefined' && - process.platform === 'win32' ? '\r\n' : '\n' - -function encode (obj, opt) { - var children = [] - var out = '' - - if (typeof opt === 'string') { - opt = { - section: opt, - whitespace: false, - } - } else { - opt = opt || {} - opt.whitespace = opt.whitespace === true - } - - var separator = opt.whitespace ? ' = ' : '=' - - Object.keys(obj).forEach(function (k, _, __) { - var val = obj[k] - if (val && Array.isArray(val)) { - val.forEach(function (item) { - out += safe(k + '[]') + separator + safe(item) + '\n' - }) - } else if (val && typeof val === 'object') - children.push(k) - else - out += safe(k) + separator + safe(val) + eol - }) - - if (opt.section && out.length) - out = '[' + safe(opt.section) + ']' + eol + out - - children.forEach(function (k, _, __) { - var nk = dotSplit(k).join('\\.') - var section = (opt.section ? opt.section + '.' : '') + nk - var child = encode(obj[k], { - section: section, - whitespace: opt.whitespace, - }) - if (out.length && child.length) - out += eol - - out += child - }) - - return out -} - -function dotSplit (str) { - return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002') - .replace(/\\\./g, '\u0001') - .split(/\./).map(function (part) { - return part.replace(/\1/g, '\\.') - .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001') - }) -} - -function decode (str) { - var out = {} - var p = out - var section = null - // section |key = value - var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i - var lines = str.split(/[\r\n]+/g) - - lines.forEach(function (line, _, __) { - if (!line || line.match(/^\s*[;#]/)) - return - var match = line.match(re) - if (!match) - return - if (match[1] !== undefined) { - section = unsafe(match[1]) - if (section === '__proto__') { - // not allowed - // keep parsing the section, but don't attach it. - p = {} - return - } - p = out[section] = out[section] || {} - return - } - var key = unsafe(match[2]) - if (key === '__proto__') - return - var value = match[3] ? unsafe(match[4]) : true - switch (value) { - case 'true': - case 'false': - case 'null': value = JSON.parse(value) - } - - // Convert keys with '[]' suffix to an array - if (key.length > 2 && key.slice(-2) === '[]') { - key = key.substring(0, key.length - 2) - if (key === '__proto__') - return - if (!p[key]) - p[key] = [] - else if (!Array.isArray(p[key])) - p[key] = [p[key]] - } - - // safeguard against resetting a previously defined - // array by accidentally forgetting the brackets - if (Array.isArray(p[key])) - p[key].push(value) - else - p[key] = value - }) - - // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}} - // use a filter to return the keys that have to be deleted. - Object.keys(out).filter(function (k, _, __) { - if (!out[k] || - typeof out[k] !== 'object' || - Array.isArray(out[k])) - return false - - // see if the parent section is also an object. - // if so, add it to that, and mark this one for deletion - var parts = dotSplit(k) - var p = out - var l = parts.pop() - var nl = l.replace(/\\\./g, '.') - parts.forEach(function (part, _, __) { - if (part === '__proto__') - return - if (!p[part] || typeof p[part] !== 'object') - p[part] = {} - p = p[part] - }) - if (p === out && nl === l) - return false - - p[nl] = out[k] - return true - }).forEach(function (del, _, __) { - delete out[del] - }) - - return out -} - -function isQuoted (val) { - return (val.charAt(0) === '"' && val.slice(-1) === '"') || - (val.charAt(0) === "'" && val.slice(-1) === "'") -} - -function safe (val) { - return (typeof val !== 'string' || - val.match(/[=\r\n]/) || - val.match(/^\[/) || - (val.length > 1 && - isQuoted(val)) || - val !== val.trim()) - ? JSON.stringify(val) - : val.replace(/;/g, '\\;').replace(/#/g, '\\#') -} - -function unsafe (val, doUnesc) { - val = (val || '').trim() - if (isQuoted(val)) { - // remove the single quotes before calling JSON.parse - if (val.charAt(0) === "'") - val = val.substr(1, val.length - 2) - - try { - val = JSON.parse(val) - } catch (_) {} - } else { - // walk the val to find the first not-escaped ; character - var esc = false - var unesc = '' - for (var i = 0, l = val.length; i < l; i++) { - var c = val.charAt(i) - if (esc) { - if ('\\;#'.indexOf(c) !== -1) - unesc += c - else - unesc += '\\' + c - - esc = false - } else if (';#'.indexOf(c) !== -1) - break - else if (c === '\\') - esc = true - else - unesc += c - } - if (esc) - unesc += '\\' - - return unesc.trim() - } - return val -} diff --git a/build/node_modules/ini/package.json b/build/node_modules/ini/package.json deleted file mode 100644 index c830a355..00000000 --- a/build/node_modules/ini/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "name": "ini", - "description": "An ini encoder/decoder for node", - "version": "1.3.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/ini.git" - }, - "main": "ini.js", - "scripts": { - "eslint": "eslint", - "lint": "npm run eslint -- ini.js test/*.js", - "lintfix": "npm run lint -- --fix", - "test": "tap", - "posttest": "npm run lint", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" - }, - "devDependencies": { - "eslint": "^7.9.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", - "tap": "14" - }, - "license": "ISC", - "files": [ - "ini.js" - ] -} diff --git a/build/node_modules/interpret/CHANGELOG b/build/node_modules/interpret/CHANGELOG deleted file mode 100644 index cbc8a8af..00000000 --- a/build/node_modules/interpret/CHANGELOG +++ /dev/null @@ -1,115 +0,0 @@ -v1.0.3: - date: 2017-04-18 - changes: - - fix buble support -v1.0.2: - date: 2017-03-29 - changes: - - add support for coffeescript (now with no hyphen) -v1.0.1: - date: 2016-05-01 - changes: - - add support for buble -v1.0.0: - date: 2015-11-18 - changes: - - add support for babel-register - - go stable! -v0.6.6: - date: 2015-09-21 - changes: - - add support for ts-node (formerly typescript-node) -v0.6.5: - date: 2015-07-22 - changes: - - add support for typescript 1.5 via typescript-node -v0.6.4: - date: 2015-07-07 - changes: - - add support for earlgrey -v0.6.3: - date: 2015-07-03 - changes: - - prefer babel/core to babel -v0.6.2: - date: 2015-05-20 - changes: - - update module list for iced coffee-script -v0.6.1: - date: 2015-05-20 - changes: - - Fix toml loader. -v0.6.0: - date: 2015-05-19 - changes: - - Combine fallbacks and loaders into `extensions`. - - Provide implementation guidance. -v0.5.1: - date: 2015-03-01 - changes: - - Add support for CirruScript. -v0.5.0: - date: 2015-02-27 - changes: - - Refactor es6 support via Babel (formerly 6to5) -v0.4.3: - date: 2015-02-09 - changes: - - Switch support from typescript-require to typescript-register. -v0.4.2: - date: 2015-01-16 - changes: - - Add support for wisp. -v0.4.1: - date: 2015-01-10 - changes: - - Add support for 6to5 (es6) -v0.4.0: - date: 2014-01-09 - changes: - - Add support for fallback (legacy) modules - - Add support for module configurations -v0.3.10: - date: 2014-12-17 - changes: - - Add support for json5. -v0.3.9: - date: 2014-12-08 - changes: - - Add support for literate iced coffee. -v0.3.8: - date: 2014-11-20 - changes: - - Add support for [cjsx](https://github.com/jsdf/coffee-react). -v0.3.7: - date: 2014-09-08 - changes: - - Add support for [TypeScript](http://www.typescriptlang.org/). -v0.3.6: - date: 2014-08-25 - changes: - - Add support for coffee.md. -v0.3.5: - date: 2014-07-03 - changes: - - Add support for jsx. -v0.3.4: - date: 2014-06-27 - changes: - - Make .js first jsVariant entry. -v0.3.3: - date: 2014-06-02 - changes: - - Fix casing on livescript dependency. -v0.3.0: - date: 2014-04-20 - changes: - - Simplify loading of coffee-script and iced-coffee-script. -v0.2.0: - date: 2014-04-20 - changes: - - Move module loading into rechoir. -v0.1.0: - date: 2014-04-20 - changes: - - Initial public release. diff --git a/build/node_modules/interpret/LICENSE b/build/node_modules/interpret/LICENSE deleted file mode 100644 index 7d7525da..00000000 --- a/build/node_modules/interpret/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2014-2018 Tyler Kellen , Blaine Bublitz , and Eric Schoffstall - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/interpret/README.md b/build/node_modules/interpret/README.md deleted file mode 100644 index f56410c0..00000000 --- a/build/node_modules/interpret/README.md +++ /dev/null @@ -1,229 +0,0 @@ -

- - - -

- -# interpret - -[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] - -A dictionary of file extensions and associated module loaders. - -## What is it -This is used by [Liftoff](http://github.com/tkellen/node-liftoff) to automatically require dependencies for configuration files, and by [rechoir](http://github.com/tkellen/node-rechoir) for registering module loaders. - -## interpret for enterprise - -Available as part of the Tidelift Subscription - -The maintainers of interpret and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-interpret?utm_source=npm-interpret&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - -## API - -### extensions -Map file types to modules which provide a [require.extensions] loader. - -```js -{ - '.babel.js': [ - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.js', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - { - module: 'babel-register', - register: function(hook) { - hook({ - extensions: '.js', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel-core/register', - register: function(hook) { - hook({ - extensions: '.js', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel/register', - register: function(hook) { - hook({ - extensions: '.js', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - ], - '.babel.ts': [ - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.ts', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - ], - '.buble.js': 'buble/register', - '.cirru': 'cirru-script/lib/register', - '.cjsx': 'node-cjsx/register', - '.co': 'coco', - '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'], - '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'], - '.csv': 'require-csv', - '.eg': 'earlgrey/register', - '.esm.js': { - module: 'esm', - register: function(hook) { - // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353 - // which only captures the final extension (.babel.js -> .js) - var esmLoader = hook(module); - require.extensions['.js'] = esmLoader('module')._extensions['.js']; - }, - }, - '.iced': ['iced-coffee-script/register', 'iced-coffee-script'], - '.iced.md': 'iced-coffee-script/register', - '.ini': 'require-ini', - '.js': null, - '.json': null, - '.json5': ['json5/lib/register', 'json5/lib/require'], - '.jsx': [ - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.jsx', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - { - module: 'babel-register', - register: function(hook) { - hook({ - extensions: '.jsx', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel-core/register', - register: function(hook) { - hook({ - extensions: '.jsx', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel/register', - register: function(hook) { - hook({ - extensions: '.jsx', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'node-jsx', - register: function(hook) { - hook.install({ extension: '.jsx', harmony: true }); - }, - }, - ], - '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'], - '.liticed': 'iced-coffee-script/register', - '.ls': ['livescript', 'LiveScript'], - '.mjs': '/absolute/path/to/interpret/mjs-stub.js', - '.node': null, - '.toml': { - module: 'toml-require', - register: function(hook) { - hook.install(); - }, - }, - '.ts': [ - 'ts-node/register', - 'typescript-node/register', - 'typescript-register', - 'typescript-require', - 'sucrase/register/ts', - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.ts', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - ], - '.tsx': [ - 'ts-node/register', - 'typescript-node/register', - 'sucrase/register', - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.tsx', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - ], - '.wisp': 'wisp/engine/node', - '.xml': 'require-xml', - '.yaml': 'require-yaml', - '.yml': 'require-yaml', -} -``` - -### jsVariants -Same as above, but only include the extensions which are javascript variants. - -## How to use it - -Consumers should use the exported `extensions` or `jsVariants` object to determine which module should be loaded for a given extension. If a matching extension is found, consumers should do the following: - -1. If the value is null, do nothing. - -2. If the value is a string, try to require it. - -3. If the value is an object, try to require the `module` property. If successful, the `register` property (a function) should be called with the module passed as the first argument. - -4. If the value is an array, iterate over it, attempting step #2 or #3 until one of the attempts does not throw. - -[require.extensions]: http://nodejs.org/api/globals.html#globals_require_extensions - -[downloads-image]: http://img.shields.io/npm/dm/interpret.svg -[npm-url]: https://www.npmjs.com/package/interpret -[npm-image]: http://img.shields.io/npm/v/interpret.svg - -[travis-url]: https://travis-ci.org/gulpjs/interpret -[travis-image]: http://img.shields.io/travis/gulpjs/interpret.svg?label=travis-ci - -[appveyor-url]: https://ci.appveyor.com/project/gulpjs/interpret -[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/interpret.svg?label=appveyor - -[coveralls-url]: https://coveralls.io/r/gulpjs/interpret -[coveralls-image]: http://img.shields.io/coveralls/gulpjs/interpret/master.svg - -[gitter-url]: https://gitter.im/gulpjs/gulp -[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/build/node_modules/interpret/index.js b/build/node_modules/interpret/index.js deleted file mode 100644 index 2a2b8297..00000000 --- a/build/node_modules/interpret/index.js +++ /dev/null @@ -1,211 +0,0 @@ -var path = require('path'); - -var endsInBabelJs = /\.babel\.[jt]s(x)$/; - -var mjsStub = path.join(__dirname, 'mjs-stub'); - -function ignoreNonBabelAndNodeModules(file) { - return !endsInBabelJs.test(file) && - path.relative(process.cwd(), file).split(path.sep).indexOf('node_modules') >= 0; -} - -var extensions = { - '.babel.js': [ - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.js', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - { - module: 'babel-register', - register: function(hook) { - hook({ - extensions: '.js', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel-core/register', - register: function(hook) { - hook({ - extensions: '.js', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel/register', - register: function(hook) { - hook({ - extensions: '.js', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - ], - '.babel.ts': [ - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.ts', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - ], - '.buble.js': 'buble/register', - '.cirru': 'cirru-script/lib/register', - '.cjsx': 'node-cjsx/register', - '.co': 'coco', - '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'], - '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'], - '.csv': 'require-csv', - '.eg': 'earlgrey/register', - '.esm.js': { - module: 'esm', - register: function(hook) { - // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353 - // which only captures the final extension (.babel.js -> .js) - var esmLoader = hook(module); - require.extensions['.js'] = esmLoader('module')._extensions['.js']; - }, - }, - '.iced': ['iced-coffee-script/register', 'iced-coffee-script'], - '.iced.md': 'iced-coffee-script/register', - '.ini': 'require-ini', - '.js': null, - '.json': null, - '.json5': ['json5/lib/register', 'json5/lib/require'], - '.jsx': [ - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.jsx', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - { - module: 'babel-register', - register: function(hook) { - hook({ - extensions: '.jsx', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel-core/register', - register: function(hook) { - hook({ - extensions: '.jsx', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'babel/register', - register: function(hook) { - hook({ - extensions: '.jsx', - ignore: ignoreNonBabelAndNodeModules, - }); - }, - }, - { - module: 'node-jsx', - register: function(hook) { - hook.install({ extension: '.jsx', harmony: true }); - }, - }, - ], - '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'], - '.liticed': 'iced-coffee-script/register', - '.ls': ['livescript', 'LiveScript'], - '.mjs': mjsStub, - '.node': null, - '.toml': { - module: 'toml-require', - register: function(hook) { - hook.install(); - }, - }, - '.ts': [ - 'ts-node/register', - 'typescript-node/register', - 'typescript-register', - 'typescript-require', - 'sucrase/register/ts', - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.ts', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - ], - '.tsx': [ - 'ts-node/register', - 'typescript-node/register', - 'sucrase/register', - { - module: '@babel/register', - register: function(hook) { - hook({ - extensions: '.tsx', - rootMode: 'upward-optional', - ignore: [ignoreNonBabelAndNodeModules], - }); - }, - }, - ], - '.wisp': 'wisp/engine/node', - '.xml': 'require-xml', - '.yaml': 'require-yaml', - '.yml': 'require-yaml', -}; - -var jsVariantExtensions = [ - '.js', - '.babel.js', - '.babel.ts', - '.buble.js', - '.cirru', - '.cjsx', - '.co', - '.coffee', - '.coffee.md', - '.eg', - '.esm.js', - '.iced', - '.iced.md', - '.jsx', - '.litcoffee', - '.liticed', - '.ls', - '.mjs', - '.ts', - '.tsx', - '.wisp', -]; - -module.exports = { - extensions: extensions, - jsVariants: jsVariantExtensions.reduce(function(result, ext) { - result[ext] = extensions[ext]; - return result; - }, {}), -}; diff --git a/build/node_modules/interpret/mjs-stub.js b/build/node_modules/interpret/mjs-stub.js deleted file mode 100644 index 6a1af956..00000000 --- a/build/node_modules/interpret/mjs-stub.js +++ /dev/null @@ -1 +0,0 @@ -require.extensions['.mjs'] = null; diff --git a/build/node_modules/interpret/package.json b/build/node_modules/interpret/package.json deleted file mode 100644 index cc05601f..00000000 --- a/build/node_modules/interpret/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "interpret", - "version": "2.2.0", - "description": "A dictionary of file extensions and associated module loaders.", - "author": "Gulp Team (http://gulpjs.com/)", - "contributors": [ - "Blaine Bublitz ", - "Tyler Kellen (http://goingslowly.com/)" - ], - "repository": "gulpjs/interpret", - "license": "MIT", - "engines": { - "node": ">= 0.10" - }, - "main": "index.js", - "files": [ - "LICENSE", - "index.js", - "mjs-stub.js" - ], - "scripts": { - "lint": "eslint .", - "pretest": "rm -rf tmp/ && npm run lint", - "test": "mocha --async-only", - "cover": "nyc --reporter=lcov --reporter=text-summary npm test", - "coveralls": "nyc --reporter=text-lcov npm test | coveralls" - }, - "dependencies": {}, - "devDependencies": { - "coveralls": "github:phated/node-coveralls#2.x", - "eslint": "^2.13.0", - "eslint-config-gulp": "^3.0.1", - "expect": "^1.20.2", - "mocha": "^3.5.3", - "nyc": "^10.3.2", - "parse-node-version": "^1.0.0", - "rechoir": "^0.7.0", - "shelljs": "0.7.5", - "trash-cli": "^3.0.0" - }, - "keywords": [ - "cirru-script", - "cjsx", - "co", - "coco", - "coffee", - "coffee-script", - "coffee.md", - "coffeescript", - "csv", - "earlgrey", - "es", - "es6", - "iced", - "iced.md", - "iced-coffee-script", - "ini", - "js", - "json", - "json5", - "jsx", - "react", - "litcoffee", - "liticed", - "ls", - "livescript", - "toml", - "ts", - "typescript", - "wisp", - "xml", - "yaml", - "yml" - ] -} diff --git a/build/node_modules/ip/README.md b/build/node_modules/ip/README.md deleted file mode 100644 index 22e5819f..00000000 --- a/build/node_modules/ip/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# IP -[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip) - -IP address utilities for node.js - -## Installation - -### npm -```shell -npm install ip -``` - -### git - -```shell -git clone https://github.com/indutny/node-ip.git -``` - -## Usage -Get your ip address, compare ip addresses, validate ip addresses, etc. - -```js -var ip = require('ip'); - -ip.address() // my ip address -ip.isEqual('::1', '::0:1'); // true -ip.toBuffer('127.0.0.1') // Buffer([127, 0, 0, 1]) -ip.toString(new Buffer([127, 0, 0, 1])) // 127.0.0.1 -ip.fromPrefixLen(24) // 255.255.255.0 -ip.mask('192.168.1.134', '255.255.255.0') // 192.168.1.0 -ip.cidr('192.168.1.134/26') // 192.168.1.128 -ip.not('255.255.255.0') // 0.0.0.255 -ip.or('192.168.1.134', '0.0.0.255') // 192.168.1.255 -ip.isPrivate('127.0.0.1') // true -ip.isV4Format('127.0.0.1'); // true -ip.isV6Format('::ffff:127.0.0.1'); // true - -// operate on buffers in-place -var buf = new Buffer(128); -var offset = 64; -ip.toBuffer('127.0.0.1', buf, offset); // [127, 0, 0, 1] at offset 64 -ip.toString(buf, offset, 4); // '127.0.0.1' - -// subnet information -ip.subnet('192.168.1.134', '255.255.255.192') -// { networkAddress: '192.168.1.128', -// firstAddress: '192.168.1.129', -// lastAddress: '192.168.1.190', -// broadcastAddress: '192.168.1.191', -// subnetMask: '255.255.255.192', -// subnetMaskLength: 26, -// numHosts: 62, -// length: 64, -// contains: function(addr){...} } -ip.cidrSubnet('192.168.1.134/26') -// Same as previous. - -// range checking -ip.cidrSubnet('192.168.1.134/26').contains('192.168.1.190') // true - - -// ipv4 long conversion -ip.toLong('127.0.0.1'); // 2130706433 -ip.fromLong(2130706433); // '127.0.0.1' -``` - -### License - -This software is licensed under the MIT License. - -Copyright Fedor Indutny, 2012. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/ip/package.json b/build/node_modules/ip/package.json deleted file mode 100644 index f0d95e9b..00000000 --- a/build/node_modules/ip/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "ip", - "version": "2.0.0", - "author": "Fedor Indutny ", - "homepage": "https://github.com/indutny/node-ip", - "repository": { - "type": "git", - "url": "http://github.com/indutny/node-ip.git" - }, - "files": [ - "lib", - "README.md" - ], - "main": "lib/ip", - "devDependencies": { - "eslint": "^8.15.0", - "mocha": "^10.0.0" - }, - "scripts": { - "lint": "eslint lib/*.js test/*.js", - "test": "npm run lint && mocha --reporter spec test/*-test.js", - "fix": "npm run lint -- --fix" - }, - "license": "MIT" -} diff --git a/build/node_modules/ipaddr.js/LICENSE b/build/node_modules/ipaddr.js/LICENSE deleted file mode 100644 index f6b37b52..00000000 --- a/build/node_modules/ipaddr.js/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2011-2017 whitequark - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/ipaddr.js/README.md b/build/node_modules/ipaddr.js/README.md deleted file mode 100644 index f57725b0..00000000 --- a/build/node_modules/ipaddr.js/README.md +++ /dev/null @@ -1,233 +0,0 @@ -# ipaddr.js — an IPv6 and IPv4 address manipulation library [![Build Status](https://travis-ci.org/whitequark/ipaddr.js.svg)](https://travis-ci.org/whitequark/ipaddr.js) - -ipaddr.js is a small (1.9K minified and gzipped) library for manipulating -IP addresses in JavaScript environments. It runs on both CommonJS runtimes -(e.g. [nodejs]) and in a web browser. - -ipaddr.js allows you to verify and parse string representation of an IP -address, match it against a CIDR range or range list, determine if it falls -into some reserved ranges (examples include loopback and private ranges), -and convert between IPv4 and IPv4-mapped IPv6 addresses. - -[nodejs]: http://nodejs.org - -## Installation - -`npm install ipaddr.js` - -or - -`bower install ipaddr.js` - -## API - -ipaddr.js defines one object in the global scope: `ipaddr`. In CommonJS, -it is exported from the module: - -```js -var ipaddr = require('ipaddr.js'); -``` - -The API consists of several global methods and two classes: ipaddr.IPv6 and ipaddr.IPv4. - -### Global methods - -There are three global methods defined: `ipaddr.isValid`, `ipaddr.parse` and -`ipaddr.process`. All of them receive a string as a single parameter. - -The `ipaddr.isValid` method returns `true` if the address is a valid IPv4 or -IPv6 address, and `false` otherwise. It does not throw any exceptions. - -The `ipaddr.parse` method returns an object representing the IP address, -or throws an `Error` if the passed string is not a valid representation of an -IP address. - -The `ipaddr.process` method works just like the `ipaddr.parse` one, but it -automatically converts IPv4-mapped IPv6 addresses to their IPv4 counterparts -before returning. It is useful when you have a Node.js instance listening -on an IPv6 socket, and the `net.ivp6.bindv6only` sysctl parameter (or its -equivalent on non-Linux OS) is set to 0. In this case, you can accept IPv4 -connections on your IPv6-only socket, but the remote address will be mangled. -Use `ipaddr.process` method to automatically demangle it. - -### Object representation - -Parsing methods return an object which descends from `ipaddr.IPv6` or -`ipaddr.IPv4`. These objects share some properties, but most of them differ. - -#### Shared properties - -One can determine the type of address by calling `addr.kind()`. It will return -either `"ipv6"` or `"ipv4"`. - -An address can be converted back to its string representation with `addr.toString()`. -Note that this method: - * does not return the original string used to create the object (in fact, there is - no way of getting that string) - * returns a compact representation (when it is applicable) - -A `match(range, bits)` method can be used to check if the address falls into a -certain CIDR range. -Note that an address can be (obviously) matched only against an address of the same type. - -For example: - -```js -var addr = ipaddr.parse("2001:db8:1234::1"); -var range = ipaddr.parse("2001:db8::"); - -addr.match(range, 32); // => true -``` - -Alternatively, `match` can also be called as `match([range, bits])`. In this way, -it can be used together with the `parseCIDR(string)` method, which parses an IP -address together with a CIDR range. - -For example: - -```js -var addr = ipaddr.parse("2001:db8:1234::1"); - -addr.match(ipaddr.parseCIDR("2001:db8::/32")); // => true -``` - -A `range()` method returns one of predefined names for several special ranges defined -by IP protocols. The exact names (and their respective CIDR ranges) can be looked up -in the source: [IPv6 ranges] and [IPv4 ranges]. Some common ones include `"unicast"` -(the default one) and `"reserved"`. - -You can match against your own range list by using -`ipaddr.subnetMatch(address, rangeList, defaultName)` method. It can work with a mix of IPv6 or IPv4 addresses, and accepts a name-to-subnet map as the range list. For example: - -```js -var rangeList = { - documentationOnly: [ ipaddr.parse('2001:db8::'), 32 ], - tunnelProviders: [ - [ ipaddr.parse('2001:470::'), 32 ], // he.net - [ ipaddr.parse('2001:5c0::'), 32 ] // freenet6 - ] -}; -ipaddr.subnetMatch(ipaddr.parse('2001:470:8:66::1'), rangeList, 'unknown'); // => "tunnelProviders" -``` - -The addresses can be converted to their byte representation with `toByteArray()`. -(Actually, JavaScript mostly does not know about byte buffers. They are emulated with -arrays of numbers, each in range of 0..255.) - -```js -var bytes = ipaddr.parse('2a00:1450:8007::68').toByteArray(); // ipv6.google.com -bytes // => [42, 0x00, 0x14, 0x50, 0x80, 0x07, 0x00, , 0x00, 0x68 ] -``` - -The `ipaddr.IPv4` and `ipaddr.IPv6` objects have some methods defined, too. All of them -have the same interface for both protocols, and are similar to global methods. - -`ipaddr.IPvX.isValid(string)` can be used to check if the string is a valid address -for particular protocol, and `ipaddr.IPvX.parse(string)` is the error-throwing parser. - -`ipaddr.IPvX.isValid(string)` uses the same format for parsing as the POSIX `inet_ntoa` function, which accepts unusual formats like `0xc0.168.1.1` or `0x10000000`. The function `ipaddr.IPv4.isValidFourPartDecimal(string)` validates the IPv4 address and also ensures that it is written in four-part decimal format. - -[IPv6 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L186 -[IPv4 ranges]: https://github.com/whitequark/ipaddr.js/blob/master/src/ipaddr.coffee#L71 - -#### IPv6 properties - -Sometimes you will want to convert IPv6 not to a compact string representation (with -the `::` substitution); the `toNormalizedString()` method will return an address where -all zeroes are explicit. - -For example: - -```js -var addr = ipaddr.parse("2001:0db8::0001"); -addr.toString(); // => "2001:db8::1" -addr.toNormalizedString(); // => "2001:db8:0:0:0:0:0:1" -``` - -The `isIPv4MappedAddress()` method will return `true` if this address is an IPv4-mapped -one, and `toIPv4Address()` will return an IPv4 object address. - -To access the underlying binary representation of the address, use `addr.parts`. - -```js -var addr = ipaddr.parse("2001:db8:10::1234:DEAD"); -addr.parts // => [0x2001, 0xdb8, 0x10, 0, 0, 0, 0x1234, 0xdead] -``` - -A IPv6 zone index can be accessed via `addr.zoneId`: - -```js -var addr = ipaddr.parse("2001:db8::%eth0"); -addr.zoneId // => 'eth0' -``` - -#### IPv4 properties - -`toIPv4MappedAddress()` will return a corresponding IPv4-mapped IPv6 address. - -To access the underlying representation of the address, use `addr.octets`. - -```js -var addr = ipaddr.parse("192.168.1.1"); -addr.octets // => [192, 168, 1, 1] -``` - -`prefixLengthFromSubnetMask()` will return a CIDR prefix length for a valid IPv4 netmask or -null if the netmask is not valid. - -```js -ipaddr.IPv4.parse('255.255.255.240').prefixLengthFromSubnetMask() == 28 -ipaddr.IPv4.parse('255.192.164.0').prefixLengthFromSubnetMask() == null -``` - -`subnetMaskFromPrefixLength()` will return an IPv4 netmask for a valid CIDR prefix length. - -```js -ipaddr.IPv4.subnetMaskFromPrefixLength(24) == "255.255.255.0" -ipaddr.IPv4.subnetMaskFromPrefixLength(29) == "255.255.255.248" -``` - -`broadcastAddressFromCIDR()` will return the broadcast address for a given IPv4 interface and netmask in CIDR notation. -```js -ipaddr.IPv4.broadcastAddressFromCIDR("172.0.0.1/24") == "172.0.0.255" -``` -`networkAddressFromCIDR()` will return the network address for a given IPv4 interface and netmask in CIDR notation. -```js -ipaddr.IPv4.networkAddressFromCIDR("172.0.0.1/24") == "172.0.0.0" -``` - -#### Conversion - -IPv4 and IPv6 can be converted bidirectionally to and from network byte order (MSB) byte arrays. - -The `fromByteArray()` method will take an array and create an appropriate IPv4 or IPv6 object -if the input satisfies the requirements. For IPv4 it has to be an array of four 8-bit values, -while for IPv6 it has to be an array of sixteen 8-bit values. - -For example: -```js -var addr = ipaddr.fromByteArray([0x7f, 0, 0, 1]); -addr.toString(); // => "127.0.0.1" -``` - -or - -```js -var addr = ipaddr.fromByteArray([0x20, 1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]) -addr.toString(); // => "2001:db8::1" -``` - -Both objects also offer a `toByteArray()` method, which returns an array in network byte order (MSB). - -For example: -```js -var addr = ipaddr.parse("127.0.0.1"); -addr.toByteArray(); // => [0x7f, 0, 0, 1] -``` - -or - -```js -var addr = ipaddr.parse("2001:db8::1"); -addr.toByteArray(); // => [0x20, 1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] -``` diff --git a/build/node_modules/ipaddr.js/ipaddr.min.js b/build/node_modules/ipaddr.js/ipaddr.min.js deleted file mode 100644 index b54a7cc4..00000000 --- a/build/node_modules/ipaddr.js/ipaddr.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var r,t,n,e,i,o,a,s;t={},s=this,"undefined"!=typeof module&&null!==module&&module.exports?module.exports=t:s.ipaddr=t,a=function(r,t,n,e){var i,o;if(r.length!==t.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(i=0;e>0;){if((o=n-e)<0&&(o=0),r[i]>>o!=t[i]>>o)return!1;e-=n,i+=1}return!0},t.subnetMatch=function(r,t,n){var e,i,o,a,s;null==n&&(n="unicast");for(o in t)for(!(a=t[o])[0]||a[0]instanceof Array||(a=[a]),e=0,i=a.length;e=0;t=n+=-1){if(!((e=this.octets[t])in a))return null;if(o=a[e],i&&0!==o)return null;8!==o&&(i=!0),r+=o}return 32-r},r}(),n="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp("^"+n+"\\."+n+"\\."+n+"\\."+n+"$","i"),longValue:new RegExp("^"+n+"$","i")},t.IPv4.parser=function(r){var t,n,i,o,a;if(n=function(r){return"0"===r[0]&&"x"!==r[1]?parseInt(r,8):parseInt(r)},t=r.match(e.fourOctet))return function(){var r,e,o,a;for(a=[],r=0,e=(o=t.slice(1,6)).length;r4294967295||a<0)throw new Error("ipaddr: address outside defined range");return function(){var r,t;for(t=[],o=r=0;r<=24;o=r+=8)t.push(a>>o&255);return t}().reverse()}return null},t.IPv6=function(){function r(r,t){var n,e,i,o,a,s;if(16===r.length)for(this.parts=[],n=e=0;e<=14;n=e+=2)this.parts.push(r[n]<<8|r[n+1]);else{if(8!==r.length)throw new Error("ipaddr: ipv6 part count should be 8 or 16");this.parts=r}for(i=0,o=(s=this.parts).length;it&&(r=n.index,t=n[0].length);return t<0?i:i.substring(0,r)+"::"+i.substring(r+t)},r.prototype.toByteArray=function(){var r,t,n,e,i;for(r=[],t=0,n=(i=this.parts).length;t>8),r.push(255&e);return r},r.prototype.toNormalizedString=function(){var r,t,n;return r=function(){var r,n,e,i;for(i=[],r=0,n=(e=this.parts).length;r>8,255&r,n>>8,255&n])},r.prototype.prefixLengthFromSubnetMask=function(){var r,t,n,e,i,o,a;for(a={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},r=0,i=!1,t=n=7;n>=0;t=n+=-1){if(!((e=this.parts[t])in a))return null;if(o=a[e],i&&0!==o)return null;16!==o&&(i=!0),r+=o}return 128-r},r}(),i="(?:[0-9a-f]+::?)+",o={zoneIndex:new RegExp("%[0-9a-z]{1,}","i"),native:new RegExp("^(::)?("+i+")?([0-9a-f]+)?(::)?(%[0-9a-z]{1,})?$","i"),transitional:new RegExp("^((?:"+i+")|(?:::)(?:"+i+")?)"+n+"\\."+n+"\\."+n+"\\."+n+"(%[0-9a-z]{1,})?$","i")},r=function(r,t){var n,e,i,a,s,p;if(r.indexOf("::")!==r.lastIndexOf("::"))return null;for((p=(r.match(o.zoneIndex)||[])[0])&&(p=p.substring(1),r=r.replace(/%.+$/,"")),n=0,e=-1;(e=r.indexOf(":",e+1))>=0;)n++;if("::"===r.substr(0,2)&&n--,"::"===r.substr(-2,2)&&n--,n>t)return null;for(s=t-n,a=":";s--;)a+="0:";return":"===(r=r.replace("::",a))[0]&&(r=r.slice(1)),":"===r[r.length-1]&&(r=r.slice(0,-1)),t=function(){var t,n,e,o;for(o=[],t=0,n=(e=r.split(":")).length;t=0&&t<=32)return e=[this.parse(n[1]),t],Object.defineProperty(e,"toString",{value:function(){return this.join("/")}}),e;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},t.IPv4.subnetMaskFromPrefixLength=function(r){var t,n,e;if((r=parseInt(r))<0||r>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(e=[0,0,0,0],n=0,t=Math.floor(r/8);n=0&&t<=128)return e=[this.parse(n[1]),t],Object.defineProperty(e,"toString",{value:function(){return this.join("/")}}),e;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},t.isValid=function(r){return t.IPv6.isValid(r)||t.IPv4.isValid(r)},t.parse=function(r){if(t.IPv6.isValid(r))return t.IPv6.parse(r);if(t.IPv4.isValid(r))return t.IPv4.parse(r);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},t.parseCIDR=function(r){try{return t.IPv6.parseCIDR(r)}catch(n){n;try{return t.IPv4.parseCIDR(r)}catch(r){throw r,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},t.fromByteArray=function(r){var n;if(4===(n=r.length))return new t.IPv4(r);if(16===n)return new t.IPv6(r);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},t.process=function(r){var t;return t=this.parse(r),"ipv6"===t.kind()&&t.isIPv4MappedAddress()?t.toIPv4Address():t}}).call(this); \ No newline at end of file diff --git a/build/node_modules/ipaddr.js/package.json b/build/node_modules/ipaddr.js/package.json deleted file mode 100644 index f4d35475..00000000 --- a/build/node_modules/ipaddr.js/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "ipaddr.js", - "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.", - "version": "1.9.1", - "author": "whitequark ", - "directories": { - "lib": "./lib" - }, - "dependencies": {}, - "devDependencies": { - "coffee-script": "~1.12.6", - "nodeunit": "^0.11.3", - "uglify-js": "~3.0.19" - }, - "scripts": { - "test": "cake build test" - }, - "files": [ - "lib/", - "LICENSE", - "ipaddr.min.js" - ], - "keywords": [ - "ip", - "ipv4", - "ipv6" - ], - "repository": "git://github.com/whitequark/ipaddr.js", - "main": "./lib/ipaddr.js", - "engines": { - "node": ">= 0.10" - }, - "license": "MIT", - "types": "./lib/ipaddr.js.d.ts" -} diff --git a/build/node_modules/is-accessor-descriptor/.editorconfig b/build/node_modules/is-accessor-descriptor/.editorconfig deleted file mode 100644 index 449f0da4..00000000 --- a/build/node_modules/is-accessor-descriptor/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# http://editorconfig.org/ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[{**/{actual,fixtures,expected,templates}/**,*.md}] -trim_trailing_whitespace = false -insert_final_newline = false diff --git a/build/node_modules/is-accessor-descriptor/.eslintrc b/build/node_modules/is-accessor-descriptor/.eslintrc deleted file mode 100644 index 1b155fcd..00000000 --- a/build/node_modules/is-accessor-descriptor/.eslintrc +++ /dev/null @@ -1,23 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "overrides": [ - { - "files": "index.js", - "rules": { - "complexity": "off", - "no-param-reassign": "warn", - }, - }, - { - "files": "test/**/*.js", - "rules": { - "id-length": "off", - "getter-return": "off", - "max-lines-per-function": "warn", - }, - }, - ], -} diff --git a/build/node_modules/is-accessor-descriptor/.nycrc b/build/node_modules/is-accessor-descriptor/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/is-accessor-descriptor/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/is-accessor-descriptor/CHANGELOG.md b/build/node_modules/is-accessor-descriptor/CHANGELOG.md deleted file mode 100644 index be5b184d..00000000 --- a/build/node_modules/is-accessor-descriptor/CHANGELOG.md +++ /dev/null @@ -1,125 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v3.0.3](https://github.com/inspect-js/is-accessor-descriptor/compare/v3.0.2...v3.0.3) - 2023-10-25 - -### Commits - -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `has-property-descriptors`, `tape` [`908044d`](https://github.com/inspect-js/is-accessor-descriptor/commit/908044d05559496cddf61b8f634641e879305f24) -- [Refactor] use `hasown` [`8b94cc1`](https://github.com/inspect-js/is-accessor-descriptor/commit/8b94cc153ba580143fe27bab0437199e873e58e3) - -## [v3.0.2](https://github.com/inspect-js/is-accessor-descriptor/compare/v3.0.1...v3.0.2) - 2023-04-27 - -### Commits - -- [eslint] cleanup [`c0a3a34`](https://github.com/inspect-js/is-accessor-descriptor/commit/c0a3a34eabaed6634dd674600df2c647688d3a31) -- [Tests] travis -> Github Actions; add `safe-publish-latest`, `npmignore`, `auto-changelog`, `evalmd`, `aud` [`a45de10`](https://github.com/inspect-js/is-accessor-descriptor/commit/a45de10c8020a350df860c2c4fe7697a74cdb943) -- [readme] clean up docs, URLs, package.json, etc [`d2f3547`](https://github.com/inspect-js/is-accessor-descriptor/commit/d2f354741f4fecc8c0e1ed6a83d351028a2ce2ba) -- [New] increase support from node 6 down to node 0.4 [`825f88e`](https://github.com/inspect-js/is-accessor-descriptor/commit/825f88e69da75476b638e9879296a37d370ce9fd) -- [Tests] convert from mocha to tape [`072d097`](https://github.com/inspect-js/is-accessor-descriptor/commit/072d097f5bbe1d6383ec38c13bbe67b491c0c671) -- [Docs] remove `verb` [`7567b54`](https://github.com/inspect-js/is-accessor-descriptor/commit/7567b54961b87af9ae890584089f5f29f19d8537) -- [Tests] use `has-property-descriptors` to skip true getter tests in older engines [`0e26d80`](https://github.com/inspect-js/is-accessor-descriptor/commit/0e26d806b7f97e23f287eac39bb352e772ac3f3b) -- [Fix] when an object/key pair is provided, check arguments.length instead of key truthiness [`3962d00`](https://github.com/inspect-js/is-accessor-descriptor/commit/3962d006fbe65dce0bc0847e278af142829057cb) -- [Tests] add coverage [`6337da4`](https://github.com/inspect-js/is-accessor-descriptor/commit/6337da417af127694412e5f18ba853f47b9a4270) -- [meta] switch from `files` field to npmignore; add `exports` [`6e870be`](https://github.com/inspect-js/is-accessor-descriptor/commit/6e870be859d17221b11b8c9f2fcb3e8a1e649598) - -## [v3.0.1](https://github.com/inspect-js/is-accessor-descriptor/compare/v3.0.0...v3.0.1) - 2018-12-13 - -### Commits - -- cleanup readme [`5cce1d2`](https://github.com/inspect-js/is-accessor-descriptor/commit/5cce1d212f887f9b4afe2b29dd95d657e1ea210c) -- remove unnecessary check [`288d4b9`](https://github.com/inspect-js/is-accessor-descriptor/commit/288d4b9f407bd7a01a606456ac40b7c29d7fd407) - -## [v3.0.0](https://github.com/inspect-js/is-accessor-descriptor/compare/v2.0.0...v3.0.0) - 2018-12-13 - -### Commits - -- refactor [`d01d897`](https://github.com/inspect-js/is-accessor-descriptor/commit/d01d897175f09d3fb285a6bb22e4eb46a46a6045) - -## [v2.0.0](https://github.com/inspect-js/is-accessor-descriptor/compare/v1.0.1...v2.0.0) - 2017-12-04 - -### Commits - -- refactor to be stricter [`f7370ef`](https://github.com/inspect-js/is-accessor-descriptor/commit/f7370efe312e338c7f3175d76b973bdd838d0d27) -- update docs [`fd1764c`](https://github.com/inspect-js/is-accessor-descriptor/commit/fd1764c14dc6bfba668cb502dad57e5e03855ecf) - -## [v1.0.1](https://github.com/inspect-js/is-accessor-descriptor/compare/v1.0.0...v1.0.1) - 2023-10-26 - -### Commits - -- [eslint] actually use eslint [`a05c057`](https://github.com/inspect-js/is-accessor-descriptor/commit/a05c0576662de977798bcba0ffa037a1ffdb9f68) -- [readme] clean up docs, URLs, package.json, etc [`6648dcd`](https://github.com/inspect-js/is-accessor-descriptor/commit/6648dcde8c01fcb36f7d6aaa3f70e3563df54b67) -- [meta] update `.gitignore` [`cba0ea0`](https://github.com/inspect-js/is-accessor-descriptor/commit/cba0ea006594dd4583ba671c1643a1e96aaab7ff) -- [readme] remove verb [`2f07da4`](https://github.com/inspect-js/is-accessor-descriptor/commit/2f07da493d0c824b5738675999ea4a3db541c84e) -- [Tests] switch to tape [`7e39202`](https://github.com/inspect-js/is-accessor-descriptor/commit/7e392020781a23f4c1276e78da4bf8a798021d85) -- [Tests] migrate from travis to github actions [`aa436b0`](https://github.com/inspect-js/is-accessor-descriptor/commit/aa436b0bbeb03c1281e816445e4d495e582274c7) -- [Fix] properly handle an accessor descriptor with only a setter [`04647f4`](https://github.com/inspect-js/is-accessor-descriptor/commit/04647f45870a2d3a78e2ae8adf07b0e9d47e0fc9) -- [Refactor] properly guard for-in loop [`a0454cc`](https://github.com/inspect-js/is-accessor-descriptor/commit/a0454cca3ea0610c8cf5e0b70bd581689ded929a) -- [Fix] allow any non-primitive; arrays and functions are objects too [`123e3c3`](https://github.com/inspect-js/is-accessor-descriptor/commit/123e3c3da341a1a397e274805df88ed13646442f) -- [Refactor] use `hasown` [`7ad36a0`](https://github.com/inspect-js/is-accessor-descriptor/commit/7ad36a05be98c7f0ae3f4dc9b3a3df1fa392c7fd) -- [readme] fix incorrect example [`3ee754a`](https://github.com/inspect-js/is-accessor-descriptor/commit/3ee754af6cb65c690ccd9ade150b33e8ec2808f8) -- [Tests] move tests to test dir [`5d70880`](https://github.com/inspect-js/is-accessor-descriptor/commit/5d70880ae2256d1f5927dab02c0bf8fe78cafef3) -- [Dev Deps] add missing `npmignore` [`97ce4bc`](https://github.com/inspect-js/is-accessor-descriptor/commit/97ce4bca878e775672e3d7349906bd7fc7db5f24) -- [Robustness] use a null object just in case [`675af5b`](https://github.com/inspect-js/is-accessor-descriptor/commit/675af5b191ebe9e18fb65c0aecb2a5ae65a535e0) - -## [v1.0.0](https://github.com/inspect-js/is-accessor-descriptor/compare/v0.1.6...v1.0.0) - 2017-11-01 - -### Merged - -- Pin mocha to version 3 to support Node 0.12 [`#3`](https://github.com/inspect-js/is-accessor-descriptor/pull/3) -- Update kind-of to version 6.0 [`#2`](https://github.com/inspect-js/is-accessor-descriptor/pull/2) - -### Commits - -- run update [`2489800`](https://github.com/inspect-js/is-accessor-descriptor/commit/2489800869cbecf53e9bc3596916abf2e6008edb) -- run verb to generate readme documentation [`22b0a26`](https://github.com/inspect-js/is-accessor-descriptor/commit/22b0a2617ccbebd131247c29e3700ca860d37d06) -- remove should [`4b10d2a`](https://github.com/inspect-js/is-accessor-descriptor/commit/4b10d2aa721021d5f7af69c47f49a1691a8c3fcd) - -## [v0.1.6](https://github.com/inspect-js/is-accessor-descriptor/compare/v0.1.5...v0.1.6) - 2015-12-28 - -### Commits - -- update docs [`914d85d`](https://github.com/inspect-js/is-accessor-descriptor/commit/914d85d44b914b8b693889081942bf95ea172914) -- update related projects [`92679ea`](https://github.com/inspect-js/is-accessor-descriptor/commit/92679eab1c0eb16eef052218e309aa55b10ce606) - -## [v0.1.5](https://github.com/inspect-js/is-accessor-descriptor/compare/v0.1.4...v0.1.5) - 2015-12-28 - -### Commits - -- run update [`139251c`](https://github.com/inspect-js/is-accessor-descriptor/commit/139251c5225d7cdc2b6d16e5c6c713b515643ce8) -- improve checks for valid/invalid properties [`de1be1e`](https://github.com/inspect-js/is-accessor-descriptor/commit/de1be1e6250ca2f084f5d0ac43fed8dd4f607376) -- use verb layout, add verb plugin for formatting markdown [`2324242`](https://github.com/inspect-js/is-accessor-descriptor/commit/23242429e18e6f518318cf1568ec53c636bc1085) -- run verb to generate readme [`84587a4`](https://github.com/inspect-js/is-accessor-descriptor/commit/84587a4269640683049cb06aa75ae9e33165b5fe) - -## [v0.1.4](https://github.com/inspect-js/is-accessor-descriptor/compare/v0.1.3...v0.1.4) - 2015-12-20 - -### Commits - -- lint [`d076464`](https://github.com/inspect-js/is-accessor-descriptor/commit/d0764648b3428e7f01303ea7835e25be9d1b5c21) -- generate docs [`12e2143`](https://github.com/inspect-js/is-accessor-descriptor/commit/12e2143ca3d93ece7ae73ee3fcbdb8952d7c5091) - -## [v0.1.3](https://github.com/inspect-js/is-accessor-descriptor/compare/v0.1.2...v0.1.3) - 2015-10-04 - -### Commits - -- files prop [`0bcef73`](https://github.com/inspect-js/is-accessor-descriptor/commit/0bcef73f2c7c90be7e05f3dd56f02fbe67790897) - -## [v0.1.2](https://github.com/inspect-js/is-accessor-descriptor/compare/v0.1.1...v0.1.2) - 2015-10-04 - -### Commits - -- lazy-cache [`fc6da15`](https://github.com/inspect-js/is-accessor-descriptor/commit/fc6da15ecef4a18c20f102a412d596407bb86a5c) -- update docs [`943c0cd`](https://github.com/inspect-js/is-accessor-descriptor/commit/943c0cd4d709eff029fa3880560aec27c0d0f458) - -## v0.1.1 - 2015-08-31 - -### Commits - -- first commit [`dca2279`](https://github.com/inspect-js/is-accessor-descriptor/commit/dca22793793cf208e65d8daee9d949d76252b647) -- 0.1.1 readme [`27c92b6`](https://github.com/inspect-js/is-accessor-descriptor/commit/27c92b65b85b9bfb39945d646f223cbfd262ab41) -- 0.1.1 docs [`09beed6`](https://github.com/inspect-js/is-accessor-descriptor/commit/09beed68a3c5a5ea76128d5faf2933848181750d) -- lint [`aa03d9b`](https://github.com/inspect-js/is-accessor-descriptor/commit/aa03d9ba1e65e2e71be0add9de75d25cc981e9e2) diff --git a/build/node_modules/is-accessor-descriptor/LICENSE b/build/node_modules/is-accessor-descriptor/LICENSE deleted file mode 100644 index e33d14b7..00000000 --- a/build/node_modules/is-accessor-descriptor/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-accessor-descriptor/README.md b/build/node_modules/is-accessor-descriptor/README.md deleted file mode 100644 index dde6c003..00000000 --- a/build/node_modules/is-accessor-descriptor/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# is-accessor-descriptor [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -> Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. - -## Examples - -```js -var isAccessor = require('is-accessor-descriptor'); -var assert = require('assert'); - -assert.equal(isAccessor({ get: function() {} }), true); -``` - -You may also pass an object and property name to check if the property is an accessor: - -```js -assert.equal(isAccessor({ bar: {} }, 'bar'), true); -``` - -## Examples - -`false` when not an object - -```js -assert.equal(isAccessor('a'), false); -assert.equal(isAccessor(null), false); -``` - -`true` when the object has valid properties - -and the properties all have the correct JavaScript types: - -```js -assert.equal(isAccessor({ get() {}, set() {} }), true); -assert.equal(isAccessor({ get() {} }), true); -assert.equal(isAccessor({ set() {} }), true); -``` - -`false` when the object has invalid properties - -```js -assert.equal(isAccessor({ get() {}, set() {}, enumerable: 'baz' }), false); -assert.equal(isAccessor({ get() {}, writable: true }), false); -assert.equal(isAccessor({ get() {}, value: true }), false); -``` - -`false` when an accessor is not a function - -```js -isAccessor({ get() {}, set: 'baz' }); -isAccessor({ get: 'foo', set() {} }); -isAccessor({ get: 'foo', bar: 'baz' }); -isAccessor({ get: 'foo', set: 'baz' }); -//=> false -``` - -`false` when a value is not the correct type - -```js -isAccessor({ get() {}, set() {}, enumerable: 'foo' }); -isAccessor({ set() {}, configurable: 'foo' }); -isAccessor({ get() {}, configurable: 'foo' }); -//=> false -``` - -### Related projects - -You might also be interested in these projects: - -* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. -* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/inspect-js/is-descriptor) -* [is-object](https://www.npmjs.com/package/is-object): Returns true if the value is an object and not an array or null. - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/is-accessor-descriptor -[npm-version-svg]: https://versionbadg.es/inspect-js/is-accessor-descriptor.svg -[deps-svg]: https://david-dm.org/inspect-js/is-accessor-descriptor.svg -[deps-url]: https://david-dm.org/inspect-js/is-accessor-descriptor -[dev-deps-svg]: https://david-dm.org/inspect-js/is-accessor-descriptor/dev-status.svg -[dev-deps-url]: https://david-dm.org/inspect-js/is-accessor-descriptor#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/is-accessor-descriptor.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-accessor-descriptor.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-accessor-descriptor.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-accessor-descriptor -[codecov-image]: https://codecov.io/gh/inspect-js/is-accessor-descriptor/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-accessor-descriptor/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-accessor-descriptor -[actions-url]: https://github.com/inspect-js/is-accessor-descriptor/actions diff --git a/build/node_modules/is-accessor-descriptor/index.js b/build/node_modules/is-accessor-descriptor/index.js deleted file mode 100644 index 64e46d55..00000000 --- a/build/node_modules/is-accessor-descriptor/index.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var hasOwn = require('hasown'); - -// accessor descriptor properties -var accessor = { - __proto__: null, - configurable: 'boolean', - enumerable: 'boolean', - get: 'function', - set: 'function' -}; - -module.exports = function isAccessorDescriptor(obj, prop) { - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } - - if (!obj || typeof obj !== 'object') { - return false; - } - - if (hasOwn(obj, 'value') || hasOwn(obj, 'writable')) { - return false; - } - - // one of them must be a function - if ( - (!hasOwn(obj, 'get') || typeof obj.get !== 'function') - && (!hasOwn(obj, 'set') || typeof obj.set !== 'function') - ) { - return false; - } - - // both of them must be a function or undefined - if ( - (hasOwn(obj, 'get') && typeof obj.get !== 'function' && typeof obj.get !== 'undefined') - || (hasOwn(obj, 'set') && typeof obj.set !== 'function' && typeof obj.set !== 'undefined') - ) { - return false; - } - - for (var key in obj) { // eslint-disable-line no-restricted-syntax - if (hasOwn(obj, key) && hasOwn(accessor, key) && typeof obj[key] !== accessor[key] && typeof obj[key] !== 'undefined') { - return false; - } - } - return true; -}; diff --git a/build/node_modules/is-accessor-descriptor/package.json b/build/node_modules/is-accessor-descriptor/package.json deleted file mode 100644 index ec2433e0..00000000 --- a/build/node_modules/is-accessor-descriptor/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "is-accessor-descriptor", - "version": "1.0.1", - "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.", - "main": "index.js", - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prelint": "evalmd README.md", - "lint": "eslint --ext=js,mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/is-accessor-descriptor.git" - }, - "keywords": [ - "descriptor", - "get", - "getter", - "is", - "keys", - "object", - "properties", - "property", - "set", - "setter", - "type", - "valid", - "value" - ], - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-accessor-descriptor/issues" - }, - "homepage": "https://github.com/inspect-js/is-accessor-descriptor", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" - ], - "dependencies": { - "hasown": "^2.0.0" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.2" - }, - "engines": { - "node": ">= 0.10" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/is-binary-path/index.d.ts b/build/node_modules/is-binary-path/index.d.ts deleted file mode 100644 index 19dcd432..00000000 --- a/build/node_modules/is-binary-path/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** -Check if a file path is a binary file. - -@example -``` -import isBinaryPath = require('is-binary-path'); - -isBinaryPath('source/unicorn.png'); -//=> true - -isBinaryPath('source/unicorn.txt'); -//=> false -``` -*/ -declare function isBinaryPath(filePath: string): boolean; - -export = isBinaryPath; diff --git a/build/node_modules/is-binary-path/index.js b/build/node_modules/is-binary-path/index.js deleted file mode 100644 index ef7548c8..00000000 --- a/build/node_modules/is-binary-path/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -const path = require('path'); -const binaryExtensions = require('binary-extensions'); - -const extensions = new Set(binaryExtensions); - -module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); diff --git a/build/node_modules/is-binary-path/license b/build/node_modules/is-binary-path/license deleted file mode 100644 index 401b1c73..00000000 --- a/build/node_modules/is-binary-path/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-binary-path/package.json b/build/node_modules/is-binary-path/package.json deleted file mode 100644 index a8d005ae..00000000 --- a/build/node_modules/is-binary-path/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "is-binary-path", - "version": "2.1.0", - "description": "Check if a file path is a binary file", - "license": "MIT", - "repository": "sindresorhus/is-binary-path", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "binary", - "extensions", - "extension", - "file", - "path", - "check", - "detect", - "is" - ], - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-binary-path/readme.md b/build/node_modules/is-binary-path/readme.md deleted file mode 100644 index b4ab0251..00000000 --- a/build/node_modules/is-binary-path/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) - -> Check if a file path is a binary file - - -## Install - -``` -$ npm install is-binary-path -``` - - -## Usage - -```js -const isBinaryPath = require('is-binary-path'); - -isBinaryPath('source/unicorn.png'); -//=> true - -isBinaryPath('source/unicorn.txt'); -//=> false -``` - - -## Related - -- [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions -- [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) diff --git a/build/node_modules/is-buffer/LICENSE b/build/node_modules/is-buffer/LICENSE deleted file mode 100644 index 0c068cee..00000000 --- a/build/node_modules/is-buffer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Feross Aboukhadijeh - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-buffer/README.md b/build/node_modules/is-buffer/README.md deleted file mode 100644 index cce0a8cf..00000000 --- a/build/node_modules/is-buffer/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# is-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] - -[travis-image]: https://img.shields.io/travis/feross/is-buffer/master.svg -[travis-url]: https://travis-ci.org/feross/is-buffer -[npm-image]: https://img.shields.io/npm/v/is-buffer.svg -[npm-url]: https://npmjs.org/package/is-buffer -[downloads-image]: https://img.shields.io/npm/dm/is-buffer.svg -[downloads-url]: https://npmjs.org/package/is-buffer -[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg -[standard-url]: https://standardjs.com - -#### Determine if an object is a [`Buffer`](http://nodejs.org/api/buffer.html) (including the [browserify Buffer](https://github.com/feross/buffer)) - -[![saucelabs][saucelabs-image]][saucelabs-url] - -[saucelabs-image]: https://saucelabs.com/browser-matrix/is-buffer.svg -[saucelabs-url]: https://saucelabs.com/u/is-buffer - -## Why not use `Buffer.isBuffer`? - -This module lets you check if an object is a `Buffer` without using `Buffer.isBuffer` (which includes the whole [buffer](https://github.com/feross/buffer) module in [browserify](http://browserify.org/)). - -It's future-proof and works in node too! - -## install - -```bash -npm install is-buffer -``` - -## usage - -```js -var isBuffer = require('is-buffer') - -isBuffer(new Buffer(4)) // true - -isBuffer(undefined) // false -isBuffer(null) // false -isBuffer('') // false -isBuffer(true) // false -isBuffer(false) // false -isBuffer(0) // false -isBuffer(1) // false -isBuffer(1.0) // false -isBuffer('string') // false -isBuffer({}) // false -isBuffer(function foo () {}) // false -``` - -## license - -MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org). diff --git a/build/node_modules/is-buffer/index.js b/build/node_modules/is-buffer/index.js deleted file mode 100644 index 9cce3965..00000000 --- a/build/node_modules/is-buffer/index.js +++ /dev/null @@ -1,21 +0,0 @@ -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) -} - -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} - -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} diff --git a/build/node_modules/is-buffer/package.json b/build/node_modules/is-buffer/package.json deleted file mode 100644 index ea12137a..00000000 --- a/build/node_modules/is-buffer/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "is-buffer", - "description": "Determine if an object is a Buffer", - "version": "1.1.6", - "author": { - "name": "Feross Aboukhadijeh", - "email": "feross@feross.org", - "url": "http://feross.org/" - }, - "bugs": { - "url": "https://github.com/feross/is-buffer/issues" - }, - "dependencies": {}, - "devDependencies": { - "standard": "*", - "tape": "^4.0.0", - "zuul": "^3.0.0" - }, - "keywords": [ - "buffer", - "buffers", - "type", - "core buffer", - "browser buffer", - "browserify", - "typed array", - "uint32array", - "int16array", - "int32array", - "float32array", - "float64array", - "browser", - "arraybuffer", - "dataview" - ], - "license": "MIT", - "main": "index.js", - "repository": { - "type": "git", - "url": "git://github.com/feross/is-buffer.git" - }, - "scripts": { - "test": "standard && npm run test-node && npm run test-browser", - "test-browser": "zuul -- test/*.js", - "test-browser-local": "zuul --local -- test/*.js", - "test-node": "tape test/*.js" - }, - "testling": { - "files": "test/*.js" - } -} diff --git a/build/node_modules/is-core-module/.eslintrc b/build/node_modules/is-core-module/.eslintrc deleted file mode 100644 index f2e07268..00000000 --- a/build/node_modules/is-core-module/.eslintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "@ljharb", - "root": true, - "rules": { - "func-style": 1, - }, - "overrides": [ - { - "files": "test/**", - "rules": { - "global-require": 0, - "max-depth": 0, - "max-lines-per-function": 0, - "no-negated-condition": 0, - }, - }, - ], -} diff --git a/build/node_modules/is-core-module/.nycrc b/build/node_modules/is-core-module/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/is-core-module/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/is-core-module/CHANGELOG.md b/build/node_modules/is-core-module/CHANGELOG.md deleted file mode 100644 index c4db1ace..00000000 --- a/build/node_modules/is-core-module/CHANGELOG.md +++ /dev/null @@ -1,180 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v2.13.1](https://github.com/inspect-js/is-core-module/compare/v2.13.0...v2.13.1) - 2023-10-20 - -### Commits - -- [Refactor] use `hasown` instead of `has` [`0e52096`](https://github.com/inspect-js/is-core-module/commit/0e520968b0a725276b67420ab4b877486b243ae0) -- [Dev Deps] update `mock-property`, `tape` [`8736b35`](https://github.com/inspect-js/is-core-module/commit/8736b35464d0f297b55da2c6b30deee04b8303c5) - -## [v2.13.0](https://github.com/inspect-js/is-core-module/compare/v2.12.1...v2.13.0) - 2023-08-05 - -### Commits - -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `semver`, `tape` [`c75b263`](https://github.com/inspect-js/is-core-module/commit/c75b263d047cb53430c3970107e5eb64d6cd6c0c) -- [New] `node:test/reporters` and `wasi`/`node:wasi` are in v18.17 [`d76cbf8`](https://github.com/inspect-js/is-core-module/commit/d76cbf8e9b208acfd98913fed5a5f45cb15fe5dc) - -## [v2.12.1](https://github.com/inspect-js/is-core-module/compare/v2.12.0...v2.12.1) - 2023-05-16 - -### Commits - -- [Fix] `test/reporters` now requires the `node:` prefix as of v20.2 [`12183d0`](https://github.com/inspect-js/is-core-module/commit/12183d0d8e4edf56b6ce18a1b3be54bfce10175b) - -## [v2.12.0](https://github.com/inspect-js/is-core-module/compare/v2.11.0...v2.12.0) - 2023-04-10 - -### Commits - -- [actions] update rebase action to use reusable workflow [`c0a7251`](https://github.com/inspect-js/is-core-module/commit/c0a7251f734f3c621932c5fcdfd1bf966b42ca32) -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9ae8b7f`](https://github.com/inspect-js/is-core-module/commit/9ae8b7fac03c369861d0991b4a2ce8d4848e6a7d) -- [New] `test/reporters` added in v19.9, `wasi` added in v20 [`9d5341a`](https://github.com/inspect-js/is-core-module/commit/9d5341ab32053f25b7fa7db3c0e18461db24a79c) -- [Dev Deps] add missing `in-publish` dep [`5980245`](https://github.com/inspect-js/is-core-module/commit/59802456e9ac919fa748f53be9d8fbf304a197df) - -## [v2.11.0](https://github.com/inspect-js/is-core-module/compare/v2.10.0...v2.11.0) - 2022-10-18 - -### Commits - -- [meta] use `npmignore` to autogenerate an npmignore file [`3360011`](https://github.com/inspect-js/is-core-module/commit/33600118857b46177178072fba2affcdeb009d12) -- [Dev Deps] update `aud`, `tape` [`651c6b0`](https://github.com/inspect-js/is-core-module/commit/651c6b0cc2799d4130866cf43ad333dcade3d26c) -- [New] `inspector/promises` and `node:inspector/promises` is now available in node 19 [`22d332f`](https://github.com/inspect-js/is-core-module/commit/22d332fe22ac050305444e0781ff85af819abcb0) - -## [v2.10.0](https://github.com/inspect-js/is-core-module/compare/v2.9.0...v2.10.0) - 2022-08-03 - -### Commits - -- [New] `node:test` is now available in node ^16.17 [`e8fd36e`](https://github.com/inspect-js/is-core-module/commit/e8fd36e9b86c917775a07cc473b62a3294f459f2) -- [Tests] improve skip message [`c014a4c`](https://github.com/inspect-js/is-core-module/commit/c014a4c0cd6eb15fff573ae4709191775e70cab4) - -## [v2.9.0](https://github.com/inspect-js/is-core-module/compare/v2.8.1...v2.9.0) - 2022-04-19 - -### Commits - -- [New] add `node:test`, in node 18+ [`f853eca`](https://github.com/inspect-js/is-core-module/commit/f853eca801d0a7d4e1dbb670f1b6d9837d9533c5) -- [Tests] use `mock-property` [`03b3644`](https://github.com/inspect-js/is-core-module/commit/03b3644dff4417f4ba5a7d0aa0138f5f6b3e5c46) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`7c0e2d0`](https://github.com/inspect-js/is-core-module/commit/7c0e2d06ed2a89acf53abe2ab34d703ed5b03455) -- [meta] simplify "exports" [`d6ed201`](https://github.com/inspect-js/is-core-module/commit/d6ed201eba7fbba0e59814a9050fc49a6e9878c8) - -## [v2.8.1](https://github.com/inspect-js/is-core-module/compare/v2.8.0...v2.8.1) - 2022-01-05 - -### Commits - -- [actions] reuse common workflows [`cd2cf9b`](https://github.com/inspect-js/is-core-module/commit/cd2cf9b3b66c8d328f65610efe41e9325db7716d) -- [Fix] update node 0.4 results [`062195d`](https://github.com/inspect-js/is-core-module/commit/062195d89f0876a88b95d378b43f7fcc1205bc5b) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`0790b62`](https://github.com/inspect-js/is-core-module/commit/0790b6222848c6167132f9f73acc3520fa8d1298) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`7d139a6`](https://github.com/inspect-js/is-core-module/commit/7d139a6d767709eabf0a0251e074ec1fb230c06e) -- [Tests] run `nyc` in `tests-only`, not `test` [`780e8a0`](https://github.com/inspect-js/is-core-module/commit/780e8a049951c71cf78b1707f0871c48a28bde14) - -## [v2.8.0](https://github.com/inspect-js/is-core-module/compare/v2.7.0...v2.8.0) - 2021-10-14 - -### Commits - -- [actions] update codecov uploader [`0cfe94e`](https://github.com/inspect-js/is-core-module/commit/0cfe94e106a7d005ea03e008c0a21dec13a77904) -- [New] add `readline/promises` to node v17+ [`4f78c30`](https://github.com/inspect-js/is-core-module/commit/4f78c3008b1b58b4db6dc91d99610b1bc859da7e) -- [Tests] node ^14.18 supports `node:` prefixes for CJS [`43e2f17`](https://github.com/inspect-js/is-core-module/commit/43e2f177452cea2f0eaf34f61b5407217bbdb6f4) - -## [v2.7.0](https://github.com/inspect-js/is-core-module/compare/v2.6.0...v2.7.0) - 2021-09-27 - -### Commits - -- [New] node `v14.18` added `node:`-prefixed core modules to `require` [`6d943ab`](https://github.com/inspect-js/is-core-module/commit/6d943abe81382b9bbe344384d80fbfebe1cc0526) -- [Tests] add coverage for Object.prototype pollution [`c6baf5f`](https://github.com/inspect-js/is-core-module/commit/c6baf5f942311a1945c1af41167bb80b84df2af7) -- [Dev Deps] update `@ljharb/eslint-config` [`6717f00`](https://github.com/inspect-js/is-core-module/commit/6717f000d063ea57beb772bded36c2f056ac404c) -- [eslint] fix linter warning [`594c10b`](https://github.com/inspect-js/is-core-module/commit/594c10bb7d39d7eb00925c90924199ff596184b2) -- [meta] add `sideEffects` flag [`c32cfa5`](https://github.com/inspect-js/is-core-module/commit/c32cfa5195632944c4dd4284a142b8476e75be13) - -## [v2.6.0](https://github.com/inspect-js/is-core-module/compare/v2.5.0...v2.6.0) - 2021-08-17 - -### Commits - -- [Dev Deps] update `eslint`, `tape` [`6cc928f`](https://github.com/inspect-js/is-core-module/commit/6cc928f8a4bba66aeeccc4f6beeac736d4bd3081) -- [New] add `stream/consumers` to node `>= 16.7` [`a1a423e`](https://github.com/inspect-js/is-core-module/commit/a1a423e467e4cc27df180234fad5bab45943e67d) -- [Refactor] Remove duplicated `&&` operand [`86faea7`](https://github.com/inspect-js/is-core-module/commit/86faea738213a2433c62d1098488dc9314dca832) -- [Tests] include prereleases [`a4da7a6`](https://github.com/inspect-js/is-core-module/commit/a4da7a6abf7568e2aa4fd98e69452179f1850963) - -## [v2.5.0](https://github.com/inspect-js/is-core-module/compare/v2.4.0...v2.5.0) - 2021-07-12 - -### Commits - -- [Dev Deps] update `auto-changelog`, `eslint` [`6334cc9`](https://github.com/inspect-js/is-core-module/commit/6334cc94f3af7469685bd8f236740991baaf2705) -- [New] add `stream/web` to node v16.5+ [`17ac59b`](https://github.com/inspect-js/is-core-module/commit/17ac59b662d63e220a2e5728625f005c24f177b2) - -## [v2.4.0](https://github.com/inspect-js/is-core-module/compare/v2.3.0...v2.4.0) - 2021-05-09 - -### Commits - -- [readme] add actions and codecov badges [`82b7faa`](https://github.com/inspect-js/is-core-module/commit/82b7faa12b56dbe47fbea67e1a5b9e447027ba40) -- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`8096868`](https://github.com/inspect-js/is-core-module/commit/8096868c024a161ccd4d44110b136763e92eace8) -- [Dev Deps] update `eslint` [`6726824`](https://github.com/inspect-js/is-core-module/commit/67268249b88230018c510f6532a8046d7326346f) -- [New] add `diagnostics_channel` to node `^14.17` [`86c6563`](https://github.com/inspect-js/is-core-module/commit/86c65634201b8ff9b3e48a9a782594579c7f5c3c) -- [meta] fix prepublish script [`697a01e`](https://github.com/inspect-js/is-core-module/commit/697a01e3c9c0be074066520954f30fb28532ec57) - -## [v2.3.0](https://github.com/inspect-js/is-core-module/compare/v2.2.0...v2.3.0) - 2021-04-24 - -### Commits - -- [meta] do not publish github action workflow files [`060d4bb`](https://github.com/inspect-js/is-core-module/commit/060d4bb971a29451c19ff336eb56bee27f9fa95a) -- [New] add support for `node:` prefix, in node 16+ [`7341223`](https://github.com/inspect-js/is-core-module/commit/73412230a769f6e81c05eea50b6520cebf54ed2f) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`016269a`](https://github.com/inspect-js/is-core-module/commit/016269abae9f6657a5254adfbb813f09a05067f9) -- [patch] remove unneeded `.0` in version ranges [`cb466a6`](https://github.com/inspect-js/is-core-module/commit/cb466a6d89e52b8389e5c12715efcd550c41cea3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`c9f9c39`](https://github.com/inspect-js/is-core-module/commit/c9f9c396ace60ef81906f98059c064e6452473ed) -- [actions] update workflows [`3ee4a89`](https://github.com/inspect-js/is-core-module/commit/3ee4a89fd5a02fccd43882d905448ea6a98e9a3c) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`dee4fed`](https://github.com/inspect-js/is-core-module/commit/dee4fed79690c1d43a22f7fa9426abebdc6d727f) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`7d046ba`](https://github.com/inspect-js/is-core-module/commit/7d046ba07ae8c9292e43652694ca808d7b309de8) -- [meta] use `prepublishOnly` script for npm 7+ [`149e677`](https://github.com/inspect-js/is-core-module/commit/149e6771a5ede6d097e71785b467a9c4b4977cc7) -- [readme] remove travis badge [`903b51d`](https://github.com/inspect-js/is-core-module/commit/903b51d6b69b98abeabfbc3695c345b02646f19c) - -## [v2.2.0](https://github.com/inspect-js/is-core-module/compare/v2.1.0...v2.2.0) - 2020-11-26 - -### Commits - -- [Tests] migrate tests to Github Actions [`c919f57`](https://github.com/inspect-js/is-core-module/commit/c919f573c0a92d10a0acad0b650b5aecb033d426) -- [patch] `core.json`: %s/ /\t/g [`db3f685`](https://github.com/inspect-js/is-core-module/commit/db3f68581f53e73cc09cd675955eb1bdd6a5a39b) -- [Tests] run `nyc` on all tests [`b2f925f`](https://github.com/inspect-js/is-core-module/commit/b2f925f8866f210ef441f39fcc8cc42692ab89b1) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`; add `safe-publish-latest` [`89f02a2`](https://github.com/inspect-js/is-core-module/commit/89f02a2b4162246dea303a6ee31bb9a550b05c72) -- [New] add `path/posix`, `path/win32`, `util/types` [`77f94f1`](https://github.com/inspect-js/is-core-module/commit/77f94f1e90ffd7c0be2a3f1aa8574ebf7fd981b3) - -## [v2.1.0](https://github.com/inspect-js/is-core-module/compare/v2.0.0...v2.1.0) - 2020-11-04 - -### Commits - -- [Dev Deps] update `eslint` [`5e0034e`](https://github.com/inspect-js/is-core-module/commit/5e0034eae57c09c8f1bd769f502486a00f56c6e4) -- [New] Add `diagnostics_channel` [`c2d83d0`](https://github.com/inspect-js/is-core-module/commit/c2d83d0a0225a1a658945d9bab7036ea347d29ec) - -## [v2.0.0](https://github.com/inspect-js/is-core-module/compare/v1.0.2...v2.0.0) - 2020-09-29 - -### Commits - -- v2 implementation [`865aeb5`](https://github.com/inspect-js/is-core-module/commit/865aeb5ca0e90248a3dfff5d7622e4751fdeb9cd) -- Only apps should have lockfiles [`5a5e660`](https://github.com/inspect-js/is-core-module/commit/5a5e660d568e37eb44e17fb1ebb12a105205fc2b) -- Initial commit for v2 [`5a51524`](https://github.com/inspect-js/is-core-module/commit/5a51524e06f92adece5fbb138c69b7b9748a2348) -- Tests [`116eae4`](https://github.com/inspect-js/is-core-module/commit/116eae4fccd01bc72c1fd3cc4b7561c387afc496) -- [meta] add `auto-changelog` [`c24388b`](https://github.com/inspect-js/is-core-module/commit/c24388bee828d223040519d1f5b226ca35beee63) -- [actions] add "Automatic Rebase" and "require allow edits" actions [`34292db`](https://github.com/inspect-js/is-core-module/commit/34292dbcbadae0868aff03c22dbd8b7b8a11558a) -- [Tests] add `npm run lint` [`4f9eeee`](https://github.com/inspect-js/is-core-module/commit/4f9eeee7ddff10698bbf528620f4dc8d4fa3e697) -- [readme] fix travis badges, https all URLs [`e516a73`](https://github.com/inspect-js/is-core-module/commit/e516a73b0dccce20938c432b1ba512eae8eff9e9) -- [meta] create FUNDING.yml [`1aabebc`](https://github.com/inspect-js/is-core-module/commit/1aabebca98d01f8a04e46bc2e2520fa93cf21ac6) -- [Fix] `domain`: domain landed sometime > v0.7.7 and <= v0.7.12 [`2df7d37`](https://github.com/inspect-js/is-core-module/commit/2df7d37595d41b15eeada732b706b926c2771655) -- [Fix] `sys`: worked in 0.6, not 0.7, and 0.8+ [`a75c134`](https://github.com/inspect-js/is-core-module/commit/a75c134229e1e9441801f6b73f6a52489346eb65) - -## [v1.0.2](https://github.com/inspect-js/is-core-module/compare/v1.0.1...v1.0.2) - 2014-09-28 - -### Commits - -- simpler [`66fe90f`](https://github.com/inspect-js/is-core-module/commit/66fe90f9771581b9adc0c3900baa52c21b5baea2) - -## [v1.0.1](https://github.com/inspect-js/is-core-module/compare/v1.0.0...v1.0.1) - 2014-09-28 - -### Commits - -- remove stupid [`f21f906`](https://github.com/inspect-js/is-core-module/commit/f21f906f882c2bd656a5fc5ed6fbe48ddaffb2ac) -- update readme [`1eff0ec`](https://github.com/inspect-js/is-core-module/commit/1eff0ec69798d1ec65771552d1562911e90a8027) - -## v1.0.0 - 2014-09-28 - -### Commits - -- init [`48e5e76`](https://github.com/inspect-js/is-core-module/commit/48e5e76cac378fddb8c1f7d4055b8dfc943d6b96) diff --git a/build/node_modules/is-core-module/LICENSE b/build/node_modules/is-core-module/LICENSE deleted file mode 100644 index 2e502872..00000000 --- a/build/node_modules/is-core-module/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Dave Justice - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/is-core-module/README.md b/build/node_modules/is-core-module/README.md deleted file mode 100644 index 062d9068..00000000 --- a/build/node_modules/is-core-module/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# is-core-module [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this specifier a node.js core module? Optionally provide a node version to check; defaults to the current node version. - -## Example - -```js -var isCore = require('is-core-module'); -var assert = require('assert'); -assert(isCore('fs')); -assert(!isCore('butts')); -``` - -## Tests -Clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-core-module -[2]: https://versionbadg.es/inspect-js/is-core-module.svg -[5]: https://david-dm.org/inspect-js/is-core-module.svg -[6]: https://david-dm.org/inspect-js/is-core-module -[7]: https://david-dm.org/inspect-js/is-core-module/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-core-module#info=devDependencies -[11]: https://nodei.co/npm/is-core-module.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-core-module.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-core-module.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-core-module -[codecov-image]: https://codecov.io/gh/inspect-js/is-core-module/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-core-module/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-core-module -[actions-url]: https://github.com/inspect-js/is-core-module/actions diff --git a/build/node_modules/is-core-module/core.json b/build/node_modules/is-core-module/core.json deleted file mode 100644 index 3cda693d..00000000 --- a/build/node_modules/is-core-module/core.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "assert": true, - "node:assert": [">= 14.18 && < 15", ">= 16"], - "assert/strict": ">= 15", - "node:assert/strict": ">= 16", - "async_hooks": ">= 8", - "node:async_hooks": [">= 14.18 && < 15", ">= 16"], - "buffer_ieee754": ">= 0.5 && < 0.9.7", - "buffer": true, - "node:buffer": [">= 14.18 && < 15", ">= 16"], - "child_process": true, - "node:child_process": [">= 14.18 && < 15", ">= 16"], - "cluster": ">= 0.5", - "node:cluster": [">= 14.18 && < 15", ">= 16"], - "console": true, - "node:console": [">= 14.18 && < 15", ">= 16"], - "constants": true, - "node:constants": [">= 14.18 && < 15", ">= 16"], - "crypto": true, - "node:crypto": [">= 14.18 && < 15", ">= 16"], - "_debug_agent": ">= 1 && < 8", - "_debugger": "< 8", - "dgram": true, - "node:dgram": [">= 14.18 && < 15", ">= 16"], - "diagnostics_channel": [">= 14.17 && < 15", ">= 15.1"], - "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], - "dns": true, - "node:dns": [">= 14.18 && < 15", ">= 16"], - "dns/promises": ">= 15", - "node:dns/promises": ">= 16", - "domain": ">= 0.7.12", - "node:domain": [">= 14.18 && < 15", ">= 16"], - "events": true, - "node:events": [">= 14.18 && < 15", ">= 16"], - "freelist": "< 6", - "fs": true, - "node:fs": [">= 14.18 && < 15", ">= 16"], - "fs/promises": [">= 10 && < 10.1", ">= 14"], - "node:fs/promises": [">= 14.18 && < 15", ">= 16"], - "_http_agent": ">= 0.11.1", - "node:_http_agent": [">= 14.18 && < 15", ">= 16"], - "_http_client": ">= 0.11.1", - "node:_http_client": [">= 14.18 && < 15", ">= 16"], - "_http_common": ">= 0.11.1", - "node:_http_common": [">= 14.18 && < 15", ">= 16"], - "_http_incoming": ">= 0.11.1", - "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], - "_http_outgoing": ">= 0.11.1", - "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], - "_http_server": ">= 0.11.1", - "node:_http_server": [">= 14.18 && < 15", ">= 16"], - "http": true, - "node:http": [">= 14.18 && < 15", ">= 16"], - "http2": ">= 8.8", - "node:http2": [">= 14.18 && < 15", ">= 16"], - "https": true, - "node:https": [">= 14.18 && < 15", ">= 16"], - "inspector": ">= 8", - "node:inspector": [">= 14.18 && < 15", ">= 16"], - "inspector/promises": [">= 19"], - "node:inspector/promises": [">= 19"], - "_linklist": "< 8", - "module": true, - "node:module": [">= 14.18 && < 15", ">= 16"], - "net": true, - "node:net": [">= 14.18 && < 15", ">= 16"], - "node-inspect/lib/_inspect": ">= 7.6 && < 12", - "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", - "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", - "os": true, - "node:os": [">= 14.18 && < 15", ">= 16"], - "path": true, - "node:path": [">= 14.18 && < 15", ">= 16"], - "path/posix": ">= 15.3", - "node:path/posix": ">= 16", - "path/win32": ">= 15.3", - "node:path/win32": ">= 16", - "perf_hooks": ">= 8.5", - "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], - "process": ">= 1", - "node:process": [">= 14.18 && < 15", ">= 16"], - "punycode": ">= 0.5", - "node:punycode": [">= 14.18 && < 15", ">= 16"], - "querystring": true, - "node:querystring": [">= 14.18 && < 15", ">= 16"], - "readline": true, - "node:readline": [">= 14.18 && < 15", ">= 16"], - "readline/promises": ">= 17", - "node:readline/promises": ">= 17", - "repl": true, - "node:repl": [">= 14.18 && < 15", ">= 16"], - "smalloc": ">= 0.11.5 && < 3", - "_stream_duplex": ">= 0.9.4", - "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], - "_stream_transform": ">= 0.9.4", - "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], - "_stream_wrap": ">= 1.4.1", - "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], - "_stream_passthrough": ">= 0.9.4", - "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], - "_stream_readable": ">= 0.9.4", - "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], - "_stream_writable": ">= 0.9.4", - "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], - "stream": true, - "node:stream": [">= 14.18 && < 15", ">= 16"], - "stream/consumers": ">= 16.7", - "node:stream/consumers": ">= 16.7", - "stream/promises": ">= 15", - "node:stream/promises": ">= 16", - "stream/web": ">= 16.5", - "node:stream/web": ">= 16.5", - "string_decoder": true, - "node:string_decoder": [">= 14.18 && < 15", ">= 16"], - "sys": [">= 0.4 && < 0.7", ">= 0.8"], - "node:sys": [">= 14.18 && < 15", ">= 16"], - "test/reporters": ">= 19.9 && < 20.2", - "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], - "node:test": [">= 16.17 && < 17", ">= 18"], - "timers": true, - "node:timers": [">= 14.18 && < 15", ">= 16"], - "timers/promises": ">= 15", - "node:timers/promises": ">= 16", - "_tls_common": ">= 0.11.13", - "node:_tls_common": [">= 14.18 && < 15", ">= 16"], - "_tls_legacy": ">= 0.11.3 && < 10", - "_tls_wrap": ">= 0.11.3", - "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], - "tls": true, - "node:tls": [">= 14.18 && < 15", ">= 16"], - "trace_events": ">= 10", - "node:trace_events": [">= 14.18 && < 15", ">= 16"], - "tty": true, - "node:tty": [">= 14.18 && < 15", ">= 16"], - "url": true, - "node:url": [">= 14.18 && < 15", ">= 16"], - "util": true, - "node:util": [">= 14.18 && < 15", ">= 16"], - "util/types": ">= 15.3", - "node:util/types": ">= 16", - "v8/tools/arguments": ">= 10 && < 12", - "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], - "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], - "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], - "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], - "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], - "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], - "v8": ">= 1", - "node:v8": [">= 14.18 && < 15", ">= 16"], - "vm": true, - "node:vm": [">= 14.18 && < 15", ">= 16"], - "wasi": [">= 13.4 && < 13.5", ">= 18.17 && < 19", ">= 20"], - "node:wasi": [">= 18.17 && < 19", ">= 20"], - "worker_threads": ">= 11.7", - "node:worker_threads": [">= 14.18 && < 15", ">= 16"], - "zlib": ">= 0.5", - "node:zlib": [">= 14.18 && < 15", ">= 16"] -} diff --git a/build/node_modules/is-core-module/index.js b/build/node_modules/is-core-module/index.js deleted file mode 100644 index 423e20c0..00000000 --- a/build/node_modules/is-core-module/index.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; - -var hasOwn = require('hasown'); - -function specifierIncluded(current, specifier) { - var nodeParts = current.split('.'); - var parts = specifier.split(' '); - var op = parts.length > 1 ? parts[0] : '='; - var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); - - for (var i = 0; i < 3; ++i) { - var cur = parseInt(nodeParts[i] || 0, 10); - var ver = parseInt(versionParts[i] || 0, 10); - if (cur === ver) { - continue; // eslint-disable-line no-restricted-syntax, no-continue - } - if (op === '<') { - return cur < ver; - } - if (op === '>=') { - return cur >= ver; - } - return false; - } - return op === '>='; -} - -function matchesRange(current, range) { - var specifiers = range.split(/ ?&& ?/); - if (specifiers.length === 0) { - return false; - } - for (var i = 0; i < specifiers.length; ++i) { - if (!specifierIncluded(current, specifiers[i])) { - return false; - } - } - return true; -} - -function versionIncluded(nodeVersion, specifierValue) { - if (typeof specifierValue === 'boolean') { - return specifierValue; - } - - var current = typeof nodeVersion === 'undefined' - ? process.versions && process.versions.node - : nodeVersion; - - if (typeof current !== 'string') { - throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required'); - } - - if (specifierValue && typeof specifierValue === 'object') { - for (var i = 0; i < specifierValue.length; ++i) { - if (matchesRange(current, specifierValue[i])) { - return true; - } - } - return false; - } - return matchesRange(current, specifierValue); -} - -var data = require('./core.json'); - -module.exports = function isCore(x, nodeVersion) { - return hasOwn(data, x) && versionIncluded(nodeVersion, data[x]); -}; diff --git a/build/node_modules/is-core-module/package.json b/build/node_modules/is-core-module/package.json deleted file mode 100644 index 1bac5851..00000000 --- a/build/node_modules/is-core-module/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "is-core-module", - "version": "2.13.1", - "description": "Is this specifier a node.js core module?", - "main": "index.js", - "sideEffects": false, - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "lint": "eslint .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/is-core-module.git" - }, - "keywords": [ - "core", - "modules", - "module", - "npm", - "node", - "dependencies" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-core-module/issues" - }, - "homepage": "https://github.com/inspect-js/is-core-module", - "dependencies": { - "hasown": "^2.0.0" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "in-publish": "^2.0.1", - "mock-property": "^1.0.2", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "semver": "^6.3.1", - "tape": "^5.7.1" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github" - ] - } -} diff --git a/build/node_modules/is-data-descriptor/.editorconfig b/build/node_modules/is-data-descriptor/.editorconfig deleted file mode 100644 index 449f0da4..00000000 --- a/build/node_modules/is-data-descriptor/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# http://editorconfig.org/ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[{**/{actual,fixtures,expected,templates}/**,*.md}] -trim_trailing_whitespace = false -insert_final_newline = false diff --git a/build/node_modules/is-data-descriptor/.eslintrc b/build/node_modules/is-data-descriptor/.eslintrc deleted file mode 100644 index a3e0df3f..00000000 --- a/build/node_modules/is-data-descriptor/.eslintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb/eslint-config/node/0.4", - - "overrides": [ - { - "files": "test/**/*.js", - "rules": { - "max-lines-per-function": "warn", - "max-nested-callbacks": "warn", - }, - }, - ], -} diff --git a/build/node_modules/is-data-descriptor/.nycrc b/build/node_modules/is-data-descriptor/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/is-data-descriptor/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/is-data-descriptor/CHANGELOG.md b/build/node_modules/is-data-descriptor/CHANGELOG.md deleted file mode 100644 index 3e1ca8d7..00000000 --- a/build/node_modules/is-data-descriptor/CHANGELOG.md +++ /dev/null @@ -1,109 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v2.1.2](https://github.com/inspect-js/is-data-descriptor/compare/v2.1.1...v2.1.2) - 2023-10-25 - -### Commits - -- [Refactor] use `hasown` [`77ad812`](https://github.com/inspect-js/is-data-descriptor/commit/77ad8129c7543f6826e2cbcadc015cc815ef94b7) -- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`88f2cb7`](https://github.com/inspect-js/is-data-descriptor/commit/88f2cb744242131a98086967ea4a3c5d42c6fa77) - -## [v2.1.1](https://github.com/inspect-js/is-data-descriptor/compare/v2.1.0...v2.1.1) - 2023-04-27 - -### Commits - -- [Fix] when an object/key pair is provided, check arguments.length instead of key truthiness [`72692d3`](https://github.com/inspect-js/is-data-descriptor/commit/72692d3c1184e4d1f11faecbc9446b21cf5610a1) -- [readme] remove empty section [`72ec85b`](https://github.com/inspect-js/is-data-descriptor/commit/72ec85b9c4d781d551f19e595cca91b5f933d90d) - -## [v2.1.0](https://github.com/inspect-js/is-data-descriptor/compare/v2.0.0...v2.1.0) - 2023-04-27 - -### Commits - -- [eslint] cleanup [`c18a236`](https://github.com/inspect-js/is-data-descriptor/commit/c18a23640c00f32fca39112381b5cabdaa6a9a55) -- [Tests] travis -> Github Actions; add `safe-publish-latest`, `npmignore`, `auto-changelog`, `evalmd`, `aud` [`5758410`](https://github.com/inspect-js/is-data-descriptor/commit/5758410ec503add0727f2215633e5b1998c21293) -- [readme] clean up docs, URLs, package.json, etc [`28f61dd`](https://github.com/inspect-js/is-data-descriptor/commit/28f61dd676d8661ca7468e091ddf2e22bf4a8da2) -- [Docs] remove verb [`e20d28c`](https://github.com/inspect-js/is-data-descriptor/commit/e20d28cc86ce8a7cbc4beb0f306e5a4034b6d704) -- [Tests] convert from mocha to tape [`666c175`](https://github.com/inspect-js/is-data-descriptor/commit/666c1755f29668098dc07fbda0eb1d354a4da640) -- [New] increase support from node 6 down to node 0.4 [`aa43b69`](https://github.com/inspect-js/is-data-descriptor/commit/aa43b699b4a53b97e7af13f4d49eb7a21d253d99) -- [Tests] add coverage [`8f094f6`](https://github.com/inspect-js/is-data-descriptor/commit/8f094f6809514862f367c07bd879f2de42f4d9d0) -- [meta] switch from `files` field to npmignore; add `exports` [`2769e1d`](https://github.com/inspect-js/is-data-descriptor/commit/2769e1d408330b05331a40216e7a6bdce2322f69) -- [Deps] remove unused `kind-of` [`bc87bcd`](https://github.com/inspect-js/is-data-descriptor/commit/bc87bcd5f9abfa3ac8bcd2daf85ca9c380cb225d) - -## [v2.0.0](https://github.com/inspect-js/is-data-descriptor/compare/v1.0.1...v2.0.0) - 2018-12-13 - -### Commits - -- refactor [`8dcc492`](https://github.com/inspect-js/is-data-descriptor/commit/8dcc492bfb8e6d5b7964c1c566cdfe27ffbd8b0a) - -## [v1.0.1](https://github.com/inspect-js/is-data-descriptor/compare/v1.0.0...v1.0.1) - 2023-10-26 - -### Commits - -- [eslint] actually use eslint [`65fed07`](https://github.com/inspect-js/is-data-descriptor/commit/65fed07b2dde027da64f303c21a44a4375a2e2bd) -- [readme] clean up readme, remove verb [`10ad663`](https://github.com/inspect-js/is-data-descriptor/commit/10ad663093b0ed9c9c0c13c6db4ead4351b8670e) -- [meta] clean up package.json [`7f76a01`](https://github.com/inspect-js/is-data-descriptor/commit/7f76a015050fc87e9b394440c3b5283cf55b2c82) -- [meta] update `.gitignore` [`a2ca593`](https://github.com/inspect-js/is-data-descriptor/commit/a2ca593bb1173e73f23eb401e455249c71c2eda8) -- [Tests] switch to tape [`70540e5`](https://github.com/inspect-js/is-data-descriptor/commit/70540e5449ef3239051d4e40dce8a5a1978d1634) -- [Tests] migrate from travis to github actions [`eee138d`](https://github.com/inspect-js/is-data-descriptor/commit/eee138d84d57191310acf3e7fdc83f5951570188) -- [Fix] properly return false for an accessor descriptor [`2c213cd`](https://github.com/inspect-js/is-data-descriptor/commit/2c213cd67d558c169a02892dc52592ca1d5d8f40) -- [Performance] move data object to module level [`37688a1`](https://github.com/inspect-js/is-data-descriptor/commit/37688a1653f3a2a364f14bb396803413cb435963) -- [Fix] allow any non-primitive; arrays and functions are objects too [`197c77a`](https://github.com/inspect-js/is-data-descriptor/commit/197c77a39c53d12d7a091bcc029fcf7d75ce3a26) -- Only apps should have lockfiles [`20aa6e5`](https://github.com/inspect-js/is-data-descriptor/commit/20aa6e513aeb4bb84be63e278ce073c860deeade) -- [Robustness] switch to `hasown` [`aa48e2f`](https://github.com/inspect-js/is-data-descriptor/commit/aa48e2f61b3fb29e80cf655618d1573a21e8433e) -- [Fix] properly guard for-in loop [`014971e`](https://github.com/inspect-js/is-data-descriptor/commit/014971ea90715c2675511b89d05df00d4be10ecf) -- [Robustness] use a null object just in case [`ab05aad`](https://github.com/inspect-js/is-data-descriptor/commit/ab05aad03368d202505c4acde07ebc22f8da128d) - -## [v1.0.0](https://github.com/inspect-js/is-data-descriptor/compare/v0.1.4...v1.0.0) - 2017-11-01 - -### Merged - -- Update kind-of to version 6.0 [`#1`](https://github.com/inspect-js/is-data-descriptor/pull/1) -- Pin mocha to version 3 to support Node 0.12 [`#2`](https://github.com/inspect-js/is-data-descriptor/pull/2) - -### Commits - -- run update [`63e5992`](https://github.com/inspect-js/is-data-descriptor/commit/63e5992c6b953d652952cecb93468897ae8e5e29) -- update verb, generate readme documentation [`42dcba2`](https://github.com/inspect-js/is-data-descriptor/commit/42dcba2627fe655daa21aec843ca8de849f26cd6) -- minor edits [`23164cb`](https://github.com/inspect-js/is-data-descriptor/commit/23164cbc3496f7b13ec470781f05636ef610eecb) - -## [v0.1.4](https://github.com/inspect-js/is-data-descriptor/compare/v0.1.3...v0.1.4) - 2015-12-28 - -### Fixed - -- fixes https://github.com/jonschlinkert/is-descriptor/issues/2 [`#2`](https://github.com/jonschlinkert/is-descriptor/issues/2) - -### Commits - -- lint [`6d69a34`](https://github.com/inspect-js/is-data-descriptor/commit/6d69a34001d6191d7874cd28aebcdc5441f06f70) -- lint, update lazy-cache [`58bcd4e`](https://github.com/inspect-js/is-data-descriptor/commit/58bcd4ea72f000c83fb167024cf116d4c357440e) -- generate docs with verb [`e6317db`](https://github.com/inspect-js/is-data-descriptor/commit/e6317dbcb27a95281a60120bac83f5938dda4e2c) -- update docs [`fb2e768`](https://github.com/inspect-js/is-data-descriptor/commit/fb2e7689724ad948673734865999051aec2da552) -- generate docs [`bd0ea52`](https://github.com/inspect-js/is-data-descriptor/commit/bd0ea52c7a80223bedc90aadd43e466169907c2a) -- adds verb plugin [`7657b81`](https://github.com/inspect-js/is-data-descriptor/commit/7657b8188aa6fd003586bdb4e791e02dce21bc99) - -## [v0.1.3](https://github.com/inspect-js/is-data-descriptor/compare/v0.1.2...v0.1.3) - 2015-10-04 - -### Commits - -- files prop [`b0b7700`](https://github.com/inspect-js/is-data-descriptor/commit/b0b77004c51fec564e68bf6ff89fd4a169915d5b) - -## [v0.1.2](https://github.com/inspect-js/is-data-descriptor/compare/v0.1.1...v0.1.2) - 2015-10-04 - -### Commits - -- lazy-cache [`49a868c`](https://github.com/inspect-js/is-data-descriptor/commit/49a868c410a1651367315763e24c796e0b5127ce) -- update readme [`936d3f4`](https://github.com/inspect-js/is-data-descriptor/commit/936d3f4327f782c9e0d0ef120c68a81bb987ce72) - -## v0.1.1 - 2015-08-31 - -### Commits - -- first commit [`a1915ae`](https://github.com/inspect-js/is-data-descriptor/commit/a1915ae8a9a4a633d18630102264d266b6e08f08) -- 0.1.1 readme [`8fd6ad0`](https://github.com/inspect-js/is-data-descriptor/commit/8fd6ad0e1b49fa4a22293bfdd807762863afbd5e) -- 0.1.1 docs [`5e54369`](https://github.com/inspect-js/is-data-descriptor/commit/5e543699944b7ee5fe091399dc4186bcace47e3e) -- 0.1.1 docs [`8ec34af`](https://github.com/inspect-js/is-data-descriptor/commit/8ec34af8e80d0f8e386c6bff57e2e4b18d4e0afb) -- lint [`d265658`](https://github.com/inspect-js/is-data-descriptor/commit/d265658d986a688bf217461ca9c24d9c5300bdc8) diff --git a/build/node_modules/is-data-descriptor/LICENSE b/build/node_modules/is-data-descriptor/LICENSE deleted file mode 100644 index e33d14b7..00000000 --- a/build/node_modules/is-data-descriptor/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-data-descriptor/README.md b/build/node_modules/is-data-descriptor/README.md deleted file mode 100644 index 1ca46bd9..00000000 --- a/build/node_modules/is-data-descriptor/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# is-data-descriptor [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -> Returns true if a value has the characteristics of a valid JavaScript data descriptor. - -## Install - -Install with [npm](https://npmjs.com/): - -```sh -$ npm install --save is-data-descriptor -``` - -## Usage - -```js -var isDataDesc = require('is-data-descriptor'); -var assert = require('assert'); -``` - -## Examples - -`true` when the descriptor has valid properties with valid values. - -```js -// `value` can be anything -assert.equal(isDataDesc({ value: 'foo' }), true); -assert.equal(isDataDesc({ value: function () {} }), true); -assert.equal(isDataDesc({ value: true }), true); -``` - -`false` when not an object - -```js -assert.equal(isDataDesc('a'), false); -assert.equal(isDataDesc(null), false); -``` - -`false` when the object has invalid properties - -```js -assert.equal(isDataDesc({ value: 'foo', enumerable: 'baz' }), false); -assert.equal(isDataDesc({ value: 'foo', configurable: 'baz' }), false); -assert.equal(isDataDesc({ value: 'foo', get() {} }), false); -assert.equal(isDataDesc({ get() {}, value: 'foo' }), false); -``` - -`false` when a value is not the correct type - -```js -assert.equal(isDataDesc({ value: 'foo', enumerable: 'foo' }), false); -assert.equal(isDataDesc({ value: 'foo', configurable: 'foo' }), false); -assert.equal(isDataDesc({ value: 'foo', writable: 'foo' }), false); -``` - -## Valid properties - -The only valid data descriptor properties are the following: - -* `configurable` (required) -* `enumerable` (required) -* `value` (optional) -* `writable` (optional) - -To be a valid data descriptor, either `value` or `writable` must be defined. - -**Invalid properties** - -A descriptor may have additional _invalid_ properties (an error will **not** be thrown). - -```js -var foo = {}; - -Object.defineProperty(foo, 'bar', { - enumerable: true, - whatever: 'blah', // invalid, but doesn't cause an error - get() { - return 'baz'; - } -}); - -assert.equal(foo.bar, 'baz'); -``` - -### Related projects - -You might also be interested in these projects: - -* [is-accessor-descriptor](https://npmjs.com/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. -* [is-descriptor](https://npmjs.com/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://npmjs.com/is-descriptor) - -[package-url]: https://npmjs.org/package/is-data-descriptor -[npm-version-svg]: https://versionbadg.es/inspect-js/is-data-descriptor.svg -[deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor.svg -[deps-url]: https://david-dm.org/inspect-js/is-data-descriptor -[dev-deps-svg]: https://david-dm.org/inspect-js/is-data-descriptor/dev-status.svg -[dev-deps-url]: https://david-dm.org/inspect-js/is-data-descriptor#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/is-data-descriptor.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-data-descriptor.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-data-descriptor.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-data-descriptor -[codecov-image]: https://codecov.io/gh/inspect-js/is-data-descriptor/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-data-descriptor/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-data-descriptor -[actions-url]: https://github.com/inspect-js/is-data-descriptor/actions diff --git a/build/node_modules/is-data-descriptor/index.js b/build/node_modules/is-data-descriptor/index.js deleted file mode 100644 index 6d801de9..00000000 --- a/build/node_modules/is-data-descriptor/index.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var hasOwn = require('hasown'); - -// data descriptor properties -var data = { - __proto__: null, - configurable: 'boolean', - enumerable: 'boolean', - writable: 'boolean', -}; - -module.exports = function isDataDescriptor(obj, prop) { - if (!obj || typeof obj !== 'object') { - return false; - } - - if (typeof prop === 'string') { - var val = Object.getOwnPropertyDescriptor(obj, prop); - return typeof val !== 'undefined'; - } - - if ( - (!('value' in obj) && !('writable' in obj)) - || 'get' in obj - || 'set' in obj - ) { - return false; - } - - for (var key in obj) { // eslint-disable-line no-restricted-syntax - if ( - key !== 'value' - && hasOwn(obj, key) - && hasOwn(data, key) - && typeof obj[key] !== data[key] - && typeof obj[key] !== 'undefined' - ) { - return false; - } - } - return true; -}; diff --git a/build/node_modules/is-data-descriptor/package.json b/build/node_modules/is-data-descriptor/package.json deleted file mode 100644 index dc7dd932..00000000 --- a/build/node_modules/is-data-descriptor/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "is-data-descriptor", - "version": "1.0.1", - "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "lint": "eslint --ext=js,mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "prelint": "evalmd README.md", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/is-data-descriptor.git" - }, - "keywords": [ - "accessor", - "check", - "data", - "descriptor", - "get", - "getter", - "is", - "keys", - "object", - "properties", - "property", - "set", - "setter", - "type", - "valid", - "value" - ], - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-data-descriptor/issues" - }, - "homepage": "https://github.com/inspect-js/is-data-descriptor", - "contributors": [ - "Jordan Harband (https://github.com/ljharb)", - "Jon Schlinkert (https://twitter.com/jonschlinkert)", - "Rouven Weßling (www.rouvenwessling.de)" - ], - "dependencies": { - "hasown": "^2.0.0" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.2" - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/is-descriptor/.editorconfig b/build/node_modules/is-descriptor/.editorconfig deleted file mode 100644 index 449f0da4..00000000 --- a/build/node_modules/is-descriptor/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# http://editorconfig.org/ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[{**/{actual,fixtures,expected,templates}/**,*.md}] -trim_trailing_whitespace = false -insert_final_newline = false diff --git a/build/node_modules/is-descriptor/.eslintrc b/build/node_modules/is-descriptor/.eslintrc deleted file mode 100644 index 24e5090e..00000000 --- a/build/node_modules/is-descriptor/.eslintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "@ljharb", - - "rules": { - "func-style": "warn", - }, - - "overrides": [ - { - "files": "test/**/*.js", - "rules": { - "max-lines-per-function": "off", - }, - }, - ], -} diff --git a/build/node_modules/is-descriptor/.gitattributes b/build/node_modules/is-descriptor/.gitattributes deleted file mode 100644 index 660957e7..00000000 --- a/build/node_modules/is-descriptor/.gitattributes +++ /dev/null @@ -1,10 +0,0 @@ -# Enforce Unix newlines -* text eol=lf - -# binaries -*.ai binary -*.psd binary -*.jpg binary -*.gif binary -*.png binary -*.jpeg binary diff --git a/build/node_modules/is-descriptor/.nycrc b/build/node_modules/is-descriptor/.nycrc deleted file mode 100644 index bdd626ce..00000000 --- a/build/node_modules/is-descriptor/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/build/node_modules/is-descriptor/CHANGELOG.md b/build/node_modules/is-descriptor/CHANGELOG.md deleted file mode 100644 index 0564264f..00000000 --- a/build/node_modules/is-descriptor/CHANGELOG.md +++ /dev/null @@ -1,121 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v3.1.0](https://github.com/inspect-js/is-descriptor/compare/v3.0.0...v3.1.0) - 2023-05-01 - -### Commits - -- [eslint] cleanup [`1f4e8cd`](https://github.com/inspect-js/is-descriptor/commit/1f4e8cdb49b4b15666a782f3f05e6f4f0146b9ab) -- [Tests] travis -> Github Actions; add `safe-publish-latest`, `npmignore`, `auto-changelog`, `evalmd`, `aud` [`5993285`](https://github.com/inspect-js/is-descriptor/commit/5993285a122ef7bf5b91cba3b486f96a1f94f552) -- [readme] clean up docs, URLs, package.json, etc [`8807164`](https://github.com/inspect-js/is-descriptor/commit/88071644c15d543c7830e6ac00a5ed8531c82750) -- [Docs] remove verb [`0bc26a3`](https://github.com/inspect-js/is-descriptor/commit/0bc26a306f02241e6c5c506e95c53ca828031c05) -- [Tests] convert from mocha to tape [`1604d7f`](https://github.com/inspect-js/is-descriptor/commit/1604d7feebd776b0fb67163e3013cc6d5ab9fd6b) -- [New] increase support from node 6 down to node 0.4 [`7893404`](https://github.com/inspect-js/is-descriptor/commit/789340412f4028d46a3121466a25497716b94402) -- [Tests] add coverage [`1dcc45e`](https://github.com/inspect-js/is-descriptor/commit/1dcc45ed57aebc83ba0588c232663f4164a7d0a8) -- [Fix] when an object/key pair is provided, check arguments.length instead of key truthiness [`d1edefe`](https://github.com/inspect-js/is-descriptor/commit/d1edefef56c7eeaab385b1704417b314f197034d) -- [meta] switch from `files` field to npmignore; add `exports` [`c64d3d3`](https://github.com/inspect-js/is-descriptor/commit/c64d3d356d459f2e73198841f93fb902895875b4) - -## [v3.0.0](https://github.com/inspect-js/is-descriptor/compare/v2.0.0...v3.0.0) - 2018-12-13 - -### Commits - -- refactor [`7f7e2c8`](https://github.com/inspect-js/is-descriptor/commit/7f7e2c865674526424f5cd1fb98f0ed7811a67f9) - -## [v2.0.0](https://github.com/inspect-js/is-descriptor/compare/v1.0.3...v2.0.0) - 2017-12-28 - -### Commits - -- run verb to generate readme [`7d97594`](https://github.com/inspect-js/is-descriptor/commit/7d97594666afaa825e0421883507cfec04ceef1d) -- upgrade is-accessor-descriptor [`2e2cb1e`](https://github.com/inspect-js/is-descriptor/commit/2e2cb1e723d2ca1d6b8580d384702700e26dda81) -- run update [`c04832a`](https://github.com/inspect-js/is-descriptor/commit/c04832a3a2bf48bef2ea0f5844652da7d6209242) - -## [v1.0.3](https://github.com/inspect-js/is-descriptor/compare/v1.0.2...v1.0.3) - 2023-10-26 - -### Commits - -- [eslint] actually use eslint [`8bcf028`](https://github.com/inspect-js/is-descriptor/commit/8bcf0288c53c80297e6109f7632dab9b7b7fb5c5) -- [meta] update package.json, gitignore from main [`544cdfe`](https://github.com/inspect-js/is-descriptor/commit/544cdfe60f5a4db8aa1b02de93b326271fa82ec1) -- [readme] update readme from main [`1130f79`](https://github.com/inspect-js/is-descriptor/commit/1130f79112bd1d36ca5b0806a4ad14ae9427e0e9) -- [Tests] switch to tape [`3f8f094`](https://github.com/inspect-js/is-descriptor/commit/3f8f0947049e4f2d631f88f0374e2b4a4e058577) -- [Docs] remove verb [`92ee1bf`](https://github.com/inspect-js/is-descriptor/commit/92ee1bfcc56ba2cd30503c87af8e8cd795fdca51) -- [Tests] migrate from travis to github actions [`8da3a3c`](https://github.com/inspect-js/is-descriptor/commit/8da3a3c38d50b4e9e18865efd25c6d35f98852b6) -- [Fix] a descriptor with `set` and not `get` is still an accessor descriptor [`269fb53`](https://github.com/inspect-js/is-descriptor/commit/269fb5374659a8c07aac88993b13d94197e9cbed) -- [patch] switch from `files` to `exports` [`41b2d61`](https://github.com/inspect-js/is-descriptor/commit/41b2d6152438119120b8d24ff98ebfb79cb19007) -- [Fix] allow any non-primitive; arrays and functions are objects too [`9fd1ac8`](https://github.com/inspect-js/is-descriptor/commit/9fd1ac80cd42600510dc76de74da9a3834c4358d) -- [Deps] update `is-accessor-descriptor`, `is-data-descriptor` [`f4dbc73`](https://github.com/inspect-js/is-descriptor/commit/f4dbc7327e9df005d3d6130af2ea612426a45081) -- [Tests] make a test dir [`9eaa17c`](https://github.com/inspect-js/is-descriptor/commit/9eaa17c3cbcd545d9409ab8d83dcd8bd0c42e739) - -## [v1.0.2](https://github.com/inspect-js/is-descriptor/compare/v1.0.1...v1.0.2) - 2017-12-28 - -### Merged - -- Update dependencies [`#5`](https://github.com/inspect-js/is-descriptor/pull/5) - -## [v1.0.1](https://github.com/inspect-js/is-descriptor/compare/v1.0.0...v1.0.1) - 2017-07-22 - -### Commits - -- run update, lint [`754cc73`](https://github.com/inspect-js/is-descriptor/commit/754cc7382bd439f8e8b91775479c59c7c996cd47) -- update deps [`2b58af6`](https://github.com/inspect-js/is-descriptor/commit/2b58af6426d0700607419b096766829aff27f642) - -## [v1.0.0](https://github.com/inspect-js/is-descriptor/compare/v0.1.6...v1.0.0) - 2017-02-25 - -## [v0.1.6](https://github.com/inspect-js/is-descriptor/compare/v0.1.5...v0.1.6) - 2017-07-22 - -## [v0.1.5](https://github.com/inspect-js/is-descriptor/compare/v0.1.4...v0.1.5) - 2017-02-25 - -### Merged - -- Bump `lazy-cache`. [`#4`](https://github.com/inspect-js/is-descriptor/pull/4) - -### Commits - -- update docs, fix typos [`bc3cf69`](https://github.com/inspect-js/is-descriptor/commit/bc3cf6915686d4a964997ae7585bf65005bbf955) -- run update [`1956814`](https://github.com/inspect-js/is-descriptor/commit/1956814c67c2033caeaed469ad09e6392dd0799e) - -## [v0.1.4](https://github.com/inspect-js/is-descriptor/compare/v0.1.3...v0.1.4) - 2015-12-28 - -### Commits - -- allow a key to be passed [`202062b`](https://github.com/inspect-js/is-descriptor/commit/202062b56735525e7def35c8453505778ce9de03) -- update docs [`890fe80`](https://github.com/inspect-js/is-descriptor/commit/890fe80100aa21cac1bee55d6fb4045ffb661ff7) - -## [v0.1.3](https://github.com/inspect-js/is-descriptor/compare/v0.1.2...v0.1.3) - 2015-12-20 - -### Commits - -- lint [`fa81701`](https://github.com/inspect-js/is-descriptor/commit/fa817018aabb6f18e7f09e452b80386775773d42) -- add gulp-format-md to verb config, build readme [`8e6c159`](https://github.com/inspect-js/is-descriptor/commit/8e6c159cfa23b357dbac8f977c3a9421172aafeb) -- update deps [`b7b8321`](https://github.com/inspect-js/is-descriptor/commit/b7b8321e194f4f25c5aa4ff382a0a8ffb6482cc1) - -## [v0.1.2](https://github.com/inspect-js/is-descriptor/compare/v0.1.1...v0.1.2) - 2015-10-04 - -### Commits - -- files prop [`3aaf1ce`](https://github.com/inspect-js/is-descriptor/commit/3aaf1ce8483bdee217e2f18b293937a09634a33b) - -## [v0.1.1](https://github.com/inspect-js/is-descriptor/compare/v0.1.0...v0.1.1) - 2015-10-04 - -### Merged - -- Update .verb.md [`#1`](https://github.com/inspect-js/is-descriptor/pull/1) - -### Commits - -- adds lazy-caching [`0219f1a`](https://github.com/inspect-js/is-descriptor/commit/0219f1aa95b9ce7c08e0a1e00fe506a572c6ac46) -- 0.1.1 readme [`924a5a7`](https://github.com/inspect-js/is-descriptor/commit/924a5a7a5d648d901b24b7287d9a5d232865f603) -- fix readme [`dd9c431`](https://github.com/inspect-js/is-descriptor/commit/dd9c4315dd61be73f42d07bc71ddb97414dfdbcf) - -## v0.1.0 - 2015-08-31 - -### Commits - -- first commit [`b5d8c39`](https://github.com/inspect-js/is-descriptor/commit/b5d8c39843c98588b67069325a4e6455beb8aef3) -- 0.1.0 readme [`aaffb92`](https://github.com/inspect-js/is-descriptor/commit/aaffb924062d7c588417d9a2184ff1129f8d294a) -- 0.1.0 docs [`eb0da6c`](https://github.com/inspect-js/is-descriptor/commit/eb0da6c548e59ff76f6a80a95ea0a750dab40591) -- use libs [`86ad32f`](https://github.com/inspect-js/is-descriptor/commit/86ad32fe5a07d2705b14bb3e237584c05d60d519) -- lint [`94fbcc9`](https://github.com/inspect-js/is-descriptor/commit/94fbcc9c2a3da1e9b888bad86b9576259d1d7940) diff --git a/build/node_modules/is-descriptor/LICENSE b/build/node_modules/is-descriptor/LICENSE deleted file mode 100644 index c0d7f136..00000000 --- a/build/node_modules/is-descriptor/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/is-descriptor/README.md b/build/node_modules/is-descriptor/README.md deleted file mode 100644 index fd9ddcfb..00000000 --- a/build/node_modules/is-descriptor/README.md +++ /dev/null @@ -1,134 +0,0 @@ -# is-descriptor [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -> Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors. - -## Usage - -```js -const isDescriptor = require('is-descriptor'); -const assert = require('assert'); - -assert.equal(isDescriptor({ value: 'foo' }), true); -assert.equal(isDescriptor({ get() {}, set() {} }), true); -assert.equal(isDescriptor({ get: 'foo', set() {} }), false); -``` - -You may also check for a descriptor by passing an object as the first argument and property name (`string`) as the second argument. - -```js -const obj = { foo: 'abc' }; - -Object.defineProperty(obj, 'bar', { - value: 'xyz' -}); - -assert.equal(isDescriptor(obj, 'foo'), true); -assert.equal(isDescriptor(obj, 'bar'), true); -``` - -## Examples - -### value type - -`false` when not an object - -```js -assert.equal(isDescriptor('a'), false); -assert.equal(isDescriptor(null), false); -assert.equal(isDescriptor([]), false); -``` - -### data descriptor - -`true` when the object has valid properties with valid values. - -```js -assert.equal(isDescriptor({ value: 'foo' }), true); -assert.equal(isDescriptor({ value() {} }), true); -``` - -`false` when the object has invalid properties - -```js -assert.equal(isDescriptor({ value: 'foo', enumerable: 'baz' }), false); -assert.equal(isDescriptor({ value: 'foo', configurable: 'baz' }), false); -assert.equal(isDescriptor({ value: 'foo', get() {} }), false); -assert.equal(isDescriptor({ get() {}, value() {} }), false); -``` - -`false` when a value is not the correct type - -```js -assert.equal(isDescriptor({ value: 'foo', enumerable: 'foo' }), false); -assert.equal(isDescriptor({ value: 'foo', configurable: 'foo' }), false); -assert.equal(isDescriptor({ value: 'foo', writable: 'foo' }), false); -``` - -### accessor descriptor - -`true` when the object has valid properties with valid values. - -```js -assert.equal(isDescriptor({ get() {}, set() {} }), true); -assert.equal(isDescriptor({ get() {} }), true); -assert.equal(isDescriptor({ set() {} }), true); -``` - -`false` when the object has invalid properties - -```js -assert.equal(isDescriptor({ get() {}, set() {}, enumerable: 'baz' }), false); -assert.equal(isDescriptor({ get() {}, writable: true }), false); -assert.equal(isDescriptor({ get() {}, value: true }), false); -``` - -`false` when an accessor is not a function - -```js -assert.equal(isDescriptor({ get() {}, set: 'baz' }), false); -assert.equal(isDescriptor({ get: 'foo', set() {} }), false); -assert.equal(isDescriptor({ get: 'foo', bar: 'baz' }), false); -assert.equal(isDescriptor({ get: 'foo', set: 'baz' }), false); -``` - -`false` when a value is not the correct type - -```js -assert.equal(isDescriptor({ get() {}, set() {}, enumerable: 'foo' }), false); -assert.equal(isDescriptor({ set() {}, configurable: 'foo' }), false); -assert.equal(isDescriptor({ get() {}, configurable: 'foo' }), false); -``` - -### Related projects - -You might also be interested in these projects: - -* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. -* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. -* [is-object](https://www.npmjs.com/package/is-object): Returns true if the value is an object and not an array or null. - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/is-descriptor -[npm-version-svg]: https://versionbadg.es/inspect-js/is-descriptor.svg -[deps-svg]: https://david-dm.org/inspect-js/is-descriptor.svg -[deps-url]: https://david-dm.org/inspect-js/is-descriptor -[dev-deps-svg]: https://david-dm.org/inspect-js/is-descriptor/dev-status.svg -[dev-deps-url]: https://david-dm.org/inspect-js/is-descriptor#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/is-descriptor.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-descriptor.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-descriptor.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-descriptor -[codecov-image]: https://codecov.io/gh/inspect-js/is-descriptor/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-descriptor/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-descriptor -[actions-url]: https://github.com/inspect-js/is-descriptor/actions diff --git a/build/node_modules/is-descriptor/index.js b/build/node_modules/is-descriptor/index.js deleted file mode 100644 index c9dd24d2..00000000 --- a/build/node_modules/is-descriptor/index.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var isAccessor = require('is-accessor-descriptor'); -var isData = require('is-data-descriptor'); - -module.exports = function isDescriptor(obj, key) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - return false; - } - - if ('get' in obj || 'set' in obj) { - return isAccessor(obj, key); - } - - return isData(obj, key); -}; diff --git a/build/node_modules/is-descriptor/package.json b/build/node_modules/is-descriptor/package.json deleted file mode 100644 index 2c35d2b4..00000000 --- a/build/node_modules/is-descriptor/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "name": "is-descriptor", - "version": "1.0.3", - "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.", - "main": "index.js", - "exports": { - ".": "./index.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=autogenerated", - "prepublishOnly": "safe-publish-latest", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prelint": "evalmd README.md", - "lint": "eslint --ext=js,mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/inspect-js/is-descriptor.git" - }, - "keywords": [ - "accessor", - "check", - "data", - "descriptor", - "get", - "getter", - "is", - "keys", - "object", - "properties", - "property", - "set", - "setter", - "type", - "valid", - "value" - ], - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "license": "MIT", - "bugs": { - "url": "https://github.com/inspect-js/is-descriptor/issues" - }, - "homepage": "https://github.com/inspect-js/is-descriptor", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "(https://github.com/wtgtybhertgeghgtwtg)" - ], - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "devDependencies": { - "@ljharb/eslint-config": "^21.1.0", - "aud": "^2.0.3", - "auto-changelog": "^2.4.0", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "in-publish": "^2.0.1", - "npmignore": "^0.3.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^2.0.0", - "tape": "^5.7.2" - }, - "engines": { - "node": ">= 0.4" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - } -} diff --git a/build/node_modules/is-docker/cli.js b/build/node_modules/is-docker/cli.js deleted file mode 100644 index 58f2861f..00000000 --- a/build/node_modules/is-docker/cli.js +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node -'use strict'; -const isDocker = require('.'); - -process.exitCode = isDocker() ? 0 : 2; diff --git a/build/node_modules/is-docker/index.d.ts b/build/node_modules/is-docker/index.d.ts deleted file mode 100644 index c801881d..00000000 --- a/build/node_modules/is-docker/index.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** -Check if the process is running inside a Docker container. - -@example -``` -import isDocker = require('is-docker'); - -if (isDocker()) { - console.log('Running inside a Docker container'); -} -``` -*/ -declare function isDocker(): boolean; - -export = isDocker; diff --git a/build/node_modules/is-docker/index.js b/build/node_modules/is-docker/index.js deleted file mode 100644 index cbb7b6f7..00000000 --- a/build/node_modules/is-docker/index.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; -const fs = require('fs'); - -let isDocker; - -function hasDockerEnv() { - try { - fs.statSync('/.dockerenv'); - return true; - } catch (_) { - return false; - } -} - -function hasDockerCGroup() { - try { - return fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker'); - } catch (_) { - return false; - } -} - -module.exports = () => { - if (isDocker === undefined) { - isDocker = hasDockerEnv() || hasDockerCGroup(); - } - - return isDocker; -}; diff --git a/build/node_modules/is-docker/license b/build/node_modules/is-docker/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/is-docker/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-docker/package.json b/build/node_modules/is-docker/package.json deleted file mode 100644 index ae282258..00000000 --- a/build/node_modules/is-docker/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "is-docker", - "version": "2.2.1", - "description": "Check if the process is running inside a Docker container", - "license": "MIT", - "repository": "sindresorhus/is-docker", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "bin": "cli.js", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "cli.js" - ], - "keywords": [ - "detect", - "docker", - "dockerized", - "container", - "inside", - "is", - "env", - "environment", - "process" - ], - "devDependencies": { - "ava": "^1.4.1", - "sinon": "^7.3.2", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-docker/readme.md b/build/node_modules/is-docker/readme.md deleted file mode 100644 index f09b254f..00000000 --- a/build/node_modules/is-docker/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# is-docker - -> Check if the process is running inside a Docker container - -## Install - -``` -$ npm install is-docker -``` - -## Usage - -```js -const isDocker = require('is-docker'); - -if (isDocker()) { - console.log('Running inside a Docker container'); -} -``` - -## CLI - -``` -$ is-docker -``` - -Exits with code 0 if inside a Docker container and 2 if not. diff --git a/build/node_modules/is-extendable/LICENSE b/build/node_modules/is-extendable/LICENSE deleted file mode 100644 index c0d7f136..00000000 --- a/build/node_modules/is-extendable/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/is-extendable/README.md b/build/node_modules/is-extendable/README.md deleted file mode 100644 index 875b56a7..00000000 --- a/build/node_modules/is-extendable/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# is-extendable [![NPM version](https://img.shields.io/npm/v/is-extendable.svg?style=flat)](https://www.npmjs.com/package/is-extendable) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![NPM total downloads](https://img.shields.io/npm/dt/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-extendable.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-extendable) - -> Returns true if a value is a plain object, array or function. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save is-extendable -``` - -## Usage - -```js -var isExtendable = require('is-extendable'); -``` - -Returns true if the value is any of the following: - -* array -* plain object -* function - -## Notes - -All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and: - -* the value is not a primitive, or -* that the object is a plain object, function or array - -Also note that an `extendable` object is not the same as an [extensible object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible), which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`. - -## Release history - -### v1.0.0 - 2017/07/20 - -**Breaking changes** - -* No longer considers date, regex or error objects to be extendable - -## About - -### Related projects - -* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.") -* [is-equal-shallow](https://www.npmjs.com/package/is-equal-shallow): Does a shallow comparison of two objects, returning false if the keys or values differ. | [homepage](https://github.com/jonschlinkert/is-equal-shallow "Does a shallow comparison of two objects, returning false if the keys or values differ.") -* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") -* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") -* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 20, 2017._ \ No newline at end of file diff --git a/build/node_modules/is-extendable/index.d.ts b/build/node_modules/is-extendable/index.d.ts deleted file mode 100644 index b96d5075..00000000 --- a/build/node_modules/is-extendable/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export = isExtendable; - -declare function isExtendable(val: any): boolean; - -declare namespace isExtendable {} diff --git a/build/node_modules/is-extendable/index.js b/build/node_modules/is-extendable/index.js deleted file mode 100644 index a8b26ad0..00000000 --- a/build/node_modules/is-extendable/index.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * is-extendable - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -var isPlainObject = require('is-plain-object'); - -module.exports = function isExtendable(val) { - return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); -}; diff --git a/build/node_modules/is-extendable/package.json b/build/node_modules/is-extendable/package.json deleted file mode 100644 index 2aaab65a..00000000 --- a/build/node_modules/is-extendable/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "is-extendable", - "description": "Returns true if a value is a plain object, array or function.", - "version": "1.0.1", - "homepage": "https://github.com/jonschlinkert/is-extendable", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-extendable", - "bugs": { - "url": "https://github.com/jonschlinkert/is-extendable/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "index.d.ts" - ], - "main": "index.js", - "types": "index.d.ts", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "devDependencies": { - "gulp-format-md": "^1.0.0", - "mocha": "^3.4.2" - }, - "keywords": [ - "array", - "assign", - "check", - "date", - "extend", - "extendable", - "extensible", - "function", - "is", - "object", - "regex", - "test" - ], - "verb": { - "related": { - "list": [ - "assign-deep", - "is-equal-shallow", - "is-plain-object", - "isobject", - "kind-of" - ] - }, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/is-extglob/LICENSE b/build/node_modules/is-extglob/LICENSE deleted file mode 100644 index 842218cf..00000000 --- a/build/node_modules/is-extglob/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-extglob/README.md b/build/node_modules/is-extglob/README.md deleted file mode 100644 index 0416af5c..00000000 --- a/build/node_modules/is-extglob/README.md +++ /dev/null @@ -1,107 +0,0 @@ -# is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob) - -> Returns true if a string has an extglob. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save is-extglob -``` - -## Usage - -```js -var isExtglob = require('is-extglob'); -``` - -**True** - -```js -isExtglob('?(abc)'); -isExtglob('@(abc)'); -isExtglob('!(abc)'); -isExtglob('*(abc)'); -isExtglob('+(abc)'); -``` - -**False** - -Escaped extglobs: - -```js -isExtglob('\\?(abc)'); -isExtglob('\\@(abc)'); -isExtglob('\\!(abc)'); -isExtglob('\\*(abc)'); -isExtglob('\\+(abc)'); -``` - -Everything else... - -```js -isExtglob('foo.js'); -isExtglob('!foo.js'); -isExtglob('*.js'); -isExtglob('**/abc.js'); -isExtglob('abc/*.js'); -isExtglob('abc/(aaa|bbb).js'); -isExtglob('abc/[a-z].js'); -isExtglob('abc/{a,b}.js'); -isExtglob('abc/?.js'); -isExtglob('abc.js'); -isExtglob('abc/def/ghi.js'); -``` - -## History - -**v2.0** - -Adds support for escaping. Escaped exglobs no longer return true. - -## About - -### Related projects - -* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") -* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") -* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ - -To generate the readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm install -g verb verb-generate-readme && verb -``` - -### Running tests - -Install dev dependencies: - -```sh -$ npm install -d && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -### License - -Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._ \ No newline at end of file diff --git a/build/node_modules/is-extglob/index.js b/build/node_modules/is-extglob/index.js deleted file mode 100644 index c1d986fc..00000000 --- a/build/node_modules/is-extglob/index.js +++ /dev/null @@ -1,20 +0,0 @@ -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ - -module.exports = function isExtglob(str) { - if (typeof str !== 'string' || str === '') { - return false; - } - - var match; - while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { - if (match[2]) return true; - str = str.slice(match.index + match[0].length); - } - - return false; -}; diff --git a/build/node_modules/is-extglob/package.json b/build/node_modules/is-extglob/package.json deleted file mode 100644 index 7a908369..00000000 --- a/build/node_modules/is-extglob/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "is-extglob", - "description": "Returns true if a string has an extglob.", - "version": "2.1.1", - "homepage": "https://github.com/jonschlinkert/is-extglob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/is-extglob", - "bugs": { - "url": "https://github.com/jonschlinkert/is-extglob/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "gulp-format-md": "^0.1.10", - "mocha": "^3.0.2" - }, - "keywords": [ - "bash", - "braces", - "check", - "exec", - "expression", - "extglob", - "glob", - "globbing", - "globstar", - "is", - "match", - "matches", - "pattern", - "regex", - "regular", - "string", - "test" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "has-glob", - "is-glob", - "micromatch" - ] - }, - "reflinks": [ - "verb", - "verb-generate-readme" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/is-fullwidth-code-point/index.d.ts b/build/node_modules/is-fullwidth-code-point/index.d.ts deleted file mode 100644 index 729d2020..00000000 --- a/build/node_modules/is-fullwidth-code-point/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** -Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms). - -@param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. - -@example -``` -import isFullwidthCodePoint from 'is-fullwidth-code-point'; - -isFullwidthCodePoint('谢'.codePointAt(0)); -//=> true - -isFullwidthCodePoint('a'.codePointAt(0)); -//=> false -``` -*/ -export default function isFullwidthCodePoint(codePoint: number): boolean; diff --git a/build/node_modules/is-fullwidth-code-point/index.js b/build/node_modules/is-fullwidth-code-point/index.js deleted file mode 100644 index 671f97f7..00000000 --- a/build/node_modules/is-fullwidth-code-point/index.js +++ /dev/null @@ -1,50 +0,0 @@ -/* eslint-disable yoda */ -'use strict'; - -const isFullwidthCodePoint = codePoint => { - if (Number.isNaN(codePoint)) { - return false; - } - - // Code points are derived from: - // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt - if ( - codePoint >= 0x1100 && ( - codePoint <= 0x115F || // Hangul Jamo - codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET - codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET - // CJK Radicals Supplement .. Enclosed CJK Letters and Months - (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || - // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A - (0x3250 <= codePoint && codePoint <= 0x4DBF) || - // CJK Unified Ideographs .. Yi Radicals - (0x4E00 <= codePoint && codePoint <= 0xA4C6) || - // Hangul Jamo Extended-A - (0xA960 <= codePoint && codePoint <= 0xA97C) || - // Hangul Syllables - (0xAC00 <= codePoint && codePoint <= 0xD7A3) || - // CJK Compatibility Ideographs - (0xF900 <= codePoint && codePoint <= 0xFAFF) || - // Vertical Forms - (0xFE10 <= codePoint && codePoint <= 0xFE19) || - // CJK Compatibility Forms .. Small Form Variants - (0xFE30 <= codePoint && codePoint <= 0xFE6B) || - // Halfwidth and Fullwidth Forms - (0xFF01 <= codePoint && codePoint <= 0xFF60) || - (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || - // Kana Supplement - (0x1B000 <= codePoint && codePoint <= 0x1B001) || - // Enclosed Ideographic Supplement - (0x1F200 <= codePoint && codePoint <= 0x1F251) || - // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane - (0x20000 <= codePoint && codePoint <= 0x3FFFD) - ) - ) { - return true; - } - - return false; -}; - -module.exports = isFullwidthCodePoint; -module.exports.default = isFullwidthCodePoint; diff --git a/build/node_modules/is-fullwidth-code-point/license b/build/node_modules/is-fullwidth-code-point/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/is-fullwidth-code-point/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-fullwidth-code-point/package.json b/build/node_modules/is-fullwidth-code-point/package.json deleted file mode 100644 index 2137e888..00000000 --- a/build/node_modules/is-fullwidth-code-point/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "is-fullwidth-code-point", - "version": "3.0.0", - "description": "Check if the character represented by a given Unicode code point is fullwidth", - "license": "MIT", - "repository": "sindresorhus/is-fullwidth-code-point", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "fullwidth", - "full-width", - "full", - "width", - "unicode", - "character", - "string", - "codepoint", - "code", - "point", - "is", - "detect", - "check" - ], - "devDependencies": { - "ava": "^1.3.1", - "tsd-check": "^0.5.0", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-fullwidth-code-point/readme.md b/build/node_modules/is-fullwidth-code-point/readme.md deleted file mode 100644 index 4236bba9..00000000 --- a/build/node_modules/is-fullwidth-code-point/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) - -> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) - - -## Install - -``` -$ npm install is-fullwidth-code-point -``` - - -## Usage - -```js -const isFullwidthCodePoint = require('is-fullwidth-code-point'); - -isFullwidthCodePoint('谢'.codePointAt(0)); -//=> true - -isFullwidthCodePoint('a'.codePointAt(0)); -//=> false -``` - - -## API - -### isFullwidthCodePoint(codePoint) - -#### codePoint - -Type: `number` - -The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/is-glob/LICENSE b/build/node_modules/is-glob/LICENSE deleted file mode 100644 index 3f2eca18..00000000 --- a/build/node_modules/is-glob/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-glob/README.md b/build/node_modules/is-glob/README.md deleted file mode 100644 index 740724b2..00000000 --- a/build/node_modules/is-glob/README.md +++ /dev/null @@ -1,206 +0,0 @@ -# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions) - -> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save is-glob -``` - -You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob). - -## Usage - -```js -var isGlob = require('is-glob'); -``` - -### Default behavior - -**True** - -Patterns that have glob characters or regex patterns will return `true`: - -```js -isGlob('!foo.js'); -isGlob('*.js'); -isGlob('**/abc.js'); -isGlob('abc/*.js'); -isGlob('abc/(aaa|bbb).js'); -isGlob('abc/[a-z].js'); -isGlob('abc/{a,b}.js'); -//=> true -``` - -Extglobs - -```js -isGlob('abc/@(a).js'); -isGlob('abc/!(a).js'); -isGlob('abc/+(a).js'); -isGlob('abc/*(a).js'); -isGlob('abc/?(a).js'); -//=> true -``` - -**False** - -Escaped globs or extglobs return `false`: - -```js -isGlob('abc/\\@(a).js'); -isGlob('abc/\\!(a).js'); -isGlob('abc/\\+(a).js'); -isGlob('abc/\\*(a).js'); -isGlob('abc/\\?(a).js'); -isGlob('\\!foo.js'); -isGlob('\\*.js'); -isGlob('\\*\\*/abc.js'); -isGlob('abc/\\*.js'); -isGlob('abc/\\(aaa|bbb).js'); -isGlob('abc/\\[a-z].js'); -isGlob('abc/\\{a,b}.js'); -//=> false -``` - -Patterns that do not have glob patterns return `false`: - -```js -isGlob('abc.js'); -isGlob('abc/def/ghi.js'); -isGlob('foo.js'); -isGlob('abc/@.js'); -isGlob('abc/+.js'); -isGlob('abc/?.js'); -isGlob(); -isGlob(null); -//=> false -``` - -Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)): - -```js -isGlob(['**/*.js']); -isGlob(['foo.js']); -//=> false -``` - -### Option strict - -When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that -some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not. - -**True** - -Patterns that have glob characters or regex patterns will return `true`: - -```js -isGlob('!foo.js', {strict: false}); -isGlob('*.js', {strict: false}); -isGlob('**/abc.js', {strict: false}); -isGlob('abc/*.js', {strict: false}); -isGlob('abc/(aaa|bbb).js', {strict: false}); -isGlob('abc/[a-z].js', {strict: false}); -isGlob('abc/{a,b}.js', {strict: false}); -//=> true -``` - -Extglobs - -```js -isGlob('abc/@(a).js', {strict: false}); -isGlob('abc/!(a).js', {strict: false}); -isGlob('abc/+(a).js', {strict: false}); -isGlob('abc/*(a).js', {strict: false}); -isGlob('abc/?(a).js', {strict: false}); -//=> true -``` - -**False** - -Escaped globs or extglobs return `false`: - -```js -isGlob('\\!foo.js', {strict: false}); -isGlob('\\*.js', {strict: false}); -isGlob('\\*\\*/abc.js', {strict: false}); -isGlob('abc/\\*.js', {strict: false}); -isGlob('abc/\\(aaa|bbb).js', {strict: false}); -isGlob('abc/\\[a-z].js', {strict: false}); -isGlob('abc/\\{a,b}.js', {strict: false}); -//=> false -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Related projects - -You might also be interested in these projects: - -* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit") -* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks") -* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.") -* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.") - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 47 | [jonschlinkert](https://github.com/jonschlinkert) | -| 5 | [doowb](https://github.com/doowb) | -| 1 | [phated](https://github.com/phated) | -| 1 | [danhper](https://github.com/danhper) | -| 1 | [paulmillr](https://github.com/paulmillr) | - -### Author - -**Jon Schlinkert** - -* [GitHub Profile](https://github.com/jonschlinkert) -* [Twitter Profile](https://twitter.com/jonschlinkert) -* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) - -### License - -Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._ \ No newline at end of file diff --git a/build/node_modules/is-glob/index.js b/build/node_modules/is-glob/index.js deleted file mode 100644 index 620f563e..00000000 --- a/build/node_modules/is-glob/index.js +++ /dev/null @@ -1,150 +0,0 @@ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -var isExtglob = require('is-extglob'); -var chars = { '{': '}', '(': ')', '[': ']'}; -var strictCheck = function(str) { - if (str[0] === '!') { - return true; - } - var index = 0; - var pipeIndex = -2; - var closeSquareIndex = -2; - var closeCurlyIndex = -2; - var closeParenIndex = -2; - var backSlashIndex = -2; - while (index < str.length) { - if (str[index] === '*') { - return true; - } - - if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { - return true; - } - - if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { - if (closeSquareIndex < index) { - closeSquareIndex = str.indexOf(']', index); - } - if (closeSquareIndex > index) { - if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { - return true; - } - backSlashIndex = str.indexOf('\\', index); - if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { - return true; - } - } - } - - if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { - closeCurlyIndex = str.indexOf('}', index); - if (closeCurlyIndex > index) { - backSlashIndex = str.indexOf('\\', index); - if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { - return true; - } - } - } - - if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { - closeParenIndex = str.indexOf(')', index); - if (closeParenIndex > index) { - backSlashIndex = str.indexOf('\\', index); - if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { - return true; - } - } - } - - if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { - if (pipeIndex < index) { - pipeIndex = str.indexOf('|', index); - } - if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { - closeParenIndex = str.indexOf(')', pipeIndex); - if (closeParenIndex > pipeIndex) { - backSlashIndex = str.indexOf('\\', pipeIndex); - if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { - return true; - } - } - } - } - - if (str[index] === '\\') { - var open = str[index + 1]; - index += 2; - var close = chars[open]; - - if (close) { - var n = str.indexOf(close, index); - if (n !== -1) { - index = n + 1; - } - } - - if (str[index] === '!') { - return true; - } - } else { - index++; - } - } - return false; -}; - -var relaxedCheck = function(str) { - if (str[0] === '!') { - return true; - } - var index = 0; - while (index < str.length) { - if (/[*?{}()[\]]/.test(str[index])) { - return true; - } - - if (str[index] === '\\') { - var open = str[index + 1]; - index += 2; - var close = chars[open]; - - if (close) { - var n = str.indexOf(close, index); - if (n !== -1) { - index = n + 1; - } - } - - if (str[index] === '!') { - return true; - } - } else { - index++; - } - } - return false; -}; - -module.exports = function isGlob(str, options) { - if (typeof str !== 'string' || str === '') { - return false; - } - - if (isExtglob(str)) { - return true; - } - - var check = strictCheck; - - // optionally relax check - if (options && options.strict === false) { - check = relaxedCheck; - } - - return check(str); -}; diff --git a/build/node_modules/is-glob/package.json b/build/node_modules/is-glob/package.json deleted file mode 100644 index 858af037..00000000 --- a/build/node_modules/is-glob/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "is-glob", - "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", - "version": "4.0.3", - "homepage": "https://github.com/micromatch/is-glob", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Brian Woodward (https://twitter.com/doowb)", - "Daniel Perez (https://tuvistavie.com)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" - ], - "repository": "micromatch/is-glob", - "bugs": { - "url": "https://github.com/micromatch/is-glob/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha && node benchmark.js" - }, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "devDependencies": { - "gulp-format-md": "^0.1.10", - "mocha": "^3.0.2" - }, - "keywords": [ - "bash", - "braces", - "check", - "exec", - "expression", - "extglob", - "glob", - "globbing", - "globstar", - "is", - "match", - "matches", - "pattern", - "regex", - "regular", - "string", - "test" - ], - "verb": { - "layout": "default", - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "assemble", - "base", - "update", - "verb" - ] - }, - "reflinks": [ - "assemble", - "bach", - "base", - "composer", - "gulp", - "has-glob", - "is-valid-glob", - "micromatch", - "npm", - "scaffold", - "verb", - "vinyl" - ] - } -} diff --git a/build/node_modules/is-inside-container/cli.js b/build/node_modules/is-inside-container/cli.js deleted file mode 100644 index b39acaca..00000000 --- a/build/node_modules/is-inside-container/cli.js +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node -import process from 'node:process'; -import isInsideContainer from './index.js'; - -process.exitCode = isInsideContainer() ? 0 : 2; diff --git a/build/node_modules/is-inside-container/index.d.ts b/build/node_modules/is-inside-container/index.d.ts deleted file mode 100644 index 3bfc2caf..00000000 --- a/build/node_modules/is-inside-container/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** -Check if the process is running inside a container. - -@example -``` -import isInsideContainer from 'is-inside-container'; - -if (isInsideContainer()) { - console.log('Running inside a container'); -} -``` -*/ -export default function isInsideContainer(): boolean; diff --git a/build/node_modules/is-inside-container/index.js b/build/node_modules/is-inside-container/index.js deleted file mode 100644 index 2c806d2c..00000000 --- a/build/node_modules/is-inside-container/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import fs from 'node:fs'; -import isDocker from 'is-docker'; - -let cachedResult; - -// Podman detection -const hasContainerEnv = () => { - try { - fs.statSync('/run/.containerenv'); - return true; - } catch { - return false; - } -}; - -export default function isInsideContainer() { - // TODO: Use `??=` when targeting Node.js 16. - if (cachedResult === undefined) { - cachedResult = hasContainerEnv() || isDocker(); - } - - return cachedResult; -} diff --git a/build/node_modules/is-inside-container/license b/build/node_modules/is-inside-container/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/is-inside-container/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-inside-container/package.json b/build/node_modules/is-inside-container/package.json deleted file mode 100644 index 7d47e23c..00000000 --- a/build/node_modules/is-inside-container/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "is-inside-container", - "version": "1.0.0", - "description": "Check if the process is running inside a container (Docker/Podman)", - "license": "MIT", - "repository": "sindresorhus/is-inside-container", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "type": "module", - "exports": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "bin": "./cli.js", - "engines": { - "node": ">=14.16" - }, - "scripts": { - "test": "xo && NODE_OPTIONS='--loader=esmock --no-warnings' ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "cli.js" - ], - "keywords": [ - "detect", - "inside", - "container", - "docker", - "dockerized", - "podman", - "is", - "env", - "environment", - "process" - ], - "dependencies": { - "is-docker": "^3.0.0" - }, - "devDependencies": { - "ava": "^5.2.0", - "esmock": "^2.1.0", - "tsd": "^0.25.0", - "xo": "^0.53.1" - } -} diff --git a/build/node_modules/is-inside-container/readme.md b/build/node_modules/is-inside-container/readme.md deleted file mode 100644 index c2a580d0..00000000 --- a/build/node_modules/is-inside-container/readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# is-inside-container - -> Check if the process is running inside a container - -## Install - -```sh -npm install is-inside-container -``` - -## Usage - -```js -import isInsideContainer from 'is-inside-container'; - -if (isInsideContainer()) { - console.log('Running inside a container'); -} -``` - -## CLI - -```sh -is-inside-container -``` - -Exits with code 0 if inside a container and 2 if not. - -## Supported containers - -- Docker -- Podman - -## Related - -- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container diff --git a/build/node_modules/is-invalid-path/LICENSE b/build/node_modules/is-invalid-path/LICENSE deleted file mode 100644 index 65f90aca..00000000 --- a/build/node_modules/is-invalid-path/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-invalid-path/README.md b/build/node_modules/is-invalid-path/README.md deleted file mode 100644 index b1aa0ea2..00000000 --- a/build/node_modules/is-invalid-path/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# is-invalid-path [![NPM version](https://badge.fury.io/js/is-invalid-path.svg)](http://badge.fury.io/js/is-invalid-path) - -> Returns true if a file path has invalid characters. - -Install with [npm](https://www.npmjs.com/) - -```bash -npm i is-invalid-path --save -``` - -## Usage - -```js -var isInvalid = require('is-invalid-path'); - -isInvalid('abc.js'); -//=> 'false' -isInvalid('abc/def/ghi.js'); -//=> 'false' -isInvalid('foo.js'); -//=> 'false' - -isInvalid(); -//=> 'true' -isInvalid(null); -//=> 'true' -isInvalid('!foo.js'); -//=> 'true' -isInvalid('*.js'); -//=> 'true' -isInvalid('**/abc.js'); -//=> 'true' -isInvalid('abc/*.js'); -//=> 'true' -isInvalid('abc/(aaa|bbb).js'); -//=> 'true' -isInvalid('abc/[a-z].js'); -//=> 'true' -isInvalid('abc/{a,b}.js'); -//=> 'true' -isInvalid('abc/?.js'); -//=> 'true' -``` - -## Related - -* [is-glob](https://github.com/jonschlinkert/is-glob): Returns `true` if the given string looks like a glob pattern. -* [is-git-url](https://github.com/jonschlinkert/is-git-url): Regex to validate that a URL is a git url. -* [micromatch](https://github.com/jonschlinkert/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. Just… [more](https://github.com/jonschlinkert/micromatch) -* [parse-glob](https://github.com/jonschlinkert/parse-glob): Parse a glob pattern into an object of tokens. - -## Run tests - -Install dev dependencies: - -```bash -npm i -d && npm test -``` - -## Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-invalid-path/issues) - -## Author - -**Jon Schlinkert** - -+ [github/jonschlinkert](https://github.com/jonschlinkert) -+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -## License - -Copyright (c) 2015 Jon Schlinkert -Released under the MIT license. - -*** - -_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on May 06, 2015._ - -[assemble]: http://assemble.io -[template]: https://github.com/jonschlinkert/template -[verb]: https://github.com/assemble/verb diff --git a/build/node_modules/is-invalid-path/index.js b/build/node_modules/is-invalid-path/index.js deleted file mode 100644 index e3955046..00000000 --- a/build/node_modules/is-invalid-path/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/*! - * is-invalid-path - * - * Copyright (c) 2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -var isGlob = require('is-glob'); -var re = /[‘“!#$%&+^<=>`]/; - -module.exports = function (str) { - return (typeof str !== 'string') || isGlob(str) || re.test(str); -}; diff --git a/build/node_modules/is-invalid-path/package.json b/build/node_modules/is-invalid-path/package.json deleted file mode 100644 index f240a6ee..00000000 --- a/build/node_modules/is-invalid-path/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "is-invalid-path", - "description": "Returns true if a file path has invalid characters.", - "version": "0.1.0", - "homepage": "https://github.com/jonschlinkert/is-invalid-path", - "author": { - "name": "Jon Schlinkert", - "url": "https://github.com/jonschlinkert" - }, - "repository": { - "type": "git", - "url": "git://github.com/jonschlinkert/is-invalid-path.git" - }, - "bugs": { - "url": "https://github.com/jonschlinkert/is-invalid-path/issues" - }, - "license": { - "type": "MIT", - "url": "https://github.com/jonschlinkert/is-invalid-path/blob/master/LICENSE" - }, - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "is-glob": "^2.0.0" - }, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "keywords": [ - "bash", - "braces", - "character", - "check", - "exec", - "expression", - "extglob", - "file", - "filepath", - "glob", - "globbing", - "globstar", - "invalid", - "match", - "matches", - "path", - "pattern", - "regex", - "regexp", - "regular", - "string", - "test", - "valid", - "validate" - ] -} \ No newline at end of file diff --git a/build/node_modules/is-lambda/.npmignore b/build/node_modules/is-lambda/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/build/node_modules/is-lambda/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/build/node_modules/is-lambda/.travis.yml b/build/node_modules/is-lambda/.travis.yml deleted file mode 100644 index 03dcca57..00000000 --- a/build/node_modules/is-lambda/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: -- '7' -- '6' -- '5' -- '4' -- '0.12' -- '0.10' diff --git a/build/node_modules/is-lambda/LICENSE b/build/node_modules/is-lambda/LICENSE deleted file mode 100644 index 4a59c941..00000000 --- a/build/node_modules/is-lambda/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016-2017 Thomas Watson Steen - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/is-lambda/README.md b/build/node_modules/is-lambda/README.md deleted file mode 100644 index 31a8f566..00000000 --- a/build/node_modules/is-lambda/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# is-lambda - -Returns `true` if the current environment is an [AWS -Lambda](https://aws.amazon.com/lambda/) server. - -[![Build status](https://travis-ci.org/watson/is-lambda.svg?branch=master)](https://travis-ci.org/watson/is-lambda) -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard) - -## Installation - -``` -npm install is-lambda -``` - -## Usage - -```js -var isLambda = require('is-lambda') - -if (isLambda) { - console.log('The code is running on a AWS Lambda') -} -``` - -## License - -MIT diff --git a/build/node_modules/is-lambda/index.js b/build/node_modules/is-lambda/index.js deleted file mode 100644 index b245ab1c..00000000 --- a/build/node_modules/is-lambda/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -module.exports = !!( - (process.env.LAMBDA_TASK_ROOT && process.env.AWS_EXECUTION_ENV) || - false -) diff --git a/build/node_modules/is-lambda/package.json b/build/node_modules/is-lambda/package.json deleted file mode 100644 index d8550898..00000000 --- a/build/node_modules/is-lambda/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "is-lambda", - "version": "1.0.1", - "description": "Detect if your code is running on an AWS Lambda server", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "clear-require": "^1.0.1", - "standard": "^10.0.2" - }, - "scripts": { - "test": "standard && node test.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/watson/is-lambda.git" - }, - "keywords": [ - "aws", - "hosting", - "hosted", - "lambda", - "detect" - ], - "author": "Thomas Watson Steen (https://twitter.com/wa7son)", - "license": "MIT", - "bugs": { - "url": "https://github.com/watson/is-lambda/issues" - }, - "homepage": "https://github.com/watson/is-lambda", - "coordinates": [ - 37.3859955, - -122.0838831 - ] -} diff --git a/build/node_modules/is-lambda/test.js b/build/node_modules/is-lambda/test.js deleted file mode 100644 index e8e73257..00000000 --- a/build/node_modules/is-lambda/test.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' - -var assert = require('assert') -var clearRequire = require('clear-require') - -process.env.AWS_EXECUTION_ENV = 'AWS_Lambda_nodejs6.10' -process.env.LAMBDA_TASK_ROOT = '/var/task' - -var isCI = require('./') -assert(isCI) - -delete process.env.AWS_EXECUTION_ENV - -clearRequire('./') -isCI = require('./') -assert(!isCI) diff --git a/build/node_modules/is-number/LICENSE b/build/node_modules/is-number/LICENSE deleted file mode 100644 index 842218cf..00000000 --- a/build/node_modules/is-number/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-number/README.md b/build/node_modules/is-number/README.md deleted file mode 100644 index 281165dc..00000000 --- a/build/node_modules/is-number/README.md +++ /dev/null @@ -1,115 +0,0 @@ -# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-number) - -> Returns true if the value is a number. comprehensive tests. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save is-number -``` - -## Usage - -To understand some of the rationale behind the decisions made in this library (and to learn about some oddities of number evaluation in JavaScript), [see this gist](https://gist.github.com/jonschlinkert/e30c70c713da325d0e81). - -```js -var isNumber = require('is-number'); -``` - -### true - -See the [tests](./test.js) for more examples. - -```js -isNumber(5e3) //=> 'true' -isNumber(0xff) //=> 'true' -isNumber(-1.1) //=> 'true' -isNumber(0) //=> 'true' -isNumber(1) //=> 'true' -isNumber(1.1) //=> 'true' -isNumber(10) //=> 'true' -isNumber(10.10) //=> 'true' -isNumber(100) //=> 'true' -isNumber('-1.1') //=> 'true' -isNumber('0') //=> 'true' -isNumber('012') //=> 'true' -isNumber('0xff') //=> 'true' -isNumber('1') //=> 'true' -isNumber('1.1') //=> 'true' -isNumber('10') //=> 'true' -isNumber('10.10') //=> 'true' -isNumber('100') //=> 'true' -isNumber('5e3') //=> 'true' -isNumber(parseInt('012')) //=> 'true' -isNumber(parseFloat('012')) //=> 'true' -``` - -### False - -See the [tests](./test.js) for more examples. - -```js -isNumber('foo') //=> 'false' -isNumber([1]) //=> 'false' -isNumber([]) //=> 'false' -isNumber(function () {}) //=> 'false' -isNumber(Infinity) //=> 'false' -isNumber(NaN) //=> 'false' -isNumber(new Array('abc')) //=> 'false' -isNumber(new Array(2)) //=> 'false' -isNumber(new Buffer('abc')) //=> 'false' -isNumber(null) //=> 'false' -isNumber(undefined) //=> 'false' -isNumber({abc: 'abc'}) //=> 'false' -``` - -## About - -### Related projects - -* [even](https://www.npmjs.com/package/even): Get the even numbered items from an array. | [homepage](https://github.com/jonschlinkert/even "Get the even numbered items from an array.") -* [is-even](https://www.npmjs.com/package/is-even): Return true if the given number is even. | [homepage](https://github.com/jonschlinkert/is-even "Return true if the given number is even.") -* [is-odd](https://www.npmjs.com/package/is-odd): Returns true if the given number is odd. | [homepage](https://github.com/jonschlinkert/is-odd "Returns true if the given number is odd.") -* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ") -* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") -* [odd](https://www.npmjs.com/package/odd): Get the odd numbered items from an array. | [homepage](https://github.com/jonschlinkert/odd "Get the odd numbered items from an array.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Building docs - -_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ - -To generate the readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm install -g verb verb-generate-readme && verb -``` - -### Running tests - -Install dev dependencies: - -```sh -$ npm install -d && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -### License - -Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT license](https://github.com/jonschlinkert/is-number/blob/master/LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 10, 2016._ \ No newline at end of file diff --git a/build/node_modules/is-number/index.js b/build/node_modules/is-number/index.js deleted file mode 100644 index 7a2a45be..00000000 --- a/build/node_modules/is-number/index.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * is-number - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -var typeOf = require('kind-of'); - -module.exports = function isNumber(num) { - var type = typeOf(num); - - if (type === 'string') { - if (!num.trim()) return false; - } else if (type !== 'number') { - return false; - } - - return (num - num + 1) >= 0; -}; diff --git a/build/node_modules/is-number/package.json b/build/node_modules/is-number/package.json deleted file mode 100644 index 8c1f9ab4..00000000 --- a/build/node_modules/is-number/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "is-number", - "description": "Returns true if the value is a number. comprehensive tests.", - "version": "3.0.0", - "homepage": "https://github.com/jonschlinkert/is-number", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Charlike Mike Reagent (http://www.tunnckocore.tk)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)" - ], - "repository": "jonschlinkert/is-number", - "bugs": { - "url": "https://github.com/jonschlinkert/is-number/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "kind-of": "^3.0.2" - }, - "devDependencies": { - "benchmarked": "^0.2.5", - "chalk": "^1.1.3", - "gulp-format-md": "^0.1.10", - "mocha": "^3.0.2" - }, - "keywords": [ - "check", - "coerce", - "coercion", - "integer", - "is", - "is-nan", - "is-num", - "is-number", - "istype", - "kind", - "math", - "nan", - "num", - "number", - "numeric", - "test", - "type", - "typeof", - "value" - ], - "verb": { - "related": { - "list": [ - "even", - "is-even", - "is-odd", - "is-primitive", - "kind-of", - "odd" - ] - }, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - }, - "reflinks": [ - "verb", - "verb-generate-readme" - ] - } -} \ No newline at end of file diff --git a/build/node_modules/is-path-cwd/index.d.ts b/build/node_modules/is-path-cwd/index.d.ts deleted file mode 100644 index 3c725444..00000000 --- a/build/node_modules/is-path-cwd/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** -Check if a path is the [current working directory](https://en.wikipedia.org/wiki/Working_directory). - -@example -``` -import isPathCwd = require('is-path-cwd'); - -isPathCwd(process.cwd()); -//=> true - -isPathCwd('unicorn'); -//=> false -``` -*/ -declare function isPathCwd(path: string): boolean; - -export = isPathCwd; diff --git a/build/node_modules/is-path-cwd/index.js b/build/node_modules/is-path-cwd/index.js deleted file mode 100644 index 4c32d9c9..00000000 --- a/build/node_modules/is-path-cwd/index.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -const path = require('path'); - -module.exports = path_ => { - let cwd = process.cwd(); - - path_ = path.resolve(path_); - - if (process.platform === 'win32') { - cwd = cwd.toLowerCase(); - path_ = path_.toLowerCase(); - } - - return path_ === cwd; -}; diff --git a/build/node_modules/is-path-cwd/license b/build/node_modules/is-path-cwd/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/is-path-cwd/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-path-cwd/package.json b/build/node_modules/is-path-cwd/package.json deleted file mode 100644 index 55bad222..00000000 --- a/build/node_modules/is-path-cwd/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "is-path-cwd", - "version": "2.2.0", - "description": "Check if a path is the current working directory", - "license": "MIT", - "repository": "sindresorhus/is-path-cwd", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "path", - "cwd", - "pwd", - "check", - "filepath", - "file", - "folder" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-path-cwd/readme.md b/build/node_modules/is-path-cwd/readme.md deleted file mode 100644 index f2384559..00000000 --- a/build/node_modules/is-path-cwd/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# is-path-cwd [![Build Status](https://travis-ci.org/sindresorhus/is-path-cwd.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-cwd) - -> Check if a path is the [current working directory](https://en.wikipedia.org/wiki/Working_directory) - - -## Install - -``` -$ npm install is-path-cwd -``` - - -## Usage - -```js -const isPathCwd = require('is-path-cwd'); - -isPathCwd(process.cwd()); -//=> true - -isPathCwd('unicorn'); -//=> false -``` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/is-path-in-cwd/index.d.ts b/build/node_modules/is-path-in-cwd/index.d.ts deleted file mode 100644 index 6e2fb022..00000000 --- a/build/node_modules/is-path-in-cwd/index.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** -Check if a path is in the [current working directory](https://en.wikipedia.org/wiki/Working_directory). - -@example -``` -import isPathInCwd = require('is-path-in-cwd'); - -isPathInCwd('unicorn'); -//=> true - -isPathInCwd('../rainbow'); -//=> false - -isPathInCwd('.'); -//=> false -``` -*/ -declare function isPathInCwd(path: string): boolean; - -export = isPathInCwd; diff --git a/build/node_modules/is-path-in-cwd/index.js b/build/node_modules/is-path-in-cwd/index.js deleted file mode 100644 index 6a2646ca..00000000 --- a/build/node_modules/is-path-in-cwd/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -const isPathInside = require('is-path-inside'); - -module.exports = path => isPathInside(path, process.cwd()); diff --git a/build/node_modules/is-path-in-cwd/license b/build/node_modules/is-path-in-cwd/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/is-path-in-cwd/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-path-in-cwd/package.json b/build/node_modules/is-path-in-cwd/package.json deleted file mode 100644 index 5e04983d..00000000 --- a/build/node_modules/is-path-in-cwd/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "is-path-in-cwd", - "version": "2.1.0", - "description": "Check if a path is in the current working directory", - "license": "MIT", - "repository": "sindresorhus/is-path-in-cwd", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "path", - "cwd", - "pwd", - "check", - "filepath", - "file", - "folder", - "in", - "inside" - ], - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-path-in-cwd/readme.md b/build/node_modules/is-path-in-cwd/readme.md deleted file mode 100644 index 306d11d0..00000000 --- a/build/node_modules/is-path-in-cwd/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# is-path-in-cwd [![Build Status](https://travis-ci.org/sindresorhus/is-path-in-cwd.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-in-cwd) - -> Check if a path is in the [current working directory](https://en.wikipedia.org/wiki/Working_directory) - - -## Install - -``` -$ npm install is-path-in-cwd -``` - - -## Usage - -```js -const isPathInCwd = require('is-path-in-cwd'); - -isPathInCwd('unicorn'); -//=> true - -isPathInCwd('../rainbow'); -//=> false - -isPathInCwd('.'); -//=> false -``` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/build/node_modules/is-path-inside/index.d.ts b/build/node_modules/is-path-inside/index.d.ts deleted file mode 100644 index 5cc3d804..00000000 --- a/build/node_modules/is-path-inside/index.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** -Check if a path is inside another path. - -Note that relative paths are resolved against `process.cwd()` to make them absolute. - -_Important:_ This package is meant for use with path manipulation. It does not check if the paths exist nor does it resolve symlinks. You should not use this as a security mechanism to guard against access to certain places on the file system. - -@example -``` -import isPathInside = require('is-path-inside'); - -isPathInside('a/b/c', 'a/b'); -//=> true - -isPathInside('a/b/c', 'x/y'); -//=> false - -isPathInside('a/b/c', 'a/b/c'); -//=> false - -isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus'); -//=> true -``` -*/ -declare function isPathInside(childPath: string, parentPath: string): boolean; - -export = isPathInside; diff --git a/build/node_modules/is-path-inside/index.js b/build/node_modules/is-path-inside/index.js deleted file mode 100644 index 28ed79c0..00000000 --- a/build/node_modules/is-path-inside/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -const path = require('path'); - -module.exports = (childPath, parentPath) => { - const relation = path.relative(parentPath, childPath); - return Boolean( - relation && - relation !== '..' && - !relation.startsWith(`..${path.sep}`) && - relation !== path.resolve(childPath) - ); -}; diff --git a/build/node_modules/is-path-inside/license b/build/node_modules/is-path-inside/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/is-path-inside/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-path-inside/package.json b/build/node_modules/is-path-inside/package.json deleted file mode 100644 index 88c154ae..00000000 --- a/build/node_modules/is-path-inside/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "is-path-inside", - "version": "3.0.3", - "description": "Check if a path is inside another path", - "license": "MIT", - "repository": "sindresorhus/is-path-inside", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "path", - "inside", - "folder", - "directory", - "dir", - "file", - "resolve" - ], - "devDependencies": { - "ava": "^2.1.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-path-inside/readme.md b/build/node_modules/is-path-inside/readme.md deleted file mode 100644 index e8c4f928..00000000 --- a/build/node_modules/is-path-inside/readme.md +++ /dev/null @@ -1,63 +0,0 @@ -# is-path-inside - -> Check if a path is inside another path - - -## Install - -``` -$ npm install is-path-inside -``` - - -## Usage - -```js -const isPathInside = require('is-path-inside'); - -isPathInside('a/b/c', 'a/b'); -//=> true - -isPathInside('a/b/c', 'x/y'); -//=> false - -isPathInside('a/b/c', 'a/b/c'); -//=> false - -isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus'); -//=> true -``` - - -## API - -### isPathInside(childPath, parentPath) - -Note that relative paths are resolved against `process.cwd()` to make them absolute. - -**Important:** This package is meant for use with path manipulation. It does not check if the paths exist nor does it resolve symlinks. You should not use this as a security mechanism to guard against access to certain places on the file system. - -#### childPath - -Type: `string` - -The path that should be inside `parentPath`. - -#### parentPath - -Type: `string` - -The path that should contain `childPath`. - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/is-plain-obj/index.d.ts b/build/node_modules/is-plain-obj/index.d.ts deleted file mode 100644 index ddf9c417..00000000 --- a/build/node_modules/is-plain-obj/index.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** -Check if a value is a plain object. - -An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. - -@example -``` -import isPlainObject = require('is-plain-obj'); - -isPlainObject({foo: 'bar'}); -//=> true - -isPlainObject(new Object()); -//=> true - -isPlainObject(Object.create(null)); -//=> true - -isPlainObject([1, 2, 3]); -//=> false - -class Unicorn {} -isPlainObject(new Unicorn()); -//=> false -``` -*/ -declare function isPlainObject(value: unknown): value is Record; - -export = isPlainObject; diff --git a/build/node_modules/is-plain-obj/index.js b/build/node_modules/is-plain-obj/index.js deleted file mode 100644 index 95079ec6..00000000 --- a/build/node_modules/is-plain-obj/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = value => { - if (Object.prototype.toString.call(value) !== '[object Object]') { - return false; - } - - const prototype = Object.getPrototypeOf(value); - return prototype === null || prototype === Object.prototype; -}; diff --git a/build/node_modules/is-plain-obj/license b/build/node_modules/is-plain-obj/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/is-plain-obj/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-plain-obj/package.json b/build/node_modules/is-plain-obj/package.json deleted file mode 100644 index ad68d6bd..00000000 --- a/build/node_modules/is-plain-obj/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "is-plain-obj", - "version": "3.0.0", - "description": "Check if a value is a plain object", - "license": "MIT", - "repository": "sindresorhus/is-plain-obj", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "object", - "is", - "check", - "test", - "type", - "plain", - "vanilla", - "pure", - "simple" - ], - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.13.1", - "xo": "^0.33.1" - } -} diff --git a/build/node_modules/is-plain-obj/readme.md b/build/node_modules/is-plain-obj/readme.md deleted file mode 100644 index 3c0c861e..00000000 --- a/build/node_modules/is-plain-obj/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# is-plain-obj [![Build Status](https://travis-ci.com/sindresorhus/is-plain-obj.svg?branch=master)](https://travis-ci.com/github/sindresorhus/is-plain-obj) - -> Check if a value is a plain object - -An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. - -## Install - -``` -$ npm install is-plain-obj -``` - -## Usage - -```js -const isPlainObject = require('is-plain-obj'); - -isPlainObject({foo: 'bar'}); -//=> true - -isPlainObject(new Object()); -//=> true - -isPlainObject(Object.create(null)); -//=> true - -isPlainObject([1, 2, 3]); -//=> false - -class Unicorn {} -isPlainObject(new Unicorn()); -//=> false -``` - -## Related - -- [is-obj](https://github.com/sindresorhus/is-obj) - Check if a value is an object -- [is](https://github.com/sindresorhus/is) - Type check values - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/is-plain-object/LICENSE b/build/node_modules/is-plain-object/LICENSE deleted file mode 100644 index 3f2eca18..00000000 --- a/build/node_modules/is-plain-object/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-plain-object/README.md b/build/node_modules/is-plain-object/README.md deleted file mode 100644 index 1f9d0c82..00000000 --- a/build/node_modules/is-plain-object/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object) - -> Returns true if an object was created by the `Object` constructor. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save is-plain-object -``` - -Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null. - -## Usage - -```js -var isPlainObject = require('is-plain-object'); -``` - -**true** when created by the `Object` constructor. - -```js -isPlainObject(Object.create({})); -//=> true -isPlainObject(Object.create(Object.prototype)); -//=> true -isPlainObject({foo: 'bar'}); -//=> true -isPlainObject({}); -//=> true -``` - -**false** when not created by the `Object` constructor. - -```js -isPlainObject(1); -//=> false -isPlainObject(['foo', 'bar']); -//=> false -isPlainObject([]); -//=> false -isPlainObject(new Foo); -//=> false -isPlainObject(null); -//=> false -isPlainObject(Object.create(null)); -//=> false -``` - -## About - -### Related projects - -* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.") -* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") -* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 17 | [jonschlinkert](https://github.com/jonschlinkert) | -| 6 | [stevenvachon](https://github.com/stevenvachon) | -| 3 | [onokumus](https://github.com/onokumus) | -| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._ \ No newline at end of file diff --git a/build/node_modules/is-plain-object/index.d.ts b/build/node_modules/is-plain-object/index.d.ts deleted file mode 100644 index 74a44e97..00000000 --- a/build/node_modules/is-plain-object/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export = isPlainObject; - -declare function isPlainObject(o: any): boolean; - -declare namespace isPlainObject {} diff --git a/build/node_modules/is-plain-object/index.js b/build/node_modules/is-plain-object/index.js deleted file mode 100644 index c3284849..00000000 --- a/build/node_modules/is-plain-object/index.js +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -var isObject = require('isobject'); - -function isObjectObject(o) { - return isObject(o) === true - && Object.prototype.toString.call(o) === '[object Object]'; -} - -module.exports = function isPlainObject(o) { - var ctor,prot; - - if (isObjectObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (typeof ctor !== 'function') return false; - - // If has modified prototype - prot = ctor.prototype; - if (isObjectObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -}; diff --git a/build/node_modules/is-plain-object/package.json b/build/node_modules/is-plain-object/package.json deleted file mode 100644 index dd604986..00000000 --- a/build/node_modules/is-plain-object/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "is-plain-object", - "description": "Returns true if an object was created by the `Object` constructor.", - "version": "2.0.4", - "homepage": "https://github.com/jonschlinkert/is-plain-object", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Osman Nuri Okumuş (http://onokumus.com)", - "Steven Vachon (https://svachon.com)", - "(https://github.com/wtgtybhertgeghgtwtg)" - ], - "repository": "jonschlinkert/is-plain-object", - "bugs": { - "url": "https://github.com/jonschlinkert/is-plain-object/issues" - }, - "license": "MIT", - "files": [ - "index.d.ts", - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js", - "test_browser": "mocha-phantomjs test/browser.html", - "test_node": "mocha", - "test": "npm run test_node && npm run browserify && npm run test_browser" - }, - "dependencies": { - "isobject": "^3.0.1" - }, - "devDependencies": { - "browserify": "^14.4.0", - "chai": "^4.0.2", - "gulp-format-md": "^1.0.0", - "mocha": "^3.4.2", - "mocha-phantomjs": "^4.1.0", - "phantomjs": "^2.1.7", - "uglify-js": "^3.0.24" - }, - "keywords": [ - "check", - "is", - "is-object", - "isobject", - "javascript", - "kind", - "kind-of", - "object", - "plain", - "type", - "typeof", - "value" - ], - "types": "index.d.ts", - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "is-number", - "isobject", - "kind-of" - ] - }, - "lint": { - "reflinks": true - } - } -} diff --git a/build/node_modules/is-stream/index.d.ts b/build/node_modules/is-stream/index.d.ts deleted file mode 100644 index eee2e83e..00000000 --- a/build/node_modules/is-stream/index.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -import * as stream from 'stream'; - -declare const isStream: { - /** - @returns Whether `stream` is a [`Stream`](https://nodejs.org/api/stream.html#stream_stream). - - @example - ``` - import * as fs from 'fs'; - import isStream = require('is-stream'); - - isStream(fs.createReadStream('unicorn.png')); - //=> true - - isStream({}); - //=> false - ``` - */ - (stream: unknown): stream is stream.Stream; - - /** - @returns Whether `stream` is a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). - - @example - ``` - import * as fs from 'fs'; - import isStream = require('is-stream'); - - isStream.writable(fs.createWriteStrem('unicorn.txt')); - //=> true - ``` - */ - writable(stream: unknown): stream is stream.Writable; - - /** - @returns Whether `stream` is a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). - - @example - ``` - import * as fs from 'fs'; - import isStream = require('is-stream'); - - isStream.readable(fs.createReadStream('unicorn.png')); - //=> true - ``` - */ - readable(stream: unknown): stream is stream.Readable; - - /** - @returns Whether `stream` is a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). - - @example - ``` - import {Duplex} from 'stream'; - import isStream = require('is-stream'); - - isStream.duplex(new Duplex()); - //=> true - ``` - */ - duplex(stream: unknown): stream is stream.Duplex; - - /** - @returns Whether `stream` is a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). - - @example - ``` - import * as fs from 'fs'; - import Stringify = require('streaming-json-stringify'); - import isStream = require('is-stream'); - - isStream.transform(Stringify()); - //=> true - ``` - */ - transform(input: unknown): input is stream.Transform; -}; - -export = isStream; diff --git a/build/node_modules/is-stream/index.js b/build/node_modules/is-stream/index.js deleted file mode 100644 index 2e43434d..00000000 --- a/build/node_modules/is-stream/index.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -const isStream = stream => - stream !== null && - typeof stream === 'object' && - typeof stream.pipe === 'function'; - -isStream.writable = stream => - isStream(stream) && - stream.writable !== false && - typeof stream._write === 'function' && - typeof stream._writableState === 'object'; - -isStream.readable = stream => - isStream(stream) && - stream.readable !== false && - typeof stream._read === 'function' && - typeof stream._readableState === 'object'; - -isStream.duplex = stream => - isStream.writable(stream) && - isStream.readable(stream); - -isStream.transform = stream => - isStream.duplex(stream) && - typeof stream._transform === 'function'; - -module.exports = isStream; diff --git a/build/node_modules/is-stream/license b/build/node_modules/is-stream/license deleted file mode 100644 index fa7ceba3..00000000 --- a/build/node_modules/is-stream/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-stream/package.json b/build/node_modules/is-stream/package.json deleted file mode 100644 index c3b56739..00000000 --- a/build/node_modules/is-stream/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "is-stream", - "version": "2.0.1", - "description": "Check if something is a Node.js stream", - "license": "MIT", - "repository": "sindresorhus/is-stream", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "stream", - "type", - "streams", - "writable", - "readable", - "duplex", - "transform", - "check", - "detect", - "is" - ], - "devDependencies": { - "@types/node": "^11.13.6", - "ava": "^1.4.1", - "tempy": "^0.3.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-stream/readme.md b/build/node_modules/is-stream/readme.md deleted file mode 100644 index 19308e73..00000000 --- a/build/node_modules/is-stream/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# is-stream - -> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html) - -## Install - -``` -$ npm install is-stream -``` - -## Usage - -```js -const fs = require('fs'); -const isStream = require('is-stream'); - -isStream(fs.createReadStream('unicorn.png')); -//=> true - -isStream({}); -//=> false -``` - -## API - -### isStream(stream) - -Returns a `boolean` for whether it's a [`Stream`](https://nodejs.org/api/stream.html#stream_stream). - -#### isStream.writable(stream) - -Returns a `boolean` for whether it's a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). - -#### isStream.readable(stream) - -Returns a `boolean` for whether it's a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). - -#### isStream.duplex(stream) - -Returns a `boolean` for whether it's a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). - -#### isStream.transform(stream) - -Returns a `boolean` for whether it's a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). - -## Related - -- [is-file-stream](https://github.com/jamestalmage/is-file-stream) - Detect if a stream is a file stream - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/is-valid-path/.editorconfig b/build/node_modules/is-valid-path/.editorconfig deleted file mode 100644 index 192641a7..00000000 --- a/build/node_modules/is-valid-path/.editorconfig +++ /dev/null @@ -1,17 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false - -[test/fixtures/*] -insert_final_newline = false -trim_trailing_whitespace = false diff --git a/build/node_modules/is-valid-path/.gitattributes b/build/node_modules/is-valid-path/.gitattributes deleted file mode 100644 index 759c2c5a..00000000 --- a/build/node_modules/is-valid-path/.gitattributes +++ /dev/null @@ -1,14 +0,0 @@ -# Enforce Unix newlines -*.* text eol=lf -*.css text eol=lf -*.html text eol=lf -*.js text eol=lf -*.json text eol=lf -*.less text eol=lf -*.md text eol=lf -*.yml text eol=lf - -*.jpg binary -*.gif binary -*.png binary -*.jpeg binary \ No newline at end of file diff --git a/build/node_modules/is-valid-path/.jshintrc b/build/node_modules/is-valid-path/.jshintrc deleted file mode 100644 index 96d4b143..00000000 --- a/build/node_modules/is-valid-path/.jshintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "asi": false, - "boss": true, - "curly": true, - "eqeqeq": true, - "eqnull": true, - "esnext": true, - "immed": true, - "latedef": true, - "laxcomma": false, - "newcap": true, - "noarg": true, - "node": true, - "sub": true, - "undef": true, - "unused": true, - "mocha": true -} \ No newline at end of file diff --git a/build/node_modules/is-valid-path/.npmignore b/build/node_modules/is-valid-path/.npmignore deleted file mode 100644 index 1ffbc244..00000000 --- a/build/node_modules/is-valid-path/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -*.sublime-* -_gh_pages -actual -bower_components -node_modules -npm-debug.log -temp -test/actual -tmp -TODO.md -vendor \ No newline at end of file diff --git a/build/node_modules/is-valid-path/.verb.md b/build/node_modules/is-valid-path/.verb.md deleted file mode 100644 index 5816ec8d..00000000 --- a/build/node_modules/is-valid-path/.verb.md +++ /dev/null @@ -1,68 +0,0 @@ -# {%= name %} {%= badge("fury") %} - -> {%= description %} - -{%= include("install-npm", {save: true}) %} - -## Usage - -```js -var isValid = require('{%= name %}'); - -/** - * Valid - */ - -isValid('abc.js'); -//=> 'true' -isValid('abc/def/ghi.js'); -//=> 'true' -isValid('foo.js'); -//=> 'true' - - -/** - * Invalid - */ - -isValid(); -//=> 'valse' -isValid(null); -//=> 'valse' -isValid('!foo.js'); -//=> 'false' -isValid('*.js'); -//=> 'false' -isValid('**/abc.js'); -//=> 'false' -isValid('abc/*.js'); -//=> 'false' -isValid('abc/(aaa|bbb).js'); -//=> 'false' -isValid('abc/[a-z].js'); -//=> 'false' -isValid('abc/{a,b}.js'); -//=> 'false' -isValid('abc/?.js'); -//=> 'false' -``` - -## Related -{%= related(['is-glob', 'is-invalid-path', 'is-valid-path', 'is-git-url', 'micromatch', 'parse-glob'], {remove: name}) %} - -## Run tests -{%= include("tests") %} - -## Contributing -{%= include("contributing") %} - -## Author -{%= include("author") %} - -## License -{%= copyright() %} -{%= license() %} - -*** - -{%= include("footer") %} diff --git a/build/node_modules/is-valid-path/LICENSE b/build/node_modules/is-valid-path/LICENSE deleted file mode 100644 index 33754dae..00000000 --- a/build/node_modules/is-valid-path/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jon Schlinkert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-valid-path/README.md b/build/node_modules/is-valid-path/README.md deleted file mode 100644 index 88503e3e..00000000 --- a/build/node_modules/is-valid-path/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# is-valid-path [![NPM version](https://badge.fury.io/js/is-valid-path.svg)](http://badge.fury.io/js/is-valid-path) - -> Returns true if a file path does not contain any invalid characters. - -Install with [npm](https://www.npmjs.com/) - -```bash -npm i is-valid-path --save -``` - -## Usage - -```js -var isValid = require('is-valid-path'); - -/** - * Valid - */ - -isValid('abc.js'); -//=> 'true' -isValid('abc/def/ghi.js'); -//=> 'true' -isValid('foo.js'); -//=> 'true' - -/** - * Invalid - */ - -isValid(); -//=> 'valse' -isValid(null); -//=> 'valse' -isValid('!foo.js'); -//=> 'false' -isValid('*.js'); -//=> 'false' -isValid('**/abc.js'); -//=> 'false' -isValid('abc/*.js'); -//=> 'false' -isValid('abc/(aaa|bbb).js'); -//=> 'false' -isValid('abc/[a-z].js'); -//=> 'false' -isValid('abc/{a,b}.js'); -//=> 'false' -isValid('abc/?.js'); -//=> 'false' -``` - -## Related - -* [is-glob](https://github.com/jonschlinkert/is-glob): Returns `true` if the given string looks like a glob pattern. -* [is-invalid-path](https://github.com/jonschlinkert/is-invalid-path): Returns true if a file path has invalid characters. -* [is-git-url](https://github.com/jonschlinkert/is-git-url): Regex to validate that a URL is a git url. -* [micromatch](https://github.com/jonschlinkert/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. Just… [more](https://github.com/jonschlinkert/micromatch) -* [parse-glob](https://github.com/jonschlinkert/parse-glob): Parse a glob pattern into an object of tokens. - -## Run tests - -Install dev dependencies: - -```bash -npm i -d && npm test -``` - -## Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-valid-path/issues) - -## Author - -**Jon Schlinkert** - -+ [github/jonschlinkert](https://github.com/jonschlinkert) -+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -## License - -Copyright (c) 2015 Jon Schlinkert -Released under the MIT license. - -*** - -_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on May 06, 2015._ diff --git a/build/node_modules/is-valid-path/index.js b/build/node_modules/is-valid-path/index.js deleted file mode 100644 index fe98b5c7..00000000 --- a/build/node_modules/is-valid-path/index.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * is-valid-path - * - * Copyright (c) 2015 Jon Schlinkert, contributors. - * Licensed under the MIT license. - */ - -'use strict'; - -var isInvalidPath = require('is-invalid-path'); - -module.exports = function (str) { - return isInvalidPath(str) === false; -}; diff --git a/build/node_modules/is-valid-path/package.json b/build/node_modules/is-valid-path/package.json deleted file mode 100644 index b677b159..00000000 --- a/build/node_modules/is-valid-path/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "is-valid-path", - "description": "Returns true if a file path does not contain any invalid characters.", - "version": "0.1.1", - "homepage": "https://github.com/jonschlinkert/is-valid-path", - "author": { - "name": "Jon Schlinkert", - "url": "https://github.com/jonschlinkert" - }, - "repository": { - "type": "git", - "url": "git://github.com/jonschlinkert/is-valid-path.git" - }, - "bugs": { - "url": "https://github.com/jonschlinkert/is-valid-path/issues" - }, - "license": { - "type": "MIT", - "url": "https://github.com/jonschlinkert/is-valid-path/blob/master/LICENSE" - }, - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "keywords": [ - "bash", - "braces", - "character", - "check", - "exec", - "expression", - "extglob", - "file", - "filepath", - "glob", - "globbing", - "globstar", - "invalid", - "match", - "matches", - "path", - "pattern", - "regex", - "regexp", - "regular", - "string", - "test", - "valid", - "validate" - ], - "dependencies": { - "is-invalid-path": "^0.1.0" - } -} diff --git a/build/node_modules/is-valid-path/test.js b/build/node_modules/is-valid-path/test.js deleted file mode 100644 index 3d2a4f4c..00000000 --- a/build/node_modules/is-valid-path/test.js +++ /dev/null @@ -1,71 +0,0 @@ -/*! - * is-valid-path - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ - -'use strict'; - -/* deps: mocha */ -require('should'); -var isValid = require('./'); - -describe('isValid', function () { - it('should return `true` if the path is valid:', function () { - isValid('.').should.be.true; - isValid('aa').should.be.true; - isValid('abc.js').should.be.true; - isValid('abc/def/ghi.js').should.be.true; - }); - - it('should return `false` if it is a glob pattern:', function () { - isValid('*.js').should.be.false; - isValid('!*.js').should.be.false; - isValid('!foo').should.be.false; - isValid('!foo.js').should.be.false; - isValid('**/abc.js').should.be.false; - isValid('abc/*.js').should.be.false; - }); - - it('should return `false` if the path has brace characters:', function () { - isValid('abc/{a,b}.js').should.be.false; - isValid('abc/{a..z}.js').should.be.false; - isValid('abc/{a..z..2}.js').should.be.false; - }); - - it('should return `false` if it has an extglob:', function () { - isValid('abc/@(a).js').should.be.false; - isValid('abc/!(a).js').should.be.false; - isValid('abc/+(a).js').should.be.false; - isValid('abc/*(a).js').should.be.false; - isValid('abc/?(a).js').should.be.false; - }); - - it('should return `false` if it has extglob characters:', function () { - isValid('abc/@.js').should.be.false; - isValid('abc/!.js').should.be.false; - isValid('abc/+.js').should.be.false; - isValid('abc/*.js').should.be.false; - isValid('abc/?.js').should.be.false; - }); - - it('should return `false` if the path has regex characters:', function () { - isValid('abc/(aaa|bbb).js').should.be.false; - isValid('abc/?.js').should.be.false; - isValid('?.js').should.be.false; - isValid('[abc].js').should.be.false; - isValid('[^abc].js').should.be.false; - isValid('a/b/c/[a-z].js').should.be.false; - isValid('[a-j]*[^c]b/c').should.be.false; - }); - - it('should return `false` if it is not a string:', function () { - isValid().should.be.false; - isValid({}).should.be.false; - isValid(null).should.be.false; - isValid(['**/*.js']).should.be.false; - isValid(['foo.js']).should.be.false; - }); -}); - diff --git a/build/node_modules/is-windows/LICENSE b/build/node_modules/is-windows/LICENSE deleted file mode 100644 index f8de0630..00000000 --- a/build/node_modules/is-windows/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2018, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/is-windows/README.md b/build/node_modules/is-windows/README.md deleted file mode 100644 index 485bfdec..00000000 --- a/build/node_modules/is-windows/README.md +++ /dev/null @@ -1,95 +0,0 @@ -# is-windows [![NPM version](https://img.shields.io/npm/v/is-windows.svg?style=flat)](https://www.npmjs.com/package/is-windows) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-windows.svg?style=flat)](https://npmjs.org/package/is-windows) [![NPM total downloads](https://img.shields.io/npm/dt/is-windows.svg?style=flat)](https://npmjs.org/package/is-windows) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-windows.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-windows) - -> Returns true if the platform is windows. UMD module, works with node.js, commonjs, browser, AMD, electron, etc. - -Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save is-windows -``` - -## Heads up! - -As of `v0.2.0` this module always returns a function. - -## Node.js usage - -```js -var isWindows = require('is-windows'); - -console.log(isWindows()); -//=> returns true if the platform is windows -``` - -## About - -
-Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -
- -
-Running Tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -
- -
-Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -
- -### Related projects - -You might also be interested in these projects: - -* [is-absolute](https://www.npmjs.com/package/is-absolute): Returns true if a file path is absolute. Does not rely on the path module… [more](https://github.com/jonschlinkert/is-absolute) | [homepage](https://github.com/jonschlinkert/is-absolute "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.") -* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") -* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.") -* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") -* [window-size](https://www.npmjs.com/package/window-size): Reliable way to get the height and width of terminal/console, since it's not calculated or… [more](https://github.com/jonschlinkert/window-size) | [homepage](https://github.com/jonschlinkert/window-size "Reliable way to get the height and width of terminal/console, since it's not calculated or updated the same way on all platforms, environments and node.js versions.") - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 11 | [jonschlinkert](https://github.com/jonschlinkert) | -| 4 | [doowb](https://github.com/doowb) | -| 1 | [SimenB](https://github.com/SimenB) | -| 1 | [gucong3000](https://github.com/gucong3000) | - -### Author - -**Jon Schlinkert** - -* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert) -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on February 14, 2018._ \ No newline at end of file diff --git a/build/node_modules/is-windows/index.js b/build/node_modules/is-windows/index.js deleted file mode 100644 index 55d43e09..00000000 --- a/build/node_modules/is-windows/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ - -(function(factory) { - if (exports && typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = factory(); - } else if (typeof define === 'function' && define.amd) { - define([], factory); - } else if (typeof window !== 'undefined') { - window.isWindows = factory(); - } else if (typeof global !== 'undefined') { - global.isWindows = factory(); - } else if (typeof self !== 'undefined') { - self.isWindows = factory(); - } else { - this.isWindows = factory(); - } -})(function() { - 'use strict'; - return function isWindows() { - return process && (process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE)); - }; -}); diff --git a/build/node_modules/is-windows/package.json b/build/node_modules/is-windows/package.json deleted file mode 100644 index fca09f9c..00000000 --- a/build/node_modules/is-windows/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "is-windows", - "description": "Returns true if the platform is windows. UMD module, works with node.js, commonjs, browser, AMD, electron, etc.", - "version": "1.0.2", - "homepage": "https://github.com/jonschlinkert/is-windows", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Simen Bekkhus (https://github.com/SimenB)", - "刘祺 (gucong.co.cc)" - ], - "repository": "jonschlinkert/is-windows", - "bugs": { - "url": "https://github.com/jonschlinkert/is-windows/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "gulp-format-md": "^1.0.0", - "mocha": "^3.5.3" - }, - "keywords": [ - "check", - "cywin", - "is", - "is-windows", - "nix", - "operating system", - "os", - "platform", - "process", - "unix", - "win", - "win32", - "windows" - ], - "verb": { - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "is-absolute", - "is-glob", - "is-relative", - "isobject", - "window-size" - ] - }, - "lint": { - "reflinks": true - }, - "reflinks": [ - "verb" - ] - } -} diff --git a/build/node_modules/is-wsl/index.d.ts b/build/node_modules/is-wsl/index.d.ts deleted file mode 100644 index d54e4bac..00000000 --- a/build/node_modules/is-wsl/index.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** -Check if the process is running inside [Windows Subsystem for Linux](https://msdn.microsoft.com/commandline/wsl/about) (Bash on Windows). - -@example -``` -import isWsl = require('is-wsl'); - -// When running inside Windows Subsystem for Linux -console.log(isWsl); -//=> true -``` -*/ -declare const isWsl: boolean; - -export = isWsl; diff --git a/build/node_modules/is-wsl/index.js b/build/node_modules/is-wsl/index.js deleted file mode 100644 index eb6313f0..00000000 --- a/build/node_modules/is-wsl/index.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; -const os = require('os'); -const fs = require('fs'); -const isDocker = require('is-docker'); - -const isWsl = () => { - if (process.platform !== 'linux') { - return false; - } - - if (os.release().toLowerCase().includes('microsoft')) { - if (isDocker()) { - return false; - } - - return true; - } - - try { - return fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft') ? - !isDocker() : false; - } catch (_) { - return false; - } -}; - -if (process.env.__IS_WSL_TEST__) { - module.exports = isWsl; -} else { - module.exports = isWsl(); -} diff --git a/build/node_modules/is-wsl/license b/build/node_modules/is-wsl/license deleted file mode 100644 index e7af2f77..00000000 --- a/build/node_modules/is-wsl/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/is-wsl/package.json b/build/node_modules/is-wsl/package.json deleted file mode 100644 index 2fa7f754..00000000 --- a/build/node_modules/is-wsl/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "is-wsl", - "version": "2.2.0", - "description": "Check if the process is running inside Windows Subsystem for Linux (Bash on Windows)", - "license": "MIT", - "repository": "sindresorhus/is-wsl", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "check", - "wsl", - "windows", - "subsystem", - "linux", - "detect", - "bash", - "process", - "console", - "terminal", - "is" - ], - "dependencies": { - "is-docker": "^2.0.0" - }, - "devDependencies": { - "ava": "^1.4.1", - "clear-module": "^3.2.0", - "proxyquire": "^2.1.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/build/node_modules/is-wsl/readme.md b/build/node_modules/is-wsl/readme.md deleted file mode 100644 index 5fe44fed..00000000 --- a/build/node_modules/is-wsl/readme.md +++ /dev/null @@ -1,36 +0,0 @@ -# is-wsl [![Build Status](https://travis-ci.org/sindresorhus/is-wsl.svg?branch=master)](https://travis-ci.org/sindresorhus/is-wsl) - -> Check if the process is running inside [Windows Subsystem for Linux](https://msdn.microsoft.com/commandline/wsl/about) (Bash on Windows) - -Can be useful if you need to work around unimplemented or buggy features in WSL. Supports both WSL 1 and WSL 2. - - -## Install - -``` -$ npm install is-wsl -``` - - -## Usage - -```js -const isWsl = require('is-wsl'); - -// When running inside Windows Subsystem for Linux -console.log(isWsl); -//=> true -``` - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/build/node_modules/isarray/.npmignore b/build/node_modules/isarray/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/build/node_modules/isarray/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/build/node_modules/isarray/.travis.yml b/build/node_modules/isarray/.travis.yml deleted file mode 100644 index cc4dba29..00000000 --- a/build/node_modules/isarray/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/build/node_modules/isarray/Makefile b/build/node_modules/isarray/Makefile deleted file mode 100644 index 787d56e1..00000000 --- a/build/node_modules/isarray/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test.js - -.PHONY: test - diff --git a/build/node_modules/isarray/README.md b/build/node_modules/isarray/README.md deleted file mode 100644 index 16d2c59c..00000000 --- a/build/node_modules/isarray/README.md +++ /dev/null @@ -1,60 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) -[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) - -[![browser support](https://ci.testling.com/juliangruber/isarray.png) -](https://ci.testling.com/juliangruber/isarray) - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/isarray/component.json b/build/node_modules/isarray/component.json deleted file mode 100644 index 9e31b683..00000000 --- a/build/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/build/node_modules/isarray/index.js b/build/node_modules/isarray/index.js deleted file mode 100644 index a57f6349..00000000 --- a/build/node_modules/isarray/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; diff --git a/build/node_modules/isarray/package.json b/build/node_modules/isarray/package.json deleted file mode 100644 index 1a4317a9..00000000 --- a/build/node_modules/isarray/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tape": "~2.13.4" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test.js", - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "scripts": { - "test": "tape test.js" - } -} diff --git a/build/node_modules/isarray/test.js b/build/node_modules/isarray/test.js deleted file mode 100644 index e0c3444d..00000000 --- a/build/node_modules/isarray/test.js +++ /dev/null @@ -1,20 +0,0 @@ -var isArray = require('./'); -var test = require('tape'); - -test('is array', function(t){ - t.ok(isArray([])); - t.notOk(isArray({})); - t.notOk(isArray(null)); - t.notOk(isArray(false)); - - var obj = {}; - obj[0] = true; - t.notOk(isArray(obj)); - - var arr = []; - arr.foo = 'bar'; - t.ok(isArray(arr)); - - t.end(); -}); - diff --git a/build/node_modules/isexe/.npmignore b/build/node_modules/isexe/.npmignore deleted file mode 100644 index c1cb757a..00000000 --- a/build/node_modules/isexe/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.nyc_output/ -coverage/ diff --git a/build/node_modules/isexe/LICENSE b/build/node_modules/isexe/LICENSE deleted file mode 100644 index 19129e31..00000000 --- a/build/node_modules/isexe/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/build/node_modules/isexe/README.md b/build/node_modules/isexe/README.md deleted file mode 100644 index 35769e84..00000000 --- a/build/node_modules/isexe/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# isexe - -Minimal module to check if a file is executable, and a normal file. - -Uses `fs.stat` and tests against the `PATHEXT` environment variable on -Windows. - -## USAGE - -```javascript -var isexe = require('isexe') -isexe('some-file-name', function (err, isExe) { - if (err) { - console.error('probably file does not exist or something', err) - } else if (isExe) { - console.error('this thing can be run') - } else { - console.error('cannot be run') - } -}) - -// same thing but synchronous, throws errors -var isExe = isexe.sync('some-file-name') - -// treat errors as just "not executable" -isexe('maybe-missing-file', { ignoreErrors: true }, callback) -var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true }) -``` - -## API - -### `isexe(path, [options], [callback])` - -Check if the path is executable. If no callback provided, and a -global `Promise` object is available, then a Promise will be returned. - -Will raise whatever errors may be raised by `fs.stat`, unless -`options.ignoreErrors` is set to true. - -### `isexe.sync(path, [options])` - -Same as `isexe` but returns the value and throws any errors raised. - -### Options - -* `ignoreErrors` Treat all errors as "no, this is not executable", but - don't raise them. -* `uid` Number to use as the user id -* `gid` Number to use as the group id -* `pathExt` List of path extensions to use instead of `PATHEXT` - environment variable on Windows. diff --git a/build/node_modules/isexe/index.js b/build/node_modules/isexe/index.js deleted file mode 100644 index 553fb32b..00000000 --- a/build/node_modules/isexe/index.js +++ /dev/null @@ -1,57 +0,0 @@ -var fs = require('fs') -var core -if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = require('./windows.js') -} else { - core = require('./mode.js') -} - -module.exports = isexe -isexe.sync = sync - -function isexe (path, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } - - if (!cb) { - if (typeof Promise !== 'function') { - throw new TypeError('callback not provided') - } - - return new Promise(function (resolve, reject) { - isexe(path, options || {}, function (er, is) { - if (er) { - reject(er) - } else { - resolve(is) - } - }) - }) - } - - core(path, options || {}, function (er, is) { - // ignore EACCES because that just means we aren't allowed to run it - if (er) { - if (er.code === 'EACCES' || options && options.ignoreErrors) { - er = null - is = false - } - } - cb(er, is) - }) -} - -function sync (path, options) { - // my kingdom for a filtered catch - try { - return core.sync(path, options || {}) - } catch (er) { - if (options && options.ignoreErrors || er.code === 'EACCES') { - return false - } else { - throw er - } - } -} diff --git a/build/node_modules/isexe/mode.js b/build/node_modules/isexe/mode.js deleted file mode 100644 index 1995ea4a..00000000 --- a/build/node_modules/isexe/mode.js +++ /dev/null @@ -1,41 +0,0 @@ -module.exports = isexe -isexe.sync = sync - -var fs = require('fs') - -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, options)) - }) -} - -function sync (path, options) { - return checkStat(fs.statSync(path), options) -} - -function checkStat (stat, options) { - return stat.isFile() && checkMode(stat, options) -} - -function checkMode (stat, options) { - var mod = stat.mode - var uid = stat.uid - var gid = stat.gid - - var myUid = options.uid !== undefined ? - options.uid : process.getuid && process.getuid() - var myGid = options.gid !== undefined ? - options.gid : process.getgid && process.getgid() - - var u = parseInt('100', 8) - var g = parseInt('010', 8) - var o = parseInt('001', 8) - var ug = u | g - - var ret = (mod & o) || - (mod & g) && gid === myGid || - (mod & u) && uid === myUid || - (mod & ug) && myUid === 0 - - return ret -} diff --git a/build/node_modules/isexe/package.json b/build/node_modules/isexe/package.json deleted file mode 100644 index e4526894..00000000 --- a/build/node_modules/isexe/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "isexe", - "version": "2.0.0", - "description": "Minimal module to check if a file is executable.", - "main": "index.js", - "directories": { - "test": "test" - }, - "devDependencies": { - "mkdirp": "^0.5.1", - "rimraf": "^2.5.0", - "tap": "^10.3.0" - }, - "scripts": { - "test": "tap test/*.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/isexe.git" - }, - "keywords": [], - "bugs": { - "url": "https://github.com/isaacs/isexe/issues" - }, - "homepage": "https://github.com/isaacs/isexe#readme" -} diff --git a/build/node_modules/isexe/windows.js b/build/node_modules/isexe/windows.js deleted file mode 100644 index 34996734..00000000 --- a/build/node_modules/isexe/windows.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = isexe -isexe.sync = sync - -var fs = require('fs') - -function checkPathExt (path, options) { - var pathext = options.pathExt !== undefined ? - options.pathExt : process.env.PATHEXT - - if (!pathext) { - return true - } - - pathext = pathext.split(';') - if (pathext.indexOf('') !== -1) { - return true - } - for (var i = 0; i < pathext.length; i++) { - var p = pathext[i].toLowerCase() - if (p && path.substr(-p.length).toLowerCase() === p) { - return true - } - } - return false -} - -function checkStat (stat, path, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) { - return false - } - return checkPathExt(path, options) -} - -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, path, options)) - }) -} - -function sync (path, options) { - return checkStat(fs.statSync(path), path, options) -} diff --git a/build/node_modules/isobject/LICENSE b/build/node_modules/isobject/LICENSE deleted file mode 100644 index 943e71d0..00000000 --- a/build/node_modules/isobject/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2017, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/isobject/README.md b/build/node_modules/isobject/README.md deleted file mode 100644 index d01feaa4..00000000 --- a/build/node_modules/isobject/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# isobject [![NPM version](https://img.shields.io/npm/v/isobject.svg?style=flat)](https://www.npmjs.com/package/isobject) [![NPM monthly downloads](https://img.shields.io/npm/dm/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![NPM total downloads](https://img.shields.io/npm/dt/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/isobject.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/isobject) - -> Returns true if the value is an object and not an array or null. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install --save isobject -``` - -Install with [yarn](https://yarnpkg.com): - -```sh -$ yarn add isobject -``` - -Use [is-plain-object](https://github.com/jonschlinkert/is-plain-object) if you want only objects that are created by the `Object` constructor. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm install isobject -``` -Install with [bower](https://bower.io/) - -```sh -$ bower install isobject -``` - -## Usage - -```js -var isObject = require('isobject'); -``` - -**True** - -All of the following return `true`: - -```js -isObject({}); -isObject(Object.create({})); -isObject(Object.create(Object.prototype)); -isObject(Object.create(null)); -isObject({}); -isObject(new Foo); -isObject(/foo/); -``` - -**False** - -All of the following return `false`: - -```js -isObject(); -isObject(function () {}); -isObject(1); -isObject([]); -isObject(undefined); -isObject(null); -``` - -## About - -### Related projects - -* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.") -* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") -* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") -* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.") - -### Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). - -### Contributors - -| **Commits** | **Contributor** | -| --- | --- | -| 29 | [jonschlinkert](https://github.com/jonschlinkert) | -| 4 | [doowb](https://github.com/doowb) | -| 1 | [magnudae](https://github.com/magnudae) | -| 1 | [LeSuisse](https://github.com/LeSuisse) | -| 1 | [tmcw](https://github.com/tmcw) | - -### Building docs - -_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ - -To generate the readme, run the following command: - -```sh -$ npm install -g verbose/verb#dev verb-generate-readme && verb -``` - -### Running tests - -Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: - -```sh -$ npm install && npm test -``` - -### Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](https://twitter.com/jonschlinkert) - -### License - -Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert). -Released under the [MIT License](LICENSE). - -*** - -_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 30, 2017._ \ No newline at end of file diff --git a/build/node_modules/isobject/index.d.ts b/build/node_modules/isobject/index.d.ts deleted file mode 100644 index 55f81c27..00000000 --- a/build/node_modules/isobject/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export = isObject; - -declare function isObject(val: any): boolean; - -declare namespace isObject {} diff --git a/build/node_modules/isobject/index.js b/build/node_modules/isobject/index.js deleted file mode 100644 index 2d59958b..00000000 --- a/build/node_modules/isobject/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/*! - * isobject - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -'use strict'; - -module.exports = function isObject(val) { - return val != null && typeof val === 'object' && Array.isArray(val) === false; -}; diff --git a/build/node_modules/isobject/package.json b/build/node_modules/isobject/package.json deleted file mode 100644 index 62aa8c1b..00000000 --- a/build/node_modules/isobject/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "isobject", - "description": "Returns true if the value is an object and not an array or null.", - "version": "3.0.1", - "homepage": "https://github.com/jonschlinkert/isobject", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "contributors": [ - "(https://github.com/LeSuisse)", - "Brian Woodward (https://twitter.com/doowb)", - "Jon Schlinkert (http://twitter.com/jonschlinkert)", - "Magnús Dæhlen (https://github.com/magnudae)", - "Tom MacWright (https://macwright.org)" - ], - "repository": "jonschlinkert/isobject", - "bugs": { - "url": "https://github.com/jonschlinkert/isobject/issues" - }, - "license": "MIT", - "files": [ - "index.d.ts", - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": {}, - "devDependencies": { - "gulp-format-md": "^0.1.9", - "mocha": "^2.4.5" - }, - "keywords": [ - "check", - "is", - "is-object", - "isobject", - "kind", - "kind-of", - "kindof", - "native", - "object", - "type", - "typeof", - "value" - ], - "types": "index.d.ts", - "verb": { - "related": { - "list": [ - "extend-shallow", - "is-plain-object", - "kind-of", - "merge-deep" - ] - }, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "lint": { - "reflinks": true - }, - "reflinks": [ - "verb" - ] - } -} diff --git a/build/node_modules/jest-diff/LICENSE b/build/node_modules/jest-diff/LICENSE deleted file mode 100644 index b93be905..00000000 --- a/build/node_modules/jest-diff/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/jest-diff/README.md b/build/node_modules/jest-diff/README.md deleted file mode 100644 index d52f8217..00000000 --- a/build/node_modules/jest-diff/README.md +++ /dev/null @@ -1,671 +0,0 @@ -# jest-diff - -Display differences clearly so people can review changes confidently. - -The `diff` named export serializes JavaScript **values**, compares them line-by-line, and returns a string which includes comparison lines. - -Two named exports compare **strings** character-by-character: - -- `diffStringsUnified` returns a string. -- `diffStringsRaw` returns an array of `Diff` objects. - -Three named exports compare **arrays of strings** line-by-line: - -- `diffLinesUnified` and `diffLinesUnified2` return a string. -- `diffLinesRaw` returns an array of `Diff` objects. - -## Installation - -To add this package as a dependency of a project, run either of the following commands: - -- `npm install jest-diff` -- `yarn add jest-diff` - -## Usage of `diff()` - -Given JavaScript **values**, `diff(a, b, options?)` does the following: - -1. **serialize** the values as strings using the `pretty-format` package -2. **compare** the strings line-by-line using the `diff-sequences` package -3. **format** the changed or common lines using the `chalk` package - -To use this function, write either of the following: - -- `const {diff} = require('jest-diff');` in CommonJS modules -- `import {diff} from 'jest-diff';` in ECMAScript modules - -### Example of `diff()` - -```js -const a = ['delete', 'common', 'changed from']; -const b = ['common', 'changed to', 'insert']; - -const difference = diff(a, b); -``` - -The returned **string** consists of: - -- annotation lines: describe the two change indicators with labels, and a blank line -- comparison lines: similar to “unified” view on GitHub, but `Expected` lines are green, `Received` lines are red, and common lines are dim (by default, see Options) - -```diff -- Expected -+ Received - - Array [ -- "delete", - "common", -- "changed from", -+ "changed to", -+ "insert", - ] -``` - -### Edge cases of `diff()` - -Here are edge cases for the return value: - -- `' Comparing two different types of values. …'` if the arguments have **different types** according to the `jest-get-type` package (instances of different classes have the same `'object'` type) -- `'Compared values have no visual difference.'` if the arguments have either **referential identity** according to `Object.is` method or **same serialization** according to the `pretty-format` package -- `null` if either argument is a so-called **asymmetric matcher** in Jasmine or Jest - -## Usage of diffStringsUnified - -Given **strings**, `diffStringsUnified(a, b, options?)` does the following: - -1. **compare** the strings character-by-character using the `diff-sequences` package -2. **clean up** small (often coincidental) common substrings, also known as chaff -3. **format** the changed or common lines using the `chalk` package - -Although the function is mainly for **multiline** strings, it compares any strings. - -Write either of the following: - -- `const {diffStringsUnified} = require('jest-diff');` in CommonJS modules -- `import {diffStringsUnified} from 'jest-diff';` in ECMAScript modules - -### Example of diffStringsUnified - -```js -const a = 'common\nchanged from'; -const b = 'common\nchanged to'; - -const difference = diffStringsUnified(a, b); -``` - -The returned **string** consists of: - -- annotation lines: describe the two change indicators with labels, and a blank line -- comparison lines: similar to “unified” view on GitHub, and **changed substrings** have **inverse** foreground and background colors (that is, `from` has white-on-green and `to` has white-on-red, which the following example does not show) - -```diff -- Expected -+ Received - - common -- changed from -+ changed to -``` - -### Performance of diffStringsUnified - -To get the benefit of **changed substrings** within the comparison lines, a character-by-character comparison has a higher computational cost (in time and space) than a line-by-line comparison. - -If the input strings can have **arbitrary length**, we recommend that the calling code set a limit, beyond which splits the strings, and then calls `diffLinesUnified` instead. For example, Jest falls back to line-by-line comparison if either string has length greater than 20K characters. - -## Usage of diffLinesUnified - -Given **arrays of strings**, `diffLinesUnified(aLines, bLines, options?)` does the following: - -1. **compare** the arrays line-by-line using the `diff-sequences` package -2. **format** the changed or common lines using the `chalk` package - -You might call this function when strings have been split into lines and you do not need to see changed substrings within lines. - -### Example of diffLinesUnified - -```js -const aLines = ['delete', 'common', 'changed from']; -const bLines = ['common', 'changed to', 'insert']; - -const difference = diffLinesUnified(aLines, bLines); -``` - -```diff -- Expected -+ Received - -- delete - common -- changed from -+ changed to -+ insert -``` - -### Edge cases of diffLinesUnified or diffStringsUnified - -Here are edge cases for arguments and return values: - -- both `a` and `b` are empty strings: no comparison lines -- only `a` is empty string: all comparison lines have `bColor` and `bIndicator` (see Options) -- only `b` is empty string: all comparison lines have `aColor` and `aIndicator` (see Options) -- `a` and `b` are equal non-empty strings: all comparison lines have `commonColor` and `commonIndicator` (see Options) - -## Usage of diffLinesUnified2 - -Given two **pairs** of arrays of strings, `diffLinesUnified2(aLinesDisplay, bLinesDisplay, aLinesCompare, bLinesCompare, options?)` does the following: - -1. **compare** the pair of `Compare` arrays line-by-line using the `diff-sequences` package -2. **format** the corresponding lines in the pair of `Display` arrays using the `chalk` package - -Jest calls this function to consider lines as common instead of changed if the only difference is indentation. - -You might call this function for case insensitive or Unicode equivalence comparison of lines. - -### Example of diffLinesUnified2 - -```js -import {format} from 'pretty-format'; - -const a = { - text: 'Ignore indentation in serialized object', - time: '2019-09-19T12:34:56.000Z', - type: 'CREATE_ITEM', -}; -const b = { - payload: { - text: 'Ignore indentation in serialized object', - time: '2019-09-19T12:34:56.000Z', - }, - type: 'CREATE_ITEM', -}; - -const difference = diffLinesUnified2( - // serialize with indentation to display lines - format(a).split('\n'), - format(b).split('\n'), - // serialize without indentation to compare lines - format(a, {indent: 0}).split('\n'), - format(b, {indent: 0}).split('\n'), -); -``` - -The `text` and `time` properties are common, because their only difference is indentation: - -```diff -- Expected -+ Received - - Object { -+ payload: Object { - text: 'Ignore indentation in serialized object', - time: '2019-09-19T12:34:56.000Z', -+ }, - type: 'CREATE_ITEM', - } -``` - -The preceding example illustrates why (at least for indentation) it seems more intuitive that the function returns the common line from the `bLinesDisplay` array instead of from the `aLinesDisplay` array. - -## Usage of diffStringsRaw - -Given **strings** and a boolean option, `diffStringsRaw(a, b, cleanup)` does the following: - -1. **compare** the strings character-by-character using the `diff-sequences` package -2. optionally **clean up** small (often coincidental) common substrings, also known as chaff - -Because `diffStringsRaw` returns the difference as **data** instead of a string, you can format it as your application requires (for example, enclosed in HTML markup for browser instead of escape sequences for console). - -The returned **array** describes substrings as instances of the `Diff` class, which calling code can access like array tuples: - -The value at index `0` is one of the following: - -| value | named export | description | -| ----: | :------------ | :-------------------- | -| `0` | `DIFF_EQUAL` | in `a` and in `b` | -| `-1` | `DIFF_DELETE` | in `a` but not in `b` | -| `1` | `DIFF_INSERT` | in `b` but not in `a` | - -The value at index `1` is a substring of `a` or `b` or both. - -### Example of diffStringsRaw with cleanup - -```js -const diffs = diffStringsRaw('changed from', 'changed to', true); -``` - -| `i` | `diffs[i][0]` | `diffs[i][1]` | -| --: | ------------: | :------------ | -| `0` | `0` | `'changed '` | -| `1` | `-1` | `'from'` | -| `2` | `1` | `'to'` | - -### Example of diffStringsRaw without cleanup - -```js -const diffs = diffStringsRaw('changed from', 'changed to', false); -``` - -| `i` | `diffs[i][0]` | `diffs[i][1]` | -| --: | ------------: | :------------ | -| `0` | `0` | `'changed '` | -| `1` | `-1` | `'fr'` | -| `2` | `1` | `'t'` | -| `3` | `0` | `'o'` | -| `4` | `-1` | `'m'` | - -### Advanced import for diffStringsRaw - -Here are all the named imports that you might need for the `diffStringsRaw` function: - -- `const {DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, Diff, diffStringsRaw} = require('jest-diff');` in CommonJS modules -- `import {DIFF_DELETE, DIFF_EQUAL, DIFF_INSERT, Diff, diffStringsRaw} from 'jest-diff';` in ECMAScript modules - -To write a **formatting** function, you might need the named constants (and `Diff` in TypeScript annotations). - -If you write an application-specific **cleanup** algorithm, then you might need to call the `Diff` constructor: - -```js -const diffCommon = new Diff(DIFF_EQUAL, 'changed '); -const diffDelete = new Diff(DIFF_DELETE, 'from'); -const diffInsert = new Diff(DIFF_INSERT, 'to'); -``` - -## Usage of diffLinesRaw - -Given **arrays of strings**, `diffLinesRaw(aLines, bLines)` does the following: - -- **compare** the arrays line-by-line using the `diff-sequences` package - -Because `diffLinesRaw` returns the difference as **data** instead of a string, you can format it as your application requires. - -### Example of diffLinesRaw - -```js -const aLines = ['delete', 'common', 'changed from']; -const bLines = ['common', 'changed to', 'insert']; - -const diffs = diffLinesRaw(aLines, bLines); -``` - -| `i` | `diffs[i][0]` | `diffs[i][1]` | -| --: | ------------: | :--------------- | -| `0` | `-1` | `'delete'` | -| `1` | `0` | `'common'` | -| `2` | `-1` | `'changed from'` | -| `3` | `1` | `'changed to'` | -| `4` | `1` | `'insert'` | - -### Edge case of diffLinesRaw - -If you call `string.split('\n')` for an empty string: - -- the result is `['']` an array which contains an empty string -- instead of `[]` an empty array - -Depending of your application, you might call `diffLinesRaw` with either array. - -### Example of split method - -```js -import {diffLinesRaw} from 'jest-diff'; - -const a = 'non-empty string'; -const b = ''; - -const diffs = diffLinesRaw(a.split('\n'), b.split('\n')); -``` - -| `i` | `diffs[i][0]` | `diffs[i][1]` | -| --: | ------------: | :------------------- | -| `0` | `-1` | `'non-empty string'` | -| `1` | `1` | `''` | - -Which you might format as follows: - -```diff -- Expected - 1 -+ Received + 1 - -- non-empty string -+ -``` - -### Example of splitLines0 function - -For edge case behavior like the `diffLinesUnified` function, you might define a `splitLines0` function, which given an empty string, returns `[]` an empty array: - -```js -export const splitLines0 = string => - string.length === 0 ? [] : string.split('\n'); -``` - -```js -import {diffLinesRaw} from 'jest-diff'; - -const a = ''; -const b = 'line 1\nline 2\nline 3'; - -const diffs = diffLinesRaw(a.split('\n'), b.split('\n')); -``` - -| `i` | `diffs[i][0]` | `diffs[i][1]` | -| --: | ------------: | :------------ | -| `0` | `1` | `'line 1'` | -| `1` | `1` | `'line 2'` | -| `2` | `1` | `'line 3'` | - -Which you might format as follows: - -```diff -- Expected - 0 -+ Received + 3 - -+ line 1 -+ line 2 -+ line 3 -``` - -In contrast to the `diffLinesRaw` function, the `diffLinesUnified` and `diffLinesUnified2` functions **automatically** convert array arguments computed by string `split` method, so callers do **not** need a `splitLine0` function. - -## Options - -The default options are for the report when an assertion fails from the `expect` package used by Jest. - -For other applications, you can provide an options object as a third argument: - -- `diff(a, b, options)` -- `diffStringsUnified(a, b, options)` -- `diffLinesUnified(aLines, bLines, options)` -- `diffLinesUnified2(aLinesDisplay, bLinesDisplay, aLinesCompare, bLinesCompare, options)` - -### Properties of options object - -| name | default | -| :-------------------------------- | :----------------- | -| `aAnnotation` | `'Expected'` | -| `aColor` | `chalk.green` | -| `aIndicator` | `'-'` | -| `bAnnotation` | `'Received'` | -| `bColor` | `chalk.red` | -| `bIndicator` | `'+'` | -| `changeColor` | `chalk.inverse` | -| `changeLineTrailingSpaceColor` | `string => string` | -| `commonColor` | `chalk.dim` | -| `commonIndicator` | `' '` | -| `commonLineTrailingSpaceColor` | `string => string` | -| `compareKeys` | `undefined` | -| `contextLines` | `5` | -| `emptyFirstOrLastLinePlaceholder` | `''` | -| `expand` | `true` | -| `includeChangeCounts` | `false` | -| `omitAnnotationLines` | `false` | -| `patchColor` | `chalk.yellow` | - -For more information about the options, see the following examples. - -### Example of options for labels - -If the application is code modification, you might replace the labels: - -```js -const options = { - aAnnotation: 'Original', - bAnnotation: 'Modified', -}; -``` - -```diff -- Original -+ Modified - - common -- changed from -+ changed to -``` - -The `jest-diff` package does not assume that the 2 labels have equal length. - -### Example of options for colors of changed lines - -For consistency with most diff tools, you might exchange the colors: - -```ts -import chalk = require('chalk'); - -const options = { - aColor: chalk.red, - bColor: chalk.green, -}; -``` - -### Example of option for color of changed substrings - -Although the default inverse of foreground and background colors is hard to beat for changed substrings **within lines**, especially because it highlights spaces, if you want bold font weight on yellow background color: - -```ts -import chalk = require('chalk'); - -const options = { - changeColor: chalk.bold.bgYellowBright, -}; -``` - -### Example of option to format trailing spaces - -Because `diff()` does not display substring differences within lines, formatting can help you see when lines differ by the presence or absence of trailing spaces found by `/\s+$/` regular expression. - -- If change lines have a background color, then you can see trailing spaces. -- If common lines have default dim color, then you cannot see trailing spaces. You might want yellowish background color to see them. - -```js -const options = { - aColor: chalk.rgb(128, 0, 128).bgRgb(255, 215, 255), // magenta - bColor: chalk.rgb(0, 95, 0).bgRgb(215, 255, 215), // green - commonLineTrailingSpaceColor: chalk.bgYellow, -}; -``` - -The value of a Color option is a function, which given a string, returns a string. - -If you want to replace trailing spaces with middle dot characters: - -```js -const replaceSpacesWithMiddleDot = string => '·'.repeat(string.length); - -const options = { - changeLineTrailingSpaceColor: replaceSpacesWithMiddleDot, - commonLineTrailingSpaceColor: replaceSpacesWithMiddleDot, -}; -``` - -If you need the TypeScript type of a Color option: - -```ts -import {DiffOptionsColor} from 'jest-diff'; -``` - -### Example of options for no colors - -To store the difference in a file without escape codes for colors, provide an identity function: - -```js -const noColor = string => string; - -const options = { - aColor: noColor, - bColor: noColor, - changeColor: noColor, - commonColor: noColor, - patchColor: noColor, -}; -``` - -### Example of options for indicators - -For consistency with the `diff` command, you might replace the indicators: - -```js -const options = { - aIndicator: '<', - bIndicator: '>', -}; -``` - -The `jest-diff` package assumes (but does not enforce) that the 3 indicators have equal length. - -### Example of options to limit common lines - -By default, the output includes all common lines. - -To emphasize the changes, you might limit the number of common “context” lines: - -```js -const options = { - contextLines: 1, - expand: false, -}; -``` - -A patch mark like `@@ -12,7 +12,9 @@` accounts for omitted common lines. - -### Example of option for color of patch marks - -If you want patch marks to have the same dim color as common lines: - -```ts -import chalk = require('chalk'); - -const options = { - expand: false, - patchColor: chalk.dim, -}; -``` - -### Example of option to include change counts - -To display the number of changed lines at the right of annotation lines: - -```js -const a = ['common', 'changed from']; -const b = ['common', 'changed to', 'insert']; - -const options = { - includeChangeCounts: true, -}; - -const difference = diff(a, b, options); -``` - -```diff -- Expected - 1 -+ Received + 2 - - Array [ - "common", -- "changed from", -+ "changed to", -+ "insert", - ] -``` - -### Example of option to omit annotation lines - -To display only the comparison lines: - -```js -const a = 'common\nchanged from'; -const b = 'common\nchanged to'; - -const options = { - omitAnnotationLines: true, -}; - -const difference = diffStringsUnified(a, b, options); -``` - -```diff - common -- changed from -+ changed to -``` - -### Example of option for empty first or last lines - -If the **first** or **last** comparison line is **empty**, because the content is empty and the indicator is a space, you might not notice it. - -The replacement option is a string whose default value is `''` empty string. - -Because Jest trims the report when a matcher fails, it deletes an empty last line. - -Therefore, Jest uses as placeholder the downwards arrow with corner leftwards: - -```js -const options = { - emptyFirstOrLastLinePlaceholder: '↵', // U+21B5 -}; -``` - -If a content line is empty, then the corresponding comparison line is automatically trimmed to remove the margin space (represented as a middle dot below) for the default indicators: - -| Indicator | untrimmed | trimmed | -| ----------------: | :-------- | :------ | -| `aIndicator` | `'-·'` | `'-'` | -| `bIndicator` | `'+·'` | `'+'` | -| `commonIndicator` | `' ·'` | `''` | - -### Example of option for sorting object keys - -When two objects are compared their keys are printed in alphabetical order by default. If this was not the original order of the keys the diff becomes harder to read as the keys are not in their original position. - -Use `compareKeys` to pass a function which will be used when sorting the object keys. - -```js -const a = {c: 'c', b: 'b1', a: 'a'}; -const b = {c: 'c', b: 'b2', a: 'a'}; - -const options = { - // The keys will be in their original order - compareKeys: () => 0, -}; - -const difference = diff(a, b, options); -``` - -```diff -- Expected -+ Received - - Object { - "c": "c", -- "b": "b1", -+ "b": "b2", - "a": "a", - } -``` - -Depending on the implementation of `compareKeys` any sort order can be used. - -```js -const a = {c: 'c', b: 'b1', a: 'a'}; -const b = {c: 'c', b: 'b2', a: 'a'}; - -const options = { - // The keys will be in reverse order - compareKeys: (a, b) => (a > b ? -1 : 1), -}; - -const difference = diff(a, b, options); -``` - -```diff -- Expected -+ Received - - Object { - "a": "a", -- "b": "b1", -+ "b": "b2", - "c": "c", - } -``` diff --git a/build/node_modules/jest-diff/package.json b/build/node_modules/jest-diff/package.json deleted file mode 100644 index 41a1d236..00000000 --- a/build/node_modules/jest-diff/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "jest-diff", - "version": "29.7.0", - "repository": { - "type": "git", - "url": "https://github.com/jestjs/jest.git", - "directory": "packages/jest-diff" - }, - "license": "MIT", - "main": "./build/index.js", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "default": "./build/index.js" - }, - "./package.json": "./package.json" - }, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "devDependencies": { - "@jest/test-utils": "^29.7.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" -} diff --git a/build/node_modules/jest-get-type/LICENSE b/build/node_modules/jest-get-type/LICENSE deleted file mode 100644 index b93be905..00000000 --- a/build/node_modules/jest-get-type/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/jest-get-type/package.json b/build/node_modules/jest-get-type/package.json deleted file mode 100644 index ffd8a152..00000000 --- a/build/node_modules/jest-get-type/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "jest-get-type", - "description": "A utility function to get the type of a value", - "version": "29.6.3", - "repository": { - "type": "git", - "url": "https://github.com/jestjs/jest.git", - "directory": "packages/jest-get-type" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "license": "MIT", - "main": "./build/index.js", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "default": "./build/index.js" - }, - "./package.json": "./package.json" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "fb7d95c8af6e0d65a8b65348433d8a0ea0725b5b" -} diff --git a/build/node_modules/jest-matcher-utils/LICENSE b/build/node_modules/jest-matcher-utils/LICENSE deleted file mode 100644 index b96dcb04..00000000 --- a/build/node_modules/jest-matcher-utils/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/jest-matcher-utils/package.json b/build/node_modules/jest-matcher-utils/package.json deleted file mode 100644 index 9595a5dc..00000000 --- a/build/node_modules/jest-matcher-utils/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "jest-matcher-utils", - "description": "A set of utility functions for expect and related packages", - "version": "25.5.0", - "repository": { - "type": "git", - "url": "https://github.com/facebook/jest.git", - "directory": "packages/jest-matcher-utils" - }, - "engines": { - "node": ">= 8.3" - }, - "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", - "typesVersions": { - "<3.8": { - "build/*": [ - "build/ts3.4/*" - ] - } - }, - "dependencies": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "devDependencies": { - "@jest/test-utils": "^25.5.0", - "@types/node": "*" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "ddd73d18adfb982b9b0d94bad7d41c9f78567ca7" -} diff --git a/build/node_modules/jest-util/LICENSE b/build/node_modules/jest-util/LICENSE deleted file mode 100644 index b93be905..00000000 --- a/build/node_modules/jest-util/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/jest-util/Readme.md b/build/node_modules/jest-util/Readme.md deleted file mode 100644 index 15f6daa4..00000000 --- a/build/node_modules/jest-util/Readme.md +++ /dev/null @@ -1,87 +0,0 @@ -# `@jest/utils` - -This packages is a collection of utilities and helper functions - -## `ErrorWithStack` - -This custom error class can be useful when you need to capture the stack trace of an error and provide additional context to the error message. By default, JavaScript errors only capture the stack trace when they are thrown, but this class allows you to capture the stack trace at any point in your code by calling its constructor. - -## `clearLine` - -It ensures that the clearing operation is only performed when running in a terminal environment, and not when the output is redirected to a file or another non-terminal destination. - -## `convertDescriptorToString` - -It defines a function named `convertDescriptorToString` that takes a descriptor as input and converts it to a string based on its type. It handles various types such as functions, numbers, strings, and undefined values. If the input doesn't match any of these types, it throws an error with a descriptive message. - -## `createDirectory` - -It creates new directory and also allows creation of nested directories. - -## `deepCyclicCopy` - -The `deepCyclicCopy` function provides deep copying of JavaScript objects and arrays, including handling circular references. It offers optional customization through a `DeepCyclicCopyOptions` parameter, allowing users to blacklist properties and preserve object prototypes. The function returns a completely independent deep copy of the input data structure. - -## `formatTime` - -This function is useful for formatting time values with appropriate SI unit prefixes for readability. It expresses time in various units (e.g., milliseconds, microseconds, nanoseconds) while ensuring the formatting is consistent and human-readable. - -## `globsToMatcher` - -The code efficiently converts a list of glob patterns into a reusable function for matching paths against those patterns, considering negated patterns and optimizing for performance. - -## `installCommonGlobals` - -Sets up various global variables and functions needed by the Jest testing framework. It ensures that these globals are properly set up for testing scenarios while maintaining compatibility with the environment's global object. - -## `interopRequireDefault` - -Provides a way to ensure compatibility between ES modules and CommonJS modules by handling the default export behavior appropriately. - -## `invariant` - -It is a utility used for asserting that a given condition is true. It's often used as a debugging aid during development to catch situations where an expected condition is not met. - -## `isInteractive` - -Checks whether the current environment is suitable for interactive terminal interactions. - -## `isNonNullable` - -Used to narrow down the type of a variable within a TypeScript code block, ensuring that it is safe to assume that the value is non-nullable. This can help avoid runtime errors related to null or undefined values. - -## `isPromise` - -It helps in order to determine whether a given value conforms to the structure of a Promise-like object, which typically has a `then` method. This can be useful when working with asynchronous code to ensure dealing with promises correctly. - -## `pluralize` - -This function is used to easily generate grammatically correct phrases in text output that depend on the count of items. It ensures that the word is correctly pluralized when needed. - -## `preRunMessage` - -These functions are intended for use in interactive command-line tools or scripts which provide informative messages to the user while ensuring a clean and responsive interface. - -## `replacePathSepForGlob` - -The function takes a string `path` as input and replaces backslashes ('\\') with forward slashes ('/') in the path. Used to normalize file paths to be compatible with glob patterns, ensuring consistency in path representation for different operating systems. - -## `requireOrImportModule` - -This function provides a unified way to load modules regardless of whether they use CommonJS or ESM syntax. It ensures that the default export is applied consistently when needed, allowing users to work with modules that might use different module systems. - -## `setGlobal` - -Used to set properties with specified values within a global object. It is designed to work in both browser-like and Node.js environments by accepting different types of global objects as input. - -## `specialChars` - -It defines constants and conditional values for handling platform-specific behaviors in a terminal environment. It determines if the current platform is Windows ('win32') and sets up constants for various symbols and terminal screen clearing escape sequences accordingly, ensuring proper display and behavior on both Windows and non-Windows operating systems. - -## `testPathPatternToRegExp` - -This function is used for consistency when serializing/deserializing global configurations and ensures that consistent regular expressions are produced for matching test paths. - -## `tryRealpath` - -Used to resolve the real path of a given path, but if the path doesn't exist or is a directory, it doesn't throw an error and returns the original path string. This can be useful for gracefully handling path resolution in scenarios where some paths might not exist or might be directories. diff --git a/build/node_modules/jest-util/package.json b/build/node_modules/jest-util/package.json deleted file mode 100644 index 33b7b931..00000000 --- a/build/node_modules/jest-util/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "jest-util", - "version": "29.7.0", - "repository": { - "type": "git", - "url": "https://github.com/jestjs/jest.git", - "directory": "packages/jest-util" - }, - "license": "MIT", - "main": "./build/index.js", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "default": "./build/index.js" - }, - "./package.json": "./package.json" - }, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "devDependencies": { - "@types/graceful-fs": "^4.1.3", - "@types/picomatch": "^2.2.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "4e56991693da7cd4c3730dc3579a1dd1403ee630" -} diff --git a/build/node_modules/jest-worker/LICENSE b/build/node_modules/jest-worker/LICENSE deleted file mode 100644 index b96dcb04..00000000 --- a/build/node_modules/jest-worker/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Facebook, Inc. and its affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/build/node_modules/jest-worker/README.md b/build/node_modules/jest-worker/README.md deleted file mode 100644 index 0727a04b..00000000 --- a/build/node_modules/jest-worker/README.md +++ /dev/null @@ -1,247 +0,0 @@ -# jest-worker - -Module for executing heavy tasks under forked processes in parallel, by providing a `Promise` based interface, minimum overhead, and bound workers. - -The module works by providing an absolute path of the module to be loaded in all forked processes. Files relative to a node module are also accepted. All methods are exposed on the parent process as promises, so they can be `await`'ed. Child (worker) methods can either be synchronous or asynchronous. - -The module also implements support for bound workers. Binding a worker means that, based on certain parameters, the same task will always be executed by the same worker. The way bound workers work is by using the returned string of the `computeWorkerKey` method. If the string was used before for a task, the call will be queued to the related worker that processed the task earlier; if not, it will be executed by the first available worker, then sticked to the worker that executed it; so the next time it will be processed by the same worker. If you have no preference on the worker executing the task, but you have defined a `computeWorkerKey` method because you want _some_ of the tasks to be sticked, you can return `null` from it. - -The list of exposed methods can be explicitly provided via the `exposedMethods` option. If it is not provided, it will be obtained by requiring the child module into the main process, and analyzed via reflection. Check the "minimal example" section for a valid one. - -## Install - -```sh -$ yarn add jest-worker -``` - -## Example - -This example covers the minimal usage: - -### File `parent.js` - -```javascript -import {Worker as JestWorker} from 'jest-worker'; - -async function main() { - const worker = new JestWorker(require.resolve('./Worker')); - const result = await worker.hello('Alice'); // "Hello, Alice" -} - -main(); -``` - -### File `worker.js` - -```javascript -export function hello(param) { - return 'Hello, ' + param; -} -``` - -## Experimental worker - -Node 10 shipped with [worker-threads](https://nodejs.org/api/worker_threads.html), a "threading API" that uses SharedArrayBuffers to communicate between the main process and its child threads. This experimental Node feature can significantly improve the communication time between parent and child processes in `jest-worker`. - -Since `worker_threads` are considered experimental in Node, you have to opt-in to this behavior by passing `enableWorkerThreads: true` when instantiating the worker. While the feature was unflagged in Node 11.7.0, you'll need to run the Node process with the `--experimental-worker` flag for Node 10. - -## API - -The `Worker` export is a constructor that is initialized by passing the worker path, plus an options object. - -### `workerPath: string` (required) - -Node module name or absolute path of the file to be loaded in the child processes. Use `require.resolve` to transform a relative path into an absolute one. - -### `options: Object` (optional) - -#### `exposedMethods: $ReadOnlyArray` (optional) - -List of method names that can be called on the child processes from the parent process. You cannot expose any method named like a public `Worker` method, or starting with `_`. If you use method auto-discovery, then these methods will not be exposed, even if they exist. - -#### `numWorkers: number` (optional) - -Amount of workers to spawn. Defaults to the number of CPUs minus 1. - -#### `maxRetries: number` (optional) - -Maximum amount of times that a dead child can be re-spawned, per call. Defaults to `3`, pass `Infinity` to allow endless retries. - -#### `forkOptions: Object` (optional) - -Allow customizing all options passed to `childProcess.fork`. By default, some values are set (`cwd`, `env` and `execArgv`), but you can override them and customize the rest. For a list of valid values, check [the Node documentation](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options). - -#### `computeWorkerKey: (method: string, ...args: Array) => ?string` (optional) - -Every time a method exposed via the API is called, `computeWorkerKey` is also called in order to bound the call to a worker. This is useful for workers that are able to cache the result or part of it. You bound calls to a worker by making `computeWorkerKey` return the same identifier for all different calls. If you do not want to bind the call to any worker, return `null`. - -The callback you provide is called with the method name, plus all the rest of the arguments of the call. Thus, you have full control to decide what to return. Check a practical example on bound workers under the "bound worker usage" section. - -By default, no process is bound to any worker. - -#### `setupArgs: Array` (optional) - -The arguments that will be passed to the `setup` method during initialization. - -#### `WorkerPool: (workerPath: string, options?: WorkerPoolOptions) => WorkerPoolInterface` (optional) - -Provide a custom worker pool to be used for spawning child processes. By default, Jest will use a node thread pool if available and fall back to child process threads. - -#### `enableWorkerThreads: boolean` (optional) - -`jest-worker` will automatically detect if `worker_threads` are available, but will not use them unless passed `enableWorkerThreads: true`. - -### `workerSchedulingPolicy: 'round-robin' | 'in-order'` (optional) - -Specifies the policy how tasks are assigned to workers if multiple workers are _idle_: - -- `round-robin` (default): The task will be sequentially distributed onto the workers. The first task is assigned to the worker 1, the second to the worker 2, to ensure that the work is distributed across workers. -- `in-order`: The task will be assigned to the first free worker starting with worker 1 and only assign the work to worker 2 if the worker 1 is busy. - -Tasks are always assigned to the first free worker as soon as tasks start to queue up. The scheduling policy does not define the task scheduling which is always first-in, first-out. - -### `taskQueue`: TaskQueue` (optional) - -The task queue defines in which order tasks (method calls) are processed by the workers. `jest-worker` ships with a `FifoQueue` and `PriorityQueue`: - -- `FifoQueue` (default): Processes the method calls (tasks) in the call order. -- `PriorityQueue`: Processes the method calls by a computed priority in natural ordering (lower priorities first). Tasks with the same priority are processed in any order (FIFO not guaranteed). The constructor accepts a single argument, the function that is passed the name of the called function and the arguments and returns a numerical value for the priority: `new require('jest-worker').PriorityQueue((method, filename) => filename.length)`. - -## JestWorker - -### Methods - -The returned `JestWorker` instance has all the exposed methods, plus some additional ones to interact with the workers itself: - -#### `getStdout(): Readable` - -Returns a `ReadableStream` where the standard output of all workers is piped. Note that the `silent` option of the child workers must be set to `true` to make it work. This is the default set by `jest-worker`, but keep it in mind when overriding options through `forkOptions`. - -#### `getStderr(): Readable` - -Returns a `ReadableStream` where the standard error of all workers is piped. Note that the `silent` option of the child workers must be set to `true` to make it work. This is the default set by `jest-worker`, but keep it in mind when overriding options through `forkOptions`. - -#### `end()` - -Finishes the workers by killing all workers. No further calls can be done to the `Worker` instance. - -Returns a Promise that resolves with `{ forceExited: boolean }` once all workers are dead. If `forceExited` is `true`, at least one of the workers did not exit gracefully, which likely happened because it executed a leaky task that left handles open. This should be avoided, force exiting workers is a last resort to prevent creating lots of orphans. - -**Note:** - -`await`ing the `end()` Promise immediately after the workers are no longer needed before proceeding to do other useful things in your program may not be a good idea. If workers have to be force exited, `jest-worker` may go through multiple stages of force exiting (e.g. SIGTERM, later SIGKILL) and give the worker overall around 1 second time to exit on its own. During this time, your program will wait, even though it may not be necessary that all workers are dead before continuing execution. - -Consider deliberately leaving this Promise floating (unhandled resolution). After your program has done the rest of its work and is about to exit, the Node process will wait for the Promise to resolve after all workers are dead as the last event loop task. That way you parallelized computation time of your program and waiting time and you didn't delay the outputs of your program unnecessarily. - -### Worker IDs - -Each worker has a unique id (index that starts with `1`), which is available inside the worker as `process.env.JEST_WORKER_ID`. - -## Setting up and tearing down the child process - -The child process can define two special methods (both of them can be asynchronous): - -- `setup()`: If defined, it's executed before the first call to any method in the child. -- `teardown()`: If defined, it's executed when the farm ends. - -# More examples - -## Standard usage - -This example covers the standard usage: - -### File `parent.js` - -```javascript -import {Worker as JestWorker} from 'jest-worker'; - -async function main() { - const myWorker = new JestWorker(require.resolve('./Worker'), { - exposedMethods: ['foo', 'bar', 'getWorkerId'], - numWorkers: 4, - }); - - console.log(await myWorker.foo('Alice')); // "Hello from foo: Alice" - console.log(await myWorker.bar('Bob')); // "Hello from bar: Bob" - console.log(await myWorker.getWorkerId()); // "3" -> this message has sent from the 3rd worker - - const {forceExited} = await myWorker.end(); - if (forceExited) { - console.error('Workers failed to exit gracefully'); - } -} - -main(); -``` - -### File `worker.js` - -```javascript -export function foo(param) { - return 'Hello from foo: ' + param; -} - -export function bar(param) { - return 'Hello from bar: ' + param; -} - -export function getWorkerId() { - return process.env.JEST_WORKER_ID; -} -``` - -## Bound worker usage: - -This example covers the usage with a `computeWorkerKey` method: - -### File `parent.js` - -```javascript -import {Worker as JestWorker} from 'jest-worker'; - -async function main() { - const myWorker = new JestWorker(require.resolve('./Worker'), { - computeWorkerKey: (method, filename) => filename, - }); - - // Transform the given file, within the first available worker. - console.log(await myWorker.transform('/tmp/foo.js')); - - // Wait a bit. - await sleep(10000); - - // Transform the same file again. Will immediately return because the - // transformed file is cached in the worker, and `computeWorkerKey` ensures - // the same worker that processed the file the first time will process it now. - console.log(await myWorker.transform('/tmp/foo.js')); - - const {forceExited} = await myWorker.end(); - if (forceExited) { - console.error('Workers failed to exit gracefully'); - } -} - -main(); -``` - -### File `worker.js` - -```javascript -import babel from '@babel/core'; - -const cache = Object.create(null); - -export function transform(filename) { - if (cache[filename]) { - return cache[filename]; - } - - // jest-worker can handle both immediate results and thenables. If a - // thenable is returned, it will be await'ed until it resolves. - return babel.transformFileAsync(filename).then(result => { - cache[filename] = result; - - return result; - }); -} -``` diff --git a/build/node_modules/jest-worker/package.json b/build/node_modules/jest-worker/package.json deleted file mode 100644 index 06280d1c..00000000 --- a/build/node_modules/jest-worker/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "jest-worker", - "version": "27.5.1", - "repository": { - "type": "git", - "url": "https://github.com/facebook/jest.git", - "directory": "packages/jest-worker" - }, - "license": "MIT", - "main": "./build/index.js", - "types": "./build/index.d.ts", - "exports": { - ".": { - "types": "./build/index.d.ts", - "default": "./build/index.js" - }, - "./package.json": "./package.json" - }, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "devDependencies": { - "@types/merge-stream": "^1.1.2", - "@types/supports-color": "^8.1.0", - "get-stream": "^6.0.0", - "jest-leak-detector": "^27.5.1", - "worker-farm": "^1.6.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "67c1aa20c5fec31366d733e901fee2b981cb1850" -} diff --git a/build/node_modules/joycon/LICENSE b/build/node_modules/joycon/LICENSE deleted file mode 100644 index 510cc073..00000000 --- a/build/node_modules/joycon/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) egoist <0x142857@gmail.com> (https://github.com/egoist) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/joycon/README.md b/build/node_modules/joycon/README.md deleted file mode 100644 index fccd0771..00000000 --- a/build/node_modules/joycon/README.md +++ /dev/null @@ -1,133 +0,0 @@ - -# joycon - -[![NPM version](https://img.shields.io/npm/v/joycon.svg?style=flat)](https://npmjs.com/package/joycon) [![NPM downloads](https://img.shields.io/npm/dm/joycon.svg?style=flat)](https://npmjs.com/package/joycon) [![install size](https://packagephobia.now.sh/badge?p=joycon@2.0.0)](https://packagephobia.now.sh/result?p=joycon@2.0.0) [![CircleCI](https://circleci.com/gh/egoist/joycon/tree/master.svg?style=shield)](https://circleci.com/gh/egoist/joycon/tree/master) [![donate](https://img.shields.io/badge/$-donate-ff69b4.svg?maxAge=2592000&style=flat)](https://github.com/egoist/donate) [![chat](https://img.shields.io/badge/chat-on%20discord-7289DA.svg?style=flat)](https://chat.egoist.moe) - -## Differences with [cosmiconfig](https://github.com/davidtheclark/cosmiconfig)? - -JoyCon is zero-dependency but feature-complete. - -## Install - -```bash -yarn add joycon -``` - -## Usage - -```js -const JoyCon = require('joycon') - -const joycon = new JoyCon() - -joycon.load(['package-lock.json', 'yarn.lock']) -.then(result => { - // result is {} when files do not exist - // otherwise { path, data } -}) -``` - -By default non-js files are parsed as JSON, if you want something different you can add a loader: - -```js -const joycon = new JoyCon() - -joycon.addLoader({ - test: /\.toml$/, - load(filepath) { - return require('toml').parse(filepath) - } -}) - -joycon.load(['cargo.toml']) -``` - -## API - -### constructor([options]) - -#### options - -##### files - -- Type: `string[]` - -The files to search. - -##### cwd - -The directory to search files. - -##### stopDir - -The directory to stop searching. - -##### packageKey - -You can load config from certain property in a `package.json` file. For example, when you set `packageKey: 'babel'`, it will load the `babel` property in `package.json` instead of the entire data. - -##### parseJSON - -- Type: `(str: string) => any` -- Default: `JSON.parse` - -The function used to parse JSON string. - -### resolve([files], [cwd], [stopDir]) -### resolve([options]) - -`files` defaults to `options.files`. - -`cwd` defaults to `options.cwd`. - -`stopDir` defaults to `options.stopDir` then `path.parse(cwd).root`. - -If using a single object `options`, it will be the same as constructor options. - -Search files and resolve the path of the file we found. - -There's also `.resolveSync` method. - -### load(...args) - -The signature is the same as [resolve](#resolvefiles-cwd-stopdir). - -Search files and resolve `{ path, data }` of the file we found. - -There's also `.loadSync` method. - -### addLoader(Loader) - -```typescript -interface Loader { - name?: string - test: RegExp - load(filepath: string)?: Promise - loadSync(filepath: string)?: any -} -``` - -At least one of `load` and `loadSync` is required, depending on whether you're calling the synchonous methods or not. - -### removeLoader(name) - -Remove loaders by loader name. - -### clearCache() - -Each JoyCon instance uses its own cache. - -## Contributing - -1. Fork it! -2. Create your feature branch: `git checkout -b my-new-feature` -3. Commit your changes: `git commit -am 'Add some feature'` -4. Push to the branch: `git push origin my-new-feature` -5. Submit a pull request :D - -## Author - -**joycon** © [egoist](https://github.com/egoist), Released under the [MIT](./LICENSE) License.
-Authored and maintained by egoist with help from contributors ([list](https://github.com/egoist/joycon/contributors)). - -> [github.com/egoist](https://github.com/egoist) · GitHub [@egoist](https://github.com/egoist) · Twitter [@_egoistlily](https://twitter.com/_egoistlily) diff --git a/build/node_modules/joycon/package.json b/build/node_modules/joycon/package.json deleted file mode 100644 index 071c73bb..00000000 --- a/build/node_modules/joycon/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "joycon", - "version": "3.1.1", - "description": "Load config with ease.", - "repository": { - "url": "egoist/joycon", - "type": "git" - }, - "main": "lib/index.js", - "types": "types/index.d.ts", - "files": [ - "lib", - "types/index.d.ts" - ], - "scripts": { - "test": "jest --testPathPattern tests", - "build": "babel src -d lib --no-comments", - "prepublishOnly": "npm run build" - }, - "author": "egoist <0x142857@gmail.com>", - "license": "MIT", - "jest": { - "testEnvironment": "node" - }, - "devDependencies": { - "@babel/cli": "^7.13.10", - "@babel/core": "^7.13.10", - "@babel/preset-env": "^7.13.10", - "@egoist/prettier-config": "^0.1.0", - "@types/node": "^14.14.33", - "babel-jest": "^26.6.3", - "babel-plugin-sync": "^0.1.0", - "jest-cli": "^26.6.3", - "prettier": "^2.2.1" - }, - "engines": { - "node": ">=10" - } -} diff --git a/build/node_modules/js-stringify/.npmignore b/build/node_modules/js-stringify/.npmignore deleted file mode 100644 index b83202d0..00000000 --- a/build/node_modules/js-stringify/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz -pids -logs -results -npm-debug.log -node_modules diff --git a/build/node_modules/js-stringify/.travis.yml b/build/node_modules/js-stringify/.travis.yml deleted file mode 100644 index 6e5919de..00000000 --- a/build/node_modules/js-stringify/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/build/node_modules/js-stringify/LICENSE b/build/node_modules/js-stringify/LICENSE deleted file mode 100644 index 27cc9f37..00000000 --- a/build/node_modules/js-stringify/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Forbes Lindesay - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/build/node_modules/js-stringify/README.md b/build/node_modules/js-stringify/README.md deleted file mode 100644 index 657333f0..00000000 --- a/build/node_modules/js-stringify/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# js-stringify - -Stringify an object so it can be safely inlined in JavaScript code - -[![Build Status](https://img.shields.io/travis/jadejs/js-stringify/master.svg)](https://travis-ci.org/jadejs/js-stringify) -[![Dependency Status](https://img.shields.io/gemnasium/jadejs/js-stringify.svg)](https://gemnasium.com/jadejs/js-stringify) -[![NPM version](https://img.shields.io/npm/v/js-stringify.svg)](https://www.npmjs.org/package/js-stringify) - -## Installation - - npm install js-stringify - -## Usage - -```js - -var assert = require('assert'); -var stringify = require('js-stringify'); - -assert(stringify('foo') === '"foo"'); -assert(stringify('foo\u2028bar\u2029baz') === '"foo\\u2028bar\\u2029baz"'); -assert(stringify(new Date('2014-12-19T03:42:00.000Z')) === 'new Date("2014-12-19T03:42:00.000Z")'); -assert(stringify({foo: 'bar'}) === '{"foo":"bar"}'); -assert(stringify(undefined) === 'undefined'); -assert(stringify(null) === 'null'); -assert( - stringify({val: ""}) === - '{"val":"\\u003C\\u002Fscript\\u003E\\u003Cscript\\u003Ealert(\'bad actor\')\\u003C\\u002Fscript\\u003E"}' -); -``` - -## License - - MIT diff --git a/build/node_modules/js-stringify/index.js b/build/node_modules/js-stringify/index.js deleted file mode 100644 index 8febfc45..00000000 --- a/build/node_modules/js-stringify/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -module.exports = stringify; -function stringify(obj) { - if (obj instanceof Date) { - return 'new Date(' + stringify(obj.toISOString()) + ')'; - } - if (obj === undefined) { - return 'undefined'; - } - return JSON.stringify(obj) - .replace(/\u2028/g, '\\u2028') - .replace(/\u2029/g, '\\u2029') - .replace(//g, '\\u003E') - .replace(/\//g, '\\u002F'); -} diff --git a/build/node_modules/js-stringify/package.json b/build/node_modules/js-stringify/package.json deleted file mode 100644 index c5f1c170..00000000 --- a/build/node_modules/js-stringify/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "js-stringify", - "version": "1.0.2", - "description": "Stringify an object so it can be safely inlined in JavaScript code", - "keywords": [], - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "node test" - }, - "repository": { - "type": "git", - "url": "https://github.com/jadejs/js-stringify.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file diff --git a/build/node_modules/js-tokens/CHANGELOG.md b/build/node_modules/js-tokens/CHANGELOG.md deleted file mode 100644 index 208304b3..00000000 --- a/build/node_modules/js-tokens/CHANGELOG.md +++ /dev/null @@ -1,134 +0,0 @@ -### Version 3.0.2 (2017-06-28) ### - -- No code changes. Just updates to the readme. - - -### Version 3.0.1 (2017-01-30) ### - -- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched - correctly. - - -### Version 3.0.0 (2017-01-11) ### - -This release contains one breaking change, that should [improve performance in -V8][v8-perf]: - -> So how can you, as a JavaScript developer, ensure that your RegExps are fast? -> If you are not interested in hooking into RegExp internals, make sure that -> neither the RegExp instance, nor its prototype is modified in order to get the -> best performance: -> -> ```js -> var re = /./g; -> re.exec(''); // Fast path. -> re.new_property = 'slow'; -> ``` - -This module used to export a single regex, with `.matchToToken` bolted -on, just like in the above example. This release changes the exports of -the module to avoid this issue. - -Before: - -```js -import jsTokens from "js-tokens" -// or: -var jsTokens = require("js-tokens") -var matchToToken = jsTokens.matchToToken -``` - -After: - -```js -import jsTokens, {matchToToken} from "js-tokens" -// or: -var jsTokens = require("js-tokens").default -var matchToToken = require("js-tokens").matchToToken -``` - -[v8-perf]: http://v8project.blogspot.se/2017/01/speeding-up-v8-regular-expressions.html - - -### Version 2.0.0 (2016-06-19) ### - -- Added: Support for ES2016. In other words, support for the `**` exponentiation - operator. - -These are the breaking changes: - -- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`. -- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`. - - -### Version 1.0.3 (2016-03-27) ### - -- Improved: Made the regex ever so slightly smaller. -- Updated: The readme. - - -### Version 1.0.2 (2015-10-18) ### - -- Improved: Limited npm package contents for a smaller download. Thanks to - @zertosh! - - -### Version 1.0.1 (2015-06-20) ### - -- Fixed: Declared an undeclared variable. - - -### Version 1.0.0 (2015-02-26) ### - -- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That - type is now equivalent to the Punctuator token in the ECMAScript - specification. (Backwards-incompatible change.) -- Fixed: A `-` followed by a number is now correctly matched as a punctuator - followed by a number. It used to be matched as just a number, but there is no - such thing as negative number literals. (Possibly backwards-incompatible - change.) - - -### Version 0.4.1 (2015-02-21) ### - -- Added: Support for the regex `u` flag. - - -### Version 0.4.0 (2015-02-21) ### - -- Improved: `jsTokens.matchToToken` performance. -- Added: Support for octal and binary number literals. -- Added: Support for template strings. - - -### Version 0.3.1 (2015-01-06) ### - -- Fixed: Support for unicode spaces. They used to be allowed in names (which is - very confusing), and some unicode newlines were wrongly allowed in strings and - regexes. - - -### Version 0.3.0 (2014-12-19) ### - -- Changed: The `jsTokens.names` array has been replaced with the - `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no - longer part of the public API; instead use said function. See this [gist] for - an example. (Backwards-incompatible change.) -- Changed: The empty string is now considered an “invalid” token, instead an - “empty” token (its own group). (Backwards-incompatible change.) -- Removed: component support. (Backwards-incompatible change.) - -[gist]: https://gist.github.com/lydell/be49dbf80c382c473004 - - -### Version 0.2.0 (2014-06-19) ### - -- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own - category (“functionArrow”), for simplicity. (Backwards-incompatible change.) -- Added: ES6 splats (`...`) are now matched as an operator (instead of three - punctuations). (Backwards-incompatible change.) - - -### Version 0.1.0 (2014-03-08) ### - -- Initial release. diff --git a/build/node_modules/js-tokens/LICENSE b/build/node_modules/js-tokens/LICENSE deleted file mode 100644 index 748f42e8..00000000 --- a/build/node_modules/js-tokens/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014, 2015, 2016, 2017 Simon Lydell - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/js-tokens/README.md b/build/node_modules/js-tokens/README.md deleted file mode 100644 index 5c93a888..00000000 --- a/build/node_modules/js-tokens/README.md +++ /dev/null @@ -1,222 +0,0 @@ -Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens) -======== - -A regex that tokenizes JavaScript. - -```js -var jsTokens = require("js-tokens").default - -var jsString = "var foo=opts.foo;\n..." - -jsString.match(jsTokens) -// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...] -``` - - -Installation -============ - -`npm install js-tokens` - -```js -import jsTokens from "js-tokens" -// or: -var jsTokens = require("js-tokens").default -``` - - -Usage -===== - -### `jsTokens` ### - -A regex with the `g` flag that matches JavaScript tokens. - -The regex _always_ matches, even invalid JavaScript and the empty string. - -The next match is always directly after the previous. - -### `var token = matchToToken(match)` ### - -```js -import {matchToToken} from "js-tokens" -// or: -var matchToToken = require("js-tokens").matchToToken -``` - -Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type: -String, value: String}` object. The following types are available: - -- string -- comment -- regex -- number -- name -- punctuator -- whitespace -- invalid - -Multi-line comments and strings also have a `closed` property indicating if the -token was closed or not (see below). - -Comments and strings both come in several flavors. To distinguish them, check if -the token starts with `//`, `/*`, `'`, `"` or `` ` ``. - -Names are ECMAScript IdentifierNames, that is, including both identifiers and -keywords. You may use [is-keyword-js] to tell them apart. - -Whitespace includes both line terminators and other whitespace. - -[is-keyword-js]: https://github.com/crissdev/is-keyword-js - - -ECMAScript support -================== - -The intention is to always support the latest stable ECMAScript version. - -If adding support for a newer version requires changes, a new version with a -major verion bump will be released. - -Currently, [ECMAScript 2017] is supported. - -[ECMAScript 2017]: https://www.ecma-international.org/ecma-262/8.0/index.html - - -Invalid code handling -===================== - -Unterminated strings are still matched as strings. JavaScript strings cannot -contain (unescaped) newlines, so unterminated strings simply end at the end of -the line. Unterminated template strings can contain unescaped newlines, though, -so they go on to the end of input. - -Unterminated multi-line comments are also still matched as comments. They -simply go on to the end of the input. - -Unterminated regex literals are likely matched as division and whatever is -inside the regex. - -Invalid ASCII characters have their own capturing group. - -Invalid non-ASCII characters are treated as names, to simplify the matching of -names (except unicode spaces which are treated as whitespace). - -Regex literals may contain invalid regex syntax. They are still matched as -regex literals. They may also contain repeated regex flags, to keep the regex -simple. - -Strings may contain invalid escape sequences. - - -Limitations -=========== - -Tokenizing JavaScript using regexes—in fact, _one single regex_—won’t be -perfect. But that’s not the point either. - -You may compare jsTokens with [esprima] by using `esprima-compare.js`. -See `npm run esprima-compare`! - -[esprima]: http://esprima.org/ - -### Template string interpolation ### - -Template strings are matched as single tokens, from the starting `` ` `` to the -ending `` ` ``, including interpolations (whose tokens are not matched -individually). - -Matching template string interpolations requires recursive balancing of `{` and -`}`—something that JavaScript regexes cannot do. Only one level of nesting is -supported. - -### Division and regex literals collision ### - -Consider this example: - -```js -var g = 9.82 -var number = bar / 2/g - -var regex = / 2/g -``` - -A human can easily understand that in the `number` line we’re dealing with -division, and in the `regex` line we’re dealing with a regex literal. How come? -Because humans can look at the whole code to put the `/` characters in context. -A JavaScript regex cannot. It only sees forwards. - -When the `jsTokens` regex scans throught the above, it will see the following -at the end of both the `number` and `regex` rows: - -```js -/ 2/g -``` - -It is then impossible to know if that is a regex literal, or part of an -expression dealing with division. - -Here is a similar case: - -```js -foo /= 2/g -foo(/= 2/g) -``` - -The first line divides the `foo` variable with `2/g`. The second line calls the -`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only -sees forwards, it cannot tell the two cases apart. - -There are some cases where we _can_ tell division and regex literals apart, -though. - -First off, we have the simple cases where there’s only one slash in the line: - -```js -var foo = 2/g -foo /= 2 -``` - -Regex literals cannot contain newlines, so the above cases are correctly -identified as division. Things are only problematic when there are more than -one non-comment slash in a single line. - -Secondly, not every character is a valid regex flag. - -```js -var number = bar / 2/e -``` - -The above example is also correctly identified as division, because `e` is not a -valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*` -(any letter) as flags, but it is not worth it since it increases the amount of -ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are -allowed. This means that the above example will be identified as division as -long as you don’t rename the `e` variable to some permutation of `gmiyu` 1 to 5 -characters long. - -Lastly, we can look _forward_ for information. - -- If the token following what looks like a regex literal is not valid after a - regex literal, but is valid in a division expression, then the regex literal - is treated as division instead. For example, a flagless regex cannot be - followed by a string, number or name, but all of those three can be the - denominator of a division. -- Generally, if what looks like a regex literal is followed by an operator, the - regex literal is treated as division instead. This is because regexes are - seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division - could likely be part of such an expression. - -Please consult the regex source and the test cases for precise information on -when regex or division is matched (should you need to know). In short, you -could sum it up as: - -If the end of a statement looks like a regex literal (even if it isn’t), it -will be treated as one. Otherwise it should work as expected (if you write sane -code). - - -License -======= - -[MIT](LICENSE). diff --git a/build/node_modules/js-tokens/index.js b/build/node_modules/js-tokens/index.js deleted file mode 100644 index a3c8a0d7..00000000 --- a/build/node_modules/js-tokens/index.js +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2014, 2015, 2016, 2017 Simon Lydell -// License: MIT. (See LICENSE.) - -Object.defineProperty(exports, "__esModule", { - value: true -}) - -// This regex comes from regex.coffee, and is inserted here by generate-index.js -// (run `npm run build`). -exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g - -exports.matchToToken = function(match) { - var token = {type: "invalid", value: match[0]} - if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]) - else if (match[ 5]) token.type = "comment" - else if (match[ 6]) token.type = "comment", token.closed = !!match[7] - else if (match[ 8]) token.type = "regex" - else if (match[ 9]) token.type = "number" - else if (match[10]) token.type = "name" - else if (match[11]) token.type = "punctuator" - else if (match[12]) token.type = "whitespace" - return token -} diff --git a/build/node_modules/js-tokens/package.json b/build/node_modules/js-tokens/package.json deleted file mode 100644 index 7f5bd780..00000000 --- a/build/node_modules/js-tokens/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "js-tokens", - "version": "3.0.2", - "author": "Simon Lydell", - "license": "MIT", - "description": "A regex that tokenizes JavaScript.", - "keywords": [ - "JavaScript", - "js", - "token", - "tokenize", - "regex" - ], - "files": [ - "index.js" - ], - "repository": "lydell/js-tokens", - "scripts": { - "test": "mocha --ui tdd", - "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", - "build": "node generate-index.js", - "dev": "npm run build && npm test" - }, - "devDependencies": { - "coffee-script": "~1.12.6", - "esprima": "^4.0.0", - "everything.js": "^1.0.3", - "mocha": "^3.4.2" - } -} diff --git a/build/node_modules/js-yaml/CHANGELOG.md b/build/node_modules/js-yaml/CHANGELOG.md deleted file mode 100644 index ff2375e0..00000000 --- a/build/node_modules/js-yaml/CHANGELOG.md +++ /dev/null @@ -1,616 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - - -## [4.1.0] - 2021-04-15 -### Added -- Types are now exported as `yaml.types.XXX`. -- Every type now has `options` property with original arguments kept as they were - (see `yaml.types.int.options` as an example). - -### Changed -- `Schema.extend()` now keeps old type order in case of conflicts - (e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as `abcd` instead of `cbad`). - - -## [4.0.0] - 2021-01-03 -### Changed -- Check [migration guide](migrate_v3_to_v4.md) to see details for all breaking changes. -- Breaking: "unsafe" tags `!!js/function`, `!!js/regexp`, `!!js/undefined` are - moved to [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) package. -- Breaking: removed `safe*` functions. Use `load`, `loadAll`, `dump` - instead which are all now safe by default. -- `yaml.DEFAULT_SAFE_SCHEMA` and `yaml.DEFAULT_FULL_SCHEMA` are removed, use - `yaml.DEFAULT_SCHEMA` instead. -- `yaml.Schema.create(schema, tags)` is removed, use `schema.extend(tags)` instead. -- `!!binary` now always mapped to `Uint8Array` on load. -- Reduced nesting of `/lib` folder. -- Parse numbers according to YAML 1.2 instead of YAML 1.1 (`01234` is now decimal, - `0o1234` is octal, `1:23` is parsed as string instead of base60). -- `dump()` no longer quotes `:`, `[`, `]`, `(`, `)` except when necessary, #470, #557. -- Line and column in exceptions are now formatted as `(X:Y)` instead of - `at line X, column Y` (also present in compact format), #332. -- Code snippet created in exceptions now contains multiple lines with line numbers. -- `dump()` now serializes `undefined` as `null` in collections and removes keys with - `undefined` in mappings, #571. -- `dump()` with `skipInvalid=true` now serializes invalid items in collections as null. -- Custom tags starting with `!` are now dumped as `!tag` instead of `!`, #576. -- Custom tags starting with `tag:yaml.org,2002:` are now shorthanded using `!!`, #258. - -### Added -- Added `.mjs` (es modules) support. -- Added `quotingType` and `forceQuotes` options for dumper to configure - string literal style, #290, #529. -- Added `styles: { '!!null': 'empty' }` option for dumper - (serializes `{ foo: null }` as "`foo: `"), #570. -- Added `replacer` option (similar to option in JSON.stringify), #339. -- Custom `Tag` can now handle all tags or multiple tags with the same prefix, #385. - -### Fixed -- Astral characters are no longer encoded by `dump()`, #587. -- "duplicate mapping key" exception now points at the correct column, #452. -- Extra commas in flow collections (e.g. `[foo,,bar]`) now throw an exception - instead of producing null, #321. -- `__proto__` key no longer overrides object prototype, #164. -- Removed `bower.json`. -- Tags are now url-decoded in `load()` and url-encoded in `dump()` - (previously usage of custom non-ascii tags may have led to invalid YAML that can't be parsed). -- Anchors now work correctly with empty nodes, #301. -- Fix incorrect parsing of invalid block mapping syntax, #418. -- Throw an error if block sequence/mapping indent contains a tab, #80. - - -## [3.14.1] - 2020-12-07 -### Security -- Fix possible code execution in (already unsafe) `.load()` (in &anchor). - - -## [3.14.0] - 2020-05-22 -### Changed -- Support `safe/loadAll(input, options)` variant of call. -- CI: drop outdated nodejs versions. -- Dev deps bump. - -### Fixed -- Quote `=` in plain scalars #519. -- Check the node type for `!` tag in case user manually specifies it. -- Verify that there are no null-bytes in input. -- Fix wrong quote position when writing condensed flow, #526. - - -## [3.13.1] - 2019-04-05 -### Security -- Fix possible code execution in (already unsafe) `.load()`, #480. - - -## [3.13.0] - 2019-03-20 -### Security -- Security fix: `safeLoad()` can hang when arrays with nested refs - used as key. Now throws exception for nested arrays. #475. - - -## [3.12.2] - 2019-02-26 -### Fixed -- Fix `noArrayIndent` option for root level, #468. - - -## [3.12.1] - 2019-01-05 -### Added -- Added `noArrayIndent` option, #432. - - -## [3.12.0] - 2018-06-02 -### Changed -- Support arrow functions without a block statement, #421. - - -## [3.11.0] - 2018-03-05 -### Added -- Add arrow functions suport for `!!js/function`. - -### Fixed -- Fix dump in bin/octal/hex formats for negative integers, #399. - - -## [3.10.0] - 2017-09-10 -### Fixed -- Fix `condenseFlow` output (quote keys for sure, instead of spaces), #371, #370. -- Dump astrals as codepoints instead of surrogate pair, #368. - - -## [3.9.1] - 2017-07-08 -### Fixed -- Ensure stack is present for custom errors in node 7.+, #351. - - -## [3.9.0] - 2017-07-08 -### Added -- Add `condenseFlow` option (to create pretty URL query params), #346. - -### Fixed -- Support array return from safeLoadAll/loadAll, #350. - - -## [3.8.4] - 2017-05-08 -### Fixed -- Dumper: prevent space after dash for arrays that wrap, #343. - - -## [3.8.3] - 2017-04-05 -### Fixed -- Should not allow numbers to begin and end with underscore, #335. - - -## [3.8.2] - 2017-03-02 -### Fixed -- Fix `!!float 123` (integers) parse, #333. -- Don't allow leading zeros in floats (except 0, 0.xxx). -- Allow positive exponent without sign in floats. - - -## [3.8.1] - 2017-02-07 -### Changed -- Maintenance: update browserified build. - - -## [3.8.0] - 2017-02-07 -### Fixed -- Fix reported position for `duplicated mapping key` errors. - Now points to block start instead of block end. - (#243, thanks to @shockey). - - -## [3.7.0] - 2016-11-12 -### Added -- Support polymorphism for tags (#300, thanks to @monken). - -### Fixed -- Fix parsing of quotes followed by newlines (#304, thanks to @dplepage). - - -## [3.6.1] - 2016-05-11 -### Fixed -- Fix output cut on a pipe, #286. - - -## [3.6.0] - 2016-04-16 -### Fixed -- Dumper rewrite, fix multiple bugs with trailing `\n`. - Big thanks to @aepsilon! -- Loader: fix leading/trailing newlines in block scalars, @aepsilon. - - -## [3.5.5] - 2016-03-17 -### Fixed -- Date parse fix: don't allow dates with on digit in month and day, #268. - - -## [3.5.4] - 2016-03-09 -### Added -- `noCompatMode` for dumper, to disable quoting YAML 1.1 values. - - -## [3.5.3] - 2016-02-11 -### Changed -- Maintenance release. - - -## [3.5.2] - 2016-01-11 -### Changed -- Maintenance: missed comma in bower config. - - -## [3.5.1] - 2016-01-11 -### Changed -- Removed `inherit` dependency, #239. -- Better browserify workaround for esprima load. -- Demo rewrite. - - -## [3.5.0] - 2016-01-10 -### Fixed -- Dumper. Fold strings only, #217. -- Dumper. `norefs` option, to clone linked objects, #229. -- Loader. Throw a warning for duplicate keys, #166. -- Improved browserify support (mark `esprima` & `Buffer` excluded). - - -## [3.4.6] - 2015-11-26 -### Changed -- Use standalone `inherit` to keep browserified files clear. - - -## [3.4.5] - 2015-11-23 -### Added -- Added `lineWidth` option to dumper. - - -## [3.4.4] - 2015-11-21 -### Fixed -- Fixed floats dump (missed dot for scientific format), #220. -- Allow non-printable characters inside quoted scalars, #192. - - -## [3.4.3] - 2015-10-10 -### Changed -- Maintenance release - deps bump (esprima, argparse). - - -## [3.4.2] - 2015-09-09 -### Fixed -- Fixed serialization of duplicated entries in sequences, #205. - Thanks to @vogelsgesang. - - -## [3.4.1] - 2015-09-05 -### Fixed -- Fixed stacktrace handling in generated errors, for browsers (FF/IE). - - -## [3.4.0] - 2015-08-23 -### Changed -- Don't throw on warnings anymore. Use `onWarning` option to catch. -- Throw error on unknown tags (was warning before). -- Reworked internals of error class. - -### Fixed -- Fixed multiline keys dump, #197. Thanks to @tcr. -- Fixed heading line breaks in some scalars (regression). - - -## [3.3.1] - 2015-05-13 -### Added -- Added `.sortKeys` dumper option, thanks to @rjmunro. - -### Fixed -- Fixed astral characters support, #191. - - -## [3.3.0] - 2015-04-26 -### Changed -- Significantly improved long strings formatting in dumper, thanks to @isaacs. -- Strip BOM if exists. - - -## [3.2.7] - 2015-02-19 -### Changed -- Maintenance release. -- Updated dependencies. -- HISTORY.md -> CHANGELOG.md - - -## [3.2.6] - 2015-02-07 -### Fixed -- Fixed encoding of UTF-16 surrogate pairs. (e.g. "\U0001F431" CAT FACE). -- Fixed demo dates dump (#113, thanks to @Hypercubed). - - -## [3.2.5] - 2014-12-28 -### Fixed -- Fixed resolving of all built-in types on empty nodes. -- Fixed invalid warning on empty lines within quoted scalars and flow collections. -- Fixed bug: Tag on an empty node didn't resolve in some cases. - - -## [3.2.4] - 2014-12-19 -### Fixed -- Fixed resolving of !!null tag on an empty node. - - -## [3.2.3] - 2014-11-08 -### Fixed -- Implemented dumping of objects with circular and cross references. -- Partially fixed aliasing of constructed objects. (see issue #141 for details) - - -## [3.2.2] - 2014-09-07 -### Fixed -- Fixed infinite loop on unindented block scalars. -- Rewritten base64 encode/decode in binary type, to keep code licence clear. - - -## [3.2.1] - 2014-08-24 -### Fixed -- Nothig new. Just fix npm publish error. - - -## [3.2.0] - 2014-08-24 -### Added -- Added input piping support to CLI. - -### Fixed -- Fixed typo, that could cause hand on initial indent (#139). - - -## [3.1.0] - 2014-07-07 -### Changed -- 1.5x-2x speed boost. -- Removed deprecated `require('xxx.yml')` support. -- Significant code cleanup and refactoring. -- Internal API changed. If you used custom types - see updated examples. - Others are not affected. -- Even if the input string has no trailing line break character, - it will be parsed as if it has one. -- Added benchmark scripts. -- Moved bower files to /dist folder -- Bugfixes. - - -## [3.0.2] - 2014-02-27 -### Fixed -- Fixed bug: "constructor" string parsed as `null`. - - -## [3.0.1] - 2013-12-22 -### Fixed -- Fixed parsing of literal scalars. (issue #108) -- Prevented adding unnecessary spaces in object dumps. (issue #68) -- Fixed dumping of objects with very long (> 1024 in length) keys. - - -## [3.0.0] - 2013-12-16 -### Changed -- Refactored code. Changed API for custom types. -- Removed output colors in CLI, dump json by default. -- Removed big dependencies from browser version (esprima, buffer). Load `esprima` manually, if `!!js/function` needed. `!!bin` now returns Array in browser -- AMD support. -- Don't quote dumped strings because of `-` & `?` (if not first char). -- __Deprecated__ loading yaml files via `require()`, as not recommended - behaviour for node. - - -## [2.1.3] - 2013-10-16 -### Fixed -- Fix wrong loading of empty block scalars. - - -## [2.1.2] - 2013-10-07 -### Fixed -- Fix unwanted line breaks in folded scalars. - - -## [2.1.1] - 2013-10-02 -### Fixed -- Dumper now respects deprecated booleans syntax from YAML 1.0/1.1 -- Fixed reader bug in JSON-like sequences/mappings. - - -## [2.1.0] - 2013-06-05 -### Added -- Add standard YAML schemas: Failsafe (`FAILSAFE_SCHEMA`), - JSON (`JSON_SCHEMA`) and Core (`CORE_SCHEMA`). -- Add `skipInvalid` dumper option. - -### Changed -- Rename `DEFAULT_SCHEMA` to `DEFAULT_FULL_SCHEMA` - and `SAFE_SCHEMA` to `DEFAULT_SAFE_SCHEMA`. -- Use `safeLoad` for `require` extension. - -### Fixed -- Bug fix: export `NIL` constant from the public interface. - - -## [2.0.5] - 2013-04-26 -### Security -- Close security issue in !!js/function constructor. - Big thanks to @nealpoole for security audit. - - -## [2.0.4] - 2013-04-08 -### Changed -- Updated .npmignore to reduce package size - - -## [2.0.3] - 2013-02-26 -### Fixed -- Fixed dumping of empty arrays ans objects. ([] and {} instead of null) - - -## [2.0.2] - 2013-02-15 -### Fixed -- Fixed input validation: tabs are printable characters. - - -## [2.0.1] - 2013-02-09 -### Fixed -- Fixed error, when options not passed to function cass - - -## [2.0.0] - 2013-02-09 -### Changed -- Full rewrite. New architecture. Fast one-stage parsing. -- Changed custom types API. -- Added YAML dumper. - - -## [1.0.3] - 2012-11-05 -### Fixed -- Fixed utf-8 files loading. - - -## [1.0.2] - 2012-08-02 -### Fixed -- Pull out hand-written shims. Use ES5-Shims for old browsers support. See #44. -- Fix timstamps incorectly parsed in local time when no time part specified. - - -## [1.0.1] - 2012-07-07 -### Fixed -- Fixes `TypeError: 'undefined' is not an object` under Safari. Thanks Phuong. -- Fix timestamps incorrectly parsed in local time. Thanks @caolan. Closes #46. - - -## [1.0.0] - 2012-07-01 -### Changed -- `y`, `yes`, `n`, `no`, `on`, `off` are not converted to Booleans anymore. - Fixes #42. -- `require(filename)` now returns a single document and throws an Error if - file contains more than one document. -- CLI was merged back from js-yaml.bin - - -## [0.3.7] - 2012-02-28 -### Fixed -- Fix export of `addConstructor()`. Closes #39. - - -## [0.3.6] - 2012-02-22 -### Changed -- Removed AMD parts - too buggy to use. Need help to rewrite from scratch - -### Fixed -- Removed YUI compressor warning (renamed `double` variable). Closes #40. - - -## [0.3.5] - 2012-01-10 -### Fixed -- Workagound for .npmignore fuckup under windows. Thanks to airportyh. - - -## [0.3.4] - 2011-12-24 -### Fixed -- Fixes str[] for oldIEs support. -- Adds better has change support for browserified demo. -- improves compact output of Error. Closes #33. - - -## [0.3.3] - 2011-12-20 -### Added -- adds `compact` stringification of Errors. - -### Changed -- jsyaml executable moved to separate module. - - -## [0.3.2] - 2011-12-16 -### Added -- Added jsyaml executable. -- Added !!js/function support. Closes #12. - -### Fixed -- Fixes ug with block style scalars. Closes #26. -- All sources are passing JSLint now. -- Fixes bug in Safari. Closes #28. -- Fixes bug in Opers. Closes #29. -- Improves browser support. Closes #20. - - -## [0.3.1] - 2011-11-18 -### Added -- Added AMD support for browserified version. -- Added permalinks for online demo YAML snippets. Now we have YPaste service, lol. -- Added !!js/regexp and !!js/undefined types. Partially solves #12. - -### Changed -- Wrapped browserified js-yaml into closure. - -### Fixed -- Fixed the resolvement of non-specific tags. Closes #17. -- Fixed !!set mapping. -- Fixed month parse in dates. Closes #19. - - -## [0.3.0] - 2011-11-09 -### Added -- Added browserified version. Closes #13. -- Added live demo of browserified version. -- Ported some of the PyYAML tests. See #14. - -### Fixed -- Removed JS.Class dependency. Closes #3. -- Fixed timestamp bug when fraction was given. - - -## [0.2.2] - 2011-11-06 -### Fixed -- Fixed crash on docs without ---. Closes #8. -- Fixed multiline string parse -- Fixed tests/comments for using array as key - - -## [0.2.1] - 2011-11-02 -### Fixed -- Fixed short file read (<4k). Closes #9. - - -## [0.2.0] - 2011-11-02 -### Changed -- First public release - - -[4.1.0]: https://github.com/nodeca/js-yaml/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/nodeca/js-yaml/compare/3.14.0...4.0.0 -[3.14.0]: https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0 -[3.13.1]: https://github.com/nodeca/js-yaml/compare/3.13.0...3.13.1 -[3.13.0]: https://github.com/nodeca/js-yaml/compare/3.12.2...3.13.0 -[3.12.2]: https://github.com/nodeca/js-yaml/compare/3.12.1...3.12.2 -[3.12.1]: https://github.com/nodeca/js-yaml/compare/3.12.0...3.12.1 -[3.12.0]: https://github.com/nodeca/js-yaml/compare/3.11.0...3.12.0 -[3.11.0]: https://github.com/nodeca/js-yaml/compare/3.10.0...3.11.0 -[3.10.0]: https://github.com/nodeca/js-yaml/compare/3.9.1...3.10.0 -[3.9.1]: https://github.com/nodeca/js-yaml/compare/3.9.0...3.9.1 -[3.9.0]: https://github.com/nodeca/js-yaml/compare/3.8.4...3.9.0 -[3.8.4]: https://github.com/nodeca/js-yaml/compare/3.8.3...3.8.4 -[3.8.3]: https://github.com/nodeca/js-yaml/compare/3.8.2...3.8.3 -[3.8.2]: https://github.com/nodeca/js-yaml/compare/3.8.1...3.8.2 -[3.8.1]: https://github.com/nodeca/js-yaml/compare/3.8.0...3.8.1 -[3.8.0]: https://github.com/nodeca/js-yaml/compare/3.7.0...3.8.0 -[3.7.0]: https://github.com/nodeca/js-yaml/compare/3.6.1...3.7.0 -[3.6.1]: https://github.com/nodeca/js-yaml/compare/3.6.0...3.6.1 -[3.6.0]: https://github.com/nodeca/js-yaml/compare/3.5.5...3.6.0 -[3.5.5]: https://github.com/nodeca/js-yaml/compare/3.5.4...3.5.5 -[3.5.4]: https://github.com/nodeca/js-yaml/compare/3.5.3...3.5.4 -[3.5.3]: https://github.com/nodeca/js-yaml/compare/3.5.2...3.5.3 -[3.5.2]: https://github.com/nodeca/js-yaml/compare/3.5.1...3.5.2 -[3.5.1]: https://github.com/nodeca/js-yaml/compare/3.5.0...3.5.1 -[3.5.0]: https://github.com/nodeca/js-yaml/compare/3.4.6...3.5.0 -[3.4.6]: https://github.com/nodeca/js-yaml/compare/3.4.5...3.4.6 -[3.4.5]: https://github.com/nodeca/js-yaml/compare/3.4.4...3.4.5 -[3.4.4]: https://github.com/nodeca/js-yaml/compare/3.4.3...3.4.4 -[3.4.3]: https://github.com/nodeca/js-yaml/compare/3.4.2...3.4.3 -[3.4.2]: https://github.com/nodeca/js-yaml/compare/3.4.1...3.4.2 -[3.4.1]: https://github.com/nodeca/js-yaml/compare/3.4.0...3.4.1 -[3.4.0]: https://github.com/nodeca/js-yaml/compare/3.3.1...3.4.0 -[3.3.1]: https://github.com/nodeca/js-yaml/compare/3.3.0...3.3.1 -[3.3.0]: https://github.com/nodeca/js-yaml/compare/3.2.7...3.3.0 -[3.2.7]: https://github.com/nodeca/js-yaml/compare/3.2.6...3.2.7 -[3.2.6]: https://github.com/nodeca/js-yaml/compare/3.2.5...3.2.6 -[3.2.5]: https://github.com/nodeca/js-yaml/compare/3.2.4...3.2.5 -[3.2.4]: https://github.com/nodeca/js-yaml/compare/3.2.3...3.2.4 -[3.2.3]: https://github.com/nodeca/js-yaml/compare/3.2.2...3.2.3 -[3.2.2]: https://github.com/nodeca/js-yaml/compare/3.2.1...3.2.2 -[3.2.1]: https://github.com/nodeca/js-yaml/compare/3.2.0...3.2.1 -[3.2.0]: https://github.com/nodeca/js-yaml/compare/3.1.0...3.2.0 -[3.1.0]: https://github.com/nodeca/js-yaml/compare/3.0.2...3.1.0 -[3.0.2]: https://github.com/nodeca/js-yaml/compare/3.0.1...3.0.2 -[3.0.1]: https://github.com/nodeca/js-yaml/compare/3.0.0...3.0.1 -[3.0.0]: https://github.com/nodeca/js-yaml/compare/2.1.3...3.0.0 -[2.1.3]: https://github.com/nodeca/js-yaml/compare/2.1.2...2.1.3 -[2.1.2]: https://github.com/nodeca/js-yaml/compare/2.1.1...2.1.2 -[2.1.1]: https://github.com/nodeca/js-yaml/compare/2.1.0...2.1.1 -[2.1.0]: https://github.com/nodeca/js-yaml/compare/2.0.5...2.1.0 -[2.0.5]: https://github.com/nodeca/js-yaml/compare/2.0.4...2.0.5 -[2.0.4]: https://github.com/nodeca/js-yaml/compare/2.0.3...2.0.4 -[2.0.3]: https://github.com/nodeca/js-yaml/compare/2.0.2...2.0.3 -[2.0.2]: https://github.com/nodeca/js-yaml/compare/2.0.1...2.0.2 -[2.0.1]: https://github.com/nodeca/js-yaml/compare/2.0.0...2.0.1 -[2.0.0]: https://github.com/nodeca/js-yaml/compare/1.0.3...2.0.0 -[1.0.3]: https://github.com/nodeca/js-yaml/compare/1.0.2...1.0.3 -[1.0.2]: https://github.com/nodeca/js-yaml/compare/1.0.1...1.0.2 -[1.0.1]: https://github.com/nodeca/js-yaml/compare/1.0.0...1.0.1 -[1.0.0]: https://github.com/nodeca/js-yaml/compare/0.3.7...1.0.0 -[0.3.7]: https://github.com/nodeca/js-yaml/compare/0.3.6...0.3.7 -[0.3.6]: https://github.com/nodeca/js-yaml/compare/0.3.5...0.3.6 -[0.3.5]: https://github.com/nodeca/js-yaml/compare/0.3.4...0.3.5 -[0.3.4]: https://github.com/nodeca/js-yaml/compare/0.3.3...0.3.4 -[0.3.3]: https://github.com/nodeca/js-yaml/compare/0.3.2...0.3.3 -[0.3.2]: https://github.com/nodeca/js-yaml/compare/0.3.1...0.3.2 -[0.3.1]: https://github.com/nodeca/js-yaml/compare/0.3.0...0.3.1 -[0.3.0]: https://github.com/nodeca/js-yaml/compare/0.2.2...0.3.0 -[0.2.2]: https://github.com/nodeca/js-yaml/compare/0.2.1...0.2.2 -[0.2.1]: https://github.com/nodeca/js-yaml/compare/0.2.0...0.2.1 -[0.2.0]: https://github.com/nodeca/js-yaml/releases/tag/0.2.0 diff --git a/build/node_modules/js-yaml/LICENSE b/build/node_modules/js-yaml/LICENSE deleted file mode 100644 index 09d3a29e..00000000 --- a/build/node_modules/js-yaml/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -(The MIT License) - -Copyright (C) 2011-2015 by Vitaly Puzrin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/build/node_modules/js-yaml/README.md b/build/node_modules/js-yaml/README.md deleted file mode 100644 index 3cbc4bd2..00000000 --- a/build/node_modules/js-yaml/README.md +++ /dev/null @@ -1,246 +0,0 @@ -JS-YAML - YAML 1.2 parser / writer for JavaScript -================================================= - -[![CI](https://github.com/nodeca/js-yaml/workflows/CI/badge.svg?branch=master)](https://github.com/nodeca/js-yaml/actions) -[![NPM version](https://img.shields.io/npm/v/js-yaml.svg)](https://www.npmjs.org/package/js-yaml) - -__[Online Demo](http://nodeca.github.com/js-yaml/)__ - - -This is an implementation of [YAML](http://yaml.org/), a human-friendly data -serialization language. Started as [PyYAML](http://pyyaml.org/) port, it was -completely rewritten from scratch. Now it's very fast, and supports 1.2 spec. - - -Installation ------------- - -### YAML module for node.js - -``` -npm install js-yaml -``` - - -### CLI executable - -If you want to inspect your YAML files from CLI, install js-yaml globally: - -``` -npm install -g js-yaml -``` - -#### Usage - -``` -usage: js-yaml [-h] [-v] [-c] [-t] file - -Positional arguments: - file File with YAML document(s) - -Optional arguments: - -h, --help Show this help message and exit. - -v, --version Show program's version number and exit. - -c, --compact Display errors in compact mode - -t, --trace Show stack trace on error -``` - - -API ---- - -Here we cover the most 'useful' methods. If you need advanced details (creating -your own tags), see [examples](https://github.com/nodeca/js-yaml/tree/master/examples) -for more info. - -``` javascript -const yaml = require('js-yaml'); -const fs = require('fs'); - -// Get document, or throw exception on error -try { - const doc = yaml.load(fs.readFileSync('/home/ixti/example.yml', 'utf8')); - console.log(doc); -} catch (e) { - console.log(e); -} -``` - - -### load (string [ , options ]) - -Parses `string` as single YAML document. Returns either a -plain object, a string, a number, `null` or `undefined`, or throws `YAMLException` on error. By default, does -not support regexps, functions and undefined. - -options: - -- `filename` _(default: null)_ - string to be used as a file path in - error/warning messages. -- `onWarning` _(default: null)_ - function to call on warning messages. - Loader will call this function with an instance of `YAMLException` for each warning. -- `schema` _(default: `DEFAULT_SCHEMA`)_ - specifies a schema to use. - - `FAILSAFE_SCHEMA` - only strings, arrays and plain objects: - http://www.yaml.org/spec/1.2/spec.html#id2802346 - - `JSON_SCHEMA` - all JSON-supported types: - http://www.yaml.org/spec/1.2/spec.html#id2803231 - - `CORE_SCHEMA` - same as `JSON_SCHEMA`: - http://www.yaml.org/spec/1.2/spec.html#id2804923 - - `DEFAULT_SCHEMA` - all supported YAML types. -- `json` _(default: false)_ - compatibility with JSON.parse behaviour. If true, then duplicate keys in a mapping will override values rather than throwing an error. - -NOTE: This function **does not** understand multi-document sources, it throws -exception on those. - -NOTE: JS-YAML **does not** support schema-specific tag resolution restrictions. -So, the JSON schema is not as strictly defined in the YAML specification. -It allows numbers in any notation, use `Null` and `NULL` as `null`, etc. -The core schema also has no such restrictions. It allows binary notation for integers. - - -### loadAll (string [, iterator] [, options ]) - -Same as `load()`, but understands multi-document sources. Applies -`iterator` to each document if specified, or returns array of documents. - -``` javascript -const yaml = require('js-yaml'); - -yaml.loadAll(data, function (doc) { - console.log(doc); -}); -``` - - -### dump (object [ , options ]) - -Serializes `object` as a YAML document. Uses `DEFAULT_SCHEMA`, so it will -throw an exception if you try to dump regexps or functions. However, you can -disable exceptions by setting the `skipInvalid` option to `true`. - -options: - -- `indent` _(default: 2)_ - indentation width to use (in spaces). -- `noArrayIndent` _(default: false)_ - when true, will not add an indentation level to array elements -- `skipInvalid` _(default: false)_ - do not throw on invalid types (like function - in the safe schema) and skip pairs and single values with such types. -- `flowLevel` _(default: -1)_ - specifies level of nesting, when to switch from - block to flow style for collections. -1 means block style everwhere -- `styles` - "tag" => "style" map. Each tag may have own set of styles. -- `schema` _(default: `DEFAULT_SCHEMA`)_ specifies a schema to use. -- `sortKeys` _(default: `false`)_ - if `true`, sort keys when dumping YAML. If a - function, use the function to sort the keys. -- `lineWidth` _(default: `80`)_ - set max line width. Set `-1` for unlimited width. -- `noRefs` _(default: `false`)_ - if `true`, don't convert duplicate objects into references -- `noCompatMode` _(default: `false`)_ - if `true` don't try to be compatible with older - yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 -- `condenseFlow` _(default: `false`)_ - if `true` flow sequences will be condensed, omitting the space between `a, b`. Eg. `'[a,b]'`, and omitting the space between `key: value` and quoting the key. Eg. `'{"a":b}'` Can be useful when using yaml for pretty URL query params as spaces are %-encoded. -- `quotingType` _(`'` or `"`, default: `'`)_ - strings will be quoted using this quoting style. If you specify single quotes, double quotes will still be used for non-printable characters. -- `forceQuotes` _(default: `false`)_ - if `true`, all non-key strings will be quoted even if they normally don't need to. -- `replacer` - callback `function (key, value)` called recursively on each key/value in source object (see `replacer` docs for `JSON.stringify`). - -The following table show availlable styles (e.g. "canonical", -"binary"...) available for each tag (.e.g. !!null, !!int ...). Yaml -output is shown on the right side after `=>` (default setting) or `->`: - -``` none -!!null - "canonical" -> "~" - "lowercase" => "null" - "uppercase" -> "NULL" - "camelcase" -> "Null" - -!!int - "binary" -> "0b1", "0b101010", "0b1110001111010" - "octal" -> "0o1", "0o52", "0o16172" - "decimal" => "1", "42", "7290" - "hexadecimal" -> "0x1", "0x2A", "0x1C7A" - -!!bool - "lowercase" => "true", "false" - "uppercase" -> "TRUE", "FALSE" - "camelcase" -> "True", "False" - -!!float - "lowercase" => ".nan", '.inf' - "uppercase" -> ".NAN", '.INF' - "camelcase" -> ".NaN", '.Inf' -``` - -Example: - -``` javascript -dump(object, { - 'styles': { - '!!null': 'canonical' // dump null as ~ - }, - 'sortKeys': true // sort object keys -}); -``` - -Supported YAML types --------------------- - -The list of standard YAML tags and corresponding JavaScript types. See also -[YAML tag discussion](http://pyyaml.org/wiki/YAMLTagDiscussion) and -[YAML types repository](http://yaml.org/type/). - -``` -!!null '' # null -!!bool 'yes' # bool -!!int '3...' # number -!!float '3.14...' # number -!!binary '...base64...' # buffer -!!timestamp 'YYYY-...' # date -!!omap [ ... ] # array of key-value pairs -!!pairs [ ... ] # array or array pairs -!!set { ... } # array of objects with given keys and null values -!!str '...' # string -!!seq [ ... ] # array -!!map { ... } # object -``` - -**JavaScript-specific tags** - -See [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) for -extra types. - - -Caveats -------- - -Note, that you use arrays or objects as key in JS-YAML. JS does not allow objects -or arrays as keys, and stringifies (by calling `toString()` method) them at the -moment of adding them. - -``` yaml ---- -? [ foo, bar ] -: - baz -? { foo: bar } -: - baz - - baz -``` - -``` javascript -{ "foo,bar": ["baz"], "[object Object]": ["baz", "baz"] } -``` - -Also, reading of properties on implicit block mapping keys is not supported yet. -So, the following YAML document cannot be loaded. - -``` yaml -&anchor foo: - foo: bar - *anchor: duplicate key - baz: bat - *anchor: duplicate key -``` - - -js-yaml for enterprise ----------------------- - -Available as part of the Tidelift Subscription - -The maintainers of js-yaml and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-js-yaml?utm_source=npm-js-yaml&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/build/node_modules/js-yaml/index.js b/build/node_modules/js-yaml/index.js deleted file mode 100644 index bcb7eba7..00000000 --- a/build/node_modules/js-yaml/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - - -var loader = require('./lib/loader'); -var dumper = require('./lib/dumper'); - - -function renamed(from, to) { - return function () { - throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + - 'Use yaml.' + to + ' instead, which is now safe by default.'); - }; -} - - -module.exports.Type = require('./lib/type'); -module.exports.Schema = require('./lib/schema'); -module.exports.FAILSAFE_SCHEMA = require('./lib/schema/failsafe'); -module.exports.JSON_SCHEMA = require('./lib/schema/json'); -module.exports.CORE_SCHEMA = require('./lib/schema/core'); -module.exports.DEFAULT_SCHEMA = require('./lib/schema/default'); -module.exports.load = loader.load; -module.exports.loadAll = loader.loadAll; -module.exports.dump = dumper.dump; -module.exports.YAMLException = require('./lib/exception'); - -// Re-export all types in case user wants to create custom schema -module.exports.types = { - binary: require('./lib/type/binary'), - float: require('./lib/type/float'), - map: require('./lib/type/map'), - null: require('./lib/type/null'), - pairs: require('./lib/type/pairs'), - set: require('./lib/type/set'), - timestamp: require('./lib/type/timestamp'), - bool: require('./lib/type/bool'), - int: require('./lib/type/int'), - merge: require('./lib/type/merge'), - omap: require('./lib/type/omap'), - seq: require('./lib/type/seq'), - str: require('./lib/type/str') -}; - -// Removed functions from JS-YAML 3.0.x -module.exports.safeLoad = renamed('safeLoad', 'load'); -module.exports.safeLoadAll = renamed('safeLoadAll', 'loadAll'); -module.exports.safeDump = renamed('safeDump', 'dump'); diff --git a/build/node_modules/js-yaml/package.json b/build/node_modules/js-yaml/package.json deleted file mode 100644 index 17574da8..00000000 --- a/build/node_modules/js-yaml/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "js-yaml", - "version": "4.1.0", - "description": "YAML 1.2 parser and serializer", - "keywords": [ - "yaml", - "parser", - "serializer", - "pyyaml" - ], - "author": "Vladimir Zapparov ", - "contributors": [ - "Aleksey V Zapparov (http://www.ixti.net/)", - "Vitaly Puzrin (https://github.com/puzrin)", - "Martin Grenfell (http://got-ravings.blogspot.com)" - ], - "license": "MIT", - "repository": "nodeca/js-yaml", - "files": [ - "index.js", - "lib/", - "bin/", - "dist/" - ], - "bin": { - "js-yaml": "bin/js-yaml.js" - }, - "module": "./dist/js-yaml.mjs", - "exports": { - ".": { - "import": "./dist/js-yaml.mjs", - "require": "./index.js" - }, - "./package.json": "./package.json" - }, - "scripts": { - "lint": "eslint .", - "test": "npm run lint && mocha", - "coverage": "npm run lint && nyc mocha && nyc report --reporter html", - "demo": "npm run lint && node support/build_demo.js", - "gh-demo": "npm run demo && gh-pages -d demo -f", - "browserify": "rollup -c support/rollup.config.js", - "prepublishOnly": "npm run gh-demo" - }, - "unpkg": "dist/js-yaml.min.js", - "jsdelivr": "dist/js-yaml.min.js", - "dependencies": { - "argparse": "^2.0.1" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-node-resolve": "^11.0.0", - "ansi": "^0.3.1", - "benchmark": "^2.1.4", - "codemirror": "^5.13.4", - "eslint": "^7.0.0", - "fast-check": "^2.8.0", - "gh-pages": "^3.1.0", - "mocha": "^8.2.1", - "nyc": "^15.1.0", - "rollup": "^2.34.1", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-terser": "^7.0.2", - "shelljs": "^0.8.4" - } -} diff --git a/build/node_modules/jsesc/LICENSE-MIT.txt b/build/node_modules/jsesc/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7e..00000000 --- a/build/node_modules/jsesc/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/build/node_modules/jsesc/README.md b/build/node_modules/jsesc/README.md deleted file mode 100644 index aae2b13a..00000000 --- a/build/node_modules/jsesc/README.md +++ /dev/null @@ -1,421 +0,0 @@ -# jsesc [![Build status](https://travis-ci.org/mathiasbynens/jsesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/jsesc) [![Code coverage status](https://coveralls.io/repos/mathiasbynens/jsesc/badge.svg)](https://coveralls.io/r/mathiasbynens/jsesc) [![Dependency status](https://gemnasium.com/mathiasbynens/jsesc.svg)](https://gemnasium.com/mathiasbynens/jsesc) - -Given some data, _jsesc_ returns a stringified representation of that data. jsesc is similar to `JSON.stringify()` except: - -1. it outputs JavaScript instead of JSON [by default](#json), enabling support for data structures like ES6 maps and sets; -2. it offers [many options](#api) to customize the output; -3. its output is ASCII-safe [by default](#minimal), thanks to its use of [escape sequences](https://mathiasbynens.be/notes/javascript-escapes) where needed. - -For any input, jsesc generates the shortest possible valid printable-ASCII-only output. [Here’s an online demo.](https://mothereff.in/js-escapes) - -jsesc’s output can be used instead of `JSON.stringify`’s to avoid [mojibake](https://en.wikipedia.org/wiki/Mojibake) and other encoding issues, or even to [avoid errors](https://twitter.com/annevk/status/380000829643571200) when passing JSON-formatted data (which may contain U+2028 LINE SEPARATOR, U+2029 PARAGRAPH SEPARATOR, or [lone surrogates](https://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14)) to a JavaScript parser or an UTF-8 encoder. - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install jsesc -``` - -In [Node.js](https://nodejs.org/): - -```js -const jsesc = require('jsesc'); -``` - -## API - -### `jsesc(value, options)` - -This function takes a value and returns an escaped version of the value where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) [escape sequences for use in JavaScript strings](https://mathiasbynens.be/notes/javascript-escapes). The first supported value type is strings: - -```js -jsesc('Ich ♥ Bücher'); -// → 'Ich \\u2665 B\\xFCcher' - -jsesc('foo 𝌆 bar'); -// → 'foo \\uD834\\uDF06 bar' -``` - -Instead of a string, the `value` can also be an array, an object, a map, a set, or a buffer. In such cases, `jsesc` returns a stringified version of the value where any characters that are not printable ASCII symbols are escaped in the same way. - -```js -// Escaping an array -jsesc([ - 'Ich ♥ Bücher', 'foo 𝌆 bar' -]); -// → '[\'Ich \\u2665 B\\xFCcher\',\'foo \\uD834\\uDF06 bar\']' - -// Escaping an object -jsesc({ - 'Ich ♥ Bücher': 'foo 𝌆 bar' -}); -// → '{\'Ich \\u2665 B\\xFCcher\':\'foo \\uD834\\uDF06 bar\'}' -``` - -The optional `options` argument accepts an object with the following options: - -#### `quotes` - -The default value for the `quotes` option is `'single'`. This means that any occurrences of `'` in the input string are escaped as `\'`, so that the output can be used in a string literal wrapped in single quotes. - -```js -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.'); -// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' - -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single' -}); -// → '`Lorem` ipsum "dolor" sit \\\'amet\\\' etc.' -// → "`Lorem` ipsum \"dolor\" sit \\'amet\\' etc." -``` - -If you want to use the output as part of a string literal wrapped in double quotes, set the `quotes` option to `'double'`. - -```js -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double' -}); -// → '`Lorem` ipsum \\"dolor\\" sit \'amet\' etc.' -// → "`Lorem` ipsum \\\"dolor\\\" sit 'amet' etc." -``` - -If you want to use the output as part of a template literal (i.e. wrapped in backticks), set the `quotes` option to `'backtick'`. - -```js -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'backtick' -}); -// → '\\`Lorem\\` ipsum "dolor" sit \'amet\' etc.' -// → "\\`Lorem\\` ipsum \"dolor\" sit 'amet' etc." -// → `\\\`Lorem\\\` ipsum "dolor" sit 'amet' etc.` -``` - -This setting also affects the output for arrays and objects: - -```js -jsesc({ 'Ich ♥ Bücher': 'foo 𝌆 bar' }, { - 'quotes': 'double' -}); -// → '{"Ich \\u2665 B\\xFCcher":"foo \\uD834\\uDF06 bar"}' - -jsesc([ 'Ich ♥ Bücher', 'foo 𝌆 bar' ], { - 'quotes': 'double' -}); -// → '["Ich \\u2665 B\\xFCcher","foo \\uD834\\uDF06 bar"]' -``` - -#### `numbers` - -The default value for the `numbers` option is `'decimal'`. This means that any numeric values are represented using decimal integer literals. Other valid options are `binary`, `octal`, and `hexadecimal`, which result in binary integer literals, octal integer literals, and hexadecimal integer literals, respectively. - -```js -jsesc(42, { - 'numbers': 'binary' -}); -// → '0b101010' - -jsesc(42, { - 'numbers': 'octal' -}); -// → '0o52' - -jsesc(42, { - 'numbers': 'decimal' -}); -// → '42' - -jsesc(42, { - 'numbers': 'hexadecimal' -}); -// → '0x2A' -``` - -#### `wrap` - -The `wrap` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified through the `quotes` setting. - -```js -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single', - 'wrap': true -}); -// → '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\'' -// → "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'" - -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double', - 'wrap': true -}); -// → '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."' -// → "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\"" -``` - -#### `es6` - -The `es6` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, any astral Unicode symbols in the input are escaped using [ECMAScript 6 Unicode code point escape sequences](https://mathiasbynens.be/notes/javascript-escapes#unicode-code-point) instead of using separate escape sequences for each surrogate half. If backwards compatibility with ES5 environments is a concern, don’t enable this setting. If the `json` setting is enabled, the value for the `es6` setting is ignored (as if it was `false`). - -```js -// By default, the `es6` option is disabled: -jsesc('foo 𝌆 bar 💩 baz'); -// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' - -// To explicitly disable it: -jsesc('foo 𝌆 bar 💩 baz', { - 'es6': false -}); -// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' - -// To enable it: -jsesc('foo 𝌆 bar 💩 baz', { - 'es6': true -}); -// → 'foo \\u{1D306} bar \\u{1F4A9} baz' -``` - -#### `escapeEverything` - -The `escapeEverything` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, all the symbols in the output are escaped — even printable ASCII symbols. - -```js -jsesc('lolwat"foo\'bar', { - 'escapeEverything': true -}); -// → '\\x6C\\x6F\\x6C\\x77\\x61\\x74\\"\\x66\\x6F\\x6F\\\'\\x62\\x61\\x72' -// → "\\x6C\\x6F\\x6C\\x77\\x61\\x74\\\"\\x66\\x6F\\x6F\\'\\x62\\x61\\x72" -``` - -This setting also affects the output for string literals within arrays and objects. - -#### `minimal` - -The `minimal` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, only a limited set of symbols in the output are escaped: - -* U+0000 `\0` -* U+0008 `\b` -* U+0009 `\t` -* U+000A `\n` -* U+000C `\f` -* U+000D `\r` -* U+005C `\\` -* U+2028 `\u2028` -* U+2029 `\u2029` -* whatever symbol is being used for wrapping string literals (based on [the `quotes` option](#quotes)) - -Note: with this option enabled, jsesc output is no longer guaranteed to be ASCII-safe. - -```js -jsesc('foo\u2029bar\nbaz©qux𝌆flops', { - 'minimal': false -}); -// → 'foo\\u2029bar\\nbaz©qux𝌆flops' -``` - -#### `isScriptContext` - -The `isScriptContext` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, occurrences of [`` or ` and works faster. - -> Do not use `style-loader` and `mini-css-extract-plugin` together. - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const devMode = process.env.NODE_ENV !== "production"; - -module.exports = { - module: { - rules: [ - { - // If you enable `experiments.css` or `experiments.futureDefaults`, please uncomment line below - // type: "javascript/auto", - test: /\.(sa|sc|c)ss$/, - use: [ - devMode ? "style-loader" : MiniCssExtractPlugin.loader, - "css-loader", - "postcss-loader", - "sass-loader", - ], - }, - ], - }, - plugins: [].concat(devMode ? [] : [new MiniCssExtractPlugin()]), -}; -``` - -### Minimal example - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); - -module.exports = { - plugins: [ - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // all options are optional - filename: "[name].css", - chunkFilename: "[id].css", - ignoreOrder: false, // Enable to remove warnings about conflicting order - }), - ], - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - // you can specify a publicPath here - // by default it uses publicPath in webpackOptions.output - publicPath: "../", - }, - }, - "css-loader", - ], - }, - ], - }, -}; -``` - -### Named export for CSS Modules - -> ⚠ Names of locals are converted to `camelCase`. - -> ⚠ It is not allowed to use JavaScript reserved words in css class names. - -> ⚠ Options `esModule` and `modules.namedExport` in `css-loader` should be enabled. - -**styles.css** - -```css -.foo-baz { - color: red; -} -.bar { - color: blue; -} -``` - -**index.js** - -```js -import { fooBaz, bar } from "./styles.css"; - -console.log(fooBaz, bar); -``` - -You can enable a ES module named export using: - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); - -module.exports = { - plugins: [new MiniCssExtractPlugin()], - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - }, - { - loader: "css-loader", - options: { - esModule: true, - modules: { - namedExport: true, - localIdentName: "foo__[name]__[local]", - }, - }, - }, - ], - }, - ], - }, -}; -``` - -### The `publicPath` option as function - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); - -module.exports = { - plugins: [ - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // both options are optional - filename: "[name].css", - chunkFilename: "[id].css", - }), - ], - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: (resourcePath, context) => { - // publicPath is the relative path of the resource to the context - // e.g. for ./css/admin/main.css the publicPath will be ../../ - // while for ./css/main.css the publicPath will be ../ - return path.relative(path.dirname(resourcePath), context) + "/"; - }, - }, - }, - "css-loader", - ], - }, - ], - }, -}; -``` - -### Advanced configuration example - -This plugin should not be used with `style-loader` in the loaders chain. - -Here is an example to have both HMR in `development` and your styles extracted in a file for `production` builds. - -(Loaders options left out for clarity, adapt accordingly to your needs.) - -You should not use `HotModuleReplacementPlugin` plugin if you are using a `webpack-dev-server`. -`webpack-dev-server` enables / disables HMR using `hot` option. - -**webpack.config.js** - -```js -const webpack = require("webpack"); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const devMode = process.env.NODE_ENV !== "production"; - -const plugins = [ - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // both options are optional - filename: devMode ? "[name].css" : "[name].[contenthash].css", - chunkFilename: devMode ? "[id].css" : "[id].[contenthash].css", - }), -]; -if (devMode) { - // only enable hot in development - plugins.push(new webpack.HotModuleReplacementPlugin()); -} - -module.exports = { - plugins, - module: { - rules: [ - { - test: /\.(sa|sc|c)ss$/, - use: [ - MiniCssExtractPlugin.loader, - "css-loader", - "postcss-loader", - "sass-loader", - ], - }, - ], - }, -}; -``` - -### Hot Module Reloading (HMR) - -> **Note** -> -> HMR is automatically supported in webpack 5. No need to configure it. Skip the following: - -The `mini-css-extract-plugin` supports hot reloading of actual css files in development. -Some options are provided to enable HMR of both standard stylesheets and locally scoped CSS or CSS modules. -Below is an example configuration of mini-css for HMR use with CSS modules. - -You should not use `HotModuleReplacementPlugin` plugin if you are using a `webpack-dev-server`. -`webpack-dev-server` enables / disables HMR using `hot` option. - -**webpack.config.js** - -```js -const webpack = require("webpack"); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); - -const plugins = [ - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // both options are optional - filename: devMode ? "[name].css" : "[name].[contenthash].css", - chunkFilename: devMode ? "[id].css" : "[id].[contenthash].css", - }), -]; -if (devMode) { - // only enable hot in development - plugins.push(new webpack.HotModuleReplacementPlugin()); -} - -module.exports = { - plugins, - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: {}, - }, - "css-loader", - ], - }, - ], - }, -}; -``` - -### Minimizing For Production - -To minify the output, use a plugin like [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin). - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); - -module.exports = { - plugins: [ - new MiniCssExtractPlugin({ - filename: "[name].css", - chunkFilename: "[id].css", - }), - ], - module: { - rules: [ - { - test: /\.css$/, - use: [MiniCssExtractPlugin.loader, "css-loader"], - }, - ], - }, - optimization: { - minimizer: [ - // For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line - // `...`, - new CssMinimizerPlugin(), - ], - }, -}; -``` - -This will enable CSS optimization only in production mode. If you want to run it also in development set the `optimization.minimize` option to true. - -### Using preloaded or inlined CSS - -The runtime code detects already added CSS via `` or `